原创是武大发表的一篇高质量论文,项目已开源。文章提出一种名为TurboReg的闪电般快速且极其鲁棒的点云配准估计器,通过创新的轻量级“TurboClique”和高度并行的搜索算法,在真实世界数据集上实现了比现有SOTA方法快200多倍的速度,同时还提升了配准的召回率。
- 研究背景与意义
点云配准 (Point Cloud Registration, PCR) 是3D视觉中的一个基石性问题,其目标是将两个或多个不同视角的点云对齐到同一个坐标系下,是三维重建、机器人导航、自动驾驶等应用的关键步骤。
在基于对应关系的配准方法中,一个核心环节是如何从大量的、包含许多错误匹配 (outliers) 的初始对应关系中,鲁棒地估计出正确的变换矩阵。现有的一些SOTA方法,如3DMAC,通过在兼容性图中搜索“最大团” (Maximal Clique) 来确保找到的对应关系子集在几何上是一致的,从而获得了很高的鲁棒性(召回率)。
然而,这种方法有一个致命的弱点:速度极慢。因为搜索最大团是一个NP-hard问题,其时间复杂度是指数级的。这使得这些方法在需要快速响应的时间敏感型应用(如实时SLAM)中几乎无法使用。如何在保持高鲁棒性的同时,大幅提升配准速度,是该领域一个亟待解决的痛点。
- TurboReg的核心方法
TurboReg的提出,就是为了解决上述“速度与激情”的矛盾。它巧妙地绕开了耗时的最大团搜索,提出了一套全新的、轻量且高效的解决方案,主要包含两大创新:
2.1. TurboClique:轻量级的几何约束
研究者们没有去寻找那个庞大而复杂的“最大团”,而是定义了一种全新的、轻量级的“TurboClique”。它被定义为一个在高度受限的兼容图中的3-clique(即一个由3个相互兼容的对应关系组成的三角形)
轻量级 (3-clique):相比于寻找大小不定的最大团,寻找固定大小的3-clique在计算上要简单得多,这为高效的并行搜索奠定了基础。
高度受限:通过施加更强的几何约束来构建兼容图,确保了即使是小小的3-clique也能提供足够强的空间一致性,从而保证变换估计的稳定性。
2.2. 枢轴引导搜索 (Pivot-Guided Search, PGS):高度并行化的搜索算法
为了快速找到高质量的TurboClique,研究者设计了一种名为PGS的高效搜索算法。该算法的核心思想是:
选择“枢轴” (Pivot):算法首先选择那些具有高SC²分数(一种衡量匹配质量的指标)的匹配对作为“枢轴”。
引导搜索:以这些高质量的枢轴为中心进行引导式搜索,可以更大概率地快速找到包含更多正确匹配 (inliers) 的TurboClique。
并行化与线性复杂度:最关键的是,PGS算法具有线性时间复杂度,并且可以高度并行化,这与最大团搜索的指数级复杂度形成了鲜明对比,从根本上解决了速度瓶颈。
- 实验效果
TurboReg在多个真实世界的基准数据集(如3DMatch, 3DLoMatch)上进行了广泛的实验,结果堪称“惊艳”。
速度:在3DMatch+FCGF数据集上,TurboReg (1K) 的运行速度比3DMAC快了208.22倍!这种数量级的提升是革命性的。
精度与鲁棒性:在速度大幅提升的同时,TurboReg的召回率 (Recall) 也超过了3DMAC,这意味着它不仅快,而且更准、更鲁棒。
- C api 封装
4.1 环境配置
1)CUDA 11.8 (使用GPU计算)
2)libtorch (使用张量进行计算)
3)eigen-3.4.0
4.2 C api 封装
创建C api 头文件turboreg_c_api.h,turboreg_c_api.cpp,CMakeLists.txt,使用VS 2022编译。封装TurboReg Create,TurboReg Destroy,TurboReg Register,TurboReg Register Matrix4个函数。 - 导入LabVIEW
函数调用顺序:TurboReg Create—>TurboReg Register/TurboReg Register Matrix–>TurboReg Destroy.
- LabVIEW测试
TurboReg 内部使用 float(32位)张量进行计算,而您传入 LabVIEW 的 src_points 也是单精度,输出矩阵的精度就是单精度。
欢迎大家转发交流!
声明:来自LabVIEW高级编程,仅代表创作者观点。链接:https://eyangzhen.com/6257.html