首页 文章

点 Cloud 之间的转换

提问于
浏览
0

我希望能找到一些提示,从哪里开始处理我正在处理的问题 . 我正在使用Kinect传感器来捕捉三维点 Cloud . 我创建了一个已经工作的3d物体探测器 .

我的任务是:

假设我有一个点 Cloud 1.我在 Cloud A中检测到一个物体,我知道物体的质心位置(x1,y1,z1) . 现在,我将传感器移动到路径上并创建新的 Cloud (例如 Cloud 2) . 在那个 Cloud 2中,我看到了相同的对象,例如从侧面看,物体检测不正常 .

我想将检测到的对象从 Cloud 1转换为 Cloud 2,以便在 Cloud 2中获得质心 . 对我来说,听起来我需要一个矩阵(平移,旋转)来将点从1变换到2 .

想法如何解决我的问题?也许ICP?有更好的解决方案吗?

谢谢!

2 回答

  • 0

    我认为您所询问的特别是Kinect传感器和Microsoft为其发布的API .

    如果您不打算进行重建,可以查看Sensor Fusion命名空间中的AlignPointClouds函数 . 这应该自动处理,方法类似于@pnhgiol给出的答案 .

    另一方面,如果您正在进行重建以及点 Cloud 变换,那么重建类就是您正在寻找的 . 所有这些都可以找到,here .

  • 1

    通常,此任务称为注册 . 它依赖于对 Cloud 1中哪些点对应于点2中的哪些 Cloud 的良好估计(更具体地,其给出 Cloud 1中的点, Cloud 2中的哪个点表示检测到的对象上的相同位置) . PCL库文档中有一个很好的overview

    如果您有这样的信件,那么您很幸运,您可以直接计算旋转和翻译,如图所示here .

    如果没有,您需要估计该通信 . 对于大致对齐的点 Cloud ,ICP会做到这一点,但如果您的点 Cloud 尚未完全对齐,您可能需要首先估算点 Cloud 中的“关键点”(例如书角,不同颜色等),计算如上所述的旋转和平移,然后执行ICP . 正如DJDuff所提到的,ICP在实际上在已经近似对齐的点 Cloud 上工作得更好,因为它根据维基百科使用两个指标中的一个估计对应关系,最小点对点距离或最小点到平面距离,后者效果更好在实践中,但它确实涉及估计法线,这可能是棘手的 . 如果对应距离很远,那么转换也可能是一样的 .

相关问题