APP下载

基于多尺度多分支特征的动作识别

2022-11-24韩广良

液晶与显示 2022年12期
关键词:关节点骨架尺度

张 磊,韩广良

(1.中国科学院 长春光学精密机械与物理研究所,吉林 长春 130033;2.中国科学院大学,北京 100049)

1 引 言

人体动作识别是指根据输入的动作时间序列(RGB图像序列或人体骨骼点序列)进行分析,从而识别出该动作序列所进行的动作类别,是近年来的研究热点之一。人体动作识别在智能监控系统、人机交互、动作辅助矫正等诸多领域有着广泛的应用前景。同时由于人体骨架序列的数据量极小,远小于RGB视频序列,且结构简单、计算速度快,几乎不会受到背景的影响,所以非常适合于动作识别的应用。

在早期的研究中,研究人员常通过人为设计多种动作特征来代表的人体的运动轨迹。Dalal等首先提出使用光流直方图的方法来获取运动轨迹[1],随后Dalal等又提出了方向梯度直方图的方法[2]。在此基础上,Wang等提出了密集轨迹法(Dense Trajectory,DT)及其改进方法增强的密集轨迹法(improved Dense Trajectory,iDT),通过大量采样视频中随机的像素点追踪时间维度的该像素点的运动轨迹[3-4]。由于人工设计的特征工作量较大、准确率低,所以基于神经网络的方法逐渐应用于动作识别中[5]。Du等于2015年首次提出了将卷积神经网络(Convolutional Neural Net⁃work,CNN)应用于骨骼动作识别的SK-CNN,将人体骨架序列结构归一化为固定大小输入到CNN网络中进行动作识别[6]。由于人体骨架序列与CNN的输入数据结构存在差异,Wang等提出了关节轨迹图(Joint Trajectory Maps,JTM),将骨架数据投影到3个正交平面从而得到3幅2D骨架数据,归一化后送入预训练好的CNN进行动作识别[7]。Li等借鉴共现特征学习的方法提出了HCN网络[8]。基于CNN的方法往往参数量较大,也存在遮挡、视点变化等问题,所以基于循环神经网络(Recurrent Neural Network,RNN)和基于图卷积网络(Graph Convolution Neural Network,GCN)的算法[9-10]也开始逐渐出现。Shahroudy等提出利用长短时记忆网络(Long Short-Term Memory,LSTM)进行动作识别,但无法获得具有竞争力的结果[11]。由于图卷积网络(Graph Convolution Neural Network,GCN)对具有拓扑结构的人体骨架数据处理十分有效,所以Yan等首先在GCN的基础上提出了ST-GCN,利用图卷积提取人体动作的时空特征[12]。Li等在ST-GCN的基础上提出AS-GCN,揭示了关节点之间的潜在关系[13]。

基于人体骨架序列的动作识别相比于基于RGB视频的方法具有数据量小,不受外界环境、光照、人体外貌等因素影响,鲁棒性高的优点,成为当下的研究热点。而在基于骨架的方法中,基于CNN的方法是主流,也取得了较好的成果,但其网络大多依赖于规模较大的网络,计算量较大,且难以直接处理人体骨架序列这样的拓扑结构。基于RNN的方法一般识别准确率不如其他方法,并且随着神经网络层数的不断加深,极易出现梯度消失的现象,使得训练的准确率突然降低。基于GCN的方法具有CNN的优点,同时由于引入了人体拓扑结构的先验知识,能够进一步提升识别性能。除此之外,现阶段的算法尚不能在多种运动特征之间发现更深层次的关系,并且对于提取到的多种运动特征信息都很难得到高效的应用。

针对以上问题,本文首先根据动作识别网络模型的多分支输入和原始数据的结构,对原始数据进行了特征增强,将多分支的输入形式改进为多分支的融合特征,并经过多个网络模块后融合多层次多种类的特征信息,从而增强了多特征之间的相关性,从特征层面更全面地描述一个人体骨架序列。其次,本文通过多尺度特征对时序卷积进行了改进,并与图卷积神经网络结合,使得网络模型能够提取不同深度的时间特征和空间特征,提高了动作识别的准确性。通过残差连接图卷积神经网络和多尺度时序卷积,在提取到深层次特征信息的同时很大程度上解决了网络退化等问题。

