我有一个物体的点云,用激光扫描仪获得,以及该物体的CAD表面模型。
如何将点云匹配到曲面,以获得云和模型之间的平移和旋转?
我想我可以对表面进行采样,并尝试Iterative Closest Point (ICP)算法,以将得到的采样点云与扫描仪点云进行匹配。
这真的行得通吗?
有没有更好的算法来完成这项任务?
发布于 2013-09-25 18:47:26
如果你的激光扫描中有所有可用的面,这将是最好的,否则你可能不得不从你的模型中删除不可见的面(取决于有多少这样的面)。
通过去除一些隐藏面自动准备模型的一种方法是计算可用于丢弃隐藏面的凹面外壳(例如,不靠近凹面外壳的面)。
如果给出一个好的初始猜测,ICP效果很好,因为它忽略了与当前猜测不接近的点。
一种更复杂的解决方案是进行局部特征匹配。您可以采样并计算一个不变描述符,如SHOT或FPFH。您找到最佳匹配,拒绝不一致的匹配,使用它们来提出良好的初始对齐,然后使用ICP进行改进。但您可能不需要此步骤,这取决于随机重启ICP的健壮性和快速性。
发布于 2014-08-27 00:28:22
在新的OpenCV中,我实现了一个曲面匹配模块,将3D模型与3D场景进行匹配。不需要初始姿态,检测过程是完全自动的。该模型还涉及ICP。
要获得一个想法,请查看此处的视频(尽管它不是由OpenCV实现生成的):
https://www.youtube.com/watch?v=uFnqLFznuZU
完整的源代码是here,文档是here。
您提到您需要对您的CAD模型进行采样。这是正确的,我们给出了一个适用于点对特征匹配的采样算法,例如在OpenCV中实现的算法:
Birdal,Tolga和Slobodan Ilic.用于不规则几何形状的3D匹配的点采样算法。2017IEEE/RSJ智能机器人和系统国际会议(IROS)。IEEE,2017。
http://campar.in.tum.de/pub/tbirdal2017iros/tbirdal2017iros.pdf
发布于 2013-09-25 23:50:40
有一个针对point cloud algorithms的开源库,它实现了针对其他点云的registration。也许你可以尝试他们的一些方法,看看是否合适。
首先,如果他们没有任何特定的东西来适应多边形网格,您可以将网格顶点视为另一个点云,并根据它拟合您的点云。
https://stackoverflow.com/questions/19000096
复制相似问题