3d 从点云检测旋转轴

3d 从点云检测旋转轴,3d,geometry,computer-vision,computational-geometry,3d,Geometry,Computer Vision,Computational Geometry,我试图在3d点云上自动检测旋转轴 换句话说,如果我取一个小的3d点云,选择一个旋转轴,以不同的旋转角度复制几个点,那么我会得到一个更大的点云 我的算法的输入是较大的点云,期望的输出是单轴对称。最后我要计算点之间的对应关系,它们是相互旋转的 较大的点云的大小约为100K点,并且旋转副本的数量未知 在我的例子中,旋转角度具有恒定的三角形,但不一定跨越360度。例如,我可能有0,20,40,60。或者我可能有0,90,180,270。但我不会有0,13,78,212(或者如果我有,我不想检测到它) 这

我试图在3d点云上自动检测旋转轴

换句话说,如果我取一个小的3d点云,选择一个旋转轴,以不同的旋转角度复制几个点,那么我会得到一个更大的点云

我的算法的输入是较大的点云,期望的输出是单轴对称。最后我要计算点之间的对应关系,它们是相互旋转的

较大的点云的大小约为100K点,并且旋转副本的数量未知

在我的例子中,旋转角度具有恒定的三角形,但不一定跨越360度。例如,我可能有0,20,40,60。或者我可能有0,90,180,270。但我不会有0,13,78,212(或者如果我有,我不想检测到它)

这看起来像是一个计算机视觉问题,但我很难弄清楚如何精确地找到轴。输入通常非常干净,接近浮点精度

我没有旋转/复制以生成较大点云的原始较小点云。我知道数据是合成的,几乎没有噪音(通常是另一个程序的输出)

不幸的是,我们无法轻易计算出较小云中可能的点数,因为沿着轴的点没有重复。如果我们知道哪些点是沿着轴的,那么我们就可以找出可能的因素,但是我们已经解决了这个问题

--

谢谢大家的建议。看起来我的最后一个算法将尝试使用k-nn度量得出匹配点的小团体。每一个集团将给出一个轴心。然后,我可以使用RANSAC将一个轴拟合到所有派系的结果。

1)如果你找到较大点云的质心C,它就是原始旋转轴 必须通过那个点

没关系:我没有看到旋转不能跨越一个完整圆的要求。对于20,40,60示例,质心不在旋转轴上

也许下面的裁判会有帮助

“使用部分采样重建旋转曲面” 一些要点:)

  • 如果我们有一个从未旋转过的初始点,那么轴的数量是无限的
  • 如果我们有一个初始点旋转1次,那么也有无限多的轴
  • 如果我们有一个初始点并旋转它两次,那么我们可以找到轴,因为三个点唯一地决定一个平面。垂直于该轴,通过与3个点(1个初始点+2个旋转点)中的每个点等距的点为轴
  • 请注意,旋转360度没有任何意义

  • 从云中选择任意一个点(P)
  • 追踪点P的轨迹(L)(当P绕某个轴旋转时,L应该是一个圆)
  • 垂直于穿过圆心的圆(L)平面的是云的旋转轴

  • 我的意思是,刚体的旋转轴和任何单个粒子的旋转轴是相同的。我们不必关心所有其他点。

    选择任何一点,并找到与之等距的两个其他点。这应该是O(n^2)最坏的情况,但启发式可以大大减少这种情况。这三个点唯一地决定了一个圆。如果第四个点与第一个点或第三个点的距离相同,这将大大增加您对圆的信心

    圆的中心是轴上的一点,圆的法向量是轴的方向向量

    给定轴,您可以确定旋转之间的角度,并使用其他一些点检查您的猜测。如果这是错误的,选择另一个点,重新开始


    编辑:顺便说一下,这显然是不确定的,但是如果你的点数据像你说的那样干净,并且你使用了很好的启发式,它应该相当准确。

    看看立体视觉中用来计算两幅图像之间单应性的技术——你的点云集问题似乎与同一对象/场景的多幅图像中的匹配点有关。似乎可以应用RANSAC算法来计算点云集之间的变换。

    一个疯狂的想法

    如果同一点绕同一轴旋转数次,则所有点都将位于同一平面上。根据您的数据集,可以使用ransac方法检测此平面


    旋转轴将垂直于该平面,一旦确定了旋转轴的方向,就可以相对容易地确定旋转轴的位置。

    好的,下面的方法可能有用,但这取决于数据的具体情况。它基于以下假设:相邻位置之间的间隙足够大(20度可能很好),并且小的点云近似于一个曲面(最后一个可以克服)。我建议使用局部特征匹配(计算机视觉中流行的技术)

    首先,对于大型云的每个点,您应该计算局部描述符(如图像的SIFT或SURF)。最常用的点云是“旋转图像”:

    Johnson,A.,和Hebert,M.(1999)。在杂乱的三维场景中使用旋转图像进行有效的对象识别。IEEE模式分析和机器智能学报,21(5),433–449。西特塞。从中检索

    此处使用了高级修改:

    Endres,F.,Plagemann,C.,Stachniss,C.,和Burgard,W.(2009)。使用潜在Dirichlet分配从范围数据无监督发现对象类。机器人学:科学与系统。西雅图,美国

    如果计算起来很困难,问我如何在不损失很多辨别力的情况下降低维度,我已经做到了