2 算法的构成及原理

2.1 原始数据的特征增强

原生的人体骨架序列数据在采集时可能存在数值缺失、数值范围小等问题,同时由于设备精度问题使得骨架序列在时间维度上存在与动作无关的抖动,并且在不同的动作类别中,骨架序列的帧数也不同。针对以上问题,本文分别在时间和空间两个维度进行如图1所示的特征增强。归一化、坐标转换、深度优先树遍历等基于空间维度的特征增强重点关注于关节点的位置坐标和联系上,Savitsky-Golay平滑滤波、插帧等基于时间维度的特征增强重点关注于骨架序列帧间的联系。

图1 特征增强处理方法Fig.1 Feature enhancement processing methods

数据集中的关节点坐标的大小常位于小数点后一位或两位,使得动作的关节点过于密集,不利于动作类别的预测。最好的处理方法是将整体坐标所处的区间放大,所以采用归一化的方式将关节点坐标的区间扩大至(-1,1),新坐标可表示为:

其 中Jt,c、Jt,c,max、Jt,c,min分 别 表 示 在 某 一 动 作 中t时刻x、y、z分量上的坐标。

原始的人体骨架数据沿着时间维度运动时会存在一些与动作无关但影响类别判断的噪音,这一噪音是人体骨架数据在可视化时运动中关节点的不自然抖动。针对这一问题,本文使用Savitsky-Golay滤波器进行滤波。Savitsky-Golay滤波器是一种在时域内基于局域多项式最小二乘法拟合的滤波方法,这种滤波器最大的特点在于在滤除噪声的同时可以确保信号的形状、宽度不变。Savitsky-Golay滤波器通过多项式对移动窗口内的数据进行多项式最小二乘拟合,算出窗口内中心点关于其周围点的加权平均和,可表示为:

其中Xi和Xi*为滤波前、后的数据,Wj为移动窗口平滑过程中的权重因子,窗口长度为2r+1。窗口长度是平滑滤波中最重要的参数,若窗口长度过小则噪音无法减弱,若窗口长度过长则会将原本正常的动作变化幅度减弱甚至消减至静止,取r=4。

接着为了确保关节点的参考坐标系一致,同时减少采集过程中设置的相机多视角产生的影响,以图2所示的骨架结构及编号为基础,将每个动作序列中的第一帧骨架的脊柱中心点(编号20)设置为参考坐标系的原点,脊柱(编号0和1)所在的直线作为z轴,两侧肩膀(编号4和8)所在的直线作为x轴。原始的骨架结构数据中各个类别的动作帧数不是统一的,多则接近300帧,少则少于50帧,无法直接输入到后续网络中。针对这一问题,本文采用插帧的方式,将帧数设置为300,采用三次样条插值法进行处理。若区间[a,b]可分为n个 区 间[(x0,x1),(x1,x2),(x2,x3),…,(xn-1,xn),],其中a=x0,b=xn,在n个区间中的每个区间都各自存在三次样条函数Si(x),可表示为:

图2 人体骨架结构及编号Fig.2 Human skeleton structure and number

其中ai、bi、ci和di为Si(x)在n个 区间中的第i个小区间的参数。Si(x)必须满足3个条件:在每个小区间(xn-1,xn)内Si(x)都是一个三次方程;满足插值条件,即xn必须在S(x)函数的曲线上;Si(x)的曲线是光滑的,即S(x)、S′(x)、S″(x)是连续的。可计算得到:

其中mi=S″i(xi),hi=xi+1-xi。

