首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >点云之间的变换

点云之间的变换
EN

Stack Overflow用户
提问于 2013-11-11 19:02:10
回答 2查看 2.1K关注 0票数 1

我希望找到一些从我正在处理的问题开始的提示。我正在使用Kinect传感器来捕获3D点云。我创建了一个3d对象检测器,它已经在工作了。

以下是我的任务:

假设我有一个点云1.我在云A中检测到一个物体,并且我知道我的物体的质心位置(x1,y1,z1)。现在我在一条路径上移动传感器并创建新的云(例如云2)。在云2中,我看到了相同的对象,但例如从侧面,对象检测不能很好地工作。

我想要将检测到的对象从云1转换到云2,以获得云2中的质心。对我来说,这听起来像是我需要一个矩阵(平移,旋转)来将点从1转换到2。

我该如何解决我的问题呢?也许是ICP?有没有更好的解决方案?

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2013-12-06 06:46:04

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

如果您有这样的通信,那么您很幸运,可以直接计算旋转和平移,如演示的here所示。

如果不是,则需要估计对应关系。ICP对近似对齐的点云执行此操作,但如果您的点云还没有很好地对齐,您可能希望首先估计点云中的“关键点”(例如书角、不同的颜色等),计算如上所述的旋转和平移,然后执行ICP。正如D.J.Duff提到的,ICP在实践中对已经大致对齐的点云效果更好,因为它使用两个度量之一来估计对应关系,根据维基百科的说法,最小点到点距离或最小点到面距离在实践中效果更好,但它确实涉及到估计法线,这可能是棘手的。如果对应关系很远,那么转换可能也是如此。

票数 1
EN

Stack Overflow用户

发布于 2017-01-17 05:00:53

我想你所问的是关于Kinect传感器和微软为其发布的API。

如果您不打算进行重建,可以查看传感器融合命名空间中的AlignPointClouds函数。这应该会自动处理它,方法类似于@pnhgiol给出的答案。

另一方面,如果您正在考虑进行重建以及点云变换,那么就需要使用reconstruction类。所有这些都可以找到,here

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19904698

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档