计算机系统应用  2021, Vol. 30 Issue (1): 250-255   PDF    
乒乓球的三维运动轨迹重建
马瑞雪, 杜忠华, 肖雨, 刘仁杰, 刘健莹     
南京理工大学 机械工程学院, 南京 210094
摘要:主要基于图像序列对乒乓球的运动轨迹进行三维重建, 并对乒乓球运动形态进行分析. 首先对采集的图像进行立体校正, 利用颜色识别和改进的霍夫圆检测算法提取出序列图像中乒乓球的圆心坐标; 然后根据前后帧图像的特征点坐标差值在时间序列上匹配特征点; 最后, 利用三角测量法对匹配的特征点进行三维重建, 并计算出乒乓球不同时刻的速度和加速度, 实现了动态物体的三维运动重建. 实验结果表明该三维运动重建方法提高了特征提取的准确性, 有效地实现了时间序列上的匹配, 获得了物体的三维运动数据.
关键词: 三维重建    运动轨迹    特征点    特征匹配    
Three Dimensional Trajectory Reconstruction of Table Tennis
MA Rui-Xue, DU Zhong-Hua, XIAO Yu, LIU Ren-Jie, LIU Jian-Ying     
School of Mechanical Engineering, Nanjing University of Technology, Nanjing 210094, China
Foundation item: National Natural Science Foundation of China (11772160, 11472008)
Abstract: Mainly based on the image sequence, this study reconstructs the movement track of table tennis, and analyzes the movement form of table tennis. Firstly, the collected image is stereo corrected, and the center coordinates of the table tennis in the sequence image are extracted by color recognition and improved Hough circle detection algorithm; then, the feature points are matched on the time series according to the difference of the feature point coordinates of the front and back frame images; finally, the matching feature points are 3D reconstructed by triangulation, and the speed and acceleration of the table tennis at different times are calculated, the 3D motion reconstruction of dynamic object is realized. The experimental results show that the 3D motion reconstruction method improves the accuracy of feature extraction, effectively realizes the matching on time series, and obtains the 3D motion data of the object.
Key words: 3D reconstruction     motion trajectory     feature points     feature matching    

随着高科技的迅猛发展, 许多行业开始和高科技融合起来提高效率, 如体育竞技运动中高科技已经开始大范围渗入了. 在乒乓球比赛中战况时常是很激烈的, 对战双方的快节奏使比赛一直处于迅速变换中, 许多精彩瞬间都是一闪而过, 之前通过慢动作和肉眼来捕捉落点处和运动轨迹已经不太适应如今的需求. 利用双目立体视觉系统对乒乓球[1,2]的运行轨迹进行三维重现, 不仅可以在比赛中精确判定落点, 还可以在日常训练中用来提高训练效果. 在日常训练中长期依靠教练的肉眼观察和经验去判定运动员的训练情况是比较受限的, 获得乒乓球的三维运动信息可以用来辅助分析运动员的击球技术及训练情况, 及时制定合适的训练方案.

随着各种智能机器人的出现, 乒乓球机器人也开始出现在人们的视野中, 而视觉系统是研究这类机器人的重中之重. 双目视觉系统相似于人类的视觉系统, 从二维图像中获取三维信息, 这就是三维重建技术实现的目的. 目前三维重建技术[3-5]已经日渐成熟, 许多行业都开始应用该技术, 例如在医学影像、化石结构重现、影视动画设计等方面. 最初的三维重建技术主要是针对静态建筑或处于静止状态的物体等, 随着该技术的成熟和广泛的应用范围, 近几年来, 三维重建也开始应用在物体的运动捕捉方面[6], 比如人体的动作、物体的运动轨迹以及柔性物体的变形[7,8]等等, 这些都可以通过三维重建技术重建出他们在三维空间中不同时刻的三维坐标, 从而重建出该物体的运动轨迹.

本文主要提出了一种基于图像序列的乒乓球三维运动轨迹重建方法, 通过双目立体相机系统来采集乒乓球运动的序列图像, 对采集的图像进行处理, 并重构出该乒乓球的运动轨迹, 对不同帧的图像中乒乓球所处的位置进行处理可得到一定时刻内乒乓球的运动速度及加速度.

1 立体标定和立体校正

