技术领域
本发明涉及一种斯诺克台球计分器,属于智能体育领域。
背景技术
目前的斯诺克台球计分器都是采用手工计分板。这种手工计分板(包括机械的和电子的)需要人工手动计分,而斯诺克台球的计分规则复杂,目前的这种手动计分板使得整个计分过程复杂,人工计分负担重,并且计分容易出现人为的错误。
发明内容
本发明采用一种电子设备,用摄像头实时捕获斯诺克台球桌面上的击球过程,然后利用计算机视觉技术对捕获到的图片进行处理,根据一定的软件算法,确定桌面上的球的实际位置,从而能够分析击球运动员的击球动作、台球运动轨迹,台球碰撞的情况以及台球落袋的情况,然后根据这些信息对台球比赛进行计分。本发明通过上述技术实现了整个计分过程的自动化。
附图说明
下面结合附图和实施例对本发明进一步说明。
图1和图2是本发明的工作原理图。其中图1使用单摄像头,图2使用双摄像头。
具体实施方式
在图1中,计分器位于台球桌的上方,计分器所带的摄像头朝向台球桌,其视角必须覆盖整个台球桌面。但是,除上述要求外,计分器相对于台球桌的具体位置,摄像头朝向台球桌的角度并无特殊的要求,这一点会极大地方便计分器的安装,极大地降低对计分器使用的要求。
对于使用环境受到限制的场合,比如台球桌上方被球桌照明设备或者天花板挡住,使得摄像头的视角无法覆盖整个台球桌面,这个时候可以使用多个摄像头的方案。图2显示的是使用2个摄像头的方案。在图2中,一个摄像头覆盖台球桌面底部的半个桌面,另一个摄像头覆盖台球桌面顶部的半个桌面。这两个摄像头之间相互交换数据,从而获得整个桌面的信息。
从构造上,计分器是一个盒子,盒子上安装有一个摄像头,一个电源接口,一个麦克风和音频播放接口。盒子的里面是电路板。电路板除了连接上述外部设备外,还有以下的核心部件:CPU及外围电路,WIFI或者其它网络通信模块。
本发明的工作原理是:由摄像头不断地捕获台球桌面上的实时状况,生成视频数据供计分器的软件进行分析处理。计分器的软件根据这些数据,利用计算机视觉技术,采用一定的软件算法,获得桌面上球的实际位置信息,获得球员击球的状态,白球与其它球的撞击情况,各个球落袋的情况等信息,从而判定球员每一次击球的得分。
以下对本发明的软件算法部分进行详细的说明。
首先,斯诺克台球桌本身的尺寸是标准化的和可以测量的:斯诺克台球桌的台面内部长3569.0mm,宽1778.0mm,球的直径是52.5mm。以下两个尺寸也是可以测量的:桌边缘距台面的高度(通常是40.0mm),桌边台尼宽度(通常是60.0mm)。
其次,照片的像素是已知的(比如4160*3120像素),在拍得一副照片之后,可以对照片的数据进行分析(比如利用OpenCV软件),获得台尼的四个角以及台面上所有球的中心点的位置(它们都是一些像素值)。
本发明软件算法部分所涉及的核心问题是,在获得了上述数据之后,怎样通过这些数据获得这些球在桌面的实际位置。(这里的“实际位置”指的是在台面上的以毫米为单位的位置。)
为解决这个问题,我们定义以下坐标系:
假定相机的拍摄方向与桌面垂直(注意这不是事实,我们将通过一系列变换将桌面移动到它实际所在的位置。)相机所在的位置为原点,拍摄方向为Z轴的负方向,相机向上的方向为Y轴的正方向,依据右手法则建立X轴。同时我们定义以下的视平面:视平面与X-Y平面平行且Z坐标为-1,视平面的高是2,宽是2*VW/VH(VW/VH是照片的宽高比),Z轴通过视平面的中心。
在该坐标系下定义7个矩阵:
其中T是平移矩阵,它将桌面在其平面上进行平移。Rx,Ry,Rz是旋转矩阵,分别将桌面绕X轴,Y轴,Z轴进行旋转。U1和U2也是平移矩阵,U1将桌面沿Z轴移动depth的距离,U2则作反向的移动,P是透视矩阵。
我们令
M=T*U1*Rx*Ry*Rz*U2*P
它的效果是,对桌面先做平移变换,然后沿Z轴平移到相机位置,然后分别沿X轴,Y轴,Z轴进行旋转,然后再沿Z轴负方向平移至原来的位置,然后做透视变换。这样,我们就将桌面投影到了视平面上。
设相机的分辨率是VW*VH,(VW和VH分别是成像的宽度和高度像素值,是已知的。)我们继续定义以下3个矩阵:
其中Sp是缩放矩阵,它将视平面放大到VW*VH;Tp是平移矩阵,它将视平面移动到第二象限(即视平面上所有的点的X坐标都是正值,Y坐标都是负值);Op是翻转矩阵,它将Y轴进行翻转,即将所有的Y坐标都取反。
令
Mr=Sp*Tp*Op
因此,矩阵Mr的效果就是,将视平面上的所有的点都映射到照片上的位置(以像素为单位)。
在前面,我们已经知道了台尼的4个角的坐标,设它们的值分别是(px1,py1),(px2,py2),(px3,py3),(px4,py4)。
我们对这些坐标统一增加一个维度并设其值为1,则得到4个3维向量:PX1(px1,py1,1),PX2(px2,py2,1),PX3(px3,py3,1),PX4(px4,py4,1)。我们对py4增加一个偏差值factor(它是未知量),得到新的PX4(px4,py4+factor,1)。
接下来令
P1P=P1*M
P2P=P2*M
P3P=P3*M
P4P=P4*M
PX1P=PX1*Mr
PX2P=PX2*Mr
PX3P=PX3*Mr
PX4P=PX4*Mr
接下来得到一个由8个方程组成的方程组:
其中P1P[1]是向量P1P的第一个分量,其它同。
这个方程组中有8个未知量:dx,dy,tx,ty,tz,depth,ta,factor,它是一个非线性方程组,运用非线性方程组的数值解法可以求得这个方程组的解。
在获得了这8个未知量的值之后,接下来是算法的最后一步:怎样根据球在照片中的位置(像素值)求得其在桌面上的真实位置(以毫米为单位的数值)。
设球在照片中的位置是(px,py)(px和py都是像素值,是已知的)。取向量VX=(px,py,1)。
设该球在桌面上的位置是(x,y)。取向量V=(x,y,-depth-h,1),其中depth是已知的,h是球的中心点到台尼的4个角所在平面的距离,也是已知的(它等于桌边缘距台面的高度减去球的半径),x,y是我们要求的值。
令
VP=V*M
VXP=VX/Mr
则可以得到下面的方程组:
其中VP[1]是向量VP的第一个分量,其它同。
解这个方程组,即可以获得上述的x,y的值。至此,问题得到了解决。
机译: 一种在斯诺克台球,台球或台球桌上玩注球,斯诺克式游戏的方法和设备
机译: 用于分类和停止台球的装置,特别是用于斯诺克台球和带有硬币槽的斯诺克台球的装置,使用该装置进行分类和停止
机译: 斯诺克台球援助/残疾人斯诺克台球援助