首页> 中国专利> 在斯诺克运动中获取台球碰撞关系和完整运动轨迹的方法

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

摘要

本发明涉及一种在斯诺克运动中获取台球碰撞关系和完整运动轨迹的方法。包括:获取一杆斯诺克台球运动的连续帧图像,确定各帧图像中各台球的台面平面坐标位置,在获取各个台球运动轨迹中对台球碰撞点的运动轨迹进行修正;即在连续帧中,依据各个台球的运动轨迹位置坐标的变化,判断当前帧当前球的运动轨迹方向是不是有改变,如果有改变,判断碰撞关系、修正当前台球在碰撞点的坐标;本发明的有益效果是:根据相邻帧离散的台球位置,实时描绘出台球运动的完整运动轨迹;给出比赛中关注的一些数据,帮助运动员分析击球方向、力度,帮助运动员提高运动水平。提供准确的数据:包括:运动员击球后的第一个碰撞球,落袋球和袋口位置,出界球,运动员的击球距离。

著录项

  • 公开/公告号CN101947385A

    专利类型发明专利

  • 公开/公告日2011-01-19

    原文格式PDF

  • 申请/专利权人 刘铮;北京工业大学;

    申请/专利号CN201010506981.9

  • 申请日2010-10-12

  • 分类号A63D15/00(20060101);G06F19/00(20110101);

  • 代理机构11001 北京国林贸知识产权代理有限公司;

  • 代理人李桂玲

  • 地址 100027 北京市朝阳区三里屯北28楼四单元603室

  • 入库时间 2023-12-18 01:26:38

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2012-09-12

    授权

    授权

  • 2011-04-06

    实质审查的生效 IPC(主分类):A63D15/00 申请日:20101012

    实质审查的生效

  • 2011-01-19

    公开

    公开

说明书

技术领域

本发明涉及应用于体育运动领域的计算机辅助获取台球运动轨迹的方法,更具体的说涉及一种在斯诺克运动中获取台球碰撞关系和完整运动轨迹的方法。

背景技术

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

发明内容

本发明的目的是提出一种在斯诺克运动中获取台球碰撞关系和完整运动轨迹的方法,该方法首先根据相邻帧离散的台球位置,描绘出台球运动的原始运动轨迹;然后根据球的运动轨迹分析碰撞关系,对台球运动轨迹进行校正、调整、描绘出台球运动的完整运动轨迹;给出比赛中关注的一些数据,包括:运动员击球后的第一个碰撞球,落袋球和袋口位置,出界球,运动员的击球距离。

本发明的技术方案是,一种在斯诺克运动中获取台球碰撞关系和完整运动轨迹的方法,包括:获取一杆斯诺克台球运动的连续帧图像,确定各帧图像中各台球的台面平面坐标位置;其中,台球桌台面边库长边为X轴、短边为Y轴,台球坐标是台球圆心点坐标;按照每帧图像中各台球的平面坐标,获取各个台球运动轨迹;其中,在所述获取各个台球运动轨迹中对台球碰撞点的运动轨迹进行修正,所述修正的步骤包括:

a、确定各帧图像中各个台球的坐标位置点的特征值,所述特征值包括:各个台球当前帧坐标点与前一帧坐标点构成的直线针对X轴的斜率、两坐标点的X坐标之间的差值、Y坐标之间的差值、两坐标点的直线距离、直线与X轴正方向的夹角;

b、在连续帧中,依据各个台球的运动轨迹位置坐标的变化,判断当前帧当前球的运动轨迹方向是不是有改变,如果有改变,首先判断当前帧当前球是否与其它台球有碰撞,如有碰撞确定碰撞点、修正当前台球在碰撞点的坐标;如无碰撞,判断当前帧当前球是否与台面边库有碰撞,如有碰撞确定碰撞点、修正当前台球在碰撞点的坐标;

所述判断当前帧当前球是否与其它台球有碰撞是:

b1、如果当前帧当前台球的运动轨迹方向发生改变,判断其他台球到当前台球改变方向前坐标的运动轨迹直线的距离;

b11、将距离和台球的直径比较,如果距离小于台球直径,则此台球在当前台球改变方向前的运动轨迹上; 

b12、判断此台球在下一帧是否有运动方向的改变;

b13、有改变,则此台球为碰撞台球,当前帧即为碰撞帧,给出碰撞台球在碰撞帧时的坐标;

b14、获取当前台球在碰撞点的坐标,即将所述当前台球当前帧坐标点与该坐标点特征值中的斜率构成直线A,由直线A得到经过碰撞球坐标垂直于直线A的垂线B,获取直线A和垂线B的交点坐标,由交点坐标和碰撞台球在碰撞帧时的坐标在直线A上获得一个新的紧贴碰撞球的虚拟台球坐标点,确定此新的坐标点为当前台球碰撞点坐标; 

