引言
Align(register) point clouds 即对齐(配准)点云,意思是将一个点云匹配到另一个点云上面,主要用来将从一个物体的不同角度得到的局部点云拼接起来,由此得到一个完整的3D模型,对点云做Alignment或Registration从本意上来说并没有什么本质的区别,尤其是在阅读学术论文的时候。
但是我在工作中所了解到的是Alignment是把几个3D相机固定起来,然后计算出这几台3D相机点云之间相对位置的转换矩阵,一般情况下以第一个相机的坐标系为基准,把其他相机的点云通过转换与平移移到相同的坐标系下,然后可以实时捕捉完整的3D点云。而Registration则指的是只用一台3D相机,连续从各个角度对一个物体进行扫描,然后把把得到的点云一帧一帧的拼接起来,由此而得到完整的3D模型。所以从这个角度来说,Alignment得到完整模型是实时的,是多个相机同一时间从多个角度得到的点云拼接起来,每一帧都是完整模型,Registration则是一台相机从不同时间不同角度的到点云拼接,完整3D模型不是实时的,需要通过离线处理得到。但其本质均是通过得到点云之间的转换矩阵来实现匹配。
常见的Alignment或Registration算法
最常见的Alignment算法即ICP(Iterative Closest Point)及其各种变体,如其名字所示,此方法是通过先对点云进行初配准,然后迭代最近点使相对应的点距离最小而得到一个转换矩阵。以下对Point-to-point ICP和Point-to-plane ICP这两种ICP方法做简要介绍:
Point-to-point & Point-to-plane ICP
一般来说,此ICP算法会迭代两个步骤:
(1)找到目标点云P和源点云Q中相对应的点集K={(p,q)},定义p与q的目标函数E(T)和q到p的转换矩阵T,不同的ICP变体使用不同的目标函数E(T)。
(2)通过最小化目标函数E(T)来更新变换T。
point-to-point ICP使用的目标函数如下所示
而point-to-plane ICP使用了一个不同的目标函数