1. 什么是三维激光点云
首先,我们需要先理解三维点云(point cloud)的概念。三维点云(Point Cloud)是三维空间中离散点的集合,其中每一个点至少需要包含一组三维坐标(X, Y, Z),用于精确描述这个点在特定坐标系下的具体位置。当然,除了位置信息以外,每个点还可以附加有颜色、法线向量、强度值等其他更多的信息。基于多年在三维空间技术上的研发,众趣科技已经能够通过激光雷达、结构光深度相机,全景图像预测等多种技术手段,获得在某个点位环绕的三维点云数据。
其次,本文提到的都是刚体点云,下面来理解下刚体(Rigid)的概念 。刚体(Rigid),是指物体在变换过程中形状和大小保持不变,任意两点间的距离恒定不变,也就是说,其空间变换仅限于平移和旋转(即刚体运动),不涉及形变或缩放。打个比方,一个房间无论经过什么样的刚体变换,它的大小,面积,天花板和地面的距离,墙面与墙面的距离都是不会发生变化的,只是它在三维空间中呈现的具体位置发生了变化。众趣科技面对三维空间的采集数据,大都是静止的地面,墙面,家具,室外空间等形态,因此,这些数据大都符合刚体的性质。
以下则是众趣科技通过自己研发的三维激光扫描仪X3 Pro,在某个扫描点位获得的三维刚体点云数据。
2. 三维激光点云为什么需要配准
目前众趣科技的采集设备,大都是基于架站式的采集方式,也就是说,通过每个站点的扫描过程,众趣科技能够获得以这个站点为中心的三维刚体点云数据。但是紧接着的问题就是,这些三维刚体点云数据是一堆离散的,以各自的扫描点为坐标系的,互相之间没有关联的数据,仅仅拥有这些数据是无法给出一个三维空间的全貌的。因此,我们需要将这些离散的三维点云数据摆放到一个共同的坐标系里,让他们能找到给自己在这个共同坐标系的真实位置,也就是要解决一个统一坐标系的需求:即通过计算刚体变换(旋转矩阵和平移向量),实现各个三维刚体点云数据的空间对齐。两个扫描点获得的空间数据,如果不做坐标系的统一,结果如下图
比较容易想到的,我们可以指定空间当中的某个三维刚体点云数据的坐标系为共同坐标系(实践中比较常见的,是第一个获得的三维刚体点云数据的坐标系未共同坐标系),根据扫描时的位置关系,挨个计算具有匹配关系的两个三维刚体点云数据之间的位置,获得它们两两之间的刚体变换(旋转矩阵和平移向量),这种寻找两个三维刚体点云数据之间的刚体变换的计算过程,也就是计算求解旋转矩阵和平移向量的计算过程,就是配准。
不难想象,通过配准,就可以将每个架站采集到的数据逐个的连接,逐个的进行“拼接”,从而得到整个三维空间的全貌。所以配准工作,也是后续处理(如三维重建、场景理解)的基础。
3. 三维激光点云配准工作的挑战
常见的几种影响到配准精度的挑战有:
(1)点云数据噪声与离群点:实际采集的点云数据常受传感器误差、环境干扰等影响,包含有噪声和离群值,这些异常数据会降低配准精度。例如,不同的激光扫描仪单点扫描的数据波动范围在几厘米不等,这是采集设备自身就带有的问题。
(2)点云数据不完整与遮挡:因采集设备视角限制,或现场实际环境的影响,点云数据有时存在局部缺失或遮挡。比如,针对房屋数据采集的场景,基于结构光原理的三维采集设备会收到太阳光线的影响,所以在靠近窗户阳台等存在太阳光源环境时,就会无法计算出准确数据信息而造成数据的部分缺失;再比如在一些凌乱的狭小的房间里,能够供采集设备摆放的空间很有限,而室内的物品又凌乱,就会造成物品之间的遮挡而产生数据确实。
(3)准确性与效率的平衡:在使用扫描仪现场采集作业的过程中,希望采集过程耗时短一直是一个刚性需求。因此,对配准算法的计算效率要求也较高,要求配准算法能在一定的计算时间内得到较好的结果。
4.三维激光点云配准的方法有哪些
(1)手动选点配准
手动选点的方法,是通过人工选择两个三维刚体点云中能够看到的共同的特征点点云,比如同一张桌子的桌角点云,同一个门框的角点点云等,然后通过SVD算法计算让这些彼此对应的点云具有最优匹配关系的刚体变换(旋转矩阵和平移向量)。比如同一批特征物体的特征点,在三维刚体点云1中的位置坐标为(X1, Y1,Z1)(X2, Y2,Z2)……(Xn, Yn,Zn),在三维刚体点云2中的位置坐标为(X1’, Y1’,Z1’)(X2’, Y2’,Z2’)……(Xn’, Yn’,Zn’),SVD方法即能求得符合这个匹配的最优解。示例如下图:
手动选点方法的优点有:
1. 计算速度快
2. 可以避开某些移动杂点(比如行走中的人)对配准计算造成的影响
3.准确度较高
相应的,缺点有:
1.需要开发专门的交互界面
2.需要人工投入选点,消耗人力。
(2)基于传统迭代方法的自动化配准
基于迭代方式的成熟算法,能够在符合一定假设的前提下,自动化的进行配准工作。一般而言,比较成熟的主流算法有ICP算法和NDT算法。
--- ICP(Iterative Closest Point)算法
核心目标是迭代寻找源点云与目标点云中每个点的最近邻对应点对,基于这些点对计算最优的空间变换参数(R和T),并应用变换更新源点云位置,重复此过程直至误差收敛。
关键步骤:
1.寻找对应点:对源点云的每个点,在目标点云中搜索其最近邻点作为匹配点对 。
2.计算变换矩阵:通过最小二乘法求解最优的R和T,常用SVD分解质心化后的对应点坐标矩阵实现 。
3.应用变换更新:将变换作用于源点云,使其向目标点云靠拢 。
4.误差评估与迭代:计算变换后的均方距离误差,若未达阈值则重复上述步骤
---NDT(Normal Distribution Transform)算法
核心目标是将目标点云划分为网格并计算每个网格内点的正态分布概率密度函数(PDF),通过优化变换参数(旋转和平移)使源点云变换后在目标点云中的概率密度之和最大化。
关键步骤:
1.将目标点云划分为网格(2D为平面网格,3D为立方体网格),要求每个网格至少包含6个点。
2.计算每个网格的均值与协方差矩阵,构建多维正态分布模型。
3.通过迭代优化(如牛顿法)调整变换矩阵,最大化源点云在目标分布中的概率。
这些传统迭代方法的优点有:
1.无需人工参与,自动化程序较高
相应的,缺点有:
1. 对位置的初始关系敏感,不同的初始关系可能会导致计算失败。
2. 迭代计算较为耗时,需要设置合适的收敛条件或者终止计算条件。
(3)基于AI神经网络方法的自动化配准
近年来,针对神经网络的研究方兴未艾。在配准领域,也有不少基于神经网络训练的配准算法的尝试。大体而言,基于神经网路的配准方法大体分为两类
---基于特征的方法
1.PointNetLK:结合PointNet提取点云全局特征,利用Lucas-Kanade算法迭代优化变换参数。
2.Deep Closest Point (DCP) :通过DGCNN提取局部特征,计算软对应关系后使用Kabsch算法估计变换矩阵。
3.PRNet:基于PointNet++,将点云投影到球面计算卷积特征以学习配准关系。
4.D3Feat/3D Smooth Net:学习局部特征后结合RANSAC框架进行匹配,在室内数据集表现优异。
---基于全局优化的方法
1.端到端学习方法:直接通过神经网络回归变换矩阵(如DeepICP),但易受噪声影响。
2.MS-SVConv + UDGE:结合多尺度描述符网络与无监督迁移学习,在真实场景数据集(如3DMatch)达到先进水平。
基于神经网络的配准方法的优点有:
1.泛化性较好,在某些场景下可以提高配准的准确性。
相应的,缺点有:
1.有训练数据的积累过程
2.需要准备训练数据和进行神经网络模型训练,开发周期较长。
5.总结
经过配准工作以后,两个具有匹配关系的三维刚体点云数据找到了针对彼此的正确位置,上图那个叠在一起的数据,配准后的效果如下图

经过一系列的配准工作,每个扫描点位获得的三维刚体数据就被摆放到了同一坐标系下的合理位置,最终拼成了一个完整的三维模型,如下图: