nma*_*rko 6 python opencv computer-vision
使用Microsoft Kinect,我正在收集有关对象的深度数据.从这些数据中,我创建了一个点"云"(点云),当绘制时,允许我查看使用Kinect扫描的对象.
但是,我希望能够从不同的"视图"中收集多个点云并对齐它们.更具体地说,我想使用诸如迭代最近点(ICP)之类的算法来实现这一点,通过计算我收集的每个云与之前收集的云之间的旋转和转换来转换我的点云中的每个点.
然而,虽然我理解ICP背后的过程,但我不明白我将如何在3D中实现它.也许是因为我缺乏数学经验或缺乏OpenCV等框架的经验,但我找不到解决方案.我想避免像Point Cloud Library那样为我做这类事情的图书馆,因为我想自己做.
任何和所有建议都表示赞赏(如果有一个解决方案涉及我可以使用的OpenCV/python,那会更好!)
我目前正在与ICP斗争.这是我到目前为止收集的内容:
ICP包括三个步骤:
第一步很容易,虽然有很多方法可以优化速度,因为这是ICP的主要性能瓶颈; 并提高准确性,因为这是错误的主要来源.OpenCV可以帮助您使用FLANN库.
我假设你的麻烦在第二步,找到一个对应列表的最佳转换.
一种常见的方法适用于奇异值分解(SVD).这是算法的草图.搜索ICP和SVD将提供更多参考.
请注意,我自己还没有实现这个算法,所以我只是解读我读到的内容.
| 归档时间: |
|
| 查看次数: |
9474 次 |
| 最近记录: |