所述判断当前帧当前球是否与台面边库有碰撞是:

b2、判断连续两帧当前球的运动轨迹的方向是不是有改变; 

b21、如果发生改变,则当前台球碰撞边库,当前帧就是碰撞帧;

b22、判断当前台球连续两帧特征值中的夹角差绝对值是否大于修正当前台球的运动轨迹坐标的临界阈值?是,则获取当前台球碰撞点坐标:即由特征值中当前台球当前帧坐标的斜率和下一帧坐标的斜率,分别获取经过当前帧坐标点的直线方程和经过下一帧坐标点的直线方程,获取两条直线的交点坐标,确定此交点坐标即为碰撞点坐标。

所述修正当前台球的运动轨迹坐标的临界阈值是20。

所述在斯诺克运动中获取台球碰撞关系和完整运动轨迹的方法进一步包括有:

确定母球从起始帧坐标到碰撞帧坐标的距离;即确定台面所有球中第一个运动的球是母球,被母球击打的台球确定为是母球的第一个碰撞球,从而获取母球从起始帧坐标到碰撞帧坐标的距离。

所述在斯诺克运动中获取台球碰撞关系和完整运动轨迹的方法进一步包括有:

确定落袋球或出界球,即根据台球中各球的运动轨迹,对于最后一帧坐标为零的球确定为落袋球或出界球,具体步骤是:

g1、确定当前台球在最后一帧图像中的坐标为零;

g2、从最后一帧开始往第一帧方向寻找坐标值不为零的最近一帧,给出当前球在该帧的坐标值;

g3、所述该帧的坐标值和6个袋口两端的坐标分别构成两条直线,所述两条直线与X轴分别形成夹角angle1和夹角angle2,计算当前台球的运动轨迹直线与X轴的夹角angle;

g4、如果夹角angle处于6个袋口中其中一个袋口的夹角angle1和夹角angle2之间,则确定这个袋口为落袋球的落袋袋口,此颗台球为落袋球,否则此颗台球为出界球。

本发明的有益效果是:根据相邻帧离散的台球位置,实时描绘出台球运动的完整运动轨迹;根据球的运动轨迹分析碰撞关系,给出比赛中更关注的一些数据,为帮助运动员分析击球方向、力度,帮助运动员提高运动水平提供了准确的数据:包括:运动员击球后的第一个碰撞球,落袋球和袋口位置,出界球,运动员的击球距离。并且基于上述数据实现了计算机自动辅助裁判计分和自动数据统计,辅助裁判员计分。

下面结合附图和实施例对本发明作详细描述。

附图说明

图1为本发明步骤流程图; 

图2为本发明台球与台球碰撞,当前台球碰撞点坐标修正示意图; 

图3为本发明台球与边库碰撞,当前台球碰撞点坐标修正示意图; 

图4为本发明台球落袋判别示意图;

图5为本发明未修正碰撞点时,当前球坐标的运动轨迹示意图;

图6为本发明修正碰撞点后,当前球坐标的运动轨迹示意图。

具体实施方式

实施例

一种在斯诺克运动中获取台球碰撞关系和完整运动轨迹的方法实施例,参见图1至图6,该方法基于一个计算机辅助裁判系统,所述系统包括摄像头、斯诺克台球桌、视频采集器以及计算机;所述摄像头安装于斯诺克台球桌台面中心的上方,摄像头最大视角含盖台球桌台面,摄像头的视频输出连接至视频采集器,视频采集器连接至计算机,系统根据输入的摄像头像素和台球桌尺寸数据,将台球桌台面转化为一个已知的平面坐标系,根据斯诺克台球的规则,运动员先击打红球,如果红球落袋,则击打彩球,否则,则换下一个运动员打球。如果台面上没有红球,则按照黄、绿、棕、蓝、粉、黑的顺序击打彩球,坐标系的建立如图4所示,O点为坐标原点(0,0),X轴为台球桌台面1边库长边1-1、Y轴为台球桌台面边库短边1-2。

所述一种在斯诺克运动中获取台球碰撞关系和完整运动轨迹的方法,包括:获取一杆斯诺克台球运动的连续帧图像,确定各帧图像中各台球的台面平面坐标位置;其中,台球桌台面边库长边为X轴、短边为Y轴,台球坐标是台球圆心点坐标;按照每帧图像中各台球的平面坐标,获取各个台球运动轨迹;由于采集的是离散的图像序列,球和球的碰撞点、球和边库的碰撞点经常采集不到,因而台球的运动轨迹在碰撞点时刻表现不出来,所以要修正碰撞点的坐标,把运动轨迹补充完整,除了碰撞点以外的运动轨迹不需要修正;