为了进一步有效学习人体骨架中关节点的空间关系,引入了深度优先树遍历[14]。输入格式中一对相邻关节的空间相关性与连接这一对关节的边有关,若这对关节在物理上是相连的,则空间相关性就强。在动作识别中,空间相关性一般是指人体骨骼结构中相邻关节点之间的联系紧密程度。空间相关性越强,最后所反映的动作识别准确率越高。原始数据的输入形式是将抽象的关节点坐标序列转化为T×N×C的矩阵,其中T为人体动作序列的帧数,N为人体骨架的关节点数量,C为关节点坐标的维度数。在代表关节点数量的N维度中,人体的25个关节是以0,1,2,3,…,23,24这样顺序编号进行排列的,如图3(a)所示,相邻的关节在图2所示的结构中基本上是不相连的,关节之间便没有相关性。根据这一理论,可将人体骨架结构改变为图4所示的树形骨架结构图。根据深度遍历,按照从上到下、从左到右的顺序,在输入数据的N维度上,人体的关节可排序为1,20,2,3,2,20,4,5,6,7,22,21,22,7,6,5,4,20,8,9,10,11,24,23,24,11,10,9,8,20,1,0,12,13,14,15,14,13,12,0,16,17,18,19,18,17,16,0,1,N由原来的25变为49。

图3 数据输入的原始和改进格式Fig.3 Original and improved formats for input

图4 树形骨架结构图Fig.4 Structure diagram of tree structure skeleton

2.2 多分支输入

经过特征增强后,单一样本中的人体骨架数据结构可表示为四维向量(C,T,V,M),其中C表示骨架关节点的x、y、z分量;T代表骨架数据的帧数,经过特征增强后固定为300帧;V代表每一帧中的人体关节点数量;M代表每一个动作的参与人数。参考ResGCN[15]中关节点坐标(Joints)、运动向量(Velocities)和骨节(Bones)三分支输入,为了增加输入数据的空间相关性,本文将三分支输入修改为Bone length+Joints、Bone length+Ve⁃locities和Bone length+Bone angle。

多分支输入的操作需要将特征融合在一起,从而将经过一定深度的神经网络提取到的特征拼接在一起,此时的特征在经过多层神经网络后具有一定的深层信息,而特征融合的具体位置在哪一层神经网络之后则需要进一步的实验与研究。

2.3 多尺度时空卷积

本文网络模型的基本结构由可提取时间和空间特征的多尺度时空卷积构成。多尺度指的是对网络中不同深度的特征进行采集融合。多尺度时空卷积模块由负责提取时间特征的多尺度时序卷积和负责提取空间特征的图卷积组成,使得网络能够分别提取网络中的时间特征和空间特征。

本文中的多尺度时序卷积模块如图5所示。网络模块中的第一层是卷积核为1×1的普通卷积,其作用是降低输入数据的通道维数;模块中的第二层为膨胀系数分别为1,2,3的膨胀卷积[16],卷积核为m×1。原本大小为m×n的卷积核要对两个维度的特征进行处理,但当n=1时,卷积核只会处理一个维度的特征,因此通过这种方式来只对时间维度进行特征提取。多尺度特征通过设置不同的膨胀系数来体现,当膨胀卷积拥有不同的膨胀系数时,卷积核的感受野也随之变化,卷积所能提取到的特征也会有所区分。膨胀卷积的优点在于在保持参数个数不变的情况下增大了卷积核的感受野,让每个卷积输出都包含较大范围的信息,同时它可以保证输出的特征映射的大小保持不变。

图5 多尺度时序卷积模块结构图Fig.5 Structure diagram of multi-scale temporal convolution

输入特征在经过多个并列的膨胀卷积提取多尺度时间特征后,使用Concat函数进行拼接,得到的特征通道维度与输入一致,此时使用残差将输入特征与输出特征相连接,使得输出同时具有浅层网络的特征表现和深层网络的特征表现,有助于解决梯度消失和梯度爆炸问题,在网络层数不断加深的同时,又能保证良好的性能。

GCN处理的主要对象是骨架数据、交通网络数据、化学分子结构数据等具有一定拓扑结构的数据。在动作骨架的每一帧中,图卷积可表示为

其中fin和fout分别代表输入和输出特征,A表示邻接矩阵,I为单位矩阵,W为权重矩阵表示归一化邻接矩阵。

