【发布时间】:2010-04-14 17:28:27
【问题描述】:
我正在尝试自动检测 3d 点云上的旋转轴。
换句话说,如果我采用一个小的 3d 点云,选择一个单一的旋转轴,并以不同的旋转角度制作多个点的副本,那么我会得到一个更大的点云。
我的算法的输入是较大的点云,所需的输出是单对称轴。最终我将计算相互旋转的点之间的对应关系。
较大的点云的大小约为 100K 点,旋转复制的数量是未知的。
在我的例子中,旋转角度有恒定的增量,但不一定跨越 360 度。例如,我可能有 0、20、40、60。或者我可能有 0、90、180、270。但我不会有 0、13、78、212(或者如果我有,我不在乎来检测它)。
这似乎是一个计算机视觉问题,但我无法弄清楚如何精确找到轴。输入通常会非常干净,接近浮点精度。
我没有旋转/复制来制作更大点云的原始较小点云。我知道数据是合成的,噪音很小(通常是另一个程序的输出)。
我们无法轻松计算较小云中可能的点数,因为不幸的是,这些点不会沿着轴重复。如果我们知道哪些点在轴上,那么我们就可以想出可能的因素,但是我们已经解决了这个问题。
--
感谢大家的建议。看起来我的最终算法将尝试使用 k-nn 度量提出匹配点的派系。每个派系都会给出一个轴。然后我可以使用 RANSAC 为所有派系的结果拟合一个轴。
【问题讨论】:
-
您是否有初始(小)点云作为参考?如果不是,这个问题很可能是无法确定的。
-
我没有完整的答案,但一个初步的启发是靠近轴的点密度会更大。
-
不适用于许多点云。排列在围绕圆心旋转的平面圆的边缘上的点不会表现出任何围绕轴的聚类。当大部分点关于轴不对称或远离实际旋转轴时也是如此。
-
@Ron,这就是为什么它被称为启发式算法。
-
@tfinniga 我们有初始点数吗?这将帮助我们获得这些点被旋转的次数。(大云中的点数)/(初始云中的点数)。
标签: 3d geometry computer-vision computational-geometry