在斯诺克运动中获取台球碰撞关系和完整运动轨迹的方法

文档序号:1596483阅读:1039来源:国知局
专利名称:在斯诺克运动中获取台球碰撞关系和完整运动轨迹的方法
技术领域
本发明涉及应用于体育运动领域的计算机辅助获取台球运动轨迹的方法,更具体 的说涉及一种在斯诺克运动中获取台球碰撞关系和完整运动轨迹的方法。
背景技术
斯诺克(Snooker)台球和美式台球是深受人们广泛欢迎的一项体育运动,同时也 是亚运会、国际职业比赛等重大赛事的比赛项目,显示出越来越大的体育魅力。国内外经常 举行各种大赛,为了提高运动员的水平,经常要对运动员击出的球做一些技术数据的统计, 特别是要跟踪球的运动轨迹,帮助运动员分析击球方向、力度,帮助运动员提高运动水平。 目前为了改善斯诺克台球比赛裁判一直沿用的传统裁判员目视裁判的方法,开发了一种计 算机自动裁判计分系统,利用该系统虽然可以跟踪球的运动轨迹,但由于系统采用的是摄 像头取景技术,普通的摄像头采集是每秒25帧,采集的是离散的图像序列,球和球的碰撞 点、球和边库的碰撞点经常采集不到,因此不能得到真正完整的运动轨迹,也不可能有效分 析台面各球的碰撞关系。

发明内容
本发明的目的是提出一种在斯诺克运动中获取台球碰撞关系和完整运动轨迹的 方法,该方法首先根据相邻帧离散的台球位置,描绘出台球运动的原始运动轨迹;然后根据 球的运动轨迹分析碰撞关系,对台球运动轨迹进行校正、调整、描绘出台球运动的完整运动 轨迹;给出比赛中关注的一些数据,包括运动员击球后的第一个碰撞球,落袋球和袋口位 置,出界球,运动员的击球距离。本发明的技术方案是,一种在斯诺克运动中获取台球碰撞关系和完整运动轨迹的 方法,包括获取一杆斯诺克台球运动的连续帧图像,确定各帧图像中各台球的台面平面坐 标位置;其中,台球桌台面边库长边为X轴、短边为Y轴,台球坐标是台球圆心点坐标;按照 每帧图像中各台球的平面坐标,获取各个台球运动轨迹;其中,在所述获取各个台球运动轨 迹中对台球碰撞点的运动轨迹进行修正,所述修正的步骤包括
a、确定各帧图像中各个台球的坐标位置点的特征值,所述特征值包括各个台球当前 帧坐标点与前一帧坐标点构成的直线针对X轴的斜率、两坐标点的X坐标之间的差值、Y坐 标之间的差值、两坐标点的直线距离、直线与X轴正方向的夹角;
b、在连续帧中,依据各个台球的运动轨迹位置坐标的变化,判断当前帧当前球的运动 轨迹方向是不是有改变,如果有改变,首先判断当前帧当前球是否与其它台球有碰撞,如有 碰撞确定碰撞点、修正当前台球在碰撞点的坐标;如无碰撞,判断当前帧当前球是否与台面 边库有碰撞,如有碰撞确定碰撞点、修正当前台球在碰撞点的坐标;
所述判断当前帧当前球是否与其它台球有碰撞是
bl、如果当前帧当前台球的运动轨迹方向发生改变,判断其他台球到当前台球改变方 向前坐标的运动轨迹直线的距离;bll、将距离和台球的直径比较,如果距离小于台球直径,则此台球在当前台球改变方 向前的运动轨迹上;
bl2、判断此台球在下一帧是否有运动方向的改变;
bl3、有改变,则此台球为碰撞台球,当前帧即为碰撞帧,给出碰撞台球在碰撞帧时的坐
标;
bl4、获取当前台球在碰撞点的坐标,即将所述当前台球当前帧坐标点与该坐标点特征 值中的斜率构成直线A,由直线A得到经过碰撞球坐标垂直于直线A的垂线B,获取直线A 和垂线B的交点坐标,由交点坐标和碰撞台球在碰撞帧时的坐标在直线A上获得一个新的 紧贴碰撞球的虚拟台球坐标点,确定此新的坐标点为当前台球碰撞点坐标; 所述判断当前帧当前球是否与台面边库有碰撞是 b2、判断连续两帧当前球的运动轨迹的方向是不是有改变; b21、如果发生改变,则当前台球碰撞边库,当前帧就是碰撞帧; b22、判断当前台球连续两帧特征值中的夹角差绝对值是否大于修正当前台球的运动 轨迹坐标的临界阈值?是,则获取当前台球碰撞点坐标即由特征值中当前台球当前帧坐 标的斜率和下一帧坐标的斜率,分别获取经过当前帧坐标点的直线方程和经过下一帧坐标 点的直线方程,获取两条直线的交点坐标,确定此交点坐标即为碰撞点坐标。所述修正当前台球的运动轨迹坐标的临界阈值是20。所述在斯诺克运动中获取台球碰撞关系和完整运动轨迹的方法进一步包括有 确定母球从起始帧坐标到碰撞帧坐标的距离;即确定台面所有球中第一个运动的球是
母球,被母球击打的台球确定为是母球的第一个碰撞球,从而获取母球从起始帧坐标到碰 撞帧坐标的距离。所述在斯诺克运动中获取台球碰撞关系和完整运动轨迹的方法进一步包括有 确定落袋球或出界球,即根据台球中各球的运动轨迹,对于最后一帧坐标为零的球确
定为落袋球或出界球,具体步骤是
gl、确定当前台球在最后一帧图像中的坐标为零;
g2、从最后一帧开始往第一帧方向寻找坐标值不为零的最近一帧,给出当前球在该帧 的坐标值;
g3、所述该帧的坐标值和6个袋口两端的坐标分别构成两条直线,所述两条直线与X轴 分别形成夹角anglel和夹角angle2,计算当前台球的运动轨迹直线与X轴的夹角angle ; g4、如果夹角angle处于6个袋口中其中一个袋口的夹角anglel和夹角angle2之间, 则确定这个袋口为落袋球的落袋袋口,此颗台球为落袋球,否则此颗台球为出界球。本发明的有益效果是根据相邻帧离散的台球位置,实时描绘出台球运动的完整 运动轨迹;根据球的运动轨迹分析碰撞关系,给出比赛中更关注的一些数据,为帮助运动员 分析击球方向、力度,帮助运动员提高运动水平提供了准确的数据包括运动员击球后的 第一个碰撞球,落袋球和袋口位置,出界球,运动员的击球距离。并且基于上述数据实现了 计算机自动辅助裁判计分和自动数据统计,辅助裁判员计分。下面结合附图和实施例对本发明作详细描述。


