精确测量和预测乒乓球轨迹系统
技术领域
本发明涉及快速运动的乒乓球的实时检测、定位、跟踪和运动轨迹预测,以及对乒乓球的运动轨迹进行三维虚拟场景实时显示和历史记录回放的装置,尤其涉及利用多个任意位置的摄像机同步采集快速运动的乒乓球图像后,快速精确地估计出其飞行的轨迹的方法和系统。
背景技术
“鹰眼”系统应用于网球赛事的裁判和仿真演示已经有六七年的历史,在网球转播中得到了广泛的推广,对网球运动的研究和网球比赛的公正性起到了非常积极的作用。“鹰眼”系统的正式名称为“即时回放系统”,该系统由8个或者10个高速摄像头、四台电脑和大屏幕组成。“鹰眼”系统所采集得到的图像数据量非常庞大,计算相当复杂,它从数据采集到结果演示整个过程所耗用的时间在10秒左右,不具备强实时性。在正式比赛中,保证比赛的流畅和连续对比赛的公正性和观赏性有非常重要的意义,“鹰眼”只能作为比赛裁判的辅助手段,球员每局比赛挑战鹰眼的次数也是有限制的。因此目前“鹰眼”系统更多的只能是用于电视转播的事后处理,而不能做到在线判断。而且该系统造价成本很高,在中小比赛场合并不适合推广,也不适用于一般的体育辅助训练。国内也有研究机构提出了基于较少摄像头(2台)的小型鹰眼系统,但是系统的实时性问题仍没有解决。
在乒乓球运动中,引入“鹰眼”系统来进行辅助裁判和辅助训练也具有非常积极的作用。乒乓球运动不同于网球运动。乒乓球非常小,乒乓球表面和乒乓球桌表面都很光滑容易反光,而且乒乓球行程很短,在高速运动(3-5m/s)时整个有效行程仅持续0.5s左右,使得准确检测和识别乒乓球任务非常困难。而且由于乒乓球相对轻薄,其飞行轨迹更多地受到了乒乓球自旋转、空气温度、湿度条件以及现场通风等诸多因素的影响,很难建立一个通用的运动模型,因此给乒乓球运动轨迹生成和预测带来了很大的困难。其中最为关键的问题在于为了保证实时性,需要系统能够在极短的时间内完成计算,准确的识别、定位和跟踪高速运动的乒乓球飞行轨迹。
发明内容
本发明的目的是提供一种可以精确测量、预测和三维虚拟重现高速飞行乒乓球轨迹的实时处理系统。该系统可以根据场地和环境的需要架设多个摄像机进行观测,价格低廉、适合普遍使用和推广。
为达到上述发明目的,本发明提供了一种利用多个摄像机的高速实时乒乓球定位、轨迹生成和预测的方法与系统。
本发明提供的系统是一个面向乒乓球运动的“快速鹰眼”系统,能够对乒乓球运动进行实时跟踪和轨迹预测分析,既可以提供乒乓球当前的实时信息给上层自动化系统,也可以在比赛中给出实时裁判结果辅助裁判对一些擦边球等争议球进行即时准确判罚,还可以记录轨迹数据,实现比赛过程的3维重现。
本发明提供的精确测量和预测高速飞行乒乓球轨迹的系统,由两个以上摄像机,控制多摄像机同步进行图像采集的硬件同步装置,图像数据采集传输装置,计算机主控设备和视觉软件运行的系统环境,以及外接显示屏构成;
其特征在于,包括如下组成模块:
a)基于自定义特征线摄像机标定模块;
b)多摄像机视频同步采集模块;
c)基于颜色和轮廓特征的运动目标快速检测与识别跟踪模块;
d)运动目标空间定位和轨迹生成、预测模块;
e)基于OpenGL的三维虚拟场景重现模块。
所述的基于自定义特征线摄像机标定模块:根据自定义的桌面上的线条特征半自动地进行摄像机的精确自标定,给出各个摄像机的内外参数;采用一个可以产生多路频率脉冲信号的硬件装置连接多个摄像机,主动同步控制多个摄像机同步采集视频图像,并通过数据传输装置将采集到的多路图像数据传送到计算机进行处理。
所述的基于颜色和轮廓特征的运动目标快速检测与识别跟踪模块:基于颜色和轮廓特征对多摄像机获取的图像数据进行快速目标分割,分析出每幅图像上的乒乓球位置信息,并结合摄像机的自标定结果计算出当前乒乓球的三维空间坐标。
所述的运动目标空间定位和轨迹生成、预测模块:建立乒乓球飞行模型的运动学方程,结合当前和历史的乒乓球观测数据进行乒乓球运动状态滤波和运动轨迹平滑,并预测出乒乓球在未来时刻的飞行轨迹。
所述的基于OpenGL的三维虚拟场景重现模块:可以根据上层处理结果在三维虚拟场景中实时显示或者记录回放当时乒乓球比赛,可根据用户需求切换任意视角,并输出到显示屏幕上。
所述的多摄像机视频同步采集模块,多摄像机是采用两台或两台以上的摄像机布置在乒乓球台的上方,摄像机视野交叉覆盖乒乓球可能出现的空间位置。
本发明提供的精确测量和预测高速飞行乒乓球轨迹系统的运行方法,所述的运行步骤如下:
(1)搭建完硬件系统后,利用自定义特征摄像机标定模块,依据球桌上的线特征半自动地标定各摄像机内外参数。并离线学习和确定乒乓球运动模型参数,进一步得到分析乒乓球运动的滤波器和预测器的参数。
(2)系统运行时,多个摄像机通过同步采集模块控制装置,同步高速采集视频图像,获得不同视角下的飞行中乒乓球的图像,传输到主控机图像处理程序。
(3)获得的图像经过运动目标快速检测与识别跟踪模块,进行颜色和轮廓的快速提取之后,分割出图像中的乒乓球目标。
(4)将乒乓球在不同视角下的观测结果输入到运动目标空间定位和轨迹生成、预测模块,根据多个摄像机的标定参数信息和空间几何关系,定位出球乒乓球在当前的三维空间坐标。
(5)将本周期和前几个周期的观测定位结果输入到乒乓球运动滤波器和预测器中,生成和预测乒乓球的飞行轨迹。
(6)最后将处理结果输入到三维虚拟场景重现模块,在外接的显示屏中进行比赛的实时播放或记录回放。
其中上述方法中利用自定义特征标定摄像机参数采用如下方法:
(1)手动输入特征线参数并在摄像机采集的图像中进行半自动地线条匹配。
(2)自动计算各特征线的相互交叉点和对应图像与世界坐标。
(3)自动将对应点队列输入Tsai标定模块进行摄像机参数标定。
其中上述方法中识别图像中的乒乓球目标采用如下方法:
(1)事先设定或者在线采集每个摄像头对应的背景图像。
(2)根据前几帧图像的识别结果和乒乓球轨迹预测结果设定当前帧图像中的目标搜索窗口。
(3)在搜索窗口中根据估计目标大小分散布置种子点,当该种子点像素值与背景值差异大于某个阈值时、判别颜色属性是否与目标颜色符合,当判断该点为疑似目标点时,在该点周围搜索符合目标颜色特征的像素区域块的目标轮廓,并根据轮廓特征判断该轮廓区域是否属于目标候选区域。若在当前搜索区域没有发现疑似目标,则扩大搜索区域继续寻找目标。
(4)根据乒乓球轨迹预测信息从目标候选区域中选择最终目标位置。
其中上述方法中通过离散观测点生成和预测乒乓球的飞行轨迹采用如下方法:
(1)离线构建乒乓球的运动学模型,生成状态转移矩阵和观测矩阵,得到其运动方程。推导出基于该运动学模型的乒乓球运动滤波器和预测器。
(2)根据每个摄像机的空间分布信息和其视角内的目标观测位置,通过空间几何运算得到当前时刻乒乓球的3维空间位置。
(3)将当前的观测值输入滤波器,更新乒乓球的当前运动状态(包含3维空间位置和速度)。
(4)利用预测器分析乒乓球的历史运动轨迹,预测出乒乓球的未来时刻运动轨迹。其中上述方法中三维虚拟场景显示重新采用如下方法:
(1)三维虚拟场景显示模块通过OpenGL实现,可以离线设定虚拟场景内静态物体(球桌、房间等)的绘制参数。
(2)将比赛实时数据或者历史记录数据传入三维虚拟场景显示模块,可以直观地三维显示实时比赛状态和乒乓球历史运动轨迹图像,并根据用户需要任意切换视角,输出到显示屏幕中。
本系统最大的特点是具有实时处理功能,能为实时裁判、网络直播、在线决策自动化系统的即时反应提供条件,可以很容易地推广到其它运动项目及民用、军工等类似场景中。
本发明具有的有益效果:
1)提出一种可以精确测量和预测高速飞行乒乓球轨迹的系统与方法,可快速地为用户或自动化系统提供高速运动中乒乓未来时刻的飞行轨迹;
2)本发明中的方法和系统可以应用与乒乓球运动员的训练,击球数据分析以及乒乓球比赛自动裁判系统和电视转播中。
因此,本发明是一种非常实用、有效的高速乒乓球轨迹预测解决方案,具有很好的应用前景。
附图说明
图1系统硬件结构框图
图2系统架构流程图
图3程序运行界面图
图4标定程序界面图
图5目标识别流程图
图6目标的颜色特征示意图
图7轮廓搜索示意图,图7A是相邻像素点排布顺序示意图,图7B是像素点边过程的示意图,图7C是像素点可能的后继点可能情况的示意图,图7D是前继点和后继点属于不同像素点的八种情况
图8空间定位示意图
图9乒乓球运动受力分析图,图9A是乒乓球运动轨迹在X-Z平面的投影示意图,图9B是乒乓球运动过程受力分析图
图10乒乓球轨迹滤波效果图,图10A是滤波前观测值,图10B是滤波结果
图11乒乓球轨迹预测效果图
图12三维虚拟场景仿真模块工作示意图
具体实施方式
下面结合附图,详细描述本发明利用多摄像机的高速实时乒乓球定位、轨迹生成和预测的方法与系统的实施方式。在该实施例中,本系统能够控制2个以上摄像机高速同步采集不同视角下的乒乓球比赛场景图,根据图像信息定位出乒乓球的三维空间位置,计算其运动轨迹,并进行三维虚拟空间的场景重现。
图1给出了系统的硬件结构框图,整个系统由两个以上摄像机1、控制多摄像机同步进行采图的硬件同步装置2,图像数据采集传输装置3、主控计算机4和视觉软件运行的系统环境5、以及外接显示屏6构成。摄像机固定在乒乓球桌上空,视野交叉覆盖乒乓球运动的有效区域;同步装置产生多路周期脉冲信号,通过控制线连接摄像机,控制多摄像机进行同步采图;摄像机通过数据线与图像数据采集卡相连;数据采集卡通过主控机的PCI总线将采集到的数据传送到处理器进行处理;处理结果输出到主控机的外接显示屏上进行显示。
图2是系统的运行流程图,系统场地搭建完成后,首先要离线标定每个摄像机的内外参数,并且学习好乒乓球的运动模型方程参数。系统运行时,同步装置2控制多个摄像机1同步采集图像后经传输装置3传输到主控计算机4,视觉处理软件先对每个摄像机采集的图像进行目标识别处理,得到在各个视角图像中目标所处的位置和形状大小信息;然后结合各个摄像机的标定结果,运用空间几何关系确定目标乒乓球在三维空间中的位置;将当前乒乓球位置结果输入到根据离线学习好的乒乓球运动模型建立的乒乓球运动滤波器和预测器中,对乒乓球的当前运动状态和运动轨迹进行分析;最后将得到的乒乓球运动信息输入三维虚拟场景重现模块,根据用户需求显示乒乓球的状态信息,并在外接的显示屏中6显示。在之后的段落中将对各个部分的实现做详细地介绍。
图3是视觉系统的软件程序运行界面图,界面大体可以分为6个功能区域。区域a是三维虚拟场景重现窗口,可以实时显示现在乒乓球的运动状态;区域b是各个摄像机的当前捕获图像和摄像机的简单运行参数(包括采图帧率和识别帧率),在识别过程中,识别的结果也在当前图像中进行标识;区域c是程序运行状态、结果信息提示窗口,显示摄像机参数、运行状态、目标识别结果和目标定位结果信息;区域d是程序的主控界面;区域e是摄像机标定控制界面;区域f是程序运行的所需参数设定界面。
图4是摄像机标定的程序界面图,每次标定过程只标定一个摄像机,标定程序采用的是经典的Tsai标定算法。将乒乓球桌上的白线作为特征线,事先需要测量好桌面上所有特征线的位置参数输入标定程序。本实施例中,采用的特征线如图4中右上角的仿真图像所示。为了屏蔽图像中乒乓球桌面以外区域的干扰,用户可以设定处理区域,如图4左上角图像中的多边形框所示。在标定时,载入对应摄像机的图像,通过Canny算法提取图像中的所有边缘线,如图4左下角图像中所示;提取边缘线后,利用Hough算法提取兴趣区域内的直线,如图4右下角图像中的直线所示;调整Canny算法和Hough算法的参数直到得到较理想的直线后,点击开始选线按钮,根据仿真图像的加亮线提示信息将提取的直线与实际特征线对应起来,如果图像中某一条特征线所对应的直线被遮挡或者不清晰可以忽略跳过,得到的有效特征线如图4右下角图像粗线条所示。之后程序自动将特征线的图像位置与实际位置对应起来,计算在图像和现实桌面中的两两直线交点,如图4右下角图像中的白点所示;得到选定的特征线所生成的特征点的图像坐标和实际世界坐标后,将这些点对数据传入到Tsai算法进行计算,得到摄像机的内外参数;在实践中可以反复进行多次试验,选取一组比较好的参数保存,为后续的处理过程提供条件。
图5给出了目标识别过程的算法流程图,采用背景差分和特征匹配结合的方法。首先设定每个摄像机的背景图像,可以由在线采集或者是读入图像文件的方式设定。在背景差分过程中,为了提高识别速率,本实施例中采用降采样技术,即避免遍历图像所有像素点,而是设定一个步长参数step,当前图像中上下左右间隔step步长的像素点与背景对应像素点值进行差分,实验中考虑到目标乒乓球在图像中的直径大小一般大于9个像素点宽度,因此将step值设定为4。若当前图像某一像素点的值与背景差值大于设定的阈值,则表示像素点上可能有前景物体。再检查该点的颜色特征,目标乒乓球的颜色特征与背景存在着明显的差别,如图6所示,在HSV颜色空间的色彩H通道上,乒乓球所在区域的特征值明显区别与桌面和墙壁等背景区域。如果该点的符合实现设置好的目标颜色特征,则该点为目标疑似点。以目标疑似点为起点,搜索它附近属于目标颜色特征像素点区域块的轮廓,将该轮廓数据储存到目标候选区域中,目标候选区域中的像素点不再重复进行搜索。轮廓搜索算法采用后继点和边过程的方法,如图7所示,其中图7A是对像素点的相邻点和边过程排序的示意图,图7B是对像素点后继边过程可能情况的示意图,图7C是对像素点可能的后继点可能情况的示意图,通过推算,可以得到以下的规律:
当轮廓搜索过程回到起始像素点,而且边过程方向与初始方向相同时,该轮廓搜索完毕。当整幅图像都已经搜索完成以后,得到一个目标候选区域序列,结合前几帧图像的目标识别结果,给出本图像中最可能的目标区域轮廓作为识别结果。
图8给出了在各个摄像机图像中目标识别完成以后,进行目标乒乓球三维空间定位的过程示意图。目标识别的结果可以转换为目标与摄像机之间的角度关系,再结合该摄像机的自标定结果,可以得到一条目标有可能出现位置的射线。两条摄像机引出的射线交叉就可以确定空间中的一个点,即目标所在的空间位置。在实际实验中的大多数情况下,由于误差影响两条射线基本不会相交,因此在实施例中取两条射线的公垂线与两条直线的交点,再根据事先设定的权重系数将两个交点加权取平均,结果作为目标定位结果。摄像机如果多于2个,则将所有得到的射线两两求交点,然后根据每个摄像机所分配到的权重进行加权平均。在本实施例子中,如图采用3个摄像机进行实验。
为了确定当前乒乓球的运动状态及预测乒乓球之后的飞行轨迹,需要对乒乓球运动过程进行建模。图9给出了乒乓球运动过程中的受力分析。为了简化模型方便对乒乓球的运动轨迹进行学习和预测,假定乒乓球运动中不带旋转,其运动在3个方向上独立,且其运动过程中只受到重力和空气摩擦力的作用,而且空气摩擦力与乒乓球速度呈正比:
其中F为乒乓球受的合力,f为空气摩擦力,m为乒乓球的重量,g为重力加速度,K为空气摩擦系数,V为乒乓球运动速度,下标x、y、z代表方向。
由此推导得到运动速度方程如下:
其中a为加速度,t表示当前时间。令 上式可以简化为:
其中e为自然对数。
将方程离散化,按相机采样周期为Δt,令v(i)=s(i+1)-s(i),得:
由此建立乒乓球运动的状态方程如下:
其中,该运动模型的状态量包括位置p和速度v,系统误差方差为w。
该状态方程显示了系统状态量(位置、速度)随周期推移的变化过程。得到状态方程以后,就可以代入Kalman滤波器对乒乓球的运动过程进行滤波。滤波效果如图10所示,图10a是滤波前观测值,可以看出观测存在一定的误差,乒乓球的运动轨迹存在波动;图10b是滤波后的乒乓球轨迹,经过基于上面的模型方程所建立的Kalman滤波器有效地对乒乓球运动过程进行的修正,得到了一条比较理想的乒乓球运动轨迹。
得到了乒乓球本周期的状态,又已知乒乓球运动状态转移过程方程,通过递推便可得到乒乓球以后周期的运动状态,由此预测乒乓球之后的运动轨迹,预测结果如图11所示,黑色球是当前观测到的乒乓球所在位置,白色球是前几个周期乒乓球的历史观测位置,灰色球是结合滤波和预测之后的乒乓球轨迹分析结果。
图12给出了三维仿真虚拟场景模块的工作流程图,在线分析得到乒乓球的运动状态和轨迹数据,或者离线载入之前在线记录的乒乓球运动轨迹数据后,输入仿真模块,仿真模块可以重构乒乓球比赛三维场景,包括房间、地板、球桌等固定物体,还可以根据观测值、滤波和预测等不同属性在该场景中的指定位置添加乒乓球、以及辅助球、直线等图形,并根据用户手动输入命令来调节观看视角和远近。最后将显示信息输出到屏幕中。图10与图11都是采自虚拟场景的效果图。