基于OpenCV的三级跳远角度指标分析

2020-06-29 07:17牛永亮
微型电脑应用 2020年6期

牛永亮

摘 要:针对三级跳远运动的角度指标,利用OpenCV计算机视觉开发平台,提出了角点角度值计算的新算法,对三级跳远视频中运动员的着地角、起跳角和膝关节角进行定位及计算,并尝试对中外八名运动员的角度数值进行分析。实验结果表明,该方法可以较精确的进行角点定位,定量计算三级跳远运动员的角度指标,并可依据数据对不同运动员的角度指标进行对比分析,对三级跳远训练有一定的指导意义。

关键词: 三级跳远; 角度指标;OpenCV; 检测计算

中图分类号: TP 317.4

文献标志码: A

Abstract: In view of the triple jump movement angle index, a new algorithm for calculating the angle value is proposed by using the OpenCV computer vision development platform, and the grounding angle, the take-off angle and the knee joint angle of the athletes in the triple jump video are located and calculated. This paper tries to analyze the angle values of eight Chinese and foreign athletes. The experimental results show that the method can accurately locate the corner points, quantitatively calculate the angle index of the three-level long jump athletes, and compare and analyze the angle indicators of different athletes according to the data, which has certain guiding significance for the three-level long jump training.

Key words: triple jump; angle index; OpenCV; detection and calculation

0 引言

角度指标是三级跳远运动的重要指标,对最终成绩具有很大影响[1]。通过分析,可以得出运动员采用的技术类型;可以更加细微的看出運动员的技术发挥水平。在以往的研究中,大多数文章直接引用已有测得数据或者采用瑞士开发的Dartfish训练图像分析软件异或是采用德国的SIMI Motion三维录像分析系统等进行定量分析,很少对如何获得数值进行研究。本文利用开源的计算机视觉类库OpenCV,对中外八名运动员三级跳远运动的角度指标进行定量计算分析,并给出算法的实现思路和实验结果。

1 研究目的

1.1 三级跳远角度指标

文中重点研究着地角、起跳角、膝关节角。如图1所示。

着地角是起跳腿着地时身体重心与起跳脚着地点间的连线与水平面之间形成的夹角,如图1中∠ 1。着地角越小,身体重心靠后,前支撑阻力越大,此时水平速度的损失就大,不利于跳远成绩[2]。

起跳角是起跳离地时刻,支撑点与身体重心的连线与地面的夹角,如下图1中∠3。起跳角越大,着地缓冲的时间越长,水平速度的损失越大;起跳角度越小,有利于运动员发挥腿部力量,延长作用力时间,获得较高的水平速度[3]。

膝关节角是在运动员运动过程中,大腿与小腿之间的夹角。根据与地面接触情况,分为摆动腿膝关节角和支撑腿膝关节角,如图1中∠2和∠4。膝关节角可以反映运动员接地时的缓冲时间,腿部蹬伸力量的发挥情况等。

1.2 Opencv开发平台简介

OpenCV是一个开源的计算机视觉库,于1999年由Intel建立,其全称是:Open Source Computer Vision Library[4]。它采用C/C++编写,包括了300多个函数的跨平台API,提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法,主要应用于人机互动、物体识别、图象分割等领域,具有开放源码、可扩展性好、跨平台使用和强大的图像和矩阵运算能力等特点。

2 实验方法

2.1 起跳角(着地角)角度指标计算

2.1.1 算法思路

2.2 膝关节角度指标计算

2.2.1 算法思路

(1) 轮廓处理。对于输入的运动视频,按帧获取图像,进行轮廓处理,并利用轮廓面积等特征排除无关区域;

(2) 角点检测。对得到的运动员轮廓图像进行角点检测并按序标注编号;

(3) 定位角点。定位计算的的角点,得到具体的角点坐标值;

(4) 求角度值。以该角点为圆心作圆,并与轮廓的交点构成三角形,利用余弦定理得出所要求的角度。

2.2.2 算法实现

1.角点检测

角点定义为二维图像中亮度变化剧烈的点或图像边缘曲线上具有曲率极大值的点[7]。Moravec算子[8]角点检测的算法思想可以归纳为:给定一个阈值,在角点的某个邻域内(邻域窗口大小一般为3*3),其均方误差和一定大于给定的阈值,并且在任何一条通过该点的直线方向移动时都很大。其计算方法简单快速,但对噪声也比较敏感且不具有旋转不变性,即只检测了8个基本方向的变化情况,不能计算任意方向。

为改进Moravec算法,C.Harris和MJ.Stephens在1988年提出了Harris角点检测算法[9]。其基本思想与Moravec算子类似,但采用了局部自相关矩阵,允许获得所有方向上的灰度变化,使得角点检测算子具有了旋转不变性;同时Harris检测算法选取高斯函数为检测窗口,增大了中心像素点中心线上的权值,对图像进行了平滑处理,对噪声有一定的抑制作用。因此Harris算子比Moravec算子具有更广泛的应用。

在OpenCV中, cvGoodFeaturesToTrack实现了Harris角点检测算法,使二次开发变得比较容易。其流程,如图2所示。

(1) 使用sobel算子对图像中的每个像素进行计算,得出二阶差分;

(2) 使用cvCornerMinEigenVal计算输入图像中每一个像素点的最小特征值,并将结果存储到临时变量eig_image中;