图1为本发明步骤流程图2为本发明台球与台球碰撞,当前台球碰撞点坐标修正示意图; 图3为本发明台球与边库碰撞,当前台球碰撞点坐标修正示意图; 图4为本发明台球落袋判别示意图5为本发明未修正碰撞点时,当前球坐标的运动轨迹示意图; 图6为本发明修正碰撞点后,当前球坐标的运动轨迹示意图。
具体实施例方式
实施例一种在斯诺克运动中获取台球碰撞关系和完整运动轨迹的方法实施例,参见图1至 图6,该方法基于一个计算机辅助裁判系统,所述系统包括摄像头、斯诺克台球桌、视频采集 器以及计算机;所述摄像头安装于斯诺克台球桌台面中心的上方,摄像头最大视角含盖台球 桌台面,摄像头的视频输出连接至视频采集器,视频采集器连接至计算机,系统根据输入的摄 像头像素和台球桌尺寸数据,将台球桌台面转化为一个已知的平面坐标系,根据斯诺克台球 的规则,运动员先击打红球,如果红球落袋,则击打彩球,否则,则换下一个运动员打球。如果 台面上没有红球,则按照黄、绿、棕、蓝、粉、黑的顺序击打彩球,坐标系的建立如图4所示,0点 为坐标原点(0,0),X轴为台球桌台面1边库长边1-1、Y轴为台球桌台面边库短边1-2。所述一种在斯诺克运动中获取台球碰撞关系和完整运动轨迹的方法,包括获取 一杆斯诺克台球运动的连续帧图像,确定各帧图像中各台球的台面平面坐标位置;其中,台 球桌台面边库长边为X轴、短边为Y轴,台球坐标是台球圆心点坐标;按照每帧图像中各台 球的平面坐标,获取各个台球运动轨迹;由于采集的是离散的图像序列,球和球的碰撞点、 球和边库的碰撞点经常采集不到,因而台球的运动轨迹在碰撞点时刻表现不出来,所以要 修正碰撞点的坐标,把运动轨迹补充完整,除了碰撞点以外的运动轨迹不需要修正;
因此所述获取各个台球运动轨迹中对台球碰撞关系和运动轨迹的获取包括
a、确定各帧图像中各个台球的坐标位置点的特征值,所述特征值包括各个台球当前 帧坐标点与前一帧坐标点构成的直线针对X轴的斜率、两坐标点的X坐标之间的差值、Y坐 标之间的差值、两坐标点的直线距离、直线与X轴正方向的夹角;
b、在连续帧中,依据各个台球的原始运动轨迹位置坐标的变化,判断当前帧当前球的 运动轨迹方向是不是有改变,如果有改变,首先判断当前帧当前球是否与其它台球有碰撞, 如有碰撞确定碰撞点、修正当前台球在碰撞点的坐标;如无碰撞,判断当前帧当前球是否与 台面边库有碰撞,如有碰撞确定碰撞点、修正当前台球在碰撞点的坐标;
所述判断当前帧当前球是否与其它台球有碰撞是
bl、如果当前帧当前台球的运动轨迹方向发生改变,判断其他台球到当前台球改变方 向前坐标的运动轨迹直线的距离;
bll、将距离和台球的直径比较,如果距离小于台球直径,则此台球在当前台球改变方 向前的运动轨迹上;
bl2、判断此台球在下一帧是否有运动方向的改变;bl3、有改变,则此台球为碰撞台球,当前帧即为碰撞帧,给出碰撞台球在碰撞帧时的坐
标;
bl4、获取当前台球在碰撞点的坐标,如图2所示,即将所述当前台球2当前帧坐标点与 该坐标点特征值中的斜率构成直线A,由直线A得到经过碰撞球3坐标垂直于直线A的垂 线B,获取直线A和垂线B的交点坐标0,由交点坐标和碰撞台球在碰撞帧时的坐标在直线 A上获得一个新的紧贴碰撞球的虚拟台球4的坐标点C,确定此新的坐标点C为当前台球碰 撞点坐标;
所述判断当前帧当前球是否与台面边库有碰撞是 b2、判断连续两帧当前球的运动轨迹的方向是不是有改变; b21、如果发生改变,则当前台球碰撞边库,当前帧就是碰撞帧; b22、判断当前台球连续两帧特征值中的夹角差绝对值是否大于修正当前台球的运动 轨迹坐标的临界阈值?是,则获取当前台球碰撞点坐标如图3所示,即由特征值中当前台 球当前帧坐标的斜率和下一帧坐标的斜率,分别获取经过当前帧坐标点的直线方程fl和 经过下一帧坐标点的直线方程f2,获取两条直线的交点坐标f,确定此交点坐标即为碰撞 点坐标。所述修正当前台球的运动轨迹坐标的临界阈值是20。所述在斯诺克运动中获取台球碰撞关系和完整运动轨迹的方法进一步包括有 确定母球从起始帧坐标到碰撞帧坐标的距离;即确定台面所有球中第一个运动的球是
母球,被母球击打的台球确定为是母球的第一个碰撞球,从而获取母球从起始帧坐标到碰 撞帧坐标的距离。所述在斯诺克运动中获取台球碰撞关系和完整运动轨迹的方法进一步包括有 确定落袋球或出界球,即根据台球中各球的运动轨迹,对于最后一帧坐标为零的球确
定为落袋球或出界球,具体步骤是
gl、确定当前台球在最后一帧图像中的坐标为零;
g2、从最后一帧开始往第一帧方向寻找坐标值不为零的最近一帧,给出当前球在该帧 的坐标值;
g3、所述该帧的坐标值和6个袋口两端的坐标分别构成两条直线,所述两条直线与X轴 分别形成夹角anglel和夹角angle2,计算当前台球的运动轨迹直线与X轴的夹角angle ; g4、如果夹角angle处于6个袋口中其中一个袋口的夹角anglel和夹角angle2之间, 则确定这个袋口为落袋球的落袋袋口,此颗台球为落袋球,否则此颗台球为出界球。本实施例具体程序执行是
A、先读取数据库中相应帧的位置坐标串pResult,解析得到球的台面坐标。pResult串 值是由系统自带的自动定位系统生成的含有各个球坐标的坐标串,传到数据库中,只需用 程序直接读取。Al、解析前,在pResult坐标串中彩球编号按黄球、绿球、棕球、蓝球、粉球、黑球分 别为C31-C37,红球编号为R11-R25,白球的编号是W10。A2、解析后彩球编号对应于C31-C37顺序转换成0_5,坐标值不变。红球编号对应 于R11-R25顺序转换成6-20,坐标值不变。白球编号由WlO转换成21,坐标值不变。这样 的转换是为了程序更容易编写和实现。
B、为了程序的编写和实现,需要计算各点的特征值以及相关的标志信息。Bi、计算各帧图像中各台球的坐标位置的特征值,其特征值包括 假设母球在第四帧的坐标为(xl,yl),在第三帧图像的坐标为(x2,y2)则 母球在第四帧的点的特征值为
χ _dijf = xl- x2
slope = y _dijf/x _diff
distce = ^x_diff2 +y _diff2 , angle=ISOxarctan^iope)/π B2、各台球的运动轨迹变化程度的标志位的说明
此标志位为Change_flag,假设当前台球的相邻的两个点的坐标的特征值为anglel, angle2、x_diff、y_fifT,则
C、按照读入的台球的台面坐标,依据各球的原始运动轨迹变化及其位置坐标,分析其 是否碰撞边库、或球,并计算其碰撞点。Cl、球和球的碰撞分析确定球与球的碰撞关系,母球的第一个碰撞球,求出碰撞 点的坐标;具体程序执行为
计算当前球当前帧点的特征值,当球的运动轨迹方向发生改变时,即此点的Change_ falg>0,判断函数Is_it_coll_a_ball是不是有值返回?在程序的函数中Is_it_coll_a_ ball计算所有台球的坐标到当前球碰撞前运动轨迹直线的距离,将此距离和斯诺克台球的 直径比较,如果距离小于球直径的话,此球在当前球碰撞之前的运动轨迹上,有可能为碰撞 球,接下来判断有可能碰撞的球是不是在当前球的前方,以及此球在下一帧是不是有运动 轨迹方向的改变,如果上面的条件满足,则函数Is_it_C0ll_a_ball返回数值1,在函数中 满足条件的那个台球就是当前球的碰撞球,此时,由该点和此点的斜率计算球与球碰撞点 的坐标,并修正当前点为碰撞点,如图2所示设当前台球2为白球,台球3为碰撞球,虚 线台球4为虚拟的碰撞时的白球2,当前台球的运动轨迹的直线A的直线方程为linel,由 碰撞前的运动轨迹的斜率计算出运动轨迹直线的垂线的斜率,经过碰撞球的垂线B的直线 方程line2,计算两条直线的交点ο (垂点),从而计算当前球当前点(a)到垂点(ο)的距离 ao以及碰撞球的坐标(b)到垂点(ο)的距离bo I,则碰撞点(c)到垂点(ο)的坐标为 CO I,进而计算C点的坐标即为碰撞点的坐标;
当函数Is_it_C0ll_a_ball返回数值O时,没有碰撞球,不需要修正碰撞点。如果当前 球为母球的情况下,则求出的碰撞球就为母球的第一个碰撞球。C2、球与台面袋库的碰撞分析确定球与台面袋库的碰撞关系,寻找漏掉的碰撞
8点,修正碰撞点;具体程序执行过程为
如果当前球连续两帧的运动轨迹方向发生改变假设当前台球的连续3帧为i、i+1、 i+2,则有第 i 帧的 Change_fIag=I,第 i+1 帧的 Change_flag=l,第 i+2 帧 Change_flag ! =1。计算第i+Ι点和i+2点特征值angle,如果两点的angle差的绝对值大于20,则当 前台球碰撞台面袋库但一定漏掉了碰撞点,由该点和下一点计算碰撞点,并修正当前点为 碰撞点参见图3,由特征值中当前点j的斜率和下一点k的斜率,分别计算经过当前点的 直线方程Π和经过下一点的直线方程f2,计算两条直线的交点f,图中的虚线m是未修正 前的轨迹;如果交点的χ坐标为正数且小于长边的长度,y坐标为正数且小于短边的长度, 则此交点即为碰撞点;否则,点的修正错误,恢复为原来的值。图5和图6示意了修正前后两种情况当前球的运动轨迹。D、计算运动员的击球距离,即母球从起始帧到碰撞帧的距离。E、根据各球的运动轨迹趋势,对于最后一帧坐标为零的球,向前搜索其坐标不为 零的最近一帧,计算该帧坐标与各袋口两端坐标( ±52.5,7±52.5)构成的直线和χ正半轴 的夹角,确定落袋球、落袋球袋口和出界球,程序执行过程
确定当前球在最后一帧图像中的坐标为零并且是处于落袋状态(L)、出界状态(W); 从最后一帧开始往第一帧方向寻找坐标值不为零的最近一帧,给出当前球在该帧的坐 标值,程序中用循环来判断这个点的坐标值,只要一个目标球的χ坐标或y坐标大于零,循 环就被break ;
分别计算此点和6个袋口两端的坐标(x±52.5j±52.5)构成的直线与X正半轴的夹角 anglel, angle2,计算台球的运动轨迹直线与X正半轴的夹角angle,参见图4所示,6个袋 口 u分别标记为1、2、3、4、5、6,标记为1的袋口两端的坐标点为b (0,52. 5)和c(52. 5,0)。 程序中首先计算判断出来的落袋前的坐标点a的特征值angle,再计算这个坐标点a和点 b、c构成的直线与χ正半轴的夹角anglel、angle2。如果angle的大小处于anglel、angle2 之间,即夹角angle大于anglel、小于angle2则确定袋口 ul为落袋球的落袋袋口,否则, 计算坐标点a与袋口 u2的两端的坐标点构成的直线与χ正半轴的夹角。以此计算坐标点 a与袋口 3、4、5、6的夹角,可确定具体的落袋袋口。如果落袋的袋口不为零时(初始化时赋值袋口为零),则此颗台球为落袋球,否则 此颗台球为出界球;
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本 领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都 应属于本发明的权利要求的保护范围。
权利要求
在斯诺克运动中获取台球碰撞关系和完整运动轨迹的方法,包括获取一杆斯诺克台球运动的连续帧图像,确定各帧图像中各台球的台面平面坐标位置;其中,台球桌台面边库长边为X轴、短边为Y轴,台球坐标是台球圆心点坐标;按照每帧图像中各台球的平面坐标,获取各个台球运动轨迹;其特征在于,在所述获取各个台球运动轨迹中对台球碰撞点的运动轨迹进行修正,所述修正的步骤包括a、确定各帧图像中各个台球的坐标位置点的特征值,所述特征值包括各个台球当前帧坐标点与前一帧坐标点构成的直线针对X轴的斜率、两坐标点的X坐标之间的差值、Y坐标之间的差值、两坐标点的直线距离、直线与X轴正方向的夹角;b、在连续帧中,依据各个台球的运动轨迹位置坐标的变化,判断当前帧当前球的运动轨迹方向是不是有改变,如果有改变,首先判断当前帧当前球是否与其它台球有碰撞,如有碰撞确定碰撞点、修正当前台球在碰撞点的坐标;如无碰撞,判断当前帧当前球是否与台面边库有碰撞,如有碰撞确定碰撞点、修正当前台球在碰撞点的坐标;所述判断当前帧当前球是否与其它台球有碰撞是b1、如果当前帧当前台球的运动轨迹方向发生改变,判断其他台球到当前台球改变方向前坐标的运动轨迹直线的距离;b11、将距离和台球的直径比较,如果距离小于台球直径,则此台球在当前台球改变方向前的运动轨迹上; b12、判断此台球在下一帧是否有运动方向的改变;b13、有改变,则此台球为碰撞台球,当前帧即为碰撞帧,给出碰撞台球在碰撞帧时的坐标;b14、获取当前台球在碰撞点的坐标,即将所述当前台球当前帧坐标点与该坐标点特征值中的斜率构成直线A,由直线A得到经过碰撞球坐标垂直于直线A的垂线B,获取直线A和垂线B的交点坐标,由交点坐标和碰撞台球在碰撞帧时的坐标在直线A上获得一个新的紧贴碰撞球的虚拟台球坐标点,确定此新的坐标点为当前台球碰撞点坐标; 所述判断当前帧当前球是否与台面边库有碰撞是b2、判断连续两帧当前球的运动轨迹的方向是不是有改变; b21、如果发生改变,则当前台球碰撞边库,当前帧就是碰撞帧;b22、判断当前台球连续两帧特征值中的夹角差绝对值是否大于修正当前台球的运动轨迹坐标的临界阈值?是,则获取当前台球碰撞点坐标即由特征值中当前台球当前帧坐标的斜率和下一帧坐标的斜率,分别获取经过当前帧坐标点的直线方程和经过下一帧坐标点的直线方程,获取两条直线的交点坐标,确定此交点坐标即为碰撞点坐标。
2.根据权利要求1所述在斯诺克运动中获取台球碰撞关系和完整运动轨迹的方法,其 特征在于,所述修正当前台球的运动轨迹坐标的临界阈值是20。
3.根据权利要求1所述在斯诺克运动中获取台球碰撞关系和完整运动轨迹的方法,其 特征在于,所述在斯诺克运动中获取台球碰撞关系和完整运动轨迹的方法进一步包括有确定母球从起始帧坐标到碰撞帧坐标的距离;即确定台面所有球中第一个运动的球是 母球,被母球击打的台球确定为是母球的第一个碰撞球,从而获取母球从起始帧坐标到碰 撞帧坐标的距离。
4.根据权利要求1所述在斯诺克运动中获取台球碰撞关系和完整运动轨迹的方法,其特征在于,所述在斯诺克运动中获取台球碰撞关系和完整运动轨迹的方法进一步包括有确定落袋球或出界球,即根据台球中各球的运动轨迹,对于最后一帧坐标为零的球确 定为落袋球或出界球,具体步骤是gl、确定当前台球在最后一帧图像中的坐标为零;g2、从最后一帧开始往第一帧方向寻找坐标值不为零的最近一帧,给出当前球在该帧 的坐标值;g3、所述该帧的坐标值和6个袋口两端的坐标分别构成两条直线,所述两条直线与X轴 分别形成夹角anglel和夹角angle2,计算当前台球的运动轨迹直线与X轴的夹角angle ; g4、如果夹角angle处于6个袋口中其中一个袋口的夹角anglel和夹角angle2之间, 则确定这个袋口为落袋球的落袋袋口,此颗台球为落袋球,否则此颗台球为出界球。
全文摘要
本发明涉及一种在斯诺克运动中获取台球碰撞关系和完整运动轨迹的方法。包括获取一杆斯诺克台球运动的连续帧图像,确定各帧图像中各台球的台面平面坐标位置,在获取各个台球运动轨迹中对台球碰撞点的运动轨迹进行修正;即在连续帧中,依据各个台球的运动轨迹位置坐标的变化,判断当前帧当前球的运动轨迹方向是不是有改变,如果有改变,判断碰撞关系、修正当前台球在碰撞点的坐标;本发明的有益效果是根据相邻帧离散的台球位置,实时描绘出台球运动的完整运动轨迹;给出比赛中关注的一些数据,帮助运动员分析击球方向、力度,帮助运动员提高运动水平。提供准确的数据包括运动员击球后的第一个碰撞球,落袋球和袋口位置,出界球,运动员的击球距离。
文档编号A63D15/00GK101947385SQ20101050698
公开日2011年1月19日 申请日期2010年10月12日 优先权日2010年10月12日
发明者刘健, 刘宪章, 刘铮, 孙京, 毋立芳, 涂玲, 程照辉 申请人:刘铮;北京工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1