基于视频的体育运动分析系统的研究与实现
扫描二维码
随时随地手机看文章
近年来,利用运动员的训练、比赛视频图像作为体育训练的参考,进行体育运动分析是国内外普遍采用的一种行之有效方法。体育运动分析运用了当今流行的图像处理、人体仿真学、计算机视觉等多领域的研究热点,以运动员为研究对象,对其进行定性以及定量分析,达到科学辅助训练的目的。
文中拟以体育运动视频图像为主要研究对象,以视频处理技术为主要研究手段,设计并实现一种集合视频控制、全景图合成、静态背景抑制、运动目标跟踪及量化等功能为一体的体育运动分析系统。
1 系统设计需求分析
传统的体育运动分析主要是基于经验和人眼的观察和分析方法,显然此类方法具有明显的局限性和不足。
体育运动分析的主要目的就是通过分析运动员训练和比赛的视频图像,利用视频图像在时间和空间上的相关性,得到各种人体运动学参数以及运动员和教练员感兴趣的各类信息,实现科学指导训练。
文中借助Visual C++.net 2003开发平台,研究和设计了—个基于视频的体育运动分析系统,实现了对运动视频的定性和定量分析,具有很强的实用性。
2 系统功能设计及其算法实现
2.1 系统总体功能设计
文中主要针对单目视频进行人体运动分析,利用Directshow技术对运动视频进行控制;利用基于马赛克的图像拼接技术,提取视频中的背景信息,对视频图像进行时域分割,提取视频中的运动目标,最后合成全景图像;利用帧间差分法滤除静态背景,实现背景抑制;结合卡尔曼滤波和色块匹配技术,对运动关键部位进行自动跟踪,并获取人体运动学参数建立基于视频的体育运动分析系统。
系统主要功能框架,如图1所示。整个系统由4部分组成。
2.2 视频控制
DirectShow使用一种叫Filter Graph的模型来管理整个数据流的处理过程;参与数据处理的各个功能模块叫做。Filter;各个Fiher在Filter Graph中按一定的顺序连接成一条“流水线”协同工作。本系统采用先进的DirectShow视频播放技术,根据教练和运动员进行动作分析的需要,增加各种速率视频播放、视频图像剪辑、逐帧图像显示等功能。
2.3 全景图合成
相邻帧间两幅图像的关系便归结为初等坐标变换,即平移、旋转、仿射、双线性和透视变换的组合。实际上当摄像机的移动的幅度不是很大并且离景物很远的情况下,对视频图像进行拼接时就可以不考虑图像间的变形失真,此时两图像间的变换矩阵M由下式确定
对于8个参数的确定需要准确的确定4个匹配点,然后通过式(2)就可以确定变换矩阵M,M的确定,如图2所示。
4组匹配点就可以完全确定含有8个未知数的8个方程。这些方程全是线性方程组,可以通过Gauss全选主元消去法进行求解。
假设已经通过相关匹配到3组点(A,A'),(B,B'),(C,C'),由于帧间变化的渐变性,A点的位移幅度应该和B点及C点的位移幅度相近,否则就说明有误匹配出现。取如下定义
rang(A)=| A-A'| (3)
若出现|rang(A)-rang(B)|>ε(此处ε为合适的阈值)说明出现了误匹配,结合| rang(A)-rang(C)|就可以确定出哪个点出现了误匹配,然后重新选取模板进行匹配;重复执行以上过程直到A,B,C都满足条件。
整个误匹配的消除过程中采用的举手表决的方式,对于4组点误匹配的消除,选取模板的时至少选5组,只有这样才不会出现类似于正确对错误为2:2的情况。
由于在重叠区域直接取两幅图像中其中的一幅进行图像合成,很容易在重叠区域的边界处形成明显的拼缝,因此,需要采用图像融合技术合成全景图。
以左右拼接的两幅图像I1(i,j)和I2(i,j)为例,则重叠区域图像的像素值I(x,y)可表示为
I(i,j)=d(i)I1(i,j)+(1-d(i))I2(i,j)(4)
其中,d(i)为融合系数,它与离边界的距离成正比关系,上述计算是按扫描线逐条进行的,因此该方法适用于任意形状的两幅图像的融合。
图3为全景图合成结果。图3(a)~图3(d)为要合成的视频图像中提取的4帧,图3(e)为合成的背景全景图,图3(f)为添加了运动目标后的全景图。
2.4 静态背景抑制
静态背景抑制功能是对定点拍摄的运动图像进行图像融合,得到纯净背景下的整个运动过程图像,对于削弱背景及拍摄条件对成象质量以及成象效果的影响有着很明显的效果。
对于静态背景抑制,本系统在相邻帧差分方法的基础上提出了利用多帧图像差分进行目标分割的方法,对于做差得到的对应的残差图进行二值化操作后进行相与运算,这样可以很好的提取运动区域,消除噪声的影响。其算法流程图,如图4所示。
多帧图像的差分运算就是取当前帧和它前面的Ir+1~In以及它后面的Ir-1~I1分别做差,其公式如下
di= |I(x,y,r)-I(x,y,i)| i=1, 2,…,r-1,r+1,…,n (5)
对于差分得到的图像,对它们进行阈值分割,将差分图像转换为二值图像。
其中,T为阈值,阈值的设定采用经验法。之所以采用这种方法是因为此方法同其它方法相比,无需较多计算量,满足实时性的要求。
对二值化的残差图进行与操作就可得到运动目标Ir的二值图像。
Ir=ID1&&ID2&&…&&IDn (7)
由于获取视频序列场景中各种因素的影响,与操作得到的运动区域中不可避免地会留下大量的噪声点。另外,图像中对应于运动目标的区域也会出现不同程度的碎化。二值形态学中闭运算,即先膨胀后腐蚀运算,在邻域合并和噪声去除方面效果明显。
对于经过上述一系列操作得到的运动区域图像,采用将运动区域图像与原图像中的像素点逐个比较,对于二值化运动区域图像中为0的点,原图像对应点的灰度值标定为0;对于二值化运动区域图像中为1的点,原图像对应点的灰度值保持不变。这样,运动目标就被提取出来,结果如图5所示。
2.5 运动目标跟踪及量化
用Kalman滤波和色块匹配可以搜索出视频文件中的各个关键点在每一帧的具体位置,从而可以算出每一帧图像的各个关键点的速度(和像素对应),然后将这个速度对应到具体的人上就可以求出运动员各个部位的运动参数:位置速度,加速度。非常方便对运动员训练的分析。
Kalman滤波是以最小均方误差为准则的最佳线性估计和滤波。Kalman滤波只需要根据前一个估计值和最近一个观测值来估计信号的当前值。它是以状态方程和递推的方法进行估计的,而且所得到的解是以估计值的形式给出的。文中将Kalman滤波应用与预测目标在下一帧中的参数,对于体育运动视频图像,近似认为目标做匀加速直线运动,由牛顿力学公式可得
其中,T为两帧时间间隔,根据Kalman滤波方程
因此在系统中选取
由此,可以通过状态方程和量测方程得到运动目标下一帧的预测信息,并根据预测信息进行匹配,实现跟踪。文中采用了一种基于子像素的相似度算法。设源目标的矩形左上角坐标为X0,Y0。矩形的长为m,宽为n,X1,Y1点是Kalman滤波预测的下一帧目标左上角的坐标。
那么要匹配的目标的左上角的坐标,在以预测点X1,Y1为中心长为dy宽为dx的矩形内,其中dx,dy可由用户确定。
以X1,Y1点为中心长为dy,宽为dx的矩形中的任何一点为匹配目标矩形的左上角,将该矩形内的颜色信息保存下来和源目标对应点的RGB分别作差再取绝对值,并将所有的值加起来,记为diff,最后再对diff取倒数,记为S。将S记为两个图像之间的相似度,S越大相似度越高。即
对于没有遮挡的平动目标这样的方法完全可以解决问题。但是当运动过程中又一部分被遮挡了匹配出来的位置将会很不准确。这是一个非常实际的问题,因为人体运动的复杂性在运动时如果假设没有遮挡,实际就没有解决问题,适应性太差。应该考虑一种可以解决遮挡的办法。
文中是将目标分为几个子块,对每个子块进行匹配,如果有一个子块匹配的相似度较高就认为找到目标,停止匹配;如果相似度较低,则继续下一子块的匹配,直到找到相似度较高时停止。如果所有子块的相似度都很低,也就是说该目标全被遮挡。这时将上一帧的源目标继续保存为原目标而不需要更新,用这个原目标继续和下一帧的图像进行比较。这个方法可以有效的处理遮挡。
这样就实现了人体关键部位跟踪的功能,由于人体运动的复杂性和不可预测性,在跟踪过程中还必须加入适当的人工干预,跟踪结果更加准确并能提取出所需要的位移、速度等各类参数。跟踪结果,如图6所示,图6(a)为用户设定的3个跟踪点,图6(b)可以看到point1跟踪出现了误差,此次时需要人工校正图6(c),校正后继续跟踪图6(d),图6(e)为跟踪过程中,3个跟踪点构成的角度变化曲线。
2.6 实现技术与平台
本系统实在Windows XP操作系统下,利用Visual C++.net 2003开发实现,已经进行了大量测试,其运行稳定、可靠性强、准确率高。由于VC++具有较强的灵活性,所以该系统具有一定的可扩充性。本系统对硬件环境没有特殊要求,IntelPentium III以上的CPU都可以满足运动需要。
3 结束语
文中以单目视频中的人体运动为研究对象,设计并实现了一个基于视频的体育运动分析系统,为体育运动分析领域提供了一套完整的定性和定量分析系统。实验过程是:首先获取摄象机拍摄的体育运动视频图像,然后对其进行检测、分割和跟踪,获得人体或者某一部位的运动信息以及人体运动学参数,并得到直观的数据和曲线,达到进一步分析人体运动的目的。系统各功能模块的算法具有一定的鲁棒性,得到的结果令人满意。