对于每个像素,函数cvCornerMinEigenVal考虑block_size*block_size大小窗口的邻域,并给出中心像素点的自相关矩阵M,其定义,如式(3)。

2.计算角点值

经过角点检

测并定位角点A后,以A点为圆心,做圆并与轮廓线相交于B、C 两点。当A、B、C三点构成三角形时,计算角度θ,可以利用基本的三角公式进行计算。如图3。

3 实验结果与分析

3.1 着地角和起跳角分析

对三级跳视频图像,得到并提取运动轮廓,提取出运动员的质心和接地点坐标,最终得到起跳角。图5是广州亚运会哈萨克斯坦选手叶克托夫第二跳时的起跳角,得到重心坐标A(108,79),着地点坐标B(155,155),计算得到起跳角度为58.266 5度。

3.2 膝关节角分析

实验中选取了2011年广州亚运会三级跳远运动员曹硕的视频进行研究,并对其中的一帧进行了角度分析。实验结果,如图6所示。

图6中a为三级跳原图像;b为经轮廓处理后的二值图像;c为角点检测后,标定好的角点序号的二值图像,计算支撑腿的膝关节角∠8的角度值为153.4349度。

为更好地分析角度指标对运动员成绩的影响。下面对2010年广州亚运会及2012年伦敦奥运会共8名三级跳远运动员进行对比分析。表1中列出了八名运动员的着地角、起跳角、最终成绩。 李延熙(中)、叶可托夫(哈萨克)、曹硕(中)分别为广州亚运会前三名;泰勒(美)、克拉耶(美)、多纳托(意)为伦敦奥运会前三名得主;孔波雷(法)在第五跳中出现“软脚”失误,桑茨(巴哈马)因为伤病在第四跳中出现意外骨折。其角度指标数值,如表1所示:

为便于形象化分析,将运动员的最终成绩扩大三倍显示,如图7所示。

对以上数据经过折线图处理,得到以下结论:

a. 从图7(b)中可以明显地看出,运动员跳跃时的着地角小于跨步跳着地角,同时小于跳跃时起跳角。经过跨步跳之后,水平速度有所下降,运动员为提高成绩,着地腿向前充分蹬伸,使得跳跃时的着地角偏小。虽然这样不利于减少水平速度的损失,但可以延长与地面的缓冲时间,通过增大跳跃时的起跳角来增加腾跃高度,从而提高成绩。

b. 根据角度值计算结果,可以得出运动员所采用的技术类型。两名美国运动员跨步跳和跳跃角度值及折线图相似,两者采用了相同的技术类型,同时根据其跳跃时的起跳角比跨步跳时增幅明显,用于提高第三跳的比例,可以判断为速度型;对于多纳托和叶可托夫两者的跨步跳和跳跃时的起跳角度相对较大,可以以判断为高跳型;对于曹硕其起跃角度较小,腾空时抛物线低,可以很好地保存水平速度,可以判断为平跳型。

c. 比较中国与美国运动员的着地角和起跳角,可以看出在技术水平方面还存在差距。对于两名美国队员,其跨步跳着地角、跨步跳起跳角、跳跃着地角、跳跃起跳角平均值分别为:59.92、50.29、54.89、57.69;对应国内两名运动员为:55.17、53.47、40.22、54.81。根据三级跳远运动技术角度来看,在避免水平速度损失方面,中国运动员还存在差距。

d. 可以分析出运动员失误原因。法国运动员孔波雷在跨步跳时起跳角过大,水平速度损失严重;跳跃时着地角过大,与地面缓冲时间短,以至于在第三跳时出现软腿现象;而桑茨在角度指标上看不出问题,出现失误与其先前的伤病有关。

4 总结

可以看出,利用OpenCV可以对三级跳远运动员的角度指标进行定量计算,并根据数据进行可靠的技术分析,这为运动员进行科学训练提供了指导和帮助。

参考文献

[1] 尚瑞花.三级跳远中各跳起跳时着地动作的作用分析[J].中国体育科技, 2005, 41(2):31-33.

[2] 卢刚,王宗平.中外两名优秀三级跳远运动员起跳技术分析[J].首都体育学院学报, 2004,16(2):57-59.

[3] 张良平.男子三级跳远第一跳动起跳与跳远起跳角度特征比较[J].内江师范学院学报.2010, 25(10):104-107.

[4] Gary Bradski, Adrian.Bradski G, Kaehler A.学习OpenCV [M].于仕琪,刘瑞祯,译.清华大学出版社, 2009:1-2.

[5] 刘慧英,王小波. 基于OpenCV的车辆轮廓检测[J].科学技术与工程, 2010,10(12):2988-2991.

[6] 刘瑞祯,于仕琪.OpenCV教程基礎篇[M].北京:北京航空航天大学出版社.2010(8):296-297.

[7] Moravec. Visual Mapping by a Robot Rover [C]. International Joint Conference on Artificial Intelligence, 1979,8(2):598-600.

[8] Moravec H P.Towards automatic visual obstacle avoidance[C].Proceedings of International Joint Conference on Artificial Intelligence,Cambridge,MA,USA,1977:584-590.

[9] Borgeofrs G. Hierarechical Chamfer Matching: A Parametric Edge Matching Algorithm[J] . IEEE Trans. on PAMI, 1988,10(6): 849-865.

(收稿日期: 2019.08.27)