本文图卷积的邻接矩阵使用距离分区(Dis⁃tance partitioning)的方法。对于一个庞大的图结构而言,不可能把所有的节点特征直接相加。为了划分图结构中每一个节点的邻居节点,即骨骼结构中节点附近的节点,采用距离分区的方法将不同的邻居节点编为不同的序号,如图6所示,同一个序号的邻居节点看作一个邻居子集,也就形成了多个邻接矩阵。本文中分区子集设为4个,即距离目标节点的距离分别为0,1,2,3。距离为0为节点自身,位于邻接矩阵的一个子集中;距离为1的节点为与目标节点直接相连,位于邻接矩阵的第二个子集中;距离为2和3的节点则分别位于邻接矩阵的第三和第四个子集中。

图6 距离分区的划分原理Fig.6 Division principle of distance partitioning

由此得到的邻接矩阵可视化结果如图7所示。使用了距离分区的分区策略后,图卷积可表示为:

图7 邻接矩阵可视化结果Fig.7 Visualization results of adjacency matrix

其中j=0,1,2,3,表示邻接矩阵的子集;M为权重矩阵,使用了距离分区的邻接矩阵依照距离的大小为子集划分不同的权重。基于距离分区的分区策略能够建模如关节之间的相对平移等关节点的局部差异性,增加图卷积提取空间特征的多样性。

多尺度时空卷积模块的结构如图8所示。在一定程度上,网络的层数越深则表达能力越强,越能够提取到深层次的特征信息,性能也越好。但随着网络深度的增加,也带来了许多问题,如梯度消散、网络退化等,残差连接可以在很大程度上解决这一问题。

图8 多尺度时空卷积模块结构图Fig.8 Structure image of multi-scale spatial-temporalconvolution

2.4 整体网络结构搭建

整体网络结构如图9所示,由多尺度时空卷积模块堆叠而成。原始的人体骨架序列存在诸多缺陷,特征提取阶段通过基于时间维度和空间维度的特征增强加强了数据的表达能力。将处理好的数据以Bone length+Joints、Bone length+Velocities和Bone length+Bone angle的 融 合 特 征的方式分别输入到三分支中,利用改进的多尺度卷积提取特征并融合在一起。动作分类阶段将拼合后的数据输入带有注意力机制的多尺度卷积进行多次训练,最后进入分类器进行动作分类。

图9 网络结构示意图Fig.9 Schematic diagram of network structure

为了更加全面地认识本文所设计的网络结构,本节详细给出了多尺度时空卷积模块的结构和在每一层所使用的参数,如表1所示。表1中Conv_gcn代表图卷积模块,Conv_tcn代表多尺度时间卷积模块,包含多个不同尺度的卷积。

表1 多尺度卷积网络参数表Tab.1 Network parameter table of multi-scale convolution

3 实验结果与分析

3.1 实验环境

本实验使用的数据集为NTU RGB-D 60和NTU RGB-D 120的人体骨架结构数据。在RTX 3090上进行训练,显存为25.4 GB。所利用的环境为Python 3.6,PyTorch 1.10.0。

在训练过程中,所有需要学习的参数均用Xavier方法进行初始化。网络模型使用交叉熵损失函数(Cross Entropy)进行训练,优化器采用随机梯度下降法(Stochastic Gradient Descent,SGD)对网络参数进行优化,学习率为0.1,数据集在迭代70次(Epoch)后停止训练,批(Batch)大小设置为16。

3.2 特征增强方法对比实验分析

为了充分证明每种特征增强方法对于动作识别的作用,需要分别对每一种方法进行实验测试。基于NTU RGB+D 60数据集的Crossview(CV)划分标准,将经过各自方法进行特征增强后的数据输入到网络中,得到的识别准确率如表2所示。

表2 不同特征增强方法在NTU RGB-D 60数据集的准确率Tab.2 Accuracy of different feature enhancement method on NTU RGB-D 60 dataset

由实验结果可以看出,每种方法都取得了一定的识别准确率。在这5种特征增强方法单独的实验结果中,只使用深度优先树遍历的模型得到了最高的识别准确率,说明基于深度优先树遍历的方法的有效性得到了实验验证。其次识别准确率最高的是基于坐标转换的动作识别,接着3种普通的数据增强方法排在后面,且与前两种的准确率差别较大,说明网络对于从多个层次描述空间特征是十分认可的。将所有方法一起使用的动作识别准确率为95.1%,与单独的特征增强方法得到的识别准确率相差至少2.5%,说明本文使用的5种特征增强方法都或多或少发挥了其应有的作用,对于人体骨架动作的识别都有正向的作用,为后续网络提取到多层次、多尺度的时间和空间特征打下了坚实基础。

