基于MEMS传感器的人体运动识别系统

2018-08-15 08:02:44李元良史中权李少辉李嘉昕陈富东王瑞琪丁汉祥
计算机应用与软件 2018年8期
关键词:角速度特征值羽毛球

李元良 史中权 李少辉 李嘉昕 陈富东 王瑞琪 丁汉祥

(河海大学机电工程学院 江苏 常州 213022)

0 引 言

近年来,智能穿戴产品及其技术推广不断深入,市场上的各种智能手环、智能手表层出不穷,也给人们带来了新奇的运动记录和分析体验。然而市场上大多数可穿戴设备诸如手环等产品只包含计步、里程、卡路里消耗等数据的记录及分析功能,并没有针对某类体育运动的动作识别和计数功能。为方便教练员更好地分析运动员在训练和比赛中的表现,人们希望能够记录运动员在场上的技术动作次数。以往采用录像回放来分析运动员数据,这不仅费时也费力,因此希望借助于更加轻便的可穿戴设备来实现运动识别和计数。本文研究的基于MEMS传感器的人体运动识别系统适用于专业乒乓球和羽毛球领域,可识别包括走跑、乒乓球正反手、羽毛球正反手、羽毛球挑球以及静止等7种动作的识别及计数。

目前国内外学者已经展开人体运动识别算法的研究。Allen等[1]采用分布式传感器网络进行人体动作识别,提出一种线性结算方法来处理传感器网络数据,但传感器较多,数据量较大,实时性不高。李峰等[2]利用手机自带加速度计和陀螺仪传感器采集人体运动数据,并对原始数据的时域和频域进行了分析,提取了相关特征值。再利用J48决策器结合Markov模型得到识别结果,能够识别人上楼、下楼,跑动、走路、静止等状态。但该算法只可识别一段时间内人的某种状态,并不能对动作进行计数。周林等[3]同样采用决策树并采用加窗处理实现人体下蹲、躺等动作的识别,但由于采用加窗处理,仍然无法对任意一个单独的动作进行分割,难以实现计数功能。此外以上两篇文献中都采用了决策树分类算法。该算法较适用于处理非数值类型的数据,而不擅长连续数据类型,并且该算法自学习能力较差,需要为每一个运动员定制不同的逻辑规则[4],计算量也较为庞大。当识别类型增多,规则也将更加复杂,这大大增加了模型识别错误率。因此为满足适用性及精度需求,本文采用BP神经网络作为分类器。该算法具有很强的学习反馈能力,通过学习每一个运动员的运动数据样本,不断更新网络参数,达到越训练越准的效果。此外本文采用了动作分割算法确定每一个动作的起点和终点,实现了对各类动作的计数功能。

1 运动识别系统搭建

人在球场上做挥拍、跑动等动作时,持拍手臂主要有两方面的变化:一是手臂的移动;二是手臂的旋转[5]。因此可利用MEMS传感器采集持拍手臂三轴加速度以及三轴角速度信号,加速度信号体现手臂的移动,角速度信号体现手臂的旋转。MEMS传感器是采用微电子和微机械加工技术制造出来的新型传感器,具有体积小、质量轻、功耗低等特点,适用于可穿戴设备等嵌入式应用[6]。

本文研究的运动识别系统包括MEMS人体信号采集装置以及PC端软件。MEMS人体信号采集装置负责采集人体持拍手臂的三轴加速度、三轴角速度以及三轴姿态角信号,通过蓝牙模块将原始数据上传至PC端软件,PC端软件对数据进行解码并利用运动识别算法得出识别结果。该识别算法可识别乒乓球正反手、羽毛球正反手、羽毛球挑球、跑动、静止等7种动作。软件每隔20 s调用一次运动识别算法,并更新显示界面。

1.1 MEMS人体信号采集装置搭建

图1为MEMS人体信号采集装置结构,采用STM32系列处理器作为主控芯片,通过YJ901模块采集人体三轴加速度、三轴角速度以及三轴姿态角等数据。YJ901模块集成了MEMS传感器,该模块利用卡尔曼滤波技术融合MEMS传感器输出的三轴加速度和三轴角速度信号,计算出三轴姿态角[7],通过串口输出人体数据,STM32处理器则以100 Hz的采样频率采集YJ901模块输出的人体信号,并通过蓝牙HC-31模块以115 200的波特率将数据上传至PC端上位机。此外,人体信号采集装置配备了充电管理芯片,可实现对120 mAh锂电池进行充电。