因此所述获取各个台球运动轨迹中对台球碰撞关系和运动轨迹的获取包括:

a、确定各帧图像中各个台球的坐标位置点的特征值,所述特征值包括:各个台球当前帧坐标点与前一帧坐标点构成的直线针对X轴的斜率、两坐标点的X坐标之间的差值、Y坐标之间的差值、两坐标点的直线距离、直线与X轴正方向的夹角;

b、在连续帧中,依据各个台球的原始运动轨迹位置坐标的变化,判断当前帧当前球的运动轨迹方向是不是有改变,如果有改变,首先判断当前帧当前球是否与其它台球有碰撞,如有碰撞确定碰撞点、修正当前台球在碰撞点的坐标;如无碰撞,判断当前帧当前球是否与台面边库有碰撞,如有碰撞确定碰撞点、修正当前台球在碰撞点的坐标;

所述判断当前帧当前球是否与其它台球有碰撞是:

b1、如果当前帧当前台球的运动轨迹方向发生改变,判断其他台球到当前台球改变方向前坐标的运动轨迹直线的距离;

b11、将距离和台球的直径比较,如果距离小于台球直径,则此台球在当前台球改变方向前的运动轨迹上; 

b12、判断此台球在下一帧是否有运动方向的改变;

b13、有改变,则此台球为碰撞台球,当前帧即为碰撞帧,给出碰撞台球在碰撞帧时的坐标;

b14、获取当前台球在碰撞点的坐标,如图2所示,即将所述当前台球2当前帧坐标点与该坐标点特征值中的斜率构成直线A,由直线A得到经过碰撞球3坐标垂直于直线A的垂线B,获取直线A和垂线B的交点坐标O,由交点坐标和碰撞台球在碰撞帧时的坐标在直线A上获得一个新的紧贴碰撞球的虚拟台球4的坐标点C,确定此新的坐标点C为当前台球碰撞点坐标; 

所述判断当前帧当前球是否与台面边库有碰撞是:

b2、判断连续两帧当前球的运动轨迹的方向是不是有改变; 

b21、如果发生改变,则当前台球碰撞边库,当前帧就是碰撞帧;

b22、判断当前台球连续两帧特征值中的夹角差绝对值是否大于修正当前台球的运动轨迹坐标的临界阈值?是,则获取当前台球碰撞点坐标:如图3所示,即由特征值中当前台球当前帧坐标的斜率和下一帧坐标的斜率,分别获取经过当前帧坐标点的直线方程f1和经过下一帧坐标点的直线方程f2,获取两条直线的交点坐标f,确定此交点坐标即为碰撞点坐标。

所述修正当前台球的运动轨迹坐标的临界阈值是20。

所述在斯诺克运动中获取台球碰撞关系和完整运动轨迹的方法进一步包括有:

确定母球从起始帧坐标到碰撞帧坐标的距离;即确定台面所有球中第一个运动的球是母球,被母球击打的台球确定为是母球的第一个碰撞球,从而获取母球从起始帧坐标到碰撞帧坐标的距离。

所述在斯诺克运动中获取台球碰撞关系和完整运动轨迹的方法进一步包括有:

确定落袋球或出界球,即根据台球中各球的运动轨迹,对于最后一帧坐标为零的球确定为落袋球或出界球,具体步骤是:

g1、确定当前台球在最后一帧图像中的坐标为零;

g2、从最后一帧开始往第一帧方向寻找坐标值不为零的最近一帧,给出当前球在该帧的坐标值;

g3、所述该帧的坐标值和6个袋口两端的坐标分别构成两条直线,所述两条直线与X轴分别形成夹角angle1和夹角angle2,计算当前台球的运动轨迹直线与X轴的夹角angle;

g4、如果夹角angle处于6个袋口中其中一个袋口的夹角angle1和夹角angle2之间,则确定这个袋口为落袋球的落袋袋口,此颗台球为落袋球,否则此颗台球为出界球。

本实施例具体程序执行是:

A、先读取数据库中相应帧的位置坐标串pResult,解析得到球的台面坐标。pResult串值是由系统自带的自动定位系统生成的含有各个球坐标的坐标串,传到数据库中,只需用程序直接读取。 

A1、解析前,在pResult坐标串中彩球编号按黄球、绿球、棕球、蓝球、粉球、黑球分别为C31-C37,红球编号为R11-R25,白球的编号是W10。

A2、解析后彩球编号对应于C31-C37顺序转换成0-5,坐标值不变。红球编号对应于R11-R25顺序转换成6-20,坐标值不变。白球编号由W10转换成21,坐标值不变。这样的转换是为了程序更容易编写和实现。

B、为了程序的编写和实现,需要计算各点的特征值以及相关的标志信息。

B1、计算各帧图像中各台球的坐标位置的特征值,其特征值包括:

