足球检测和跟踪 - 使用AI技术?

时间:2013-10-18 14:26:24

标签: opencv image-processing neural-network svm haar-wavelet

之前我曾问过类似的问题,但觉得我的问题没有得到真正的回答。我正在使用Circle Hough Transform来检测和跟踪球。但是,我现在需要额外检查以确定检测到的圆圈是否实际上是一个球。

我一直在考虑使用神经网络,哈尔分类器,SVM,那种东西(即AI)。然而,它需要非常强大,因为我是这些人工智能技术的新手,我不确定哪种是最好和最强大的技术来投入我的学习时间。

我正在使用灰度高速相机拍摄图像,我希望能够使用任何颜色/图案的足球。球也可能被部分遮挡。

如果您认为这些技术不合适,我愿意接受有关如何实现这些技巧的任何想法/建议。

我提前感谢大家的帮助,非常感谢!

2 个答案:

答案 0 :(得分:1)

请注意,这尚未经过测试。

一旦你提取球的位置,你就可以得到它的轮廓。我的建议只适用于有较轻斑块和较暗斑块(五边形)的足球。

确定良好的二进制阈值以同时获取白色和黑色色块。做一些图像操作,如侵蚀或扩张,以摆脱缝线制作的补丁之间的裂缝。在球周围画出白色圆圈,确保你的黑色斑块都不被认为是“球洞”,你已准备好抓住球内的轮廓。主要轮廓是由白色斑点制成的白色数字,所有黑色轮廓都是暗斑。

弱点:脏球可能会出现二进制阈值问题,可能会使用自适应阈值?

<强> 1。使用查找表/数学公式(?)获取黑色斑块的大小和距离

黑色补丁的大小取决于距球中心的距离。将算法与学习数据一起提供给中心及其大小的黑色斑块距离(两个值都相对于球的大小)。

例如:

Ball in recorded frame has bounding box of 200x200 px and area of 30000px
Found 6 black patches inside:
patch 1 is in the middle (distance 0px from center) and has area of 600px
patch 2 is on the side (distance 50px from center) and has area of 150px
patch 3... patch 4... and so on

所以你用数据提供你的查找表:

distance = 0% -> area = 2%
distance = 25% -> area = 0.5%
distance = ... -> area = ...
and so on

现在当你检查你检测到的东西是否是一个球时,检查他们的黑色补丁大小。如果它们的大小和距球中心的距离在可接受的范围内,则检测到的物体是球。

<强> 2。检查轮廓形状

您可以使用cvApproxPoly检查每个轮廓。如果大多数黑色轮廓是五边形 - 它就是一个球。

答案 1 :(得分:0)

使用OpenCV构建自己的分类器。方法如下: http://johnallen.github.io/opencv-object-detection-tutorial/

困难的部分是为足球的任何颜色/图案获得一整套正面图像。