图1 MEMS人体信号采集装置结构

1.2 PC端上位机软件搭建

图2为PC端上位机软件框架,该软件负责接收来自MEMS人体信号采集装置的加速度、角速度、姿态角等原始信号,并集成了主要的运动识别算法。软件接收到原始数据后,分别对数据进行本地存储和绘图;当软件模式选择为竞赛模式时,软件将对原始数据进行动作分割、特征值提取,并从本地数据库或云端数据库调用神经网络模型参数,并输出识别结果至软件界面;当软件选择为网络训练模式时,进入BP神经网络训练状态,球员重复某种运动类型来提供神经网络所需样本,软件同样也需要进行动作分割与特征值提取这两个过程来生成新的训练样本,用此来训练神经网络,并将更新的网络参数上传入本地与云端数据库,给竞赛模式下的神经网络提供网络参数。

图2 PC端上位机软件框架

2 运动识别方法研究

本文提出的运动识别算法流程如图3所示,包括动作分割模块以及模式识别模块。动作分割模块目的是对原始数据(三轴加速度、三轴角速度和三轴姿态角)进行动作区间分割,从而提取运动员某个单一动作的数据,包括信号选取、平滑处理以及分割点获取。模式识别模块基于BP神经网络分类器,先根据得到的分割点信息截取单一动作数据,再对其进行特征值提取,最后输入训练好的BP神经网络模型中得到识别结果。

图3 运动识别算法流程图

2.1 动作分割算法

动作分割算法作用是将运动员的一段时间内各个动作分离,并获知每个动作的起点和终点。动作分割算法的精度将直接影响动作识别精度以及动作计次精度。文献[8]采用基于阈值的方法来分割合成加速度信号,便于实现人体手势识别,但该方法适合应用于手部动作从静止到启动再到静止的过程,及动作前后手臂状态为静止的情况。而本文中佩戴人体信号采集装置的运动员往往会连续地做各种不同动作,因此不适用于本研究。文献[9]采用寻找加速度信号波峰的方法来实现走路计步,但该方法只适用于简单动作的计次,面对存在多个局部波峰的复杂动作,该方法将带来较大误差。本文采用的动作分割算法可分割连续复杂动作,有助于提高动作识别以及计次精度。

如图3所示的算法流程图,动作分割算法首先需从X、Y、Z轴加速度,X、Y、Z轴角速度以及X、Y、Z轴姿态角这9种信号中选择一个信号波幅相对较大、局部波峰波谷相对较少的信号。这样有利于在后期平滑滤波中去除局部波峰波谷,提高动作分割精度。由于三轴姿态角信号范围为-180°到180°,当姿态角超过180°后,信号会突变为-180°,易产生对波峰波谷的误判,因此只分析三轴加速度以及三轴角速度的波形。图4反映了运动员在连续做乒乓球正手动作时的加速度与角速度6种信号波形,可发现Z轴角速度信号一个动作周期内的局部波峰波谷数量相对较少,波幅较大,更适用于有限次数的平滑处理。这是由于本研究的MEMS人体信号采集装置采用如图5所示的佩戴方式。图中箭头表示MEMS传感器的各轴加速度信号方向,而各轴角速度方向符合人体右手螺旋法则,人体在做挥拍、走跑等动作时,手臂更加倾向于绕Z轴旋转。此后对羽毛球正手、走路、跑动等多种动作的各轴信号进行对比,Z轴角速度信号仍能体现出较好的可分割性,因此本算法采用该信号作为分割信号。

图4 各轴加速度与角速度信号波形对比

图5 MEMS人体信号采集装置佩戴方式

选定Z轴角速度作为分割信号后,采用平滑滤波的方法去除波形上的少量局部波峰波谷,得到一个较为光滑的曲线,便于下一步寻找波峰波谷以及零点。

本文采用的平滑滤波算法,又称移动平均滤波法[10]。该方法通过求取滑动领域内信号的均值来进行去噪,从而让曲线变得更加平滑,突出整体曲线变化趋势[11],类似于低通滤波器。领域宽度将影响滤波效果宽度较大时,平滑度较高,但灵敏度较低,信号损失较严重;宽度较小时,平滑度较低,但灵敏度较高。本文希望平滑后的信号具有较好平滑度,同时尽量减少信号损失。通过实验总结,窗宽为5的平滑滤波效果较良好。式(1)为窗宽为5的平滑滤波公式。

