probreg:实践指南
面对实际交付,我看probreg的重点不在星标,而在这项能力:使用概率模型进行点云配准的Python包(相干点漂移,GMMReg,SVR,GMMTree,FilterReg,贝叶斯CPD)。实际做部署与运行环境时,经常会碰到权限、依赖和环境差异会放大维护成本,所以功能列表并不能代替验证。我建议在非生产环境复现一次安装与运行,重点记录依赖锁定、权限边界、日志、回滚和资源消耗,再与现有方案比较。我的判断是,它更适合愿意维护环境并重视故障恢复的工程团队;若眼下没有这类需求,先保留观察即可。
Probreg 是一个使用 probablistic 模型实现点云 registration 算法的库。
使用随机模型的点集配准算法比ICP(迭代最近点)更加鲁棒。 该软件包使用随机模型实现了多种算法,并提供了与 Open3D 的简单接口。
核心特点
- Open3D接口
- 刚性与非刚性变换
算法
- 当目标点云或源点云是观测数据时的最大似然
- 相干点漂移 (2010)
- 扩展相干点漂移 (2016)(在 CPD 之前添加对应关系)
- 颜色相干点漂移 (2018)
- FilterReg (CVPR2019)
- 变分贝叶斯推理
- 贝叶斯相干点漂移 (2020)
- 两个概率分布的距离最小化
- GMMReg (2011)
- 支持向量配准 (2015)
- 分层随机模型
- GMMTree (ECCV2018)
转换
| 类型 | CPD | SVR, GMMReg | GMMTree | FilterReg | BCPD(实验) |
|---|---|---|---|---|---|
| 刚性 | 比例+6D姿势 | 6D 姿势 | 6D 姿势 | 6D姿势 </br>(点对点,</br>点对平面,</br> FPFH-) | - |
| NonRigid | 仿射,MCT | TPS | - | 可变形运动 </br>(实验) | 组合型号 </br>(刚性+刻度+NonRigid-term) |
CUDA 支持
你需要安装cupy。
pip install cupy
- 刚性 CPD
- 仿射 CPD
安装
您可以使用 pip 安装 probreg。
pip install probreg
或者从源代码安装 probreg。
git clone https://github.com/neka-nat/probreg.git --recursive
cd probreg
pip install -e .
开始使用
这是读取 PCD 文件并调用 CPD 注册的示例代码。 您可以轻松地从 Open3D 点云对象执行注册并绘制结果。
import copy
import numpy as np
import open3d as o3
from probreg import cpd
# load source and target point cloud
source = o3.io.read_point_cloud('bunny.pcd')
source.remove_non_finite_points()
target = copy.deepcopy(source)
# transform target point cloud
th = np.deg2rad(30.0)
target.transform(np.array([[np.cos(th), -np.sin(th), 0.0, 0.0],
[np.sin(th), np.cos(th), 0.0, 0.0],
[0.0, 0.0, 1.0, 0.0],
[0.0, 0.0, 0.0, 1.0]]))
source = source.voxel_down_sample(voxel_size=0.005)
target = target.voxel_down_sample(voxel_size=0.005)
# compute cpd registration
tf_param, _, _ = cpd.registration_cpd(source, target)
result = copy.deepcopy(source)
result.points = tf_param.transform(result.points)
# draw result
source.paint_uniform_color([1, 0, 0])
target.paint_uniform_color([0, 1, 0])
result.paint_uniform_color([0, 0, 1])
o3.visualization.draw_geometries([source, target, result])
资源
- 文档
结果
比较算法
| CPD | SVR | GMMTree | FilterReg |
|---|---|---|---|
噪音测试
| ICP(Open3D) | CPD | FilterReg |
|---|---|---|
非严格登记
| CPD | SVR | 过滤器寄存器 | BCPD |
|---|---|---|---|
基于特征的注册
| FPFH FilterReg |
|---|
时间测量
执行测量时间的示例脚本。
OMP_NUM_THREADS=1 python time_measurement.py
# Results [s]
# ICP(Open3D): 0.0014092829951550812
# CPD: 0.038112225010991096
# SVR: 0.036476270004641265
# GMMTree: 0.10535842599347234
# FilterReg: 0.005098833993542939
引用
@software{probreg,
author = {{Kenta-Tanaka et al.}},
title = {probreg},
url = {https://probreg.readthedocs.io/en/latest/},
version = {0.1.6},
date = {2019-9-29},
}
相关资讯
-
09.13
envio:实践指南
-
09.13
typst-preview.nvim:实践指南
-
09.13
meta-balena:实践指南
-
09.13
lightdm:实践指南
-
09.13
rethinkdb_rebirth:实践指南
-
09.13
minimal-twitter:实践指南
游戏推荐
推荐专题
热门阅读
-
- universal:实践指南
- 09.14
-
- Script:实践指南
- 09.14
-
- probreg:实践指南
- 09.14
-
- NiceImageView:实践指南
- 09.14
-
- excalibrain:实践指南
- 09.13
-
推荐下载
-
-
下载
- |
-
-
下载
- 《行尸走肉第一章》免安装中文汉化硬盘版下载
- 单机|436 MB
- 一款以动作冒险为主题的游戏
-
-
下载
- 《街头霸王X铁拳》免安装中文汉化硬盘版下载
- 单机|111MB
- 一款非常好玩的格斗游戏
-
-
下载
- |
-
-
下载
- 《暗黑破坏神3》免安装繁体中文正式版下载
- 单机|7630 MB
- 一款以角色扮演为主题的游戏
-
-
下载
- 《马克思佩恩3》免安装硬盘版下载
- 单机|27033 MB
- 一款以第三人称射击为主题的游戏