检测点云数据中的圆形图案

机器算法验证 聚类 图像处理
2022-03-12 22:26:24

对于我正在研究的一些体积重建算法,我需要在 3d 点数据(来自激光雷达设备)中检测任意数量的圆形图案。图案可以在空间中任意定向,并假设位于(虽然不完美)薄二维平面中。这是一个在同一平面上有两个圆圈的示例(尽管请记住这是一个 3d 空间):

在此处输入图像描述

我尝试了很多方法.. 最简单的(但迄今为止效果最好的一种)是基于最近邻图的不相交集的聚类。当图案相距很远时,这工作得相当好,但对于像示例中的圆圈这样的圆圈来说,这样的圆圈非常接近。

我尝试了 K-means,但效果不佳:我怀疑圆形点排列可能不太适合它。另外,我还有一个额外的问题是事先不知道 K 的值。

我尝试了更复杂的方法,基于最近邻图中的循环检测,但我得到的要么太脆弱,要么计算成本高。

我还阅读了很多相关主题(霍夫变换等),但似乎没有什么能完美适用于这个特定的上下文。任何想法或灵感将不胜感激。

2个回答

广义霍夫变换正是您想要的。困难在于有效地做到这一点,因为 3D 中的圆空间有六个维度(三个用于中心,两个用于定向平面,一个用于半径)。这似乎排除了直接计算。

一种可能性是通过一系列更简单的霍夫变换来偷偷摸摸得到结果。例如,您可以从(通常的)霍夫变换开始检测平面子集:这些只需要 3D 网格进行计算。对于检测到的每个平面子集,沿该平面对原始点进行切片并执行广义霍夫变换以进行圆检测。如果原始图像没有很多共面点(圆圈形成的点除外)可能会淹没圆圈产生的信号,这应该可以很好地工作。

如果圆的大小有一个预定的上限,您可能会节省大量计算:您可以专注于每个点的有界邻域内的点对或三元组,而不是查看原始图像中的所有点对或三元组。

好吧,如果目标是简单地检测number圆形图案,并且您有足够的数据,也许可以尝试深度卷积神经网络。确实,人们需要标记所有数据,但 DCN 可以用作上述建议的补充方法。