利用两个同步摄影机再现足球的三维空间位置
2012-08-29王会立天津市体育科学研究所天津300191
王会立 (天津市体育科学研究所 天津300191)
0 引言
体育项目的现场直播,是多媒体极具应用前景的一种。在各种体育比赛中,足球又是最普及、最具转播价值的,因而也是最有价值将其在多媒体上实现的。
传统的转播只是依赖于摄像机摄制发送影像。实施三维体育欣赏系统是一种全新的方式,在三维影像系统中,观众可以自由地在虚拟的足球场上飞跃,可以从任意角度来欣赏比赛。
曾有研究人员开发了最早三维体育欣赏系统。该系统可以虚拟出类似摄像机围绕一个球员旋转所拍出的影像,不足之处是观众并不能随心所欲选择任何一个球员。其后,其他研究人员成功地将足球场上的比赛在三维系统中实现。
在三维系统中,足球的三维位置是最为重要的,这是因为人们观赏足球比赛时,无时无刻不在跟踪球的位置,另外,准确的三维位置也可以用来分析场景,帮助球队提高比赛水平。
但是,准确地反映足球的确切位置并非易事,一来球在画面上所占的位置很小,二来球经常会被球员所遮挡。曾有三组研究人员利用3种方法:①因霍夫转换法来搜索球的位置;②利用球的尺寸和颜色特征,找出一系列候选球,然后通过分析一系列画面,最后找出真正的球;③利用卡尔曼过滤法,成功地展示一系列单机画面中足球的轨迹。但是上述方式均无法估算足球的三维位置。
有人提出了颗粒过滤法,也有人提出了模块排比法,但是上述算法由于计算量过大,难以在实时系统中实现。又有人发现了一种三维位置测量系统,但这一方法要求足球在画面中的面积比较大。本文提出了一种效率较高的计算足球三维位置的方法,其运算速度基本可以满足在线欣赏的要求。本研究使用两个同步固定摄影机,为了达到实时处理的速度要求,我们依据不同的状态,选用适当的图像处理方法来缩小搜索面区域。当找不到母球的二维位置时,我们用卡尔曼过滤法来推测球的三维位置。
1 在图像中搜索球
搜索球在二维影像中的位置是计算球的三维位置所必需的,在本节所提出的方法可以有效的用来提取球所在区域,而且基本满足整场足球比赛的需要。
1.1 搜索运动物体
在足球比赛中,大多数时间,球总是处于运动中,因此,我们首先使用图像帧减法来截取运动的物体。在两幅连续的图像之间,用像素相减法,可以获得运动物体所处的区域。可是在两幅连续的图像(k-1,k)之间使用像素减法时,取出的不仅有本幅图中的运动物体,同时也包括前一幅图中的运动体,所以,我们必须利用下两幅图的结果(k,k+1)来剔除属于前一幅图像(k-1)的物体,最后,对图像(k-1,k)和(k,k+1)相减的结果进行运算,即可得出当前图像(k)中的运动物体。
1.2 剔除球员区域
上节获取的运动物体区域既包括球又包括球员,因此,我们必须去掉球员区。球员区和球区最大的区别在于区域面积的大小。我们可以设定一个近似的域值,凡超出此范围即可判定为非球体,可是此种方法并不能完全适应所有的情形。由于我们使用了像素相减的方法,所以有时造成将一个连续的大物体分成了几个小块,这些小块的面积有可能小于设定的域值。为了克服这一缺陷,我们找出了另一种方法——背景相减法。背景相减法可以剔除面积相对较大的区域,因此我们便可得出球员区,进而取得球区。
值得一提的是,背景减法仅仅适用于当运动物体的面积相对较大时,大的物体其密度域值可设的范围较大,由于球的面积较小,所以可设定一个小域值只选取球区。数据表明,我们的杂交法可以在一场足球比赛中稳定地获取球区。
图1是图像处理过程中搜索球区的步骤。图1(a)是背景图像,图 1(b)是输入图像,图 1(c)是前景图,图 1(d)是获取的运动物体区,结合图1(c)和图1(d),我们即可去掉球员区,只保留球区图1(e)。我们称此时获得的区域为候选球区。
图1 图像处理过程中搜索球区的步骤
1.3 搜索球区
由于误差原因以及在球场中可能存在的小的物体,有时候选球区并非真正的球所在区域,因此我们需要进一步对数据进行处理以去除假区,这一步我们需要依赖于球速来进行判断。
假设最大球速是100 km/h,球的直径是22 cm,图像的真频为30 f/s,那么在两幅图像之间,球的飞行距离为90 cm,因此,从一幅图像到下一幅,球移动的距离应为图像中球的直径的几倍,我们将图像中的最大距离设为R。
消除算法描述如下:假设当前图像为第k幅,选取的候选球距前一幅(k-1)图中的候选球的距离不得大于R,如果同时有多个候选球满足上述条件,我们再看在第(k-1)幅图中的候选球是否在其前一幅(k-2)图中有相应的候选球,或者他们间的距离是否超出了最大的距离R。重复以上步骤直至只保留一个球。这个球是我们所找的球的真正位置。
2 将球从球区中取出
前述方法有一定的缺陷,并且不能满足所有情况。首先,由于要进行图像之间的减法和背景减法,这样就造成相当高的计算成本,尽管多数时间,球在场上是运动的,但当球处于停顿状态时,前述方法的结果就变得不可靠了。
为了消除上述两种缺陷,我们尽量设法将球区面积减小到最小,同时试图找到一种模板类比的方法,用于球速很慢或停止不动的场合,图2为取球的算法。
假设当前图像为第k帧,如果在第k-1帧图像中球的位置是 mk-1=(u k-1,νk-1),那么在 k 帧中,在距离 mk-1 点为R的范围内,我们应该可以找到球,如果球是运动,我们就用以球为中心法,否则,则用模板类比法。
2.1 以球为中心法
如果在第k-1帧图中发现了球,那么在第k帧图中的搜索范围,就变成以(mk-1)点为圆心,以R为半径的区域。
2.2 模板类比法
当球速太慢时,第二节中的方法不再适用。因为图帧相减只能找到运动的物体区域。此时我们需要第二种方法。我们用在k-1帧图像中的球区作为一个模板,用此模板在第k帧中用第一种方法搜索区域,找出类似的区域。
2.3 以球员为中心法
如果我们在第k-2帧或之前的图像中发现了球,但却在第k-1帧图中丢了,我们可以说任何一个离mk-2近的球员位置(Ps,k-1)都有可能在第k-1帧图中拿到球。然后在第k帧图中,离(Ps,k-1)最近的球员有可能控制球,因此在第k帧中,搜索区域缩小到几个小圆区域。每个圆心就是球员的位置,该球员在距离点(Ps,k-1),半径为R的圆内,由于在距离点(Ps,k-1)距离为R的范围内可能有多个球员,因此搜索区域应包括所有的圆。图3所示为第k幅图像中,以球员为中心搜索方法的搜索区。圆环1是由球员的位置来确定的(图中未表示出来),该球员距离mk-2的距离为R,圆环1的中心可以表示为(Ps,k-1)。
图2 取球的算法
第k幅图像的搜索区圆2I和2J,这两个圆是分别由球员(Pi,k)和(Pj,k)来决定的,因为,两个球员均在圆环 1 之中。
图3 球员为中心搜索法
图4 球的三维位置的估算
2.4 全图搜索
如果在上一次球所在位置的周围未能搜索到球员,这意味着球已丢失,此时必须进行全图搜索。
3 卡尔曼过滤法的三维跟踪
当我们能同时估算出球在两部摄像机所拍画面中的位置时,利用图4所示的方法,即可很容易地算出球的三维位置。但是,我们并不能保证每一次都可以同时找到球在两台摄像机的画面中,造成这种情况的原因有很多,诸如计算误差、球员与球重叠、图像噪音等等。
我们建立了一个足球三维运动模型,当球丢失时,我们利用卡尔曼过滤法进行补偿。我们的目标是能够建立一个在线系统用以对足球比赛进行在线实况转播。因此使用的方法必能够且只能确定足球的唯一位置。卡尔曼法不仅能满足上述要求,而且运算速度较快,颗粒过滤法则不能满足我们的要求。本算法的前提条件是摄像机必须进行事前标定,实时同步。
我们用矢量Xk来表示在第k幅图中球的三维坐标,速度乃加速度。计算矢量Yk是根据两台摄像机的同步图像上的两个球区计算所得。Xk和Yk分别定义如下:
其中,(xk,yk,zk)和(pk,qk,yk)是球场的三维位置矢量。过度方程和观察方程为:
其中,A为状态转换矩阵,C是测量矩阵,r和ω是高斯分配法中的处理噪音和测量噪音。我们假设水平和垂直加速度均为常数。因此,A和C可以表示如下:
其中δ是两幅连续图像的时间间隔。当在任一摄影机的图像中找不到球的位置导致无法获取三维坐标时,我们即用卡尔曼过滤法的预测矢量对其进行补偿。如果竖直位置的值为负,我们视之为反弹球,竖直位置的值应进行相应的改变以满足球撞击地面的条件。
4 试验
4.1 摄像系统
我们在足球场内架设两部摄像机,如图5所示。像机A和B可以覆盖足球场地的一半,摄像机为(SONY DXC—900P)。像机的同步由GPS系统控制,图像为850,帧距为每秒25幅,我们使用的计算机是Intel Core双Cpu,ZGB内存,操作系统是Linux4.1。
图5 摄像系统
图6 摄像系统
4.2 球的搜索结果
我们以全国足球联赛为研究对象,选取其中的四段录像对我们的算法进行验证。图7所示为估算的球的飞行路线。表1所示为图像处理过程的结果,F1表示一段录像中的总帧数,F2表示有球可见的图像的帧数,F3是有几幅图成功地找到了足球。结果显示,我们的方法可以在80%或更多的图像中成功找到球。当球不可见或和球员混在一起时,我们使用的是以球员为中心的搜索法。请注意,当球在任一像机中是不可见时,我们就不可能找到球,此时我们必须用卡尔曼法进行估算。
图7 计算球的飞行曲线
表1 球的搜索结果
表2是各种算法的平均计算时间。利用球为中心的算法,运算速度比全图搜索法快8.5倍,球员为中心法将运算速度提高了2.1倍。在NTSC制式图像中,帧速是每秒33幅,因此,我们可以说该方法可以达到实况转播的速度要求。
表2 各种方法的平均时间和频率的比较
4.3 球的三维位置的估算
利用上述结果,我们来计算球的三维空间位置。图8、9、10以第4段录像的结果为例,其中小方块所示为计算所得出的球的三维位置,每个图分别表示的是球的X、Y、Z 3个方向的位坐标。如果球没有在两台摄像机的画面中同时出现,我们用卡尔曼法来估算,计算结果以X来表示。多数情况下,估算结果尚可接受,但是从第200幅到230幅,由于图像的帧数不足,未能完成计算。图11是球的三维飞行路线,白球所表示的曲线是直接计算结果,而红色表示的是用卡尔曼法估算的结果。
卡尔曼法估算的结果:
图8 X轴
图9 Y轴
图10 Z轴
图11 球的三维位置图
5 结论
本文提出了一种利用两台摄像机来计算足球的三维空间位置的算法。在图像处理过程中,我们的方法可以根据球的状态选择一个最佳算法,来最大限度地避免球的丢失情况,然后根据球的两幅二维图像求出其三维坐标。如果在图处理的过程中未能找到球的位置,我们则用卡尔曼算法来估算。
在我们的算法中,当球在球员的后面时,不能找到球,因此该算法尚需改进。此外,我们还需要用一些较长的录像对我们的算法加以验证。■
[1]林昆.在足球场上从多个可查看视频合成多角度试点图像[Z].IEEE国际会议,2006.
[2]藤井.用分散粒子过滤的方法跟踪足球[Z].ICA分布式和合作适应处理会议,2007.
[3]齐藤小泽.优化相机视角测量系统足球比赛的转播[J].高等院校机械视觉应用,2000(4):115-118.
[4]G.琼斯.足球视频中的球轨迹生成序列[Z].ECCV基于体育环境中的分析会议,2006.