2011-04-20 20 views
2


我们正在尝试开发用于我们大学项目的板球的HawkEye系统。 中的HawkEye系统中使用的过程如下:从投球手的手的球在时间(不同点)的不同实例的如何识别图像中的球,然后使用3D模型(HawkEye系统)

  1. 图像到击球手的(球的整个飞行过程中)需要
  2. 在整个飞行过程中确定球在不同时间点的(x,y)坐标
  3. 将(x,y)坐标转换为相应的三维坐标(x,y,z)
  4. 建模在整个球的飞行过程中球的轨迹以及球的周围环境,的UDE场,沥青,小门,体育场
  5. 延长了球的轨迹来看球是否会打小门或不

到目前为止,这是我们的计划来完成这个项目:

我们将从腿部裁判的位置拍摄击球手的视频,然后在vlc播放器中以慢动作播放该视频,并同时拍摄多个球的飞行截图,我想这会照顾第1步

但是现在我们被困在步骤2中,我们遇到的问题现在就是如何在特定的情况下(从腿部拍摄的球的图像)识别和找到球的(x,y)坐标,如果我们能够找到球的(x,y)并且如果摄像机距某个参考点的距离已知,那么我们可以找到图像的深度,即z坐标,因此我们可以找出相应的(x,y,z)坐标,然后我们可以用三维使用OpenGL

我们正在努力实现它在C++

赞赏:)任何帮助

快速编辑:
我才知道,在现实的HawkEye系统6摄像机在板球场的周围进行调整,所有摄像机以60度角度分开,HawkEye可以使用4台摄像机完美地工作,但为了更好的精度,使用了2台额外的摄像机。 因为我们没有这么多的相机,我想我们将使用3台相机保持在120度的场地周围,并减少复杂性,我们将选择一个半径为5米的小场,但我们不确定在哪里放置相机以获得更准确的结果,可能的位置可以是:一个在腿边,一个在外侧,第三个在前面,但我仍然不确定哪个位置选择

这种方式称为多摄像机标定和球的认可,我认为我们应该选择的OpenCV在MATLAB因为OpenCV的

你什么都要说做了更快速的图像处理的?

+0

我想你将不得不使用多个摄像头来正确计算出轨迹。鹰眼似乎使用4(http://en.wikipedia.org/wiki/Hawk-Eye) – 2011-04-20 10:45:53

+0

的确。例如,方形裁判不能判断球是击球还是失去球或腿 - 他所能判断的只有身高。从投球手的末端,您可以更好地了解球门相对于检票口形成的矩形的轨迹。当然,这在一个方面也是趋于平坦的,但在判断lbw时更容易弥补的一个维度。即使如此,投球手的裁判也在使用两台摄像机:-) – 2011-04-20 10:52:32

回答

0

我想你需要两台相机来确定从相机到球的距离。要么是这样,要么就必须使用一些解决方法,比如在每个框架中查看球的大小或者球的距离。但我怀疑这两个解决方法是否足够准确......

+0

如果你有一些常数可以用来估计到摄像机的距离(例如球的大小),那么你不需要第二台摄像机,但这真的取决于图像的质量,分辨率等 – Mario 2011-04-20 10:58:42

+0

@Mario:正是我所说的...... – 2011-04-20 13:07:00

0

如果您有从图像空间到世界空间的投影/视图矩阵(有大量文件用于执行摄像机校准/坐标转换),则一个摄像机就足够了。这将为您带来一个从相机通过球指向的矢量。球的大小可以用来确定距离摄像机的距离。

猜猜找到球的最简单方法是引入一个阈值,从图像的其余部分“切割”球。或者使用运动检测来提取球和/或结合两种方法。

3

关于第2步,提取球的位置,有许多可能的方法和文献来源。我强烈建议研究机器人足球(Robocup)的工作,其中包含许多类似问题的例子。

在一个理想的世界(比如在白色背景上的黑盘),出发点很可能是使用像一个Hough Transform,或轮廓跟踪,并提取使用得到的轮廓的统计矩的位置。

这种方法的挑战在于板球场最有可能具有难以去除的背景特征。通过一些试验和错误,您可以使用常见的图像处理技术,如背景扣除,形态学算子,边缘检测器,颜色过滤和阈值处理等,以提高您持续查找球的能力。从过去的经验来看,我强烈建议使用一套工具,让您快速建立图像处理流水线和技术的原型,可能是MATLAB。

也许更稳健地表达这个问题,导致分为以下几个部分,是,如果你有球以前在那里的一些想法,那么你可以让球应该是经过一些小的地方一个合理的估计多少时间。这是最佳估计领域,并且Kalman Filters。 Thrun等人在Probabilistic Robotics中发表了一篇很好的介绍性文章,尽管来自非常不同的问题空间。

2

给你的球一个在图像中其他地方不太可能找到的鲜明颜色,然后在每张图像中寻找那种颜色的像素。这是最简单的选择。 考虑到球可以在板球中移动的速度,而您只使用30 fps,大多数其他选项则更加困难。只要找到一个白球是非常困难的(如你可能发现的那样),所以你最好的选择是使用关于以前帧中球的运动的信息来帮助在新帧中找到它。但是,低帧率和高球速意味着您的球会在帧之间移动很多。对于高速碗,速度为142 km/h时,您正在观察帧之间的移动超过一米,这将导致后续帧之间的球图像之间存在相当大的间隙,这使得使用时间信息更加困难。

作为一种奇怪颜色的替代品,您还可以在IR域中使用高反射层并使用红外灯(人类无法看到)和红外敏感相机(可以将IR从相机的过滤器你有这个)。

+1

+1为改变问题(球)的想法,使问题更容易处理 – 2011-04-25 10:30:43