基于姿态分解的动作综合评价研究
2022-03-07方伟创马尽文
王 亚 方伟创 马尽文
(北京大学数学科学学院信息与计算科学系和数学及其应用教育部重点实验室,北京 100871)
1 引言
随着人民生活水平的提高和体育运动的普及,体育科学正经历着一场新的变革,快速朝着自动化、智能化方向迈进。过去,体育科学的发展严重依赖于专业知识,运动的复杂性和数据量的匮乏限制了机器学习方法在体育事业中的应用。近年来,人工智能科学和传感器技术的飞速发展为体育科学的发展带来了新的突破口[1-2]。我国政府在2017 年的《政府工作报告》中甚至把人工智能列为战略性新兴产业之一。越来越多的研究领域和产品在向智能化方向发展。随着体育运动和人工智能技术的紧密结合,智能体育[3-6]逐渐成为体育事业发展的新的理念和目标。实际上,智能体育是指通讯和信息处理技术与体育运动的融合,以运动数据为基础的人工智能方法和技术推动体育科学和事业的发展。智能体育主要分为智能竞技和智能运动两大主题,分别对应着体育竞技和全民运动两个发展方向。
在智能竞技方面,目前已经有多种嵌入式智能设备可采集运动员的运动信息和身体指标等数据。通过分析所采集的大量的数据,发现运动员的特点和不足,能够针对不同的运动员制定合理的训练计划和竞技决策[7]。
在智能运动方面,为了促进全民运动战略的发展,体育科技产品正走向人民的日常生活。越来越多的科技产品,如智能手环、智能眼镜、智能跑鞋,使得业余运动爱好者也可以实时监控自身健康指标和运动过程,能够对自己的运动形成系统性认识,甚至能通过智能化的数据分析,为自己制定合理有效的运动计划,摆脱盲目、无计划的运动方式。
然而,目前的研究工作尚且集中在基于传感器的动作识别等较为底层的任务[8-9],对于更高层的任务,如动作姿态的分解与动作的综合评价等仍然研究较少,并且评价结果较为粗糙[10-11],难以对用户提出较为精细的运动指导。例如,在羽毛球运动中,击球动作的好坏是由多方面的因素决定的,如姿态的规范与否,击球速度的快慢,击球的力度,动作美感等。评价一个击球动作,需要根据击球动作的各个姿态的好坏和姿态的排列顺序来进行分析。姿态序列是人们认识击球动作最直观的方式,它反映了一个击球动作的独特性。实际上,动作是由姿态序列所唯一确认,姿态序列的改变会导致动作的改变。因此,在羽毛球动作评价任务中,对姿态序列的完整性,姿态规范的评估是一个非常重要的研究方向。对于业余爱好者来说,相比强身健体的功能,羽毛球运动的竞技性质要被削弱的很多。而评价系统更多是针对普通用户开发的,普通的用户一般不追求专业球手的快准狠,所以良好的羽毛球评价系统不应在动作的速度上有过于苛刻的要求,而应该着重考虑击球者对动作的整体把握,检测用户击球动作中的姿态变化,判读肢体姿态是否到位和规范。
本文以羽毛球运动动作为例提出一种基于姿态分解的细粒度综合动作评价方法。通过对动作过程所形成的传感器数据曲线进行姿态分解,并对动作的各姿态进行细粒度评价,然后通过我们引入的综合评价函数,获得动作的整体得分。这种方法不仅可以得到更为合理的动作综合定量评价,还能有效对动作的不同姿态进行更细粒度评价。
本文的结构安排如下:在第2节中,我们将提出基于姿态分解的动作综合评价方法,包括羽毛球的姿态分解算法和基于姿态的综合评价算法;在第3 节中,我们将引入所采集的基于传感器的羽毛球动作识别数据集,并在该数据集上进行动作评价实验,分析本文所提动作评价方法的实际效果;最后在第4节中对本文的研究进行总结。
2 羽毛球动作综合评价方法
根据将羽毛球动作进行姿态分解和综合评价的思想,我们提出了如图1 所示的羽毛球动作综合评价方法。它主要包括三个基本流程:数据预处理、基于SWAB(Sliding Windows and Bottom-up)算法[12]的羽毛球姿态分解和基于DTW(Dynamic Time Warping)算法[13-14]的动作综合评价。
2.1 羽毛球动作的姿态分解
从理论上分析,任何运动动作都可以看作是一组运动姿态在时间维度上的连续组合[13-15]。例如,羽毛球运动中的正手发高远球动作可以依次划分为引拍、挥拍、击球和收拍四个运动姿态。这些姿态表示了该动作所组成的不同阶段,它们既紧密衔接,又具有明显的区分性。评价一个动作的好坏,不仅要看动作整体的情况,如运动速度、加速度的分布,还要分析运动员在不同运动阶段,即不同姿态的运动情况。通过对这些姿态的分析,我们可以对运动员的动作进行更为科学的评价并能够提供更为细致的信息。然而,如何自动化地对动作进行有效的姿态分解却是一个很有挑战性的问题。我们通过深入分析和探索发现在动作的加速度模长曲线上姿态具有较强的可分性。因此,我们采用SWAB(Sliding Windows and Bottom-up)算法对动作的加速度模长进行分析,并通过识别其奇异点来进行姿态分解。下面我们考虑某个羽毛球动作的姿态分析,该动作的识别可通过羽毛球动作识别算法来完成,这里不再考虑。
首先,我们根据动作的传感器数据序列来计算出加速度模长曲线。其次,我们使用SWAB 算法对加速度曲线进行分片线性拟合。然后,我们根据不同动作的特点,如所包含的姿态数量,姿态的变化曲线等,通过寻找满足特定条件的极值点或者通过分片拟合线段的斜率值进行判断,得到动作的姿态划分的切割点。我们最终根据所得切割点提取动作的姿态片段,达到姿态分解。
算法流程如图2所示,其中图2(a)为“正手发高远球”的加速度模长曲线,横坐标为时间,纵坐标为加速度模长。图2(b)表示使用SWAB 分片线性拟合加速度的模长曲线,其中蓝色曲线为原始加速度模长曲线,红色线段为用于拟合的分片线段。图2(c)为结合极值点检测和分片线段的斜率所确定的分割点。图2(d)为人工标注的姿态分割点。根据图2 所描述的相关算法流程和体育专业知识,我们所提出的基于SWAB 的羽毛球姿态分解算法能够获得较为理想的分解效果,对于击球等持续时间较为短暂的姿态,基于极值点的姿态分解算法能够比人工标注取得更加准确的分解效果。
2.2 基于DTW的动作综合评价方法
通过动作的姿态分解,我们实际上是将动作做了细粒度上的划分,得到动作在不同姿态上的具体数据。根据这种划分结果,我们还需要采用一种基于最短路径的动作评价算法来对羽毛球动作的标准程度进行综合而细化的评价。
(1)采用DTW的节点匹配算法
首先,我们对所提取的姿态的加速度模长进行归一化操作,使其处于[0,1]区间中:
其中,ai为羽毛球动作的加速度模长值。进行归一化处理可以降低评价中对业余羽毛球爱好者挥拍力度的敏感性,能够实现对不同水准的爱好者的友好评估。
由于专业运动员和普通运动爱好者击球力度不同,每个人击球的力度也不尽相同,同一个人不同次击球的力度也不尽相同。由于击球力度差异问题,加之还有击球的角度,反应时间差等其他问题的存在,对于一种击球动作,在时间轴上进行对齐是极其困难的。在不同的击球动作中,击球动作的轨迹差异可以通过击球的速度变化来表示。此外,对于一种动作中,每个人完成各部分姿态的时长不一样,即使是同一个人重复同一个动作,各个姿态所占的时间也不可能完全一致,每个姿态都可能出现或长或短的变化。这就导致在进行姿态匹配时,要做到对所有姿态在时间长短上对齐是极其困难的。为了解决这个问题,我们可借鉴非线性匹配算法进行姿态相似度的计算,即在语音识别里应用比较广泛的DTW 算法。图3 表示两个具有相似性的时间序列,在这样的情况下,要比较两个不同动作时间序列的相似性,就会变得非常复杂。若按照传统的欧几里得距离来衡量相似性时,往往会得出错误的评价结果。实际中,即使两个动作在波形走势上基本是相同的,在个别时刻两条曲线的取值情况不一致,如它们在起点的位置不一致,图3中将能相互匹配的部分用细线连接成平行四边形,独有的部分、长短不一的部分则构成三角形状。显然,这样的对齐方式是最优的匹配方式,两个时间序列中对应点之间的距离和是最短的。这可以归结为求最短路径的问题,这里采用的DTW算法正是基于这样的原理,如图3所示。
给定两个序列,样本序列X=(x1,x2,…,xN)和待测试序列Y=(y1,y2,…,yM),同时给定一个序列中点到点的距离函数d(i,j)=f(xi,yj)≥0(f为距离函数,在本文中我们取为欧氏距离)。
DTW 算法的核心思想在于求解两个序列中,点与点之间的对应关系。我们表示为φ(k)=(φx(k),φy(k)),其中φx(k)的可能取值为1,2,…,N,φy(k)的可能取值为1,2,…,M,k=1,…,T,T=max(N,M)。即求出T个从X序列中点到Y序列中点的对应关系,例如,若φ(k)=(1,1),则X曲线的第一个点与Y曲线的第一个点是相互对应的。
给定φ(k),可以求解两个序列的累积距离:
DTW 算法的目标是找到一个最合适的φ(k)扭曲曲线,使得累积距离最小,也就是损失矩阵的最后一行最后一列的值
即给定了距离矩阵,找到一条从左上角到右下角的路径,使得路径经过的元素值之和最小。这个问题可以由动态规划解决,时间复杂度O(N+M)。
路径的寻找不是任意的,一般来说有三个约束条件:
单调性:φx(k+1)≥φx(k)且φy(k+1)≥φy(k),也就是说扭曲曲线不能往左或者往上后退,否则会出现无意义的循环;
连续性:φx(k+1)-φx(k)≤1,即扭曲曲线不能跳跃,必须是连续的,以此保证两个序列里的所有点都会被匹配到;
边界条件确定性:φx(1)=φy(1)=1,φx(T)=N,φy(T)=M即路径一定从左上开始,结束于右下,这个条件也可以被放松,以实现局部匹配。
使用动态规划算法求解最短路径问题,迭代公式为:
D(i,j)表示序列1 中i到序列2 中j的归整路径距离。
(2)结合姿态分解的综合评价算法
在羽毛球评价中,首先对羽毛球动作信号(即传感器数据)进行去噪处理,消除其他干扰;在得到过滤的羽毛球动作信号之后,我们则进行姿态分解得到组成该动作的姿态序列。我们进一步从三个不同的维度对各个姿态进行评价,得到三种不同维度的得分s1,s2,s3。在姿态分解和提取上,我们采用SWAB算法,能够自动实现有效的姿态分解。
第一个评分维度将分解后羽毛球动作姿态的加速度模长序列逐个与标准姿态的加速度模长进行比较,得到对姿态标准程度的评价。如图4所示,我们将正手发高远球动作采用基于SWAB 的姿态分解算法划分为多个姿态的组合,开始的部分是动作的前期的准备动作,主体动作分为“引拍”、“挥拍”、“击球”、“收拍”四个姿态。图5 给出了正手发高远球的引拍部分加速度图。
我们然后对每个姿态按照以下公式进行评价。
其中X为用户的动作姿态,Y为数据库中相应的标准姿态,a和β为调节因子,实验中将其分别设置为1.07 和-1.0。整个动作的得分定义为该动作所含姿态的s1得分的平均值。图6为本文提出的基于姿态分解的s1得分示意图。作为对比,我们复现了一种传统的动作评价算法[17],它根据待测动作与标准动作的余弦相似度为待测动作进行整体评分,对于图6 中的样本,评分结果为74.8(转化为百分制)。显然,本文提出的基于姿态分解的s1指标可以对动作进行更加细粒度的指导。图6 显示该动作样本在收拍和引拍阶段完成得较好,在挥拍阶段完成较差,用户应在日常训练时多注意挥拍的改进。
除了使用s1对动作姿态的标准程度进行评价外,羽毛球的击球速度同样值得考虑。速度对击球好坏评价影响较大,对羽毛球的动作速度的检测可以归结为对击球的加速度进行评价,因为击球动作加速度对球的速度影响是主要的,也是最能反映挥拍速度的运动属性。
这里我们采用基准的速度,以正态分布区间作为评价速度的等级标准。最终也转换为百分制度。我们通过统计数据的方法,采用3-Sigma 原则确定出的区间作为评价该部分得分的标准。
首先统计出数据库中特定姿态时间长度分布的均值μ和标准差δ,评价公式为:
其中,l和l0分别为待测姿态时间长度和标准姿态时间长度。为基本分数,我们设置为70。Δ1,Δ2和Δ3为相应的加分值,分别设置为10,20,30。sig(·)为符号函数,定义为:
可见,s2为一种离散化的评价指标,待测的姿态时间越短,即动作越快,姿态的评价越高,反之越低。同动作的得分,我们将整个动作的得分定义为组成该动作的所有姿态的s2得分均值。
最后,我们对姿态序列的完整性进行检测,部分击球可能没有做准备动作,收球动作,影响动作美感。鉴于每个羽毛球动作的姿态序列并不长,解决动作中姿态缺失的问题上比较容易。对每个确定的动作,我们通过检查该动作是否具备模板动作中完整的姿态序列,并计算该动作所包含的姿态比例,结果输出为百分制。
进而对击球动作进行综合评价。
其中w1=0.5,w2=0.25,w3=0.25。
3 实验
3.1 数据集
为了减少对普通用户动作的影响,保证用户使用的便捷性,我们仅仅在羽毛球拍上安装一个重量非常轻的传感器。如图7 所示,羽毛球动作采集装置由四部分组成:LED 指示灯、数据采集传感器、控制开关和球拍本身组成。LED 指示灯用于指示传感器的工作状态,数据采集传感器接近硬币大小,固定在球拍手柄底部,用来实时采集用户的状态信息。采样频率为200 Hz,即每秒收集200 条记录。每条记录的数据包括三个属性:三维正交系统中的加速度分量(X轴,Y轴和Z轴)。
我们采集了69 个“正手发高远球”样本和40 个“正手平高球”样本,在该样本集上测试本文所提出算法的实际效果。
3.2 数据预处理
如图8 所示,原始数据中真正表示有效数据的为样本1,样本2 和样本3 中的波峰位置,波峰前后包含了许多冗余的记录,这些冗余数据表示运动员的准备情况或击球结束后的停留状态。我们使用SWAB 算法对原始数据进行预处理,来消除这些冗余记录。具体而言,我们首先根据三维加速度分量计算出加速度模长曲线,然后使用SWAB 算法对加速度模长曲线进行分片线性拟合,进一步根据各个小线段的斜率通过设定阈值截取原始数据前后斜率较小的曲线,提取出有效数据所在的片段。最后我们使Butterworth 低通滤波器[16]进行滤波处理,降低传感器噪声对实验结果的影响。
3.3 实验结果
图9 为随机选取的两个正手发高远球样本,我们分别对四个姿态“引拍”、“挥拍”、“击球”和“收拍”计算姿态的标准程度得分s1和姿态速度得分s2,然后计算动作姿态的完整程度得分s3。可以看出,样本(a)和样本(b)在引拍阶段挥球速度较慢,应该在日常训练过程中多注意锻炼该阶段的速度。此外,样本(a)挥拍和击球速度较慢,发球容易被对手接到,但是挥拍动作的标准程度较高。样本(b)的击球动作标准程度和击球速度都较好,但是在挥拍速度上非常欠缺。挥拍和击球速度的巨大差异会导致击球时的准确性难以把握。
图10 和图11 分别为正手发高远球和正手平高球所有样本的综合评价分数的直方图。可以看出,在当前的参数设置下,运动员正手发高远球动作的分数集中分布在区间[700,100],部分得分低于50 分,基本服从正态分布,符合实际人工专业评价的规律和特性。
4 结论
针对羽毛球动作评价任务,本文提出了一种基于姿态分解的细粒度动作综合评价方法。我们首先采用SWAB 算法对动作的加速度模长序列曲线进行姿态分解,得到组成动作各个姿态的数据片段,然后对各个动作姿态从标准性、速度和完整性进行全面评价。通过这三种评价指标,我们不仅可以对动作各个组成阶段进行更加细致的指导,还能够通过对这些指标进行加权平均和累加得到动作的综合评价分数。在我们采集的基于单传感器的羽毛球数据集上,实验结果表明本文所提出的动作综合评价方法能够对用户的动作进行合理有效的评价。