通过搭建起来的双目立体相机系统采集棋盘处于不同位置时的图像, 一共20组, 并对采集的图像进行立体标定[9,10], 得出左右相机的内参矩阵、畸变系数, 以及关于左右相机之间的平移和旋转矩阵.

先通过立体校正获得的左右相机畸变系数对左右图像进行畸变校正, 消除相机畸变; 然后再对消除畸变的两幅图像旋转使其共面, 并使其同行对准, 完成图像的立体校正.

2 图像提取

本文主要基于乒乓球的颜色和形状进行特征检测, 先通过颜色识别过滤图像, 再通过改进的Hough圆检测算法准确地定位乒乓球在图像中的位置. 乒乓球检测算法的主要步骤如下: ① 颜色识别过滤图像; ② 图像预处理(形态学操作和滤波); ③ Canny边缘检测算法; ④ 设置轮廓面积范围, 粗略筛选所提取轮廓; ⑤ 霍夫圆检测[11], 确定球心位置.

2.1 颜色识别

通常我们所获取的图像都是RGB模型, 相比RGB模型, HSV颜色模型更符合人对颜色的描述, 它包括色调(H)、饱和度(S)、亮度(V). 首先将BGR图像转换为HSV图像, 并对转换后图像的第三通道进行均衡化处理, 增强图像的对比度; 接下来就是对增强对比度后的图像进行颜色检测, 通过分别设置图像三通道的最小值和最大值, 来筛选出和乒乓球颜色相同或相近的背景, 得到二值图像.

由于采集的图像序列容易受光照和背景的影响, 为了提高图像颜色检测的速度和准确度, 将图像二值化的阈值参数设置为动态, 可根据图像背景自动调节.

2.2 图像预处理

为了更好地消除图像中的噪声, 需对二值图像进行预处理, 先对获取到的目标二值图进行开运算, 剔除掉一些细小的噪声, 然后再用中值滤波平滑处理图像 . 中值滤波的工作原理就是用像素点的一个领域内各点灰度值的中值来替换该像素点原来的灰度值, 使周围的像素值比较接近真实值.

2.3 Canny边缘检测算法

边缘检测算法的效果影响后续霍夫圆检测的精度, 本文选用比较经典的Canny边缘检测算法. Canny算法的实现步骤:

(1)首先用高斯滤波来消除噪声, 高斯内核示例(size=5)如下:

$K = \frac{1}{{139}}\left[ {\begin{array}{*{20}{c}} 2&4&5&4&2 \\ 4&9&{12}&9&4 \\ 5&{12}&{15}&{12}&5 \\ 4&9&{12}&9&4 \\ 2&4&5&4&2 \end{array}} \right]$ (1)

(2)依照Sobel算子的原理来计算梯度幅值和方向.

${G_x} = \left[ {\begin{array}{*{20}{c}} { - 1}&0&{ + 1} \\ {{\rm{ - }}2}&0&{ + 2} \\ {{\rm{ - }}1}&0&{ + 1} \end{array}} \right],{G_y} = \left[ {\begin{array}{*{20}{c}} { - 1}&{ - 2}&{ - 1} \\ 0&0&0 \\ { + 1}&{ + 2}&{ + 1} \end{array}} \right]$ (2)

幅值和方向:

$G = \sqrt {G_{{x}}^2 + G_y^2} $ (3)
$\theta = {\rm{arctan}}\left( {\frac{{{G_{{y}}}}}{{{G_x}}}} \right)$ (4)

(3)沿着梯度方向对幅值进行非极大值抑制.

(4)设置滞后阈值, 如果像素位置的幅值低于最小阈值则被排除, 若高于最大阈值则保留为边缘, 处于两者之间则根据具体情况判断.

2.4 粗筛选轮廓

由于霍夫圆检测算法计算量大, 比较耗时, 为了提高算法的运行效率, 将先进行一次粗略筛选, 再进行圆检测. 对边缘检测后的图像提取轮廓, 用contourArea函数来计算所有轮廓的面积, 设置符合目标条件的轮廓面积范围, 排除一些面积相对比较大或者比较小的轮廓.

2.5 霍夫圆检测

