Professional Documents
Culture Documents
基于 LSTM 神经网络的人体动作识别
杨世强, 杨江涛, 李 卓, 王金华, 李德信
(西安理工大学机械与精密仪器工程学院,陕西 西安 710048)
摘 要:人体动作识别为人机合作提供了基础支撑,机器人通过对操作者动作进行识别和理解,可以提
高制造系统的柔性和生产效率。针对人体动作识别问题,在三维骨架数据的基础上,对原始三维骨架数据进行
平滑去噪处理以符合人体关节点运动的平滑规律;构建了由静态特征和动态特征组成的融合特征用来表征人体
动作;引入了关键帧提取模型来提取人体动作序列中的关键帧以减少计算量;建立了以 LSTM 神经网络为基础
的 Bi-LSTM 神经网络的人体动作分类模型,引入注意力机制以及 Dropout 进行人体动作分类识别,并对神经
网络的主要参数采用正交试验法进行了参数优化;最后利用公开数据集进行动作识别实验。结果表明,该模型
算法对人体动作具有较高的识别率。
关 键 词:动作识别;融合特征;LSTM 神经网络;注意力机制;Dropout
中 图 分 类 号:TP 391.4 DOI:10.11996/JG.j.2095-302X.2021020174
文 献 标 识 码:A 文 章 编 号:2095-302X(2021)02-0174-08
Abstract: Human action recognition provides the basic support for human-computer cooperation. Robots can enhance
the flexibility and production efficiency of manufacturing system by recognizing and understanding the operator’s
action. To resolve the problem of human motion recognition, the original 3D skeleton data was smoothed and denoised
to conform to the smooth rule of human joint-point motion based on 3D skeleton data. The fusion feature composed of
static and dynamic features was constructed to represent human action. The key frame extraction model was
introduced to extract the key frames in human action sequences to reduce the computing load. A Bi-LSTM neural
network model based on LSTM neural network was established to classify human actions, and the attention
mechanism and Dropout were utilized to classify and recognize human actions, with the main parameters of the neural
network optimized by the orthogonal test method. Finally, the open data set was employed for the action recognition
experiment. The results show that the proposed model algorithm has a high recognition rate for human actions.
Keywords: action recognition; fusion features; LSTM neural network; attention mechanism; Dropout
近年来人工智能技术取得了长足发展,已逐渐 也可应用于智能安防、智能家居、智能医疗等领域。
地应用于机械制造等领域。动作识别是人机交互的 特征提取是动作识别的基础,主要方法有基于
基础,通过人机交互合作可以提高人机合作制造系 深度图像和基于骨架数据的特征提取 2 种方法。
统柔性,对制造业发展有积极促进意义。动作识别 Kinect 深度相机可以采集到图像的深度信息,唐超
收稿日期:2020-07-21;定稿日期:2020-09-12
Received:21 July,2020;Finalized:12 September,2020
基金项目:国家自然科学基金项目(51475365);陕西省自然科学基础研究计划项目(2017JM5088)
Foundation items:National Natural Science Foundation of China (51475365); Natural Science Basic Research Program of Shaanxi Province (2017JM5088)
第一作者:杨世强(1973–),男,甘肃白银人,副教授,博士。主要研究方向为智能机器人控制、行为识别等。E-mail:yangsq@126.com
First author:YANG Shi-qiang (1973–), male, associate professor, Ph.D. His main research interests cover intelligent robot control, behavior recognition, etc.
E-mail:yangsq@126.com
第2期 杨世强,等:基于 LSTM 神经网络的人体动作识别 175
动态特征组成的融合特征;建立了基于 LSTM 神经 N
对于第 m 帧,其滤波过程就是当前帧之前的
网络的动作识别模型,引入注意力和 Dropout 机制 2
N
提高了识别率;最后使用正交试验法对神经网络参 与其后的 帧的总和的均值。在此,时间窗口大小
2
数进行了优化。
选择为 5,
Pm,x 表示某个关节点其中 x 维度的第 m 帧。
1.3 人体动作特征表示
1 人体动作的特征描述
从人体动作序列中提取合适的特征描述人体
1.1 基于人体 3D 骨架信息 运动状态是人体动作识别的关键问题。人体 3D 骨
使用 Kinect 深度摄像机,采集人体 20 个骨骼 骼关节点描述的人体动作差别是通过其关节点相
关节点的三维坐标信息,图 1(a)为简化人体骨架模 对位置变化来反应的。由于用原始关节点数据描
型。为不影响动作完整性的同时降低计算量,从 述人体动作是非常抽象的,而从运动序列中提取
Kinect 相机采集的 20 个关节点中选取了对人体动 关节点的静态和动态特征组成的融合特征可以更
作影响较大且具有明显变化的 13 个关节点进行特 形象地描述人体的动作。人体动作视频通常由一
征的构建,分别为:头、锁骨、左肩、右肩、左手 系列帧完成,静态特征即建立在每个帧上的特征。
肘、右手肘、左手腕、右手腕、腰、左膝盖、右膝 静态特征由肢体夹角和相对距离构成,肢体夹角
盖、左脚踝、右脚踝。经过选取的人体骨架模型如 指在某一帧内,2 个肢体之间形成的夹角,此特征
176 图像处理与计算机视觉 2021 年
可以非常清晰地描述人体的姿态。肢体夹角选取了 征,人体的一个动作可以表示为
人体运动时具有明显变化的 11 个角度进行计算, C [ Ei ,1 , Ei ,2 ,, Ei ,t 1 ] (7)
将肢体视作一个向量,从某一关节点指向另一关节 由于动态特征是基于原始数据 2 帧之间计算得
点,夹角 2 由向量 r2,3 和 r2,9 构成(图 1(b))。肢体夹 出的,因此,动态特征相比静态特征在时间维度上
角 j 为 少一个。
ri1 r j1 ri 2 r j 2 ri 3 r j 3 肢体夹角的角加速度特征构建中,同样取与肢
j arccos (2)
r r r r r r
2
i1
2
i2
2
i3
2
j1
2
j2
2
j3 体夹角构成中相同的 11 个角度 j,j=1,2,···11,加
速度特征基于这 11 个角度进行建立。肢体夹角的
其中, j 为 11 个肢体夹角,j=1,2,···,11;ri 为第一
角加速度特征计算为
个肢体向量;rj 为第二个肢体向量。基于此,人体
j ,t k j ,t
的一个动作可以表示为 n ,t (8)
k2
A [ j ,1, j ,2 ,, j ,t ] (3)
其中, j,t 为第 j 个夹角第 t +k 时刻与第 t 时刻 2 帧
其中,下标 1,2,···, t 为一个动作序列中的帧序列号。 之间在动作过程中的角加速度;k 为 2 帧之间的时
构建相对距离时可选取影响人体运动身体变 长; j,t 为第 j 个肢体夹角在第 t 时刻的角度。基于
化较大的 8 个关节点,即左手肘、右手肘、左手腕、 肢体夹角的角加速度特征,人体的一个动作可以表
右手腕、左膝盖、右膝盖、左脚踝、右脚踝。通过 示为
计算这 8 个关节点与腰关节点之间的距离,可得 8 D [ j ,1 , j ,2 ,, j ,t 1 ] (9)
组距离 di,9,i=4,5,7,8,10,11,12,13,代表 8 个关节点
基于骨架模型简化,融合静态特征和动态特征
的编号。考虑到不同个体的身高差异性,采取归一
使得原始骨骼数据中的 60 维数据降低为由 11 个肢
化思想,对得到的 8 组距离统一除以锁骨关节(编号
体夹角、8 个重要关节点的相对距离、人体模型中
2)与腰关节(编号 9)之间的距离 d2,9,以最大可能的
所有 13 个关节点的关节动能以及 11 个肢体夹角的
消除人体身高差异,具体计算为
角加速度构成的 43 维,在原始动作特征最大程度
di ,9 保留的情况下,降低了数据维度。在 4 个人体动作
i ,9 (4)
d 2,9 特征完成后,进行特征融合,即将静态特征中的第
其中, i,9 为 8 个关节点与腰关节点间消除身高差 一帧舍弃以达到与动态特征相同的帧数。基于静态
后的距离。di,9 为消除身高前的距离,腰关节点与锁 和动态特征组成的融合特征,人体的一个动作就可
骨关节点之间的距离取决于不同个体。这样,基于 以表示为
相对距离特征,人体的一个动作可以表示为 x [ A, B, C , D] (10)
B [i ,9;1,i ,9;2 ,,i ,9;t ] (5) 1.4 关键帧提取模型
在静态特征的构建中,虽然实现了对每一帧动 关键帧是原始动作序列中能够反映动作内容
作的表述,但是对于近邻帧之间的变化量却无法表 的帧。在实际中,人体的动作序列通常由很多帧构
达,使用动态特征,如关节动能和肢体夹角的角加 成,在动作识别中,这些帧对识别的贡献率并非相
速度等,可以更加有利地进行人体动作的分类。 同。因此,需剔除对一个动作序列变化不明显的帧,
关节动能特征描述选取人体骨架模型中人体 在提高动作识别的准确率的同时减少计算量。
动作时信息贡献较大的 13 个关节点(图 1),根据动 使用关节动能和肢体夹角的角加速度 2 个动态
作序列中相邻 2 帧的数据,关节动能的计算为 特征进行关键帧提取模型的构建。通过计算关节动
能中的每个关节数据与上一帧关节数据的欧氏距
1 ( x x ) ( yi ,t k yi ,t ) ( zi ,t k zi ,t )
2 2 2
Ei ,t m i ,t k i ,t 离,同时依据不同关节对动作判别的重要性赋予不
2 k2
同的权重,可得出动能部分加权后的欧氏距离 St1 ,
(6)
其中,Ei,t 为第 i 个关节点第 t +k 时刻与第 t 时刻 2 即
帧之间的动能,i=1,2,···13,k 为 2 帧之间的时长; 13
m 为动能计算公式中的系数,可视为常数;(x,y,z)
St1 i ( Ei,t 1 Ei,t )2 (11)
i 1
为关节点在三维空间中的坐标值。基于关节动能特 同理,计算肢体夹角的角加速度与上一帧的加
第2期 杨世强,等:基于 LSTM 神经网络的人体动作识别 177
3 实验仿真与分析
用 MSR Action 3D 及 UTKinect Action 3D 2 个
人体动作数据库对上述模型的可行性进行实验验
证。实验环境配置为:Intel i5-3337U 1.8 GHz,4 G
内存, Windows7 64 位系统。实验仿真使用基于
图 3 基于 Bi-LSTM 动作识别模型
TensorFlow 1.9.0 的框架,编程语言使用 Python 3.5
Fig. 3 Action recognition model based on Bi-LSTM
及 MATLAB R2017b 实现。
3.1 MSR Action 3D 数据库实验与分析
2.3 注意力机制
对于 MSR Action 3D 数据库划分为 AS1,AS2
动作识别中,人体所有参与模型建立的关节点
和 AS3 3 个组,采取 3 种验证方法对本文算法进行
都对动作的识别分类产生着影响,采取注意力机制
评估,Test One 取所有人做的 1/3 动作数据为训练
对这些关节点的重要性进行评判,突出人体动作特
集,其余 2/3 为测试集;Test Two 取所有人做的 2/3
征中的重要信息,降低了对于识别分类不明显数据
动作数据为训练集,其余 1/3 为测试集;Cross subject
的关注度。注意力机制通过加权求和,从而找出对
test 为交叉验证,取 1/2 的实验对象为训练集,1/2
动作识别最重要的关节点,提升整个识别网络模型
的实验对象为测试集。在 LSTM 神经网络的人体识
的计算效率。
别模型中,参数设置:学习率为 0.001,=0.001,
特征提取中,得到的人体动作序列是一个 43
模型迭代次数为 1 000,batchsise 为 5,网络输入节
帧数的矩阵形式,在识别中将动作帧统一按照最长
点为 43,隐藏层节点为 80。
处理。针对于网络输出的 l 个特征向量 hi,按照下
图 4 是在 MSR Action 3D 数据库的 AS1 数据集
式,变换后的向量 hʹ为
中,单独使用 Test One 测试方法得到的肢体夹角、
l
h i hi (22) 相对距离、关节动能和肢体夹角的角加速度时的识
i 1
别结果,红色为正确的动作类别,蓝色为识别的动
其中,hi 为调整前的特征向量; i 为权重,在注意 作类别。
力机制中,重点为计算出合理的 i。首先计算得分 从上述结果得出 4 个动作特征的识别率分别为
值 Scorei,即 52.59%,60.74%,83.70%和 82.22%,2 个动态特征
Scorei tanh(Wi hi bi ) (23) 识别率远高于 2 个静态特征识别率,但单一使用动
其中,Wi 和 bi 分别为权重和偏置,接下来将得到的 态特征也无法得到很高的识别率,有必要进行多特
l 个得分值 Scorei, (i=1,···,l),送入一个 Softmax 函 征融合进行动作识别。
数,得到最后的权重值 i,即 图 5 为 AS1 组中进行关键帧提取与未进行关键
i Soft max( Scorei ) (24) 帧提取的对动作识别率的影响。识别的最终结果使
第2期 杨世强,等:基于 LSTM 神经网络的人体动作识别 179
用混淆矩阵图进行表示,图中在对角线上为得到正
确识别分类的人体动作,反之,未在对角线上的为
错误分类的动作类别。在未进行关键帧提取的动作
数据中分类正确识别率为 90.37%,进行关键帧提取
后的动作正确识别率有所提高,为 91.85%。
图5 关键帧提取前后的识别效果对比((a)未进行关键帧
提取的动作识别;(b)关键帧提取后的动作识别)
Fig. 5 Comparison of recognition effect before and after
key frame extraction ((a) Action recognition without key
frame extraction; (b) Action recognition after key frame
extraction)
的主要参数进行优化,以获得良好的动作识别分类 学习率、批量数以及隐藏层单元的神经元数量在
效果。本文采用正交试验法对 Bi-LSTM+Attention+ A4B2C3 时,即当 3 个参数分别取 0.005 0,10 和 80
Dropout 神经网络中的 3 个主要参数:学习率、批 时,动作识别率最高为 95.56%。
量数以及隐藏层节点数进行优化。正交试验的因素 3.3 优化结果与分析
水平见表 3。 经正交试验法优化 3 个参数后,再对 MSR
表 2 MSR Action 3D 数据库三组数据识别率对比(%) Action 3D 数据库进行实验,动作识别分类结果与
Table 2 Comparison of recognition rate of three groups 其他现有人体动作识别分类算法进行对比,见表 5。
of data in MSR action 3D database (%) 表5 MSR Action 3D 数据库参数优化后识别率与
Test one Test two Cross subject test
参数 其他算法对比(%)
AS1 AS2 AS3 AS1 AS2 AS3 AS1 AS2 AS3
Table 5 Comparison of recognition rate between MSR
识别率 91.85 84.21 95.74 94.37 92.11 96.00 88.17 72.32 87.62
action 3D database and other algorithms after parameter
optimization (%)
表 3 试验的因素与水平
Test one Test two Cross subject test
Table 3 Factors and levels of the test 算法
AS1 AS2 AS3 AS1 AS2 AS3 AS1 AS2 AS3
因素 文献[12] 89.5 89.0 96.3 93.4 92.9 96.3 72.9 71.9 79.2
水平
学习率 批量数 隐藏层节点数 文献[13] 98.5 96.7 93.5 98.6 97.9 94.9 87.9 85.5 63.5
1 0.000 1 5 60 文献[14] - - - - - - 79.5 71.9 92.3
2 0.000 5 10 70 文献[15] 94.9 90.5 96.6 98.6 96.7 95.7 89.2 80.5 86.7
3 0.001 0 15 80 本文 95.6 89.5 97.2 98.6 93.4 98.7 89.3 82.1 89.5
4 0.005 0 20 90
5 0.010 0 25 100
从实验结果可以看出,对神经网络的学习率、
批量数以及隐藏层单元的神经元数 3 个参数进行优
根据表 3 中的各因素所取的水平设计正交试验
化后,基于 Bi-LSTM+Attention+Dropout 神经网络
(每种因素在不同的水平下),试验结果见表 4。
取得了较高的识别率,在 MSR Action 3D 数据库中
表 4 网络参数试验及结果 的 9 组实验中,有 4 组识别率高于相比的 3 种方法,
Table 4 Network parameter test and results 平均识别率达到 92.64%,高于其余 3 种 86.82%,
因素
试验编号 识别率(%) 90.78%和 92.16%,而在交叉验证的 3 组实验中,
学习率 批量数 隐藏层节点数
1 0.000 1 5 60 86.67 平均识别率达到 86.97%,高于相比的 4 种 74.67%,
2 0.000 1 10 70 85.93
78.97%,81.23%和 85.47%。UTKinect Action 3D 数
3 0.000 1 15 80 76.30
4 0.000 1 20 90 77.04 据库中也取得了 95.96%的识别率,表明深度学习算
5 0.000 1 25 100 62.96
6 0.000 5 5 70 88.89
法具备提取人体动作特征深层次特征的能力,有利
7 0.000 5 10 80 90.37 于动作识别。
8 0.000 5 15 90 80.00
9 0.000 5 20 100 80.74 在 UTKinect Action 3D 数据库中,使用优化后
10 0.000 5 25 60 62.22 的参数对人体动作进行重新实验,得到的最终识别
11 0.001 0 5 80 91.85
12 0.001 0 10 90 89.63 率与其他人体动作分类算法的对比见表 6。由于本
13 0.001 0 15 100 80.74
14 0.001 0 20 60 81.48
文采用的是深度学习算法,其对于数据量的要求较
15 0.001 0 25 70 64.44 大,而本文数据有限,故对识别率有一定影响。
16 0.005 0 5 90 91.85
17 0.005 0 10 100 91.85 表6 UTKinect Action 3D 数据库识别率与
18 0.005 0 15 60 80.00 其他算法对比(%)
19 0.005 0 20 70 81.48
Table 6 Comparison of recognition rate between
20 0.005 0 25 80 70.37
21 0.010 0 5 100 86.67 utkinect action 3D database and other algorithms (%)
22 0.010 0 10 60 91.85 分类算法 识别率
23 0.010 0 15 70 85.19 CNN+LSTM[16] 99.00
24 0.010 0 20 80 80.00 Lie group[17] 97.08
25 0.010 0 25 90 63.70 文献[18] 97.00
本文 95.96
采用直观分析法,根据 25 次正交实验的结果 文献[14] 95.10
文献[19] 94.90
计算得出 125 次全面实验中的最优参数组合。通过 文献[20] 93.50
计算可知,当人体动作识别网络中的 3 个主要参数 Random forests[21] 91.90
第2期 杨世强,等:基于 LSTM 神经网络的人体动作识别 181