假设母球在第四帧的坐标为(x1,y1),在第三帧图像的坐标为(x2,y2)则

母球在第四帧的点的特征值为:

                                                  

B2、各台球的运动轨迹变化程度的标志位的说明:

此标志位为Change_flag,假设当前台球的相邻的两个点的坐标的特征值为:angle1,angle2、x_diff、y_fiff,则:

C、按照读入的台球的台面坐标,依据各球的原始运动轨迹变化及其位置坐标,分析其是否碰撞边库、或球,并计算其碰撞点。

C1、球和球的碰撞分析:确定球与球的碰撞关系,母球的第一个碰撞球,求出碰撞点的坐标;具体程序执行为:

计算当前球当前帧点的特征值,当球的运动轨迹方向发生改变时,即此点的Change_falg>0,判断函数Is_it_coll_a_ball是不是有值返回?在程序的函数中Is_it_coll_a_ball计算所有台球的坐标到当前球碰撞前运动轨迹直线的距离,将此距离和斯诺克台球的直径比较,如果距离小于球直径的话,此球在当前球碰撞之前的运动轨迹上,有可能为碰撞球,接下来判断有可能碰撞的球是不是在当前球的前方,以及此球在下一帧是不是有运动轨迹方向的改变,如果上面的条件满足,则函数Is_it_coll_a_ball返回数值1,在函数中满足条件的那个台球就是当前球的碰撞球,此时,由该点和此点的斜率计算球与球碰撞点的坐标,并修正当前点为碰撞点,如图2所示:设当前台球2为白球,台球3为碰撞球,虚线台球4为虚拟的碰撞时的白球2,当前台球的运动轨迹的直线A的直线方程为line1,由碰撞前的运动轨迹的斜率计算出运动轨迹直线的垂线的斜率,经过碰撞球的垂线B的直线方程line2,计算两条直线的交点o(垂点),从而计算当前球当前点(a)到垂点(o)的距离|ao|以及碰撞球的坐标(b)到垂点(o)的距离|bo|,则碰撞点(c)到垂点(o)的坐标为|co|,进而计算c点的坐标即为碰撞点的坐标;

当函数Is_it_coll_a_ball返回数值0时,没有碰撞球,不需要修正碰撞点。如果当前球为母球的情况下,则求出的碰撞球就为母球的第一个碰撞球。

C2、球与台面袋库的碰撞分析:确定球与台面袋库的碰撞关系,寻找漏掉的碰撞点,修正碰撞点;具体程序执行过程为:

如果当前球连续两帧的运动轨迹方向发生改变:假设当前台球的连续3帧为i、i+1、i+2,则有第i帧的Change_flag=1,第i+1帧的Change_flag=1,第i+2帧Change_flag!=1。

计算第i+1点和i+2点特征值angle,如果两点的angle差的绝对值大于20,则当前台球碰撞台面袋库但一定漏掉了碰撞点,由该点和下一点计算碰撞点,并修正当前点为碰撞点:参见图3,由特征值中当前点j的斜率和下一点k的斜率,分别计算经过当前点的直线方程f1和经过下一点的直线方程f2,计算两条直线的交点f,图中的虚线m是未修正前的轨迹;如果交点的x坐标为正数且小于长边的长度,y坐标为正数且小于短边的长度,则此交点即为碰撞点;否则,点的修正错误,恢复为原来的值。

图5和图6示意了修正前后两种情况当前球的运动轨迹。

D、计算运动员的击球距离,即母球从起始帧到碰撞帧的距离。

E、根据各球的运动轨迹趋势,对于最后一帧坐标为零的球,向前搜索其坐标不为零的最近一帧,计算该帧坐标与各袋口两端坐标构成的直线和X正半轴的夹角,确定落袋球、落袋球袋口和出界球,程序执行过程:

确定当前球在最后一帧图像中的坐标为零并且是处于落袋状态(L)、出界状态(W);

从最后一帧开始往第一帧方向寻找坐标值不为零的最近一帧,给出当前球在该帧的坐标值,程序中用循环来判断这个点的坐标值,只要一个目标球的x坐标或y坐标大于零,循环就被break;

分别计算此点和6个袋口两端的坐标构成的直线与X正半轴的夹角angle1、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构成的直线与x正半轴的夹角angle1、angle2。如果angle的大小处于angle1、angle2之间,即夹角angle大于angle1、小于angle2则确定袋口u1为落袋球的落袋袋口,否则,计算坐标点a与袋口u2的两端的坐标点构成的直线与x正半轴的夹角。以此计算坐标点a与袋口3、4、5、6的夹角,可确定具体的落袋袋口。

如果落袋的袋口不为零时(初始化时赋值袋口为零),则此颗台球为落袋球,否则此颗台球为出界球;

当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明的权利要求的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号