健身动作智能识别的长短期记忆网络模型研究

2022-04-26 10:59王丽敬赵泽阳刘亚楼杨爱民韩阳
关键词:骨骼关节人体

王丽敬,赵泽阳,刘亚楼,杨爱民,,韩阳,,

(1. 华北理工大学 冶金与能源学院,河北 唐山 063210;2. 华北理工大学 理学院,河北 唐山 063210;3. 华北理工大学 发展规划与学科建设处,河北 唐山 063210)

随着科技的发展和人们生活水平的提高,健身动作智能识别是对当前市场上的健身系统方案的优化。由于身体形变和歪曲等原因,导致对人体动作检测具有一定的挑战性。但在基于传统的RGB彩色视频进行识别的基础上,已有越来越多的学者投入到深度图像识别序列研究中[1,2],其中,较为广泛的是使用3D骨骼数据进行研究[3]。

最近,循环神经网络已经成功应用于骨骼的3D动作识别。长短记忆神经网络(Long Short Term Memory, LSTM)是循环神经网络(RNN)非常成功的扩展。它们利用内部存储单元上的门控机制来学习,并将输入顺序数据之间长期依赖性更好、更复杂地表示出来,因此它们适合于按时间数据序列进行特征学习。

1健身动作识别方法

1.1 基于人体结构化信息的骨骼数据处理

人类行为的特征是身体部位随时间的运动。在3D人体动作识别中,在每一帧中都有主要人体关节的三维位置。最近,循环神经网络已经成功应用于骨骼的3D动作识别。

1.2 基于LSTM的时间建模

典型的LSTM单元包含一个输入门it,一个遗忘门ft,一个输出门ot和一个输出状态ht以及一个内部存储单元状态ct.LSTM转换方程式表示为:

ct=itΘut+ftΘct-1

(1)

(2)

ht=otΘtanh(ct)

(3)

其中,Θ表示元素乘积,xt表示在时间步长t到网络的输入,而ut表示调制后的输入 ,σ是sigmoid激活函数,M:RD+d→R4d是由模型参数组成的仿射变换,其中D是输入xt的维数,d是LSTM单元状态单元的数量。

输入门决定了在时间t调制的输入信息(ut)应该更新存储单元的程度。遗忘门ft确定存储单元的先前状态(ct-1)对其当前状态(ct)的有效性。最后,输出门ot控制着从存储单元输出的信息量[6,7]。

1.3 基于树结构的遍历

在简单链中布置关节会在身体关节之间添加虚假的联系,与此同时会忽略关节之间的运动学依赖关系,而这些错误的联系并没有很强的关联性[8]。在人体分析中,骨骼关节通常被建模为基于树的图形结构,如图1所示。

图1 人体骨骼关节树

在图1(a)中人体的骨骼关节在简单的联合链模型中,联合访问顺序为1-2-3 -...- 16;图1(b)将骨骼转换为树形结构;图1(c)在空间步长上遍历树;可以通过遍历将树展开为链,联合访问顺序为1-2-3-2-4-5-6-5-4-2-7-8-9-8-7-2-1-10-11-12-13-12-11-10-14-15-16-15-14-10- 1[9,10]。

基于树结构的遍历策略使在邻接树结构内的数据传输的2个方向(自上而下和自下而上)得以保证。因此,每个节点都将具有来自其祖先和后代的上下文信息,基于树结构的遍历能由关节的邻接结构得到更强的长期空间依赖性模式[11]。

与其他LSTM实现类似,可以通过堆叠多层树结构的ST-LSTM并构建一个深层但完全易处理的网络来提高网络的表示能力,如图2所示。

图2 深树结构的ST-LSTM网络图形模型

在图2中,为了清楚起见,在堆叠网络中省略了一些箭头(从颜色上更好看)。第一ST-LSTM层的输出被馈送到第二ST-LSTM层作为其输入,第二ST-LSTM层的输出被馈送到softmax层[12,13]。

2健身动作智能识别功能的实现

基于前文提出的对人体结构化信息的骨骼数据处理及多层级LSTM动作识别网络,通过对系统进行设计与实现,并与其他方法进行比对,分析所提出改进方法的有效性。

2.1 研究平台及数据集

健身动作智能识别的设计及实现的实验环境为:基本Python环境、Flask、UWSGI、Nginx、Docker、TensorFlow Serving.该研究所选的框架为TensorFlow深度学习框架,目前作为深受欢迎的深度学习框架,TensorFlow的数据流图编程思想十分适用于神经网络各个参数的计算。与此同时,其灵活的架构可以与多种平台兼容,支持Windows、Linux、macOS、Web、Android,适配图形处理器和中央处理器。

NTU RGB + D数据集集中提供了25个关节的3D坐标。类内和观点的较大差异使此数据集非常具有挑战性。由于样本数量众多,该数据集非常适合基于深度学习的动作识别。

2.2 健身动作智能识别模型的构建

实现健身动作识别智能指导系统首先需要对数据进行数据收集、分割数据、特征提取,然后选择并训练模型,最后通过对比算法选择最优算法。

2.2.1数据收集