霍夫圆检测[11-14]的原理和霍夫线检测的原理类似, 就是将二维图像空间中的圆转换为三维参数空间中的点, 通过投票方式, 生成累计坐标平面, 设置一个累积权重来定位圆的位置.

图像空间中的圆方程一般为:

${\left( {{{x - a}}} \right)^2} + {\left( {y - b} \right)^2} = {r^2}$ (5)

其中, 圆心坐标为(a,b), 半径为r.

将圆坐标方程转换为极坐标方程如下:

$\left\{ {\begin{array}{*{20}{c}} {{{a}} = x - r\cos \theta } \\ {b = y - r\sin \theta } \end{array}} \right.$ (6)

圆转换为三维参数空间的点其实就是将圆方程转换为极坐标方程(即: $xy$ 坐标系转换为 $abr$ 三维坐标系), 在 $xy$ 坐标系中经过某一点的所有圆转换到 $abr$ 坐标系中就变成了一条曲线, 因此通过判断 $abr$ 坐标系中每一相交点的曲线累积数量, 大于一定阈值则认为该点为所检测的圆.

为了提高霍夫圆检测的速度和准确度, 减少不必要的计算, 可以提前设置所需检测圆的半径范围.

3 序列图像的特征点匹配 

要重构出乒乓球的运动轨迹, 就需要对运动目标进行不同帧序列图像的匹配. 在比赛中兵乓球的运动速度是较快的, 因此采用高速相机来进行拍摄, 本文使用的相机为168帧/s, 所以不同帧图像中的物体运动范围不是很大, 通过设置前后两帧图像的特征点坐标差值(由采集的运动图像获得)在一定范围内, 在该范围内进行搜索检测乒乓球, 可以实现不同帧图像的匹配, 此方法也能排除有些帧图像中误检测的其他特征点, 从而提高准确度.

假设第 $n$ 帧图像的特征点坐标为 $\left( {{{x}}_i^n,y_i^n} \right)$ , 在第 $n{\rm{ + 1}}$ 帧图像的特征点坐标为 $\left( {{{x}}{}_i^{n + 1},y_i^{n + 1}} \right)$ , xy方向上的增量为 $\Delta {\sigma _{{x}}}$ , $\Delta {\sigma _{{y}}}$ ,需满足以下条件:

$ \left\{ {\begin{array}{*{20}{c}} {x_i^n - \Delta {\sigma _x} \le x_i^{n + 1} \le x_i^n + \Delta {\sigma _x}} \\ {y_i^n - \Delta {\sigma _y} \le y_i^{n + 1} \le y_i^n + \Delta {\sigma _y}} \end{array}} \right. $ (7)

在匹配特征点后, 会得到一系列不同帧所对应的特征点坐标, 通过对这些坐标点进行平滑处理, 排除一些波动太大的坐标点.

4 三维重建

空间点的三维重建[15]上就是图像坐标系向世界坐标系转换的过程, 求出特征点在空间中的位置是建立在双目立体系统的基础上, 两个相机水平放置, 已知两相机之间的距离T, 由于所采集的双目图像已经立体校正过,此时两个图像平面完全共面, 且像素行已对准, 因此可将该双目立体系统认定为理想的, 光轴完全平行的系统, 因此可通过视差和深度之间的关系求出特征点的三维坐标.

以左相机为世界坐标系原点建立坐标系, 假设特征点在左相机图像坐标系中的坐标为 $\left( {{x_{Li}},{y_{Li}}} \right)$ , 在右相机图像坐标系中的坐标为 $\left( {{x_{Ri}},{y_{Ri}}} \right)$ , 主点偏移坐标为 $\left( {{c_x},{c_y}} \right)$ , 该主点坐标是左右相机内参得到的, F为左右相机焦距的平均值, 则三维坐标求解公式为:

$\left\{ {\begin{array}{l} {{X_i} = - \dfrac{{\left( {{x_{Li}} - {c_x}} \right)*T}}{{{x_{Ri}} - {x_{Li}}}}} \\ {{Y_i} = - \dfrac{{\left( {{y_{Li}} - {c_y}} \right)*T}}{{{x_{Ri}} - {x_{Li}}}}} \\ {{Z_i} = - \dfrac{{F*T}}{{{x_{Ri}} - {x_{Li}}}}} \end{array}} \right. \left( {{{i}} = 1,2, \cdots } \right)$ (8)
5 实验结果 5.1 立体标定的结果

使用张正友标定法对两台相机标定, 标定后获得两个相机的内参矩阵 ${K_L}$ ${K_R}$ 及畸变系数 ${D_L}$ ${D_R}$ , 以及两个相机之间的旋转向量 $r$ 、平移向量 $t$ , 如下所示:

${K_L} = \left[ {\begin{array}{*{20}{c}} {1403.369\;84}&0&{947.695\;51} \\ 0&{1402.421\;10}&{605.997\;120} \\ 0&0&1 \end{array}} \right]$ (9)
$r = \left[ {\begin{array}{*{20}{c}} {0.002\;98}&{0.003\;51}&{0.016\;51} \end{array}} \right]$ (10)
$t = \left[ {\begin{array}{*{20}{c}} { - 3741.095\;89}&{ - 31.710\;03}&{ - 1.792\;99} \end{array}} \right]$ (11)
$\begin{split} &{D_L} =\\ &\left[\!\! {\begin{array}{*{20}{c}} { - 0.153\;74}\!\!&\!\!{0.079\;73}\!\!&\!\!{ - 0.000\;71}\!\!&\!\!{ - 0.000\;51} \!\!&\!\!{0.000\;00} \end{array}} \right] \end{split}$ (12)
$\begin{split} &{D_R} = \\ &\left[ {\begin{array}{*{20}{l}} { - 0.197\;85}\!\!&\!\!{0.140\;72}\!\!&\!\!{0.001\;35}\!\!&\!\!{0.002\;66}\!\!&\!\!{0.000\;00} \end{array}} \right] \end{split}$ (13)
${K_R} = \left[ {\begin{array}{*{20}{c}} {1405.729\;39}&0&{943.589\;33} \\ 0&{1410.127\;35}&{601.903\;01} \\ 0&0&1 \end{array}} \right]$ (14)
5.2 特征点提取结果

为了更好地体现本文算法检测的效果, 将与其他检测算法做比较. 图1(a)是图像阈值分割后, 然后筛选出符合乒乓球的特征(如面积、周长等)的轮廓并拟合轮廓的结果, 而图1(b)是由本文算法检测出来的效果, 由以下效果图的比较可知, 本文检测出的乒乓球轮廓更贴合乒乓球的形状, 这样会更加精确地定位乒乓球的球心位置.

图 1 特征检测结果比较

图2中的复杂背景中, 由于球刚好接近乒乓球台的表面, 从图片可看出接近的区域表面正好反光, 会使乒乓球的识别困难, 用以上两种算法分别检测, 只有本文算法可以检测出乒乓球, 可见本文算法有很好的适应性, 在背景复杂的情况下依然可以检测出目标.

5.3 序列图像的特征匹配结果

本文将提取图像序列中前6帧匹配好的特征点坐标数据来更好体现乒乓球运动在图像中的特点, 因左右图像在时间序列上的特征匹配相差不大, 表1将仅以左图像特征点在时间序列上的匹配为代表.

图 2 复杂背景下的检测结果

表 1 乒乓球前6帧匹配的图像坐标

表1可知, 在相邻帧下乒乓球球心的图像坐标波动不大, $x$ 轴坐标差为 ${\rm{ - 15}} \le {\sigma _{{x}}} \le 15$ ; $y$ 轴坐标差为 ${\rm{ - 10}} \le {\sigma _y} \le 10$ .

5.4 三维运动轨迹重建结果

利用Matlab软件将重建出的一系列三维坐标点重现出来, 这些坐标表示了乒乓球在空间中处于不同时刻的位置, 为了更好地显示出乒乓球的运动轨迹, 将对重建出的数据进行非线性曲线拟合. 本文将提取乒乓球比赛或训练中的一些片段来进行轨迹重现, 如图3所示.

5.5 乒乓球的运动速度和加速度分析

在重构出乒乓球相对比较精确的运动轨迹后, 可对乒乓球的运动形态进行进一步的分析, 计算出在某一段时间内乒乓球的运动速度和加速度, 对物体在空间中的运动形态描述的更加具体,更有助于时刻了解乒乓球的动态变化.

提取出乒乓球在某一段时刻的速度和加速度数据来加以验证, 由图4, 图5可看出比赛中的乒乓球速度和加速度变化挺大, 说明在比赛中节奏挺快.

图 3 比赛中不同情况下的乒乓球空间运动轨迹

6 结论与展望

本文在基于三维重建的基础上实现了对运动物体乒乓球的动态重建. 通过canny边缘检测和霍夫变换检测出乒乓球的轮廓, 并求出球体的球心; 再通过一系列序列图像匹配出不同时刻的乒乓球位置, 从而得出乒乓球在空间中的运动轨迹.

通过乒乓球的运动轨迹进而获得乒乓球的三维运动数据, 本文计算了乒乓球的速度和加速度等数据, 这些数据后续都可以用来分析乒乓球在空中的运动形态, 有很好的研究价值, 也可以后续用来实现在乒乓球比赛中乒乓球运动轨迹的跟踪, 从而预测乒乓球的落点范围. 本文研究还存在一些不足, 未考虑拖影情况下的乒乓球情况, 后续可展开具体研究.

图 4 乒乓球运动速度

图 5 乒乓球运动加速度

参考文献
[1]
刘子召, 陈劲杰, 刘步才, 等. 视频图像中乒乓球的检测与跟踪方法. 工业控制计算机, 2011, 24(11): 58-59, 61. DOI:10.3969/j.issn.1001-182X.2011.11.026
[2]
李新华, 宋承祥, 刘弘. 双目视觉测量在乒乓球运动速度分析中的应用. 计算机科学, 2008, 35(3): 256-257. DOI:10.3969/j.issn.1002-137X.2008.03.080
[3]
Wei Q, Xu ZD, Wang J. Research and implementation of 3D reconstruction technique based on images. Proceedings of 2015 2nd International Conference on Information Science and Control Engineering. Shanghai, China. 2015. 408–411.
[4]
黄林超. 基于双目立体视觉的三维重建技术研究[硕士学位论文]. 广州: 华南理工大学, 2019.
[5]
张如如, 葛广英, 申哲, 等. 基于双目立体视觉的三维重建方法. 扬州大学学报(自然科学版), 2018, 21(3): 5-10. DOI:10.19411/j.1007-824x.2018.03.002
[6]
罗忠祥, 庄越挺, 潘云鹤, 等. 基于视频的运动捕获. 中国图象图形学报, 2002, 7(8): 752-758. DOI:10.3969/j.issn.1006-8961.2002.08.002
[7]
廖芳, 史金龙, 龚肖. 点状特征柔性物体三维运动捕获方法. 计算机系统应用, 2018, 27(7): 230-235. DOI:10.15888/j.cnki.csa.006447
[8]
龚肖, 史金龙, 廖芳. 点特征柔性物体三维运动恢复方法. 红外与激光工程, 2018, 47(9): 0917009.
[9]
潘军. 一种基于双目摄像机标定的模型问题研究[硕士学位论文]. 长沙: 湖南大学, 2009.
[10]
李小艳. 双目立体视觉系统的标定. 信息记录材料, 2019, 20(12): 112-113. DOI:10.16009/j.cnki.cn13-1295/tq.2019.12.070
[11]
Zhou B, He Y. Fast circle detection using spatial decomposition of hough transform. International Journal of Pattern Recognition and Artificial Intelligence, 2017, 31(3): 1755006. DOI:10.1142/S0218001417550060
[12]
孟德欣, 谢二莲. 基于Hough变换的汽车零件中圆形检测的改进算法. 计算机工程与应用, 2015, 51(11): 172-174, 211. DOI:10.3778/j.issn.1002-8331.1307-0380
[13]
秦开怀, 王海颍, 郑辑涛. 一种基于Hough变换的圆和矩形的快速检测方法. 中国图象图形学报, 2010, 15(1): 109-115. DOI:10.11834/jig.20100118
[14]
黄永林, 叶玉堂, 陈镇龙, 等. 一种新的快速Hough变换圆检测方法. 电子测量与仪器学报, 2010, 24(9): 837-841.
[15]
杨靖, 王茂森, 戴劲松. 基于立体视觉的3维模型重建. 兵工自动化, 2020, 39(3): 71-76.