3.3 多分支输入方法对比实验分析

本文改善了三分支输入的人体骨架特征,使得三分支的输入变为Bone length+Joints、Bone length+Velocities和Bone length+Bone angle,增加了输入特征的关节相关性。为了验证每一分支对于动作类别判断的有效性,分别将3种特征输入网络中进行实验,在NTU RGB+D 60数据集的Cross-view(CV)评价标准上的识别准确率如表3所示。

表3 不同特征在NTU RGB-D 60数据集的准确率Tab.3 Accuracy of different feature on NTU RGB-D 60 dataset

由实验结果可知,3种人体骨架结构特征都在网络中取得了相接近的动作识别准确率。在3种 特 征Bone length+Joints、Bone length+Ve⁃locities和Bone length+Bone angle分 别 得 到 的 动作识别准确率中,特征Bone length+Joints的识别准确率最高,而特征Bone length+Velocities和特征Bone length+Bone angle紧随其后,二者之间的识别准确率差别不大,仅在0.2%,说明3种特征均有一定的能力独自作为网络的输入,可以从中提取到一定程度的信息用以动作分类。当三分支同时输入3种特征时,其结果为95.1%,与3种特征分别输入得到的结果相比,有了一定程度的提升,说明3种特征以三分支的形式输入到网络中对动作识别的准确率起到积极的促进作用。

3.4 多分支输入方法对比实验分析

本小节主要探讨三分支特征在特征融合时的位置对动作类别判断产生的影响。若特征融合时的位置在第k个多尺度卷积模块的后方,则取k=1,2,3,4时网络的识别准确率如表4所示。

表4 不同融合位置在NTU RGB-D 60数据集的准确率Tab.4 Accuracy of different feature fusion location on NTU RGB-D 60 dataset

3.5 多尺度时序卷积结构对比实验分析

本小节主要探讨多尺度时序卷积的卷积核大小对人体动作识别性能的影响。使用NTU RGB-D 60数据集的Cross-view(CV)划分标准作为消融实验的数据集,时序卷积的卷积核m=3,5,7,9时的动作识别准确率如表5所示。

表5 不同时序卷积核在NTU RGB-D 60数据集的准确率Tab.5 Accuracy of different temporal convolution kernel on NTU RGB-D 60 dataset

由消融实验的结果可知,不同的k值取得了不同的动作识别准确率。当k值为3时,人体动作的识别准确率最高,所以本文中特征融合的阶段选择在第三个多尺度卷积模块之后。在本实验中,当k值过小时,多分支的特征融合后虽然具有很强的浅层次相关性,但在融合后经过神经网络层数的不断深入,提取到的深层次特征趋为一致,缺少了多样化的深层次特征;而当k值过大时又缺少了早期特征之间的相关性。所以,要选择合适的k值。

实验结果表明,特征融合的位置会对动作识别的准确率产生影响,应该选择能够使准确率达到最大的位置。

多尺度时序卷积的卷积核是提取时间维度特征的核心。卷积核越大,特征信息的感受野也随之变大,多尺度时序卷积能够提取到的时间维度的跨度就越大,也就是说能够提取距离更长的视频帧间的特征信息,但同时也容易漏掉更多的细节信息,所以选择合适的卷积核大小尤为重要。由实验结果可知,当卷积核的大小m=5时,人体动作识别在RGB-D 60数据集Cross-view(CV)的准确率最高,为95.1%。当卷积核过小时,提取到的特征在时间维度的跨度不够长,帧间特征无法高效地表达动作,同时网络的参数量和计算量也相较较大;当卷积核过大时,容易漏掉更多的细节信息,帧间特征无法完整地表达动作。所以多尺度时序卷积的卷积核大小设为5×1。

3.6 对比实验

使用NTU RGB-D 60数据集与NTU RGB-D 120数据集展示本文提出的网络模型的结果,并与目前提出的其他基于人体骨架数据的动作识别算法进行对比与分析,在NTU RGB-D 60数据集上的人体动作识别准确率如表6所示。

