可能的重复:如何在航空影像中找到网球场




我正在尝试检测存在于网球场中的网球场航拍图像..


我有以下图像:





我尝试过彩色对其进行图像分割,但没有成功,这会导致不好的结果





我应该同样使用哪些技术,请提出建议可以使用Hough变换或分水岭,但是分水岭会导致过度分割,而我得到的结果也不令人满意。

使用自适应阈值进行了尝试:



我尝试过的一些其他事情连接的组件:

输出:



评论

这是唯一的照片,还是您有一系列的照片?球场是否与图像的X轴和Y轴对齐?是否可以旋转?这些图像是否来自同一高度(使得图像上的球场大小在每张照片上都相似)?提供更多详细信息:)

我有许多不同角度的图片

可以从DSP端删除此注释,但就我个人而言,我认为这个问题太好了。

问题是这个问题已经在DSP上提出,正在寻找一些可以采用的替代方法,而不是使用霍夫变换或分水岭

当您关闭副本时,是否可以合并这样的问题?

#1 楼

由于您尝试在图像中发现结构,因此最好以灰度工作。

这是一个非常好的案例,法院似乎是一个不错的矩形,但是总的来说,法院可能会采用不同的颜色大小和方向。另外,绿色背景上的白线也不是一般规则,例如考虑Roland Garos。

话虽如此,您可以尝试对图像进行阈值处理(您可能需要为此使用自适应阈值)像这样:

然后您就可以遍历图像,创建4或8个相连的像素链。

由于您正在寻找线,因此可以得到每个

此时,图像中的“有趣像素”已转换为一组线模型,其中一些将相交。现在,您可以应用简单的规则来发现哪些线组是相交的(这是一个很好的示例)。

要发现组成网球场的相交线组(这是一个例子)“一组9条线,其中4条以直角相交,另外两条平行于长线,它们在视场宽度的1/8处相交,另外两条平行于短边并且大约1/5从球场的起点开始,第三场在球场中间,并与两个较短的球场相交。” ...换句话说,您将不得不将网球场表示为一组相交的相交线,彼此相对定位(这样您的表达式就没有绝对尺寸了。)

为了很好地应用上述技术,您可以看一下这篇概述图像中镜头代码识别的论文。

有关这些技术的理论背景和更多信息,请参考出色的“使用Matlab进行数字图像处理”,尤其是与您的问题最相关的第10-13章。

希望对您有所帮助。

评论


$ \ begingroup $
此解决方案可能会起作用,但这是非常临时的。使用仿射不变特征和刚性模板注册等更通用的方法可能会简化开发(因为您将能够依赖现有的库),并在将来需要时使您能够更轻松地处理其他结构。
$ \ endgroup $
–static_rtti
2012年10月10日11:45

$ \ begingroup $
我不明白“临时”是怎么来的:-)。它是成熟的图像处理方法的综合,可以处理当前的任务。仿射不变功能仍将使您落后一步。也就是说,您仍然必须将法院表示为一组相对定位的功能。在这种情况下,最好寻找相交的线而不是点(利用给定的知识),刚性模板注册需要大量的“模板”(以有限的角度/比例旋转和缩放),因此可以运行错过某些目标的危险。
$ \ endgroup $
– A_A
2012年10月10日12:03

$ \ begingroup $
刚性变换包括旋转。在这种情况下,我所说的“临时”是指您直接在方法中包括大量假设,这使最终方法对于需求的变化(例如网球场的变化,图像获取方法或需求的变化)脆弱。 (检测游泳池而不是网球场)。
$ \ endgroup $
–static_rtti
2012年4月10日12:06

$ \ begingroup $
我不认为此答案中有很多假设,而且我确实接受某些点需要进一步的工作(例如,拒绝一些“嘈杂”的像素)。这个问题专门针对“网球场”。不是游泳池。顺便说一句,模板注册将返回每个看起来像模板的目标(例如,一个看起来像游泳池但实际上是货车顶部的小补丁)。相交的线/链会拒绝这种情况(有关详细信息,请查看shotcode文件)。 A.I.F和R.T.R一点也不“坏”,但是我不确定它们在这种情况下是否会表现良好。
$ \ endgroup $
– A_A
2012年10月10日12:22

$ \ begingroup $
“模板注册将返回看起来像模板的每个目标”->不,因为您将使用SIFT或类似方法进行检测,而仅将本地模板注册用于粗略的细分。
$ \ endgroup $
–static_rtti
2012年4月10日12:31

#2 楼

您是否要检测它们(找出它们的存在)或对其进行细分(找出它们的精确轮廓)?这是两个非常不同的问题。

如果您只想进行检测,我会考虑使用SIFT等图像功能。您可以使用OpenCV轻松地尝试这些方法。

分段是一个完全不同的主题。假设您已使用SIFT大致检测到了球场,则可以使用基于注册的简单方法来更精确地找出球场的位置(通过将模板网球场图像注册到图像中)。然后,您可以使用任何局部优化技术来改善细分。

评论


$ \ begingroup $
我想细分法院..并找到法院所在地的精确位置
$ \ endgroup $
– Vini
2012年4月10日上午11:00

#3 楼

我认为我至少会分两个步骤进行。

首先,寻找与网球场长线匹配的线组。

其次,在这些线组的边界内寻找线

如果您愿意,您可以假设所有网球场在绿色背景上都有白线,尽管我不确定这是一个很好的假设。

编辑

实际上,我建议3个步骤。首先是对图像进行二值化处理,我认为我从未见过网球场在浅色背景上有深色线条,因此您可以将问题限制为寻找白色线条。

评论


$ \ begingroup $
是的,我会尝试按照您的建议尝试哪种方法?
$ \ endgroup $
– Vini
2012年4月10日上午11:02

$ \ begingroup $
好吧,霍夫变换非常适合检测图像中的线条。它可能在计算上很昂贵,但是在这种情况下,您可能会限制其操作,因为您要查找的直线很直。如果那还不够好,那么其他答案中会包含一些好的建议。
$ \ endgroup $
–高性能标记
2012年4月10日上午11:06

#4 楼

我认为,如果您可以假设法院将始终具有相同类型的线条标记,那么霍夫变换就是必经之路。首先在图像上运行边缘检测器。然后运行霍夫变换以检测直线。然后查看哪些线彼此平行或垂直,并查看哪些线形成纵横比正确的矩形。为此,您可能需要按图像中的空间接近度对平行线和垂直线进行排序。然后检查矩形内的适当线条。

但是,如果相机朝下看时可能会遇到问题,因为这样您将无法获得正确的角度。

#5 楼

我建议以下内容


创建一个或多个网球场的模板。使它们为灰度。将这些模板与上图一一对应,然后看哪一个适合下注。这不是最好的方法。最糟糕的方法。
再次创建一个或多个模板。计算模板的SURF功能,并将其与上图匹配。这更加健壮。对图像的偏斜,旋转,透视切割相当宽容。图像中的球场区域将发生匹配。
创建一组Gabor过滤器。匹配应用于以上图像的每个滤波器的响应。对于图像中法院的位置将有特定的回应。那是您的法庭区域。

多做一些工作,您会钉上它:)

评论


$ \ begingroup $
是的,我发现gabor过滤器非常有趣,想尝试一下
$ \ endgroup $
– Vini
2012年10月10日11:01

$ \ begingroup $
@vini,祝您好运,他们可能不擅长歪斜和透视切割。但是请发布您的发现并与我们分享:)
$ \ endgroup $
–瓦吉
2012年10月10日11:04