易思恒,陈永辉,王赋攀,蔡 婷
(西南科技大学 计算机科学与技术学院,四川 绵阳 621000)
动作交互是自然人机交互的方式之一,在体感游戏,机器人控制等应用领域有着重要的研究意义[1,2].在自然人机交互中,动作交互大多需要借助深度传感器设备,采集人体的骨骼关节数据流,生成人体动作特征.早期的动作行为识别方法,常常基于隐马尔可夫模型(HMM)、动态时间规整(DTW)等分类器,对动作进行分类,这类基于数据手工计算特征的方式也被称为手工特征提取方法[3].此类方法在实时的人机交互过程中,使用预置的动作模板库对实时采集的动作进行识别,动作模板库的质量直接影响着识别的结果.
近年来,由于深度学习算法能够利用神经网络模型自动从动作数据集中提取特征,以此完成动作的分类识别,基于深度学习的人体动作识别研究越来越多.从数据来源区别,基于深度学习的动作识别算法可分为基于视频的动作识别方法[4-7]和基于骨骼关节点的动作识别方法[8,9].基于视频的动作识别方法将视频流以图片帧的形式传入神经网络进行训练,视频序列包含丰富的时间信息,神经网络能够很好的从时间流和空间流分别提取特征,利用特征融合获得更好的分类结果,但此类方法容易受到背景、光照等影响.基于骨骼关节点的动作识别方法,输入数据为关节点的三维坐标数据,不易受光照、背景的影响,鲁棒性较高.无论是卷积神经网络(CNN),长短时记忆网络(LSTM)还是图卷积神经网络(GCN),都能在大型的骨骼关节数据集,如NTU RGB-D[10]、Kinetics[11]上有很好的表现.
深度学习算法使用动作数据集进行训练,并利用训练好的模型进行预测的方式,很好地解决了传统交互动作识别中预置动作模板库影响识别率的问题.为了保障人机交互的实时性,深度学习方法必须能够准确识别实时采集的动作数据.现有的研究中,用于交互动作识别的数据集大多为自建,或者选择公开数据集中的部分动作数据来实现人机交互.目前广泛使用的NTU RGB-D数据集由深度传感器采集,但是作者未公布具体的采集方式.
本文针对上述问题,创建了交互动作数据集Interactive Action RGB-D(IARGB-D),该数据集由一台静态Kinect采集正面数据,由20个人员对10个代表性人机交互动作重复执行3次获取,根据高度与距离的关系,设定6个符合人机交互场景的配置,一共含有3600组数据,数据格式与NTU RGB-D数据集一致.NTU RGB-D数据集主要包含大量日常生活动作,而IA RGB-D针对人机交互的实际需求,归纳和采集了常见的人机交互动作,能更好地用于体感交互应用或者机器人控制应用.
Cheng[12]等人提出的位移图神经网络(Shift-GCN)与大多数图卷积神经网络不同,它使用位移图运算,在保障准确率的同时获得了较高的运算效率.Shift-GCN所有的位移操作,都是在特征通道上完成的,但是却未对特征通道进行处理或者优化.针对这个问题,本文提出了一种ASGCN网络,引入通道注意力机制对Shift-GCN进行了优化,在IARGB-D数据集上进行实验,识别准确率有所提高的同时,并未明显增加计算复杂度.
本文的主要贡献有以下3个方面:1)建立了关于人机交互的交互动作数据集,使用多种神经网络对其进行测试,验证了其正确性和有效性,能够有效的帮助深度学习方法在人机交互领域的研究;2)提出了基于注意力的位移图神经网络,通过将高效通道注意力模块与Shift-GCN结合,增强其提取通道特征的能力,在交互动作数据集上的识别准确率高于多数神经网络;3)将传感器实时采集的数据输入训练好的ASGCN网络中,与传统的交互动作算法对比,基于深度学习的方法拥有比传统机器学习方法更高的准确率,并且时间效率控制在可接受范围内.
由于人体的骨骼和关节点与图的边和节点高度相似,图卷积神经网络(GCN)在基于骨骼的动作识别研究中表现优异.Yan[13]等人首次将图卷积神经网络运用到骨骼动作识别之中,提出了时空图卷积神经网络(ST-GCN),在空间上对人体骨骼和关节点进行图卷积,得到由根节点、向心节点、离心节点构成的领接矩阵,在时间上将连续帧的相同节点连接构成图,从空域和时域中分别提取特征信息,利用融合特征进行动作分类;华钢等人在ST-GCN骨骼模型的基础上,通过优化骨架行为建模方式,增加空间差分信息和时间差分信息,提出了一种基于多流CNN骨架识别的模型;Plizzari C[14]等人利用transformer自关注算子来建模骨骼关节点之间的依赖关系,空间域上关注身体不同部位的帧内关系,时间域上关注不同帧之间的相关性;Shi[15]等人在ST-GCN的基础上,引入骨骼长度和方向等骨骼数据的二阶信息,将骨骼数据的图形结构参数化,并可以随着网络的训练不断优化,增加了图卷积的灵活性;Cheng[12]等人将Shift-CNN中的位移操作融入图卷积之中,跟ST-GCN的固定图结构不同,Shift-GCN由简单的位移图运算和轻量级点卷积构成,在保证高准确率的同时极大降低了计算复杂性;Peng[16]等人借助神经网络架构搜索(NAS),将关节点之间的信息提取之后,使用多个动态图模块来扩充搜索空间,并且引入多跳模块和记忆进化策略来自动搜寻网络的最佳架构;Liu[17]等人通过消除较近和较远距离的关节领域的冗余依赖关系,来解决图的邻接矩阵的有偏加权问题,并利用统一时空图卷积模块G3D直接对跨时空的关节的关系进行建模;Chen[18]等人更加关注人体骨架的拓扑结构,通过细化具有特定通道关联的共享拓扑,得到人体的通道级拓扑结构,并且引入了很少的额外参数,降低了通道拓扑建模的难度.
基于人机交互的动作识别不仅要求识别算法有较高的准确率,还对算法的实时性有着较高的要求,输入网络的数据能够由姿势估计算法或者深度传感器实时采集得到.大多数基于神经网络的方法为了提高准确率,网络结构设计较复杂[13-15],时效性较差.张继凯[19]等利用VGG和两分支的卷积神经网络检测人体关节点,进行姿势估计并建立二维动作数据集,然后利用堆叠模型识别动作,从而实现实时的动作追踪和手势交互;罗适[20]等用Openpose[21]实时获取人体关节数据,然后将动作特征分为短期、中期和长期,送入TS-LSTM网络,设计了基于Web 3D的人机交互动作识别系统;桑海峰[22]等基于传统的手工特征提取方法,提出了快速动态时间弯曲距离算法(F-DTW),利用Kinect获取人体关节点并建立特征向量,辅以下界函数和提前终止技术,解决了动作随意性对识别带来的影响,较传统的手工特征提取算法,提高了识别速度,减少了人机交互的时延;Zhong[23]等人通过对高分辨率信息进行时空融合和自适应特征提取来增强区分相似动作的能力,在机器人交互应用上优于大多数算法,并且在响应时间上与语音交互相差无几;Akkaladevi S C[24]等人提出了一种面向工业应用的人机交互动作识别方法,使用随机森林算法和关键描述符结合,具有低延迟,灵活度高和可重新分配的优点;Cai[25]等人通过马尔科夫随机场将人体骨骼的每一个肢体编码成一种方法,使用多通道多实例方法进行识别,大幅降低了动作识别的响应延迟.
以上基于人机交互的动作识别算法均从自建数据集或者公开数据集中选取特定动作构建人机交互系统,但是多数自建数据集并未公开使用,并且公开数据集大多未公开具体的采集过程,所以建立一个标准的人机交互动作数据集是十分必要的.
ST-GCN首先将图卷积神经网络运用到基于骨骼关节点的动作识别,由于骨骼和关节点与图的结构十分契合,实验结果远超CNN,LSTM等传统的深度学习方法,后续的大量研究工作以ST-GCN为基础展开.但ST-GCN存在两方面的缺点[12]:1)计算量大,针对一个样本数据而言,ST-GCN包括4.0GFLOPs的空间域图卷积操作和12.2GFLOPs的时间一维卷积操作.2)ST-GCN的空间和时间感受野都是固定的,需要人为预先定义,虽然使用自适应的图结构能够对图卷积神经网络起着一定的优化作用,但是网络的表达能力仍然会受到图结构的限制.
Shift-GCN针对以上问题,提出了用Shift卷积代替图卷积,无需预先定义的图结构,用简单的位移操作和逐点卷积取代复杂的图卷积操作,大大减少了计算复杂度.在空间结构的图卷积上,Shift-GCN包括局部Shift图卷积和全局Shift图卷积.由于局部Shift图卷积只考虑了人体的固定物理结构,难以挖掘不相邻的身体结构如两手之间的潜在联系,并且不同关节的临近节点数量不同,在位移操作过程中可能会导致某些节点特征信息的丢失.全局Shift图卷积在局部图卷积的基础上,去除了人体结构物理连接的限制,从而将单帧的骨骼关节图变成了完全图,每一个关节点都能与其他所有节点相连接,得到的特征图如图1所示.
图1(a)展示了人体骨骼的关节点图,图1(b)选取了其中7个代表性人体关节点,在空间域上的Shift操作过程,其中骨骼关节完全图只展示了1号关节点的连接方式,其余关节的与之类似.利用全局空间Shift操作,可以获得空间域上的骨骼关节特征图.一个完整的骨骼序列由T帧构成,需要在时间域上对特征图进行堆叠,如图1(c)所示,将通道平均划分为2h+1份,每份的时间位移距离为-h,-h+1,…,0,…,h-1,h,通过时间位移,每帧均能够从相邻帧获取特征信息,卷积过程采用传统的Shift卷积[26].
图1 全局Shift位移操作后的特征图Fig.1 Characteristic diagram after non-local shift operation
注意力机制(attention)能够让神经网络更加关注重要的区域,从而提升网络的性能.SE-Net[27]首次提出一种有效的通道注意力机制,依据各个特征通道的重要程度,然后针对不同的任务增强或者抑制不同的通道,让神经网络更加高效地提取通道特征.Wang[28]等人针对SE-Net中通道降维和跨通道交互对通道注意力的影响,提出了更加有效的高效通道注意力(ECA)模块,ECA实现了大小为k的快速1D卷积,其中k表示有多少个相邻通道参与该通道的注意力预测,如图2所示,ECA能够在避免维度特征缩减的同时,增加不同通道间的信息交互.
图2 高效通道注意力(ECA)模块Fig.2 Efficient channel attention(ECA)module
神经网络中的卷积操作本质上是将空间与通道信息融合的过程,不同的特征通道可能包含有不同重要性的信息,Shift-GCN在空间结构上通过特征通道的位移形成新的特征图,但是未关注通道信息本身.针对这个问题,本论文提出了一种基于高效通道注意力的位移图神经网络.区别于大部分基于通道注意力的网络,本方法在特征数据输入阶段引入通道注意力模块,为每个骨骼关节点的通道数据赋予不同的权值,再输入位移神经网络.
(1)
在全局Shift卷积操作中,第i个通道的位移距离为imodN.
在ECA模块中,针对通道特征f,计算其相邻的k个通道的快速一维卷积计算权重,如公式(2)所示:
ω=σ(C1Dk(f))
(2)
由于整个计算模块只涉及k个参数,计算量大幅降低,而且更注重局部通道直接的信息交互.
本文将ECA模块融入Shift-GCN网络中,提出了基于注意力的Shift神经网络(ASGCN).
引入ECA模块之后,ASGCN的图卷积公式(3)为:
(3)
图3 基于ECA的Shift操作Fig.3 Shift operation based on ECA
ASGCN由1个BN层,10个ASGCN网络层(A1-A10),1个全局平局池化层和一个Softmax分类层构成,如图4所示.其中A1-A10为相同的结构,包含一个通道注意力模块,一个空间Shift模块,一个时间Shift模块和一个残差连接.在网络的输入端,用一个BN层处理输入的骨骼关节数据,加速网络的收敛速度.然后将特征矩阵送入10个ASGCN网络层,原始输入数据的通道数为3,前4个ASGCN网络层的输出通道为64,步长为1;中间3个网络层输出通道都为128;最后3个网络层的输出通道为256.其中在A5和A8层,步长设置为2.之后将输出的特征矩阵送入全局平局池化层(GAP)来得到一个固定大小的特征向量.最后由一个Softmax分类器进行动作的分类和预测.
图4 ASGCN结构Fig.4 Structure of ASGCN
4.1.1 数据集背景介绍
人机交互中的动作识别主要应用在体感游戏、虚拟现实和机器人控制等方面,此类动作大多是特定的动作,如在机器人控制中举起左手控制机器人向左转弯、体感游戏中设定的舞蹈动作等.使用传统的手工特征提取方法,通常需要自建动作模板库,每类动作只有少数几个样本,算法的识别精度很大程度上取决于模板库的优劣,而增加模板库的样本,则会大大增加识别时间.基于深度学习的动作识别方法能够使用神经网络从大量样本中学习,利用训练好的模型,对输入的数据进行预测,具有较高的动作识别准确率.现有常用于深度学习的数据集,如NTU RGB-D[10]、NTU RGB-D 120[29],Kinetics[11]等,虽然包含大量的日常生活动作,但能够用于人机交互的动作较少;另外如G3D[30],MSR Action3D[31]等数据集,主要为人机交互动作,但采集这些数据集的设备大多已未再使用,现在大多数的人机交互实验都使用深度传感器设备或者姿势估计算法采集人体骨骼数据.
4.1.2 Interactive action(IA RGB-D)数据集
为了更好的研究动作识别在人机交互中的应用,创建了Interactive action(IA RGB-D)数据集,并且在公开网站上发布[注]https://github.com/MosasaurYi/IA-RGB-D.该数据集按照NTU RGB-D数据集的标准建立,使用KinectV2采集骨骼关节点数据,主要包含了人体25个关节点的三维坐标.
IA RGB-D数据集包括以下内容:
受试者:有20名受试者参与本次数据集的采集,他们年龄在18-30岁之间,拥有不同的身高、体型和性别,在数据集中以P001-P020进行编号.针对每一个受试者,在开阔的场地中,使用一台KinectV2采集数据,这一点与NTU RGB-D中使用3台设备进行采集不同,在数据集中以C001进行编号.每个受试者会对每一个动作执行三遍,在数据集中以R001-R003编号.
交互动作:选取了10个常用的人机交互动作进行录制,这些动作具有较强的分辨度,能够很好的使用到人机交互的应用中,这些动作包括有:平举双手、抬起左手、抬起右手、双手画叉、抬起左脚、抬起右脚、蹲下、挥拳、双手合十、挥手,在数据集中以A001-A010编号.
传感器设置:从NTU RGB-D中Kinect设备高度和距离的组合中选取了6组能够很好用于人机交互场景的设置编号,具体的配置如表1所示.在数据集中以S001-S006来编号.
表1 Kinect传感器高度与距离配置表Table 1 Height and distance configuration of Kinect sensor
数据文件:针对每一组数据,即由一个受试者在某一传感器配置下完成一次一个动作所产生的所有数据,以详细的编号格式作为文件名,如S001C001P001R001A001.文件以TXT文本文件形式存储,第1行存储该动作所有帧的个数,之后按照帧的顺序,以第1行为当前帧数,后面25行按照关节点顺序排列,以此循环存储所有帧的信息.采用了KinectV2标准的人体骨骼关节点编号顺序,如图1(a)所示,每一行存储关节点的三维坐标.所采集的数据直接由Kinect SDK获取,没有做任何的修改,所有的操作包括数据归一化等等均在实验阶段完成.使用Unity3D搭建采集软件,使用了Kinectv2.9.unitypackage插件,在开阔无遮挡的环境中采集所有数据.
本文使用近几年公开的基于骨骼关节点的神经网络来对IA RGB-D数据集进行训练与测试,其中在数据处理阶段,采用NTU RGB-D相同的归一化处理方法,即将相机坐标系转换为人体关节坐标系,人体关节图如图1(a),首先定义1号关节点为坐标原点,然后将4号关节点与8号关节点相连作为X轴,1号关节点与0号关节点相连作为Y轴,以X×Y轴为基础建立Z轴,最后,以1号关节点与0号关节点的距离为基础,来扩展其他所有的关节点.
4.2.1 IA RGB-D数据集实验结果
使用了7种神经网络来对IA RGB-D进行训练与测试,未改动源代码,只在数据处理阶段适配了IA RGB-D的数据格式.使用15个受试者的数据即P001-P015作为训练集,剩下的作为测试集,记录了准确率最高epoch,用它的参数数据加载模型来进行预测,并记录了单个动作预测所需的平均时间.除此之外,还在NTU RGB-D的CS数据集上对本算法和其余7种神经网络算法的准确率和单个动作运行时间进行了测试,实验结果如表2所示.
表2 多种神经网络在IARGB-D数据集上的准确率与预测单个动作的平均时间Table 2 Accuracy and prediction time of single action of various neural networks on IA RGB-D
从实验中可以看出,由于数据集的数据量降低,各个网络在IA RGB-D的准确率都在95%以上,其中ASCGN的准确率最高,MS-G3D和GCN-NAS也拥有较高的准确率.NTU RGB-D数据集包含了大量日常生活动作,只有少量可用于人机交互的动作,因此侧重于交互动作识别的ASGCN网络,在NTURGB-D数据集准确率有降下降,在该数据集上MS-G3D准确率最高.在时间效率方面,网络复杂度较高的ST-TR在两个数据集上预测单个动作时间最长,而Shift-GCN和ASGCN网络复杂度低,预测单个动作时间明显少于其他算法.
通过上述实验,综合验证了IA RGB-D数据集的正确性和有效性,并且其他用户可以根据自身的需求,增加该数据集的动作种类或采集单个动作数据用于预测,具有一定的普适性,在实时人机交互应用中有积极的研究意义.
4.2.2 Attention Shift Graph Convolution Network实验结果与分析
从表2中可知由于Shift-GCN的网络复杂度较小,所以预测单个数据的时间也较少,而在注重实时交互的人机动作交互中,时间效率也是尤为重要的指标之一.综合准确率和时间效率,本文选择Shift-GCN作对比实验.
实验环境采用NVIDIA TITAN RTX作为GPU和cuda9.2加速神经网络的训练,操作系统为Windows10,使用Pytorch深度学习框架和VSCode软件进行开发,实验中所有训练的Batchsize为32,采用动量为0.9的随机梯度下降算法进行优化,权重衰减为0.0001,网络初始学习率设为0.1,epoch为60,学习率分别在20,40次训练时下降10%.ASGCN和Shift-GCN在IA RGB-D数据集上的详细准确率对比如图5所示.
图5 准确率对比Fig.5 Accuracy comparison
由实验结果可以看出,融入通道注意力的ASGCN在数据集上的准确率上升了1%左右,并且在大部分的训练过程中准确率都较Shift-GCN有所提升.
除此之外,用两者准确率最高的参数值加载模型,然后用模型对测试集进行测试,画出了两者的混淆矩阵,能够更直观地展示ASGCN对Shift-GCN的改进,如图6所示.
图6 混淆矩阵Fig.6 Confusion matrix
可以看出,ASGCN和Shift-GCN对IA RGB-D数据集中相似性较高的动作,如挥手和抬手,会产生识别错误.Shift-GCN对挥拳和双手画叉这类动作识别正确率较低,而ASGCN对这类动作的准确率有了很大的提升.由这些对比中可以很好的验证在IA数据集上,ASGCN拥有比Shift-GCN更好的性能.
在实际人机交互的应用中,动作交互大多还是采用的传统的手工特征提取算法.本节将ASGCN与手工特征算法DTW在实时的人机交互应用上面进行了对比分析,实验采用由Unity3D和Kinect for Unity插件搭建人机交互应用,由深度传感器统一采集数据,对比识别准确率和识别效率.
本次实验中,针对IA数据集中的10个动作进行实验,由20个受试者对每个动作进行3次测试,每个动作共60次测试,记录下了每个动作在两种算法上的准确率和平均识别时间,如表3所示.
表3 DTW与ASGCN的准确率与识别时间对比表Table 3 Comparison of accuracy and recognition time of DTW and ASGCN
从表中可以看出,使用神经网络的方法在准确率上比传统的手工特征提取方法准确率高很多,其中手工特征提取方法对蹲下,挥手,双手画叉,双手合十等动作的识别率较差,主要是因为这类动作比较相似,在DTW算法的动作数据库中每种动作只有3组标准动作来进行对比,一些细微的动作差距,导致了在相似动作之间,识别准确率并不高.还有如蹲下动作,由于动作幅度较大,数据采集过程中关节点的坐标波动也更大,也导致了识别准确率较为低下.而基于深度学习的方法,由于模型对大量的数据进行了训练,能够自动从采集的数据中收集特征,整体的准确率较高,但是对一些过于相似动作如挥手和抬手,还是存在一些错误.总体而言,使用深度学习的方法运用在人机动作交互的应用上面,识别效果比传统的手工特征提取方法更加优秀.
本文针对现有动作数据集中,对人机交互动作关注度较少等问题,创建了一种全新的交互动作数据集——IA RGB-D,该数据集由简单的交互动作组成,对于人机交互应用如体感游戏,机器人控制等做出了一定的贡献.用近几年的优秀的图卷积神经网络对该数据集进行训练与测试,验证了其有效性,并针对其中准确率与识别效率较高的位移图卷积神经网络进行了改进,将高效通道注意力模块融入其中,提出了一种基于注意力模型的位移神经网络(ASGCN).实验证明,在IA RGB-D数据集上,所提出的ASGCN比原来的Shift-GCN有更高的准确率,同时识别效率也是多种神经网络中较为优秀的.同时将该模型与传统手工特征提取方法在人机交互应用上对比,本文的方法在准确率上远远高于传统的方法,但是由于神经网络的复杂,时间效率并未有太多的提升.在未来的工作中,会尝试对基于深度学习方法的人机交互应用的时间效率进行优化,并且对IA RGB-D数据集进一步的扩展,加入更多的交互动作.