表6 不同动作识别方法在NTU RGB-D 60数据集的准确率Tab.6 Accuracy of different action recognition methods on NTU RGB-D 60 dataset

本文提出的网络模型在NTU RGB-D 60数据集的Cross-subject划分标准上获得了89.6%的识别准确率,在Cross-view划分标准上获得了95.1%的准确率。与基于循环神经网络的Ind-RNN网络模型相比,在两个指标上分别高出7.8%和7.1%;与基于卷积神经网络的3SCNN网络模型相比,在两个指标上分别高出1.0%和1.4%;与同样基于图卷积神经网络的SGN相比,在两个指标上分别高出3.0%和0.8%。与其他基于人体骨架数据的动作识别算法相对比的结果说明了本文所使用网络的优越性。

横向对比基于NTU RGB-D 60数据集的Crosssubject和Cross-view划分标准的识别准确率结果,可以发现所有识别准确率在Cross-view评价标准上的结果均要高于Cross-subject评价标准,两者之差最大能够达到8.8%,最小能够达到4.6%。

为了对实验结果进行更深入的分析,得到图10所示的Cross-subject和Cross-view划分标准下的混淆矩阵图,图中横坐标为具体动作类别的编号,纵坐标为具体动作类别的准确率。由图10可知,模型在Cross-subject中可准确识别绝大部分的动作类别。其中类别11(Reading)、12(Writing)、29(Play with phone/Tablet)、30(Type on a keyboard)、34(Rub two hands)、41(Sneeze/Cough)、44(Head⁃ache)的准确率明显低于其他类别。这些动作类别聚焦于局部肢体动作,动作幅度不大,动作之间的区别也不明显。模型无法确切区分这些动作类别,这是影响本文模型准确率的主要因素之一。

图10 NTU RGB-D 60数据集下的混淆矩阵Fig.10 Confusion matrix under NTU RGB-D 60 dataset

除了NTU RGB-D 60数据集之外,本文也在其扩展版本NTU RGB-D 120数据集上进行了实验与分析,如表7所示。该数据集相比于NTU RGB-D 60数据集,其动作类别数更多且人物、场景情况更复杂,因此基本上所有主流方法在该数据集上的识别准确率均出现了明显的下降。在NTU RGB-D 120数据集中,本文提出的网络模型在Cross-subject划分标准上的识别结果为84.1%,在Cross-setup划分标准上的识别结果为86.0%,均保持在一个较好的水平,相比于其他方法呈现出了更为明显的优势,证明了本文提出的网络模型在性能上的优越性。

表7 不同动作识别方法在NTU RGB-D 120数据集的准确率Tab.7 Accuracy of different action recognition methods on NTU RGB-D 120 dataset

4 结 论

如今基于视频的人体动作识别需求层出不穷。基于人体骨架数据的动作识别相比于RGB视频具有数据量小、无环境干扰等优点,从而成为了研究重点。本文从多特征、多分支以及多特征之间的关联为主线出发,首先基于输入的骨架数据,利用多种特征增强方法并通过改进的多分支融合特征输入到本文的神经网络中,然后使用多尺度时空卷积模块提取多尺度特征信息。在NTU RGB-D 60数据集的两种划分标准Cross-subject和Cross-view上的识别准确率分别为89.6%和95.1%,在NTU RGB-D 120数据集的两种划分标准Cross-subject和Cross-setup上的识别准确率分别为84.1%和86.0%,较好地提升了模型的动作识别准确率。

猜你喜欢

关节点骨架尺度
浅谈管状骨架喷涂方法
基于深度学习和视觉检测的地铁违规行为预警系统研究与应用
关节点连接历史图与卷积神经网络结合的双人交互动作识别
财产的五大尺度和五重应对
骨架密度对炭/炭多孔骨架压力浸渗铜的影响
搞好新形势下军营美术活动需把握的关节点
宇宙的尺度
9
内支撑骨架封抽技术在突出煤层瓦斯抽采中的应用
铁骨架配合物凝胶的合成、表征及催化性能