基于HMM的羽球动作实时识别∗
2019-10-08雷玉超吴怡菲吴栩博李志扬
雷玉超 业 茜 吴怡菲 吴栩博 李志扬
(华中师范大学 武汉 430079)
1 引言
基于机器学习的人体动作识别是人工智能领域的一个重要课题,近年来有很多科研人员对基于人体传感器的动作识别进行了深入研究[1~2]。部分研究人员利用传感器进行数据监测与技术评估,达到体育辅助训练的效果[3~5],宋伟姣采用数据挖掘技术利用改进的Apriori关联规则算法对采集的数据进行多维属性挖掘,实现了对特定运动员的个性化训练[6];Wang等利用穿戴在身体不同位置的5个加速度计和陀螺仪来识别站、坐、跑、上下楼梯等日常行为活动[7];吴军等利用深度卷积神经网络对人体的走、坐、躺、跑、站五类动作进行分类识别,在Actitraker开源数据库上达到了0.9126的识别率[8];黄刘松等采用K近邻和决策树算法对乒乓球击球动作进行识别[9];Long等利用可穿戴传感器来识别足球、排球、羽毛球和乒乓球这4种体育运动[10];赵聪利用佩戴在运动员左右手腕、腰部和脚踝的4个惯性传感器进行数据采集和羽毛球击球动作分类识别[11]。作者设计了一套二层HMM(Hidden Markov Model)羽球动作分类算法,达到了较高的识别率。以上这些基于羽球动作识别的研究由于采用了多个传感器,大大增加了系统的复杂性与算法的复杂度,未能达到实时识别。
本文采用单个加速度传感器并借助机器学习算法搭建了一套羽毛球动作实时识别系统。系统首先对羽球击球动作进行时序分帧,通过数据特征值聚类特性评估挑选聚类特性最明显的动作特征,极大地降低了算法的复杂度。同时改进了传统的HMM训练算法,采用Baum-Welch结合有监督学习的方式进行高效训练,提升了击球动作的实时识别率。
2 羽球动作识别算法理论
2.1 算法流程
本文采用单个MPU6050三轴加速度传感器进行击球动作数据采集,传感器直接粘贴固定在羽毛球拍柄尾端,采集的数据为x,y,z三轴的加速度,采样频率为200Hz,数据精确到小数点后4位,并通过蓝牙模块传至上位机。
图1 样本训练流程
算法流程主要分为两个部分,样本训练与实时识别。图1给出了样本训练流程,首先利用小波变换对原始数据进行信号去噪。然后通过滑动窗口分割提取单个击球动作信息,并将其分解成多个元动作,对每个元动作的多个波形特征量(如峰峰值,平均值等)进行K-means聚类精度评估,选择聚类特性最明显的特征量作为每一个元动作的特征信息。再对每个元动作进行矢量量化,分配到对应的码本空间,得到该击球动作的观测序列。将此序列作为HMM模型训练的输入,为每一种击球姿态建立一个HMM模型,识别击球时常见的8种击球动作包括正手搓球、反手搓球、正手扑球、正手推球、正手挑球、反手挑球、正手高远和反手高远,训练并优化HMM模型参数直至收敛。
图2 实时动作识别流程
如图2所示,实时识别和样本训练流程基本一致,且动作分帧、特征选择和矢量量化三个部分,可直接调用训练样本流程的最优结果(最优分帧帧长、最大聚类特性特征量、最近聚类中心码值),从而减少数据预处理时间。矢量量化后得到对应的观测序列,利用向前算法求该序列在每个模型下的后验概率,选择HMM模型对应后验概率最大的模型,即为对应的击球动作。后续各小节将对图1和图2中的信号去噪、动作分帧、特征选择和矢量量化等环节进行更详细的介绍。
2.2 信号去噪和击球动作提取
本文采用小波变换进行信号去噪处理,通过对原始信号进行小波变换,分解得到对应的低频近似信号与高频细节信号。如式(1)所示,采用多层小波变换对低频近似信号进行迭代分解,以得到更好的有效信号波形,其中S为原始信号,Dn为第n次小波变换变换后的噪声信号,An为经n层小波变换后的有效信号。
每一层小波变换的去噪效果可通过SNR(信噪比)和 MSE(均方差)来衡量,如式(2)、(3)所示,y(i)表示原始信号S,x(i)表示有效信号An,N为信号长度。SNR最大,MSE最小为最佳去噪结果。
观察并比较去噪性能参数,发现采用三层小波变换时,去噪效果最佳,图3为击球时x轴加速度数据的去噪前后波形示例。
图3 小波去噪效果图示例
本文采用固定宽度的滑动窗口进行击球动作提取,考虑数据采样频率为200Hz,且羽毛球击球动作一般不超过1.5s,设置窗宽为300来提取击球动作。通过式(4)、(5)计算其净合加速度对其进行击球动作提取。
其中ax、ay、az为三轴的加速度,-1为重力加速度分量,故得到a为净合加速度。am表示第m个样本点的净合加速度,Am表示窗宽为300的净合加速度的平方和的极大值。设定最低阈值为1,进行极大值重置以便连续提取多个击球动作。滑动窗口提取示例结果如图4所示。
图4 滑动窗口
2.3 动作分帧、特征选择和矢量量化
对于提取出来的每一次击球动作,其数据量为300个样本点,为了减少数据量,方便后序的HMM建模等运算,将每一次击球动作进行分帧处理,并提取每一帧的特征值。然后进行矢量量化,这样单次的击球动作就被分解为多个元动作,而且每个元动作的特征向量通过矢量量化后生成一个1维的标量,于是一个击球动作被划分为一个与时间序列相关的n维向量。
动作分帧是为了在充分保证原击球数据特性的情况下,进行降维处理。设定每个击球动作分解成n个元动作,则每个元动作的数据量为300/n。根据经验值,本文取n=10,即每个击球动作分解为10个元动作。针对每一个元动作,它也是一个固定长度的波形,通过对其波形特征值进行聚类特性评估,选取聚类特性较高的两个特征量作为评估参数。这里采用公式(6)、(7)、(8)对特征量的聚类特性进行评估,其中k为聚类数目,即击球动作类别数。xi,j表示第i类被识别为第 j类动作的个数,因此式(6)中分母表示第i类动作的总个数。 λi,j为转移系数,即第i类动作识别为第 j类的权重。而式(7)中分子表示样本集合被转移系数加权后识别为第 j类的个数,λj表示样本集合被聚类划分到动作 j的概率,即动作 j的聚类特性值。式(8)中η表示平均聚类特性值。
通过对分帧后的样本数据的每一帧段取其特征量,计算不同时域和频域特征量下对应的样本平均聚类特性值,如表1所示,可以看出平均值和峰峰值两个特征量有较好的聚类特性。
表1 各类特征量的聚类特性值比较
于是选取聚类特性值最高的两个特征量——峰峰值和平均值作为元动作的特征量,故每个元动作可描述一个包含为x,y,z三轴的峰峰值与平均值信息的6维特征向量。对每个元动作的特征向量进行矢量量化,采用无监督学习的聚类算法,即进行一个二次聚类的操作,对样本的所有元动作进行矢量量化。如式(9)、(10)所示,xj为样本数据,S={S1,S2,…,Sk}表示样本划分的k个空间,μi为样本处于分类Si的平均值,即为聚类中心点,J表示聚类量化误差函数。
最后得到,k取值与量化误差的对应关系,通过动态调整k值并评估其相应的聚类误差与算法时间复杂度,多次反复试验后,得到k=32时聚类误差与时间复杂度量化效果最佳。通过矢量量化后的数据最终被聚类分析为与时序有关的一维向量,作为后续HMM的输入。
2.4 模型建立、训练和识别
由于羽球动作的时序性,可通过关于时序的概率模型——隐马尔科夫模型对击球动作进行建模。HMM建模主要依赖三个参数初始概率、转移概率和观测概率。针对每个击球动作,建立一套适用于该击球动作的HMM。每个击球动作被划分为具有时序性的n个元动作,通过矢量量化确定了每个元动作对应的码本,即为HMM定义的观测集合。故每个击球动作可视为一组长度为n的观测序列,针对该观测序列通过Baum-Welch算法利用式(11)~(13)训练每个模型的参数,直到参数满足收敛,其中πi为初始概率,aij为转移概率,bj(k)为观测概率。
由于样本中针对同一种击球动作的数据集是多个,而训练HMM参数模型所依据的样本为单一样本,因此可能导致模型数据陷入局部最优[12],而对其他样本识别率偏低。
针对多样本训练,本文提出了两种方案,其一,均值训练法。针对模型的输入即样本的观测序列做数据层融合,对同一模型下的多组训练数据取均值后进行模型训练;其二,频率加权训练法。以样本观测序列在该模型中出现的频率进行线性加权,对式(11)~(13)进行修正,设M 个观察值序列为O(m),m=1,2,…,M ,Pm表示第m个观测序列出现的频率。修正公式如下:
表2 HMM三种训练算法的识别率
HMM训练完成后,对任意一个击球动作观测序列,通过向前算法,计算该观测序列在8种击球动作模型下的后验概率,找到最大的后验概率对应的模型,此模型对应的击球动作为识别结果。
3 实验结果与分析
实验数据由5位羽毛球运动员两两对战共10场比赛提供,将前5场比赛数据作为样本数据进行模型建立与训练,后5场比赛数据作为测试数据用于实时识别与结果分析。
由于动作分帧,特征选择和矢量量化等理论与相关实验细节在上文均已给出,在这里将不做赘述。本文实验部分主要分析HMM的训练与调参。HMM的初始概率、转移概率和观测概率包含着衡量模型大小的重要信息,包括观测集合大小和状态数,并且模型的输入即观测序列长度也是模型识别准确与否的决定性因素。本文通过动态调整观测集合大小、状态数和观测序列长度三个重要参数,建立HMM并进行识别,得到对应参数模型下的平均识别率。
图5 不同HMM参数的识别率
如图5,在观测集合大小为32的情况下,调整观测序列长度与状态数得到对应识别率的3维变化图。通过综合比较并调整HMM三个重要参数,最后得出在状态数为9,观测序列长度为10,观测集合大小为32的情况下,系统识别率最高,可达94%。
4 结语
本文提出了一种基于单个加速度传感器利用无监督聚类分析结合监督式模型训练算法进行羽球动作实时识别的方案,对基于不同用户的8种常见击球动作可达到94%的识别率,是一种可靠的羽球动作识别方案。该系统可应用于运动员智能训练系统,针对采集到的不同运动员数据,通过数据挖掘与机器学习分析每个运动员的击球技巧并进行监督式学习,达到提升运动员综合击球水平的效果,还可用于业余羽毛球运动员的娱乐运动。