(1)

图6为平滑前后波形对比。原始信号为运动员做羽毛球正手时Z轴角速度信号,利用窗宽为5的平滑处理后,去除了原始信号中的局部波峰波谷,便于下一步寻找每个动作的波峰波谷以及零点。

图6 平滑前后波形对比

一般而言,运动员持拍手臂动作从启动到结束再到下一次动作的启动可认为是Z轴角速度从0增加到正最大值,再减小到0,又从0降到负最小值,最后再增加到0的过程。本文以该过程为一个完整的动作,因此通过寻找平滑处理后信号的零点来确定一个动作的起点和终点。图7为连续两次羽毛球正手动作分割示意图,菱形表示波峰波谷,圆圈表示零点。平滑后的波形使得利用程序较容易找到信号波峰波谷以及零点,并且作为起点或终点的零点左右相邻分别为波谷和波峰。本文通过图8所示的方法来寻找动作分割零点,为了进一步减少动作细节带来局部波峰波谷,本文在时间轴上增加了动作间隔最小阈值Tmin,通常认为人体一个动作的最快完成时间为0.2 s,凡在这个时间段出现的零点将被去除,否则将增加识别错误率以及计数错误次数,因此Tmin选定为0.2 s。根据图8得到的零点序列为每个动作的起点和终点的横坐标,根据该零点序列到三轴加速度、三轴角速度以及三轴姿态角这9种原始信号中截取各个动作数据段,从而实现动作分割。

图7 动作分割示意图

图8 分割点寻找方法

2.2 特征值提取

动作分割结束后,提取每个动作原始信号的特征值作为BP神经网络的输入。一般信号的分析方法分为基于时域、基于频域以及基于时频域的分析方法[6]。本文主要研究基于时域的信号分析方法,并从信号时域中提取相关特征量。为充分利用信号中的信息,本文从三轴加速度、三轴角速度以及三轴姿态角等9个原始信号种提取了10种特征值,分别为平均合成加速度、合成加速度方差、合成加速度峰谷值、平均合成角速度、合成角速度方差、合成角速度峰谷值、合成加速度与合成角速度协方差、X轴姿态角变化量、Y轴姿态角变化量以及Z轴姿态角变化量。以下为10种特征值的定义与公式。

(2)

(3)

合成加速度峰谷值apv,一个动作合成加速度信号的最大值与最小值之差,算式如下:

apv=Max(a)-Min(a)

(4)

(5)

(6)

合成角速度峰谷值ωpv,一个动作合成角速度信号的最大值与最小值之差,算式如下:

ωpv=Max(ω)-Min(ω)

(7)

合成加速度与合成角速度协方差Cov(a,ω),算式如下。

(8)

X、Y、Z轴姿态角变化量Rx、Ry、Rz分别用式(9)至式(11)表示,其中φx,k、φy,k、φz,k为第k时刻采样得到的X、Y、Z三轴姿态角信号。

(9)

(10)

(11)

本文对某专业运动员的7种运动进行信号采集,并对各个动作的特征值进行分析,通过分析可得,这10种特征值在区分7种运动时,都具有一定的贡献。例如:图9为平均合成角速度特征值的运动分布图,该图反应了该运动员7种运动动作平均合成角速度的分布状况。观察可得,该特征值下静止分布在0~100之间,跑动分布在100~200之间,乒乓球反手分布在300左右,这三个动作的分布区间不与其他动作区间冲突,因此该特征值对区分这三种动作的贡献较大。表1总结了各特征值可区分的运动类型,10种特征值可完全覆盖7类运动类型,因此选取这10种特征值作为BP神经网络分类器的输入较为合理。

图9 平均合成角速度运动分布图

特征值可区分的运动类型a羽毛球正手σa2羽毛球正手,乒乓球反手apv羽毛球正手,跑动,静止ω乒乓球反手,跑动,静止σω2乒乓球正手ωpv羽毛球反手,跑动,静止Cov(a,ω)羽毛球挑球Rx羽毛球反手,羽毛球挑球Ry乒乓球正手,羽毛球挑球Rz乒乓球正手,羽毛球正手,静止

