如何找到略微拉长的椭圆形/矩形形状,弯曲的角落/有时是圆形的扇形?

时间:2012-12-27 13:44:18

标签: opencv pattern-matching computer-vision robotics contour

how to recognise a zebra crossing from top view using opencv?

在我之前的问题中,问题是使用opencv找到弯曲的斑马线。 现在我认为以下方式将更容易检测它,

(i)canny it

(ii)找到其中的轮廓

(iii)在其中找到黑色条纹,在我的情况下,它是略呈椭圆形的

现在我的问题是如何找到略呈椭圆形的形状?

在这里查看过境点图片:www.shaastra.org/2013/media/events/70/Tab/422/Modern_Warfare_ps_v1.pdf

1 个答案:

答案 0 :(得分:1)

一般来说,我相信您可以考虑两种方法。

正如您所描述的,一种方法是更强力的图像分析方法。在这里,您将根据您对问题的了解来应用启发式算法,以便识别路径各部分中涉及的像素。请注意,“蛮力”'这不是一件坏事,只是一个形容词。

另一种方法是应用模式识别技术来找到图像中很可能成为路径一部分的区域。在这里,您可以将图像转换为(希望)有意义的特征:线条,点,渐变(例如:Histogram of Oriented Gradients (HOG)),相对强度(例如:Haar-like features)等,并使用机器学习< / em>确定这些特征如何描述道路与隧道(在您的示例中)的技术。

当你问起前者时,我会专注于此。如果您想了解更多有关后者的信息,请浏览互联网,StackOverflow或发布具体问题。

因此,对于强力图像分析&#39;方法,你的第一步可能是根据需要预处理图像;

  • 如果您要稍后分析颜色,请考虑颜色标准化,这将有助于使您的算法对车库与事件工作室的照明差异保持稳健。它还可以提高摄像机协作差异的稳健性,但主办竞赛的组织会为他们将使用的摄像机提供规格(不要忽略这些信息)。

  • 如果您对逐像素值(例如边缘)不太感兴趣并且对较大结构(例如渐变)更感兴趣,请考虑模糊图像以减少噪点。

  • 考虑到模糊的相反原因,请考虑锐化图像。

  • 对图像预处理进行一些研究。它绝对是一个探索过的主题,但几乎没有解决过#39; (无论那意味着什么)。在这个阶段有很多事情要尝试,当然,废话=>&gt;废话。

之后,您将要生成一些&#39; ..

  • 正如您所提到的, edge 似乎是此问题的合适功能空间。不要忘记除了Canny之外还有许多其他优秀的边缘检测算法(请参阅PrewittSobel等)。然而,应用边缘检测算法后,您仍然只有像素数据。要获得功能,您可能希望从边缘提取线条。这就是Hough transform space派上用场的地方。

  • (另外,作为一个想法,您可以考虑与边缘检测器一致的色彩空间。我的意思是,边缘检测器通常在B&amp; W色彩空间中工作,而不是将图像转换为灰度您可以将其转换为适当的颜色空间并使用单个通道。例如,如果游戏板为红色且人行横道上的线条为蓝色,则将图像转换为HSV并抓取色调通道作为边缘检测器的输入。您可能会在区域之间获得更好的对比度,而不仅仅是灰度。对于明亮与暗淡的使用,值通道,黄色与蓝色使用对手色彩空间等。)

  • 您还可以查看积分。诸如Harris角点检测器或高斯拉普拉斯算子(LOG)之类的算法将提取关键点&#39; (每种算法的定义不同,但通常可重复)。

  • 还有很多其他功能空间需要探索,不要停在这里。

现在,这是蛮力部分进入的地方..

  • 首先想到的是平行线。即使在曲线中,线条的边缘也是粗略的&#39;平行。您可以通过查找大致与其邻居平行的线来轻松开发一种算法来查找游戏中的轨迹。请注意,通常应用像Hough变换这样的线检测器,以便它们在数据集中找到“峰”或“过多”角度。因此,如果您为整个图像生成霍夫变换,您将很难找到您想要的任何线条。相反,您可能希望使用滑动窗口来单独检查每个区域。

  • 具体来说,对于弯曲区域,您可以使用Hough变换非常容易地检测圆和椭圆。您可以应用一个启发式方法:两个同心半圆,半径给定差异(问题中约为250)表示道路。

  • 如果您正在使用点/角,您可以尝试使用算法将一条线的角连接到下一条线。您可以限制从一个角到下一个角的旋转距离和旋转度,这将允许圆形转弯但禁止不可能的路径。这可以阐明道路的边缘,同时对转弯很稳健。

你现在可能已经开始看到为什么这些硬编码算法起初很简单,但是调整起来很乏味,而且往往没有很好的结果。此外,它们往往是僵硬的,不适用于其他甚至类似的问题。

所有这一切...... 您正在谈论解决一个没有开箱即用解决方案的问题。考虑解决方案是一半的乐趣,一半是挑战。我在这里描述的一切都是基本的图像分析,计算机视觉和解决问题。开始阅读有关这些主题的一些论文,这些想法很快就会出现。祝你好运。