大腿内侧动态拉伸、缓冲深蹲跳、臀部动态拉伸及早安式体前屈相关动作分别进行数据收集。其中,在一次数据采集时,采集者左手持手机并使手机屏幕方向与手臂垂直,持续做同一动作。传感器采集一次数据为20 ms,取样率为50 Hz。微信程序将收集到的数据通过json格式发送到云服务器上;有超过10位用户参与数据采集,每位用户都进行了4个动作的数据采集。为了保证算法的可泛化,除规定手持手机姿势外,不对用户设置其他规定。数据字段如表1所示。

表1 数据字段表

在表1数据字段中,所有数据均正常,且没有缺失值,数据还包括用户的性别、身高、体重等信息。为使模型更好地泛化,仅选取6轴数据。

2.2.2数据分割及特征提取

将整个数据集分为:训练集(60%)、验证集(20%)、测试集(20%)。将数据分割为2.56 s的窗口(128个数据点),其中窗口之间有50%的重合,从而便于模型更好地学习出特征。原始时间序列加速度不能直接用标准分类算法计数据,所以,需将原始时间序列转变为某些特征。首先将数据分为2.56 s的窗口,再将每个2.56 s时间段中的128*6个读数转化为特征。

2.2.3选择并训练模型

在这项任务中,所需模型应可以准确通过2.56 s内手机6轴的数据,并识别出用户所做的动作给出相应的反馈。希望看到模型可以尽可能多地识别出用户当前的动作,故在选择算法时,侧重于模型在测试集上的准确率与召回率,为了实现单一指标选择,引入二者的调和平均F-1 score作为判断指标。通过对SVM模型、Random forest模型及一维CNN网络模型进行相应比对,可选择出最优算法并对该模型进行训练。

SVM模型、Random forest模型及一维CNN网络模型进行相应比对结果如图3所示。

图3 SVM、Random Forest及CNN分类器的分类结果混淆矩阵示意图

通过研究实验可知,在使用传感器的人体动作识别任务上SVM模型与Random forest模型具有最优的表现,在测试集上一维CNN网络的表现最优。由于判断指标为F1 score,故选取一维CNN模型来做图像的特征提取,对原始数据进行相关处理,利用LSTM来生成描述。表2所示为SVM模型、Random forest模型及一维CNN网络模型对比。

表2 SVM模型、Random forest模型及一维CNN网络模型对比

表2所示为SVM模型、Random forest模型及一维CNN网络模型对比。由表2可以看出一维CNN网络模型F1score最高可达0.995 33,SVM模型F1score最低可达0.974 71.由于此任务为多分类问题,loss function选为Cross Entrop,优化器选为Adam,可以加快收敛速度。具体超参数为 learning_rate = 0.001,epsilon = 1e-07,amsgrad = False,训练过程中,训练次数选为17 300次,方式训练采取Mini-batch方式训练,batch size选为300。训练过程的正确率曲线如图4所示,训练过程的loss曲线如图5所示。

图4 训练过程正确率曲线示意图 图5 训练过程loss曲线示意图

保存并读取模型,评估模型并查看在测试集上模型平均正确率与损失。

3健身动作智能识别实现及展示

健身动作智能识别实现功能界面的实现是基于web服务器之上,它包括4个基本模块:说明须知界面、标准动作展示界面、开始测试界面和结束测试界面。

3.1 服务器配属及小程序的开发

运用Docker+TensorFlow Serving的算法部署运行之前训练好的模型;API开发选用Flask框架,接收并处理小程序传来的数据TensorFlow Serving连接,Flask框架将这些预测结果返回给小程序;除此之外,需要在Web服务器上配置Nginx(配置Https访问)、UWSGI软件,从而实现小程序端到微信Web服务器再到Flask框架的连接过程。

调用小程序文档中的API进行数据采集,传感器采集一次数据为20 ms,取样率为50 Hz,微信程序将收集到的数据通过json格式发送到云服务器上,并在数据采集阶段将数据上传至微信云数据库。

3.2 结果展示

图6和图7分别为训练过程结果展示图和标准动作展示示意图基于人体结构化信息的骨骼数据处理方法对动作中的空间特征进行较为准确提取,与图7中的标准动作进行比对,在很大程度上提高了算法的鲁棒性和识别精度;该项研究提出的对人体结构化信息的骨骼数据处理及多层级LSTM动作识别网络用于动作识别,该方法使得动作识别的整体性能在很大程度上得到提升,最终应用于实践,实现健身动作智能识别的长短期记忆网络模型的研究。

图6 训练过程结果展示图

图7 标准动作展示示意图

4结论

(1)提出了基于人体结构化信息的骨骼数据处理方法。该方法能对动作中的空间特征进行较为准确的提取,在很大程度上提高了算法的鲁棒性和识别精度。

(2)提出了对人体结构化信息的骨骼数据处理及多层级LSTM动作识别网络用于动作识别。通过分析标准的LSTM网络,提出时空LSTM模型和基于骨架的树遍历; LSTM引入了有效的门控方案,以处理输入数据(人体关节位置)中的测量噪声,并应用于3D健身动作识别,从而提高动作识别度。该方法使得动作识别的整体性能在很大程度上得到提升,最终应用于实践,实现基于LSTM的健身动作智能识别。

猜你喜欢
骨骼关节人体
人体“修补匠”
膝盖经常咔咔响,小心“关节鼠”
人体冷知识(一)
膝盖有异响 警惕“关节鼠”
关节才是关键
人体可笑堂
3D打印骨骼指日可待
人体运动小知识
骨骼是如何生长的
神奇的骨骼