在我们做三维建模时,需要使用到点云的粗配准与精配准。一个比较好的工具就是CloudCompare。最近我在对一个物体的多面点云进行配准时,注意到一个细节。写出来供大家学习。
首先,点云粗配准使用到的是如下图所示的Align,在使用这个功能的时候,会弹出窗口让你选择哪个点云为Align/Reference。
这两者是有区别的,简而言之,你选择哪个点云为Align那么那个点云将是被变动的点云(被转换到Reference点云的坐标系下)
这里用图进行说明,比如我选择Mesh.part(缺失部分点云)是Align,那么我做粗配准后,part将被转换到mesh的坐标系下。
配准过程:
mesh.part为align时的粗配准结果。
相反,如果我选择mesh为Align,那么粗配准结果为:
所以,在我们做粗配准操作时,要搞清楚自己的reference为谁,你想要的最终坐标系以谁为标注,谁就是reference。
同理,精配准也存在这样的细节。精配准我们使用到如下图所示的ICP算法
这里也需要选择我们进行精配准的Align和reference,原理和上面所说的一样。注意到下面有一个覆盖率,我在这里选择的是100%。这个覆盖率也是针对的Align的点被覆盖为100%,而不是reference被覆盖,下面我用图来说明
如果我选择mesh为Align可以看到精配准的结果很差,因为mesh.part根本不能覆盖100%的mesh的点。
相反,如果我选择mesh.part为Align时,配准结果如下:
可以看到这样的效果才是我们想要的精配准结果。
最后,大家在做点云配准时,需注意到Align和Reference的选择。