基于骨骼时空图的人体行为识别
2022-04-21谷学静刘海望位占锋
谷学静,沈 攀+,刘海望,郭 俊,位占锋
(1.华北理工大学 电气工程学院,河北 唐山 063210;2.唐山市科技中心 数字媒体工程技术研究中心,河北 唐山 063000;3.华北理工大学轻工学院 电气信息学院,河北 唐山 063000)
0 引 言
就目前而言,人体行为识别[1]研究主要分为3个方向,分别是基于静态图片信息、视频序列片段信息以及骨骼点的特征信息的研究方向,通过对3种不同数据类型进行建模,分析人体姿态的行为特征,从而识别出人体的具体行为类型。目前,针对前两种方法的研究已经取得很大进展,例如文献[3]采用双流法(TWO-stream)分别对输入视频的每帧RGB图像和帧与帧之间的密集光流序列信息进行建模,用CNN的方法训练得到的静态信息和短时序列模型进行融合(fusion)[3],从而完成对视频行为的识别和分类,取得良好效果;文献[4]中分析了视频和图像在维度上的不同之处,采用三维卷积(C3D)的方法用于视频中的行为特征提取,卷积核由二维变成三维来进行端到端的训练,其识别速度得到很大提升[4]。相比较而言,基于人体骨骼信息的行为识别关注较少,但是其蕴含着人体重要行为信息用来表示人体的行为特征,因此考虑如何对人体的动态骨骼信息进行深入挖掘,获得更有效的特征来提高人体识别的准确率仍然有待探索。
基于骨骼信息的研究仍然具有很大的挑战,骨骼的动态信息可以通过人体的关节位置和时间序列的组合来表示,然后通过分析其关节点的联合坐标向量来提取动作特征并完成预测。随着机器学习的发展,利用深度学习方法处理骨骼数据是当前研究的主流方向[5],比如yang等利用在视频帧间的关节坐标距离变化量矩阵生成视频特征,然后把视频特征输入到支持向量机中进行训练和分类[6],yong等在此基础上提出了一种端到端的分层神经网络用于提取骨骼特征,将骨骼信息进行划分,分块输入到神经网络中,突出了整体结构与部分的关系[7],liu等在RNN的基础上通过引入新的门控单元对输入数据序列进行学习,可以有效解决三维骨架中的遮挡问题[8]。Song等通过加入注意力机制对每一帧的骨骼数据进行不同程度的关注,从而能够更有效获取骨骼的动态数据信息[9]。
由此可见,行为识别的关键在于如何设计网络模型提取人体骨骼的动态信息,受到图卷积(GCN)研究的启发,考虑保留骨骼信息中关节在运动中的自然连接的空间结构,将骨架整体作为拓扑图输入到图卷积网络,结合多尺度时间卷(multi scale TCN)对骨骼的时间动态进行建模,使得骨骼信息可以从时空维度进行整合,从而学习更有效的信息来提升行为识别的模型效果。
1 图卷积网络
1.1 图卷积概述
卷积神经网络对图像数据具有很强的特征抽取与整合能力,广泛应用于图像处理工作,但是其应用有一定限制,输入的图像数据必须是具有规则的网格化结构的类型,也就是说需要将数据类型先转化成规则排列的矩阵类型,如图1所示。
图1 规则的网格结构
因此对骨骼信息的应用必须将骨骼的坐标序列转换成2D的网格形式,从本质来讲还是图像的识别。但是在实际研究和生活过程中并非都具备规则的序列结构,比如社交网络、通信网络等都是一定数量的节点相互连接构成的不规则拓扑图,如图2所示。
图2 网络拓扑结构
即图论中点和边构成的集合,用G(E,V)表示,其中E表示边的集合,V表示点的集合[10]。图卷积就是在传统卷积(CNN)的基础上将其拓展应用到拓扑图的结构上,更好捕捉图上节点与节点之间的连接特征关系,并且对连接边赋予一定权值来进行节点的特征提取过程。
1.2 图卷积原理
卷积的本质实质是对一定范围内的像素加权求平均的过程,图卷积则是对每个节点的特征和与其相连接的邻居结点进行加权求平均后,传递到下一层的过程,如图3和图4所示。
图3 卷积原理
图4 图卷积原理
不难看出,同卷积过程类似,将拓扑图上的顶点理解成像素点,人为给定其传播方向,将卷积核函数作用得到的聚合特征值作为一个特征图(featuremap)传递到下一个网络层,同一个卷积核的权值共享,在应用GCN时需要注意由于拓扑图没有规则的网络结构,因此本质上并无明确核函数的概念[11],为了便于理解,在图中添加了阴影区域,将这个区域视为卷积中的核函数,其权重为所有参与聚合的节点按一定规则划分的不同子集构成的集合,例如图中距离中间节点w0的距离划分为1和2的不同子集,在对每个邻域子集的内的节点进行特征值聚合时保持权重不变从而实现权值共享。特征在层与层之间的传播方式可以用式(1)表示
Mi=f(Mi-1,A),其中M0=X,
f(Mi,A)=σ(AMiWi)
(1)
在式(1)中,M表示特征矩阵,i表示层数,当i=0时,M0表示节点自身的特征矩阵,A表示邻接矩阵,W为权重,节点特征矩阵分别左乘和右乘邻接矩阵与权重,可以实现对特征的聚合和加权,因此,如何设计邻接矩阵A和权重分配策略W是基于骨骼图卷积研究的重点。
2 基于骨骼的时空图卷积
2.1 骨骼时空图构建
人体的骨骼构成也是由关节点和肢体连接线构成的点和边的集合,符合图的定义,因此,可以对人体骨骼使用图卷积,但是需要考虑的一个问题是,在人体动作过程中,并非都是一个静止的信息,而是具有连续时间序列的一系列数据,为了更好利用图卷积来提取骨骼的动态信息,除了对空间上的骨骼关节点的自然连接的空间边以外,还加入了不同时间帧之间的时间边信息用来描述行为在时序上的变化特征,将传统的图卷积扩展应用到时间邻域上,如图5所示。
图5 骨骼时空
关节点作为图的节点与时空边的连接构成了时空骨骼图的结构G(V,E),图的信息包含了关节点的数量N,以及输入的一段视频所包含的帧数T,每个关节点对应的特征矩阵用Vi表示。所以可以得到所有节点在T帧的特征矩阵集合如式(2)所示
(2)
其中,单帧内的第i个关节点特征向量用f(vi)表示,包含每个关节的坐标以及置信度,在构造骨骼时空图的过程主要分为两步,第一步是获取人体骨架在动作过程中的原始连接关系,不需要进行人为的手工设计,通过openpose工具或者相关设备获取到视频序列中的人体关节点信息,依靠获取到的关节点信息构成自然的身体骨骼结构。多帧的连续骨骼图还需要对时间边进行连接,因此边的集合有两部分构成,分别用Es和Ef表示,如式(3)所示
(3)
其中,Es为单帧内的骨骼点的连接,Ef为相同骨骼点在不同帧间的连接,通过构建时空图描述人体运动过程随时间变化的轨迹信息。
2.2 骨骼空间图卷积
首先,对骨骼的空间信息进行建模,按照图卷积的定义,可以在卷积网络的公式上进行拓展,以卷积运算为例,如式(4)所示
(4)
其中,包含两个主要函数,分别为采样函数和权重函数,采样函数p主要用来对x的邻域像素进行获取,即围绕中心点x的一个大小为K*K的网格状区域,权重矩阵w则是对采样函数p所选择的网格区域内的数据按照一定空间顺序进行索引,用权重矩阵w与采样区域做内积运算即可获取每个邻域像素与中心点的权重关系,可以对此公式进行改进来应用于骨骼时空图,分别对采样函数和权重函数进行改进,上一节已经构造了时空骨骼图得到关节点的集合V,因此采样函数的中心点变成骨骼的关节点v,采样区域变成与节点相邻节点邻域集合,用B(vti)={vtj|d(vtj,vti>=K)} 表示,其中d表示距离采样点vti的最小距离,K表示距离范围为K的集合,这里K值取1用来选取距离节点为1的邻域集合。
然后对权重函数进行重新定义,由于图卷积在空间并无固定顺序,所以需要对邻域集合B(vti)进行划分,假设划分的子集数量为N,通过一个标签映射函数对其中每个子集进行编码,如公式所示l(vi)=B(vi)→{0,1,...N},使邻域中的点映射到划分之后特定的子集中,使其具有相同的标签,可以得到新的权重函数,用式(5)表示
w(vti,vtj)=w′(lti(vtj))
(5)
因此,将式进行拓展,应用新的权重和采样函数可以得到骨骼的图卷积表达式如式(6)所示
(6)
其中,Zti(vtj)=|{vtk|lti(vtk)=lti(vtj)}|等于子集的基数,用来减少不同子集对输出结果的影响。
2.3 多尺度时间卷积
不同的行为类型具有不同的时间特征,动作的持续时间也会随着动作类型的不同而变化。为了更好描述这一动作变化特征,提出了一种多尺度方法对不同时间跨度的动作类型同时进行卷积,然后将卷积的结果进行线性加权融合,这样可以让网络模型同时捕获不同时间长度的动作类型特点,适应不同复杂度的行为变化。
将图卷积的公式扩展到时间域建模,上一节分析的节点邻域为单帧t内的骨骼图连接,接下来将考虑其连续帧之间的相同节点之间的连接,如式(7)所示
S(vti)={vqj|d(vtj,vti)≤K,|q-t|≤|Γ/2|}
(7)
式中:Γ表示时间轴的跨度,其值决定了时间卷积时时卷积核的大小,为了使节点vi可以在时间和空间维度生成对应的邻域空间,需要对上文中已经构建的标签映射函数进行修改如公式所示
(8)
2.4 多尺度时间卷积方法框架描述
在传统时间卷积TCN的单一卷积核尺度进行扩充,采用多尺度时间卷积(multi scale TCN)(以下简称(MS-TCN)),增加一个时间跨度为2Γ大小的卷积核用来提取持续时间长的行为特征,如图6所示,在进行时间卷积过程中增加一个尺度为原来卷积核大小两倍的新卷积对时间特征进行卷积,卷积核的总数量保持不变。此时网络中包含两个不同时间跨度的卷积核对骨骼向量同时进行特征提取,这样可以在每一个卷积层进行多尺度卷积,获取输入骨骼信息在不同尺度下的特征,最后,将两种卷积核提取到的信息进行融合,经过平均池化输入到softmax完成行为分类,其原理结构如图6所示。
图6 多尺度时间卷积网络结构
多尺度时间卷积中包含的每个卷积核的计算过程是相同的,其原理如式(9)所示
fi=fi-1+Wl*λfi-1
(9)
其中,f表示输出,i表示网络层数,W表示第l层所有滤波器的集合,λ为Relu激活函数,设原始TCN网络滤波器个数为N,则经过多尺度变化为两个数量为N/2,大小分别为k*1和2k*1的卷积核,在T帧视频上进行卷积操作,每个节点的特征维度为C,首先对节点Xi进行特征提取,沿着时间序列的方向按照步长为1进行移动,卷积完成后向下移动,遍历所有的关节点,在每次卷积过程中,将两种尺度卷积的结果进行连接形成卷积结果,依次在所构建的10个网络层之间进行传递累加,然后将最终的本次网络的输入为经过openpose处理后的关节点向量X,经过多尺度卷积分别对X进行卷积,两个跨度卷积过程如图中黑色实线和虚线框所示,然后将卷积后的所有结果拼接,将最后得到的结果进行线性加权融合。
3 多尺度时空图卷积的应用
将时空图卷积应用到行为识别,首先将对输入视频中的人体行为利用openpose处理工具进行姿态估计,将人体标注的关节点连接成骨骼输出,然后由BN层对不同帧的节点坐标进行批归一化,可以消除不同量纲之间的影响,降低数据特征由于评价指标不同而对结果产生的影响,进一步增强数据集的可比性。同时在整个网络中还加入注意力模型层(ATTENTION),用来学习相邻节点的权值。因为人体运动过程中的节点不断变化,每个动态部位的建模与节点联系的相关度不同,比如在跑步这个动作类型中,腿部信息的重要性要大于脖子,因此加入注意力模型层(ATTENTION)层可以让网络模型能够自主学习每个空间边缘的重要性,然后输入图卷积GCN和多尺度时间卷积(MS-TCN)融合的网络模型,最后利用softmax分类器,完成人体行为的分类,网络总体结构如图7所示。
图7 网络结构
3.1 数据预处理
Openpose可以对预先定义好的人体关节点比如颈部、肩膀、手臂等关键部位进行标注,然后将标注的关节点进行连接,即人体骨架的提取,这里选取每帧平均置信度最高的两个人,提取其关键点的坐标向量作为输入。
通常每次输入网络的一个批次(batch)视频可以用一个5维矩阵来表示(N,C,T,V,M),其中N代表一个批次中视频的数量,C用来表示关节的特征,即x和y的坐标,以及置信度等3个特征,T表示关键帧的数量,V表示关节的数量,由于openpose的标注有不同数量的关节点,因此V的值不一样所以最终输入网络的形状为(256,3,150,18,2)。
3.2 子集划分
在进行空间图卷积的时候,需要对每个节点的邻域进行划分,这里考虑到不同行为动作的特点以及节点时空结构特征,将邻域按照根节点距离重心(所有骨骼点的坐标平均值)的距离划分为3个子图,采样点作为选取的根节点,以根节点距离重心的距离ri为标准,邻域内的点距离重心的距离rj如果大于ri,则被划分到子集1,如果距离重心的距离小于ri,则被划分到另子集2,如式(10)所示
(10)
划分后的子图有3个子图如图8所示。
图8 划分后的3个子图
通过这样的划分方式,分解成3个子图,分别表示离心、向心和静止3种运动形态,可以更有效捕获行为动作的时空信息,卷积核的数量由1个变成3个,即(1,18,18)变为(3,18,18)。然后根据卷积的尺度不变特性,对3个卷积核分别进行卷积,再进行加权平均(和图像卷积相同)就可以得到最终结果。
3.3 多尺度时间卷积与模型融合
对于网络而言还需要考虑的一点是如何对模型进行有效融合,由于采用的分类器都为softmax,考虑其函数性质将所有的函数输出映射到(0,1)输出,为了体现每个模型的优势,采用线性加权融合,如式(11)所示
pfusion(yi)=αpa(yi)+(1-α)pb(yi)
(11)
其中,α为参数,p为概率矩阵,按照公式运算即可得到模型融合之后行为类型输出。
4 实验结果及分析
本次实验的数据集采用目前最大的3D行为识别数据集NTU RGB+D数据集,在骨架序列中,包含两个评估基准,分别是交叉受试者(cross subject,CS),即来自一个演员的训练片段子集,通过其他演员的视频片段对模型进行评估,以及交叉视图(cross view,CV),即来自2号和3号摄像头的视频片段用于训练,用1号摄像头采集的片段对模型进行评估。本次实验从这两个角度对网络模型进行评估。对网络的初始参数进行设定,整个ST GCN网络配置见表1。
表1 网络模型参数配置
10个网络层的神经元分成3部分,分别为前4层、中间3层以及最后3层,对应神经元数量分别为64,128,256,同时为了能够在训练过程不断调整模型的训练效果,对学习速率进行调整,每10个epoch以后变为原来的0.1倍,然后对网络模型进行训练,分别在CS和CV上进行模型准确率和损失率的评估,其结果如图9所示。
图9 训练准确率变化
图9显示用多尺度ST GCN网络模型在数据集CS和CV的实验效果,经过100次迭代以后,模型的准确率分别可以达到80.1%和89.8%,在前20个epoch准确率的速率变化非常明显,大约60个epoch以后,准确率变化逐渐趋于平缓。
同时为了验证改进的多尺度时间卷积与原始TCN之间的模型效果,在数据集上进一步设计了基于骨骼特征向量的行为识别对比实验,构建的网络模型如2.4节的图6所示,网络参数不变的前提下,分别使用尺度为8*1的单尺度TCN以及8*1和16*1两个尺度融合的多尺度时间卷积进行特征提取,在相同的训练次数和网络参数下进行训练,结果如图10所示。
图10 不同尺度下的模型准确率对比
由实验结果图可以看出,在模型最终的识别准确率上,多尺度的模型要优于单尺度的模型效果,在CS和CV上分别验证得到的对比结果为61%和70%,78%和83%,分别提高了9个和5个百分点,主要是因为多尺度模型可以捕获不同时长下的行为特征,针对越复杂的行为动作类型,提升的效果越明显,将长时信息和短时信息结合,获取的动作特征具有更强的表征能力,使得模型学习到更具鲁棒性的特征,因此,所提出的多尺度时间卷积模型具有更好的性能,相比于单尺度网络具有更高的识别准确率。
此外,为了进一步验证模型的效果,与其它几种主流的网络模型进行对比,结果见表2。
表2 不同网络模型准确率对比
从实验结果来看,Multi scale ST GCN的网络模型准确率要高于其它几种算法,无论是和传统的手工方法还是基于RNN等方法的特征提取相比,均具有一定优势,主要是因为构建的网络模型可以从多尺度挖掘骨骼运动的时空信息获取到更高层的时空结构特征,因此,在模型最终的识别准确率上有了明显的提升。
5 结束语
从时空层面构建了时空图卷积网络,用于人体骨架运动信息的特征提取,从中获取骨架自然边的连接关系来构建骨骼时空图,充分挖掘骨架运动所蕴含的信息,在传统图像卷积的基础上,对图卷积进行拓展,将骨骼运动的方式进行划分,从而更好描述和捕捉运动的形态。在原始时间卷积(TCN)的基础上进行多尺度时间卷积(MS-TCN)的改进,解决了持续时长不同的行为动作类型的识别问题,对连续动作的不同时长的行为特征叠加,同时融合了骨骼空间图卷积的行为特征,可以更加完整的对骨骼的时空信息进行整合,在NTU RGB+D数据集上取得了很好的效果。在今后的工作中,尝试对通过引入自适应的方法增加肢体方向和长度等特征,结合双流框架对骨骼流和节点流进行特征融合的行为识别。