tfi*_*iga 7 3d geometry computer-vision computational-geometry
我正试图在3d pointcloud上自动检测旋转轴.
换句话说,如果我采用一个小的3d点云,选择一个单一的旋转轴,并以不同的旋转角度制作几个点的副本,那么我得到一个更大的pointcloud.
我算法的输入是较大的pointcloud,所需的输出是单轴对称.最后,我将计算彼此旋转的点之间的对应关系.
较大的pointcloud的大小约为100K点,旋转副本的数量是未知的.
在我的情况下,旋转角度具有恒定的增量,但不一定跨越360度.例如,我可能有0,20,40,60.或者我可能有0,90,180,270.但我不会有0,13,78,212(或者如果我这样做,我不在乎检测它).
这似乎是一个计算机视觉问题,但我无法弄清楚如何精确地找到轴.输入通常非常干净,接近浮动精度.
我没有旋转/复制的原始较小的pointcloud来制作更大的pointcloud.我知道数据是合成的,噪音很小(通常是另一个程序的输出).
我们不能轻易地计算较小云中可能的点数,因为不幸的是,沿着轴线,点不会重复.如果我们知道轴上有哪些点,那么我们可以提出可能的因素,但是我们已经解决了这个问题.
-
谢谢大家的建议.看起来我的最终算法将尝试使用k-nn度量来提出匹配点的集合.每个集团都会给出一个轴.然后,我可以使用RANSAC将轴拟合到所有集团的结果中.
那么,以下方法可能有用,但这取决于您的数据的具体情况。它基于以下假设:相邻位置之间的间隙足够大(20 度可能就可以了)并且小点云近似于表面(可以克服最后一个)。我建议使用局部特征匹配(计算机视觉中的流行技术)。
\n\n首先,对于大型云的每个点,您应该计算局部描述符(例如图像的 SIFT 或 SURF)。点云最流行的一种是旋转图像:
\n\n约翰逊,A. 和赫伯特,M. (1999)。使用旋转图像在杂乱的 3D 场景中进行高效的对象识别。IEEE 模式分析和机器智能汇刊,21(5), 433\xe2\x80\x93449。西特西尔。检索自http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.23.8816&rep=rep1&type=pdf。
\n\n这里使用的是高级修改:
\n\nEndres, F.、Plagemann, C.、Stachniss, C. 和 Burgard, W. (2009)。使用潜在狄利克雷分配从范围数据中无监督地发现对象类。在机器人学:科学与系统。美国西雅图。
\n\n如果计算起来很困难,请问我如何在不损失太多判别力的情况下降低维度,我已经这样做过一次了。
\n\n然后您应该匹配描述符,即在高维空间中找到每个描述符的最近邻居。如果小云旋转了 3 次,则应该有 3 个好的最近邻。然而,由于云自相交,匹配可能会包含噪声。您仍然必须找到适合大量匹配的轴(尽管不是全部)。在这里,您可以使用一些稳健的拟合,例如 RANSAC(您应该做一些数学计算来定义轴位置与找到的匹配项的可能性)。请注意,它与其他人建议的方法不同。您应该根据描述符而不是原始点只拟合一条线而不是一系列平面(RANSAC 可能无法拟合具有 4-5 个正确点和 100K 异常值的平面)。
\n\n另请注意:
\n\n如果您的小型扫描不近似于表面,您应该提出不同的旋转不变描述符,而不是旋转图像。
\n\n为了计算法线并进行检索,您可以查看此库:http://graphics.cs.msu.ru/en/science/research/3dpoint/lidark(主要版本即将发布)。
\n| 归档时间: |
|
| 查看次数: |
3855 次 |
| 最近记录: |