2.3 BP神经网络算法

神经网络在模式识别中应用较广泛,具有自学习、自适应的能力和高速寻找优化解的能力[12]。BP神经网络是一种多层前馈网络,其特点是信号向前传播和误差反向传播,其结构包括输入层、隐含层以及输出层[13]。图10为一个四输入三输出的三层BP神经网络示意图。

图10 BP神经网络示意图

本文采用采用BP神经网络作为分类器,以提取的10个特征值作为输入,7种运动类型作为输出,根据经验式(12),选取隐藏层节点数为8。

(12)

式中:n为隐含层,m为输入层数,k为输出层数,a为1~10之间的调节常数。

本文在训练神经网络之前,采集了专业运动员的1 633组标准动作的特征值作为样本空间,包含了7种运动类型,其中70%作为训练样本,15%作为验证样本,15%作为测试样本。经过测试与调整,设定网络目标误差为0.001,训练迭代次数为 20,学习速率为0.3。表2所示为BP神经网络产生的混合矩阵,表2中第一行与第一列数字的标注如下:1代表乒乓球正手;2代表羽毛球正手;3代表乒乓球反手;4代表羽毛球反手;5代表羽毛球挑球;8代表走跑;10代表静止。混合矩阵表明网络的综合准确度达到97.5%,基本满足识别精度要求。

表2 BP神经网络混合矩阵

3 实验结果分析

本研究搭建了如图11所示的MEMS人体信号采集装置样机,将运动识别算法编写入如图12所示的PC端软件中。软件以20 s为周期实行运动识别算法,将20 s内的运动员原始数据进行动作分割,并对各动作进行特征值提取,最后输入已经训练好的BP神经网络得到各动作的识别结果,并对各运动类型进行计数。软件中间部分显示了20 s内各动作的计次结果以及累计计次结果,软件中指示的其他动作代表静止动作。

图11 MEMS人体信号采集装置样机

图12 PC端软件界面

图13所示为运动员在实战中20 s内乒乓球运动的动作分割与识别结果图。通过该运动识别算法,不但准确实现了动作分割,也实现了运动类型的准确识别,识别结果已在图中标出。1代表乒乓球正手,3代表乒乓球反手,6代表跑动,7代表静止,该图准确反应了运动员9次乒乓正手,8次乒乓反手,4次跑动,最后以静止状态结束,与图12软件中对应动作计次情况一致。图14为20 s内羽毛球运动的动作分割与识别结果图,2代表羽毛球正手,4代表羽毛球反手,5代表羽毛球挑球,同样准确反应了运动员10次羽毛球正手,8次羽毛球反手以及4次羽毛球挑球,同样与现场实际情况基本一致。

图13 乒乓球运动动作分割与识别结果图

图14 羽毛球运动动作分割与识别结果图

通过上述实验,验证了本文运动识别算法的准确性。通过上位机软件的实施,体现了一定的实时性,可应用于专业乒乓球运动员以及羽毛球运动员在比赛或训练中的连续动作识别与计次。

4 结 语

本文提出的运动识别系统,通过运动传感器采集运动员持拍手臂的三轴加速度、三轴角速度以及三轴姿态角作为原始数据;通过窗宽为5的平滑滤波算法对Z轴角速度进行滤波,去除局部波峰波谷,提高了运动分割精度;通过寻找波峰波谷以及零点的方法获得各个动作的起点和终点,并提取了一个动作的10种特征值作为BP神经网络的输入;通过一定数目的运动样本来训练神经网络,最终可实现乒乓球和羽毛球等7种运动类型的识别与计数;通过实验验证,该运动识

别系统在运功识别功能上具有一定的准确性与实时性,并具有一定的使用价值。

猜你喜欢
角速度特征值羽毛球
羽毛球
一类带强制位势的p-Laplace特征值问题
单圈图关联矩阵的特征值
羽毛球
幼儿100(2018年35期)2018-12-29 12:32:22
飞行的羽毛球
圆周运动角速度测量方法赏析
羽毛球PK赛
小主人报(2016年2期)2016-02-28 20:46:35
半捷联雷达导引头视线角速度提取
基于商奇异值分解的一类二次特征值反问题
基于构架点头角速度的轨道垂向长波不平顺在线检测