检测二维点云中的圆(椭圆)


14

给定一组点(2D)即,点云(PC),问题是关于一个robustaccuratecomputing-friendly方法找到圆(或椭圆形的高级版本)。

直观的想法是在所有可能的点(作为中心){无限!}和半径(再次无限!)上使用蛮力搜索。这是极其缓慢且效率低下的。

如图所示,每个拟合的圆将基于圆周长上的点数(nn)短于阈值(t)进行排名。因此derr存在一个平均距离。

在高级形式中,需要安装椭圆形。

有什么想法,头脑风暴,经验,评论吗? 在此处输入图片说明


好问题。您使用什么程序生成该图?
杰森R

@JasonR和往常一样,Python + MatPlotLib
开发人员

Answers:


14

精确尝试解决此问题的最佳方法是霍夫变换

基本上,霍夫空间中的信号将是r, x, y坐标。这里r 代表半径,x,y代表中心。每个点可能属于一个或多个圈子。因此,在霍夫平面中,遍历该点可能所属的所有可能的圆,并对其进行+1。这不是搜索,只是集合。

现在,如果存在一个真实的圆,那么将会添加很多点,并且该a的得分r, x, y将比其他所有得分高得多。选择这样的点将允许您选择正确的圆圈。

这是1971年(在我出生之前!)的一种经典纸质方式,发明了这一概念。

  1. 利用严格的变形检测图像中的线条和曲线作者:理查德·杜达(Richard O. Duda),彼得·埃·哈特(Peter E.Hart),《人工智能中心》,1971年4月。

对于教程,我建议参考以下内容:

  1. HIPR2-链接
  2. 阿莫斯斯托基
  3. IDL参考

专门用于圆检测,可以在下面参考:

  1. AI棚屋
  2. 芝加哥大学技术报告。
  3. 罗切斯特学院讲义

这些方法非常有效,并且非常计算机友好。


1
我可以担保AI Shack的文章,它们确实有助于理解您将在其他地方阅读的更严格的数学。
Ivo Flipse'2

1
好答案。我已经熟悉霍夫变换(HT)。我用的是一种检测线的方法。确定线段有些困难。建议使用概率霍夫变换(PHT)。我对扩展名不清楚。我认为圈子可能太复杂或出现其他困难。就我的经验而言,HT是好的,但不是完美的。如何将HT扩展到3D也是我的关注。我将尝试查看您提供的链接。您的答案相当不错,可以作为答案。
开发人员

AI棚屋和Chicaco的技术报告已失效
Mehdi
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.