APP下载

多模态轻量级图卷积人体骨架行为识别方法

2021-04-11苏江毅宋晓宁吴小俊於东军

计算机与生活 2021年4期
关键词:信息流骨架模态

苏江毅,宋晓宁+,吴小俊,於东军

1.江南大学人工智能与计算机学院,江苏无锡 214122

2.南京理工大学计算机科学与工程学院,南京 210094

行为识别是人工智能领域的重要研究方向之一,在视频监督、智能监控和人机交互等方向有着重要的应用。行为识别同时也是一项具有挑战性的任务,不仅因为处理视频片段所需的计算要求更高,而且易受外界环境因素的影响。这导致了基于RGB 视频的行为识别方法往往难以同时满足时效性和准确度的要求。最近几年,得益于深度相机的发展与普及,例如,MicrosoftKinetic[1],基于深度信息的行为识别[2]逐渐成为了该领域的重要研究方向之一。与传统的RGB 数据相比,骨架序列因为不包含颜色信息,所以具有简洁、易校准、不易受外观因素影响的特点。

早期的基于人体骨架的行为识别方法主要通过手工设计特征的方式来对行为进行表征[3]。例如Yang等人[4-5]的EigenJoints 方法,从骨架数据直接获得成对关节的静态姿势和偏移量,通过主成分分析法(principal components analysis,PCA)来减少冗余和干扰,最后通过非参数朴素贝叶斯最近邻(Naive Bayes nearest neighbor,NBNN)完成行为分类。在深度学习方法未被大规模使用之前,该类方法一直是行为识别领域的主要研究方向。但是,由于手工提取的特征往往表征能力有限并且需要耗费大量精力用于调参优化,因此当深度学习普及以后,一些端对端的基于深度神经网络的方法越来越受到人们的欢迎。

目前主流的方法可以分为以下三类:(1)基于循环神经网络(recurrent neural networks,RNN)[6]的方法;(2)基于卷积神经网络(convolutional neural networks,CNN)[7]的方法;(3)基于图卷积网络(graph convolutional networks,GCN)[8]的方法。Du 等人[9]将人体骨架按照躯干与四肢进行划分,共分成了五部分,网络级联地输入和组合人体骨骼各个部分的运动,从而通过双向循环神经网络(bidirectional recurrent neural networks,BRNN)将每个时刻的低层次的关节点拼成一个向量,不同时刻的向量组成一个序列,并对生成的序列进行处理和学习。Liu 等人[10]主要通过双流3D 卷积神经网络(3D convolutional neural networks,3D CNN)来同时对关节点的时间特性和空间关系进行建模,最后通过加权平均的方式融合时空间特征获得最终的分类结果。Yan 等人[11]第一次提出了通过建立骨架序列时空图的方式,将图卷积网络扩展到时空模型上,从而避免了手工设计遍历规则的弊端,使得网络具有更好的表达能力和更高的性能。Shi 等人[12]在Yan 等人研究的基础上融合了基于骨架长度的信息,从而提出了一种双流自适应图卷积网络用于基于骨架的行为识别。

上述三类方法,都是目前主流的基于骨架行为识别的方法,但是都存在一定的问题。其中基于RNN的方法,虽然在表征时间信息方面优势明显,但是存在优化难度高,而且易丢失原始的关节点信息的问题;而基于CNN 的方法,虽然可以从不同时间区间提取多尺度的特定局部模式,但是存在参数量过于庞大,对计算要求过高的问题。而基于图卷积的方法得益于对非欧氏数据(non-Euclidean data)建模的巨大优势,相对于前两种方法而言更具优势。

此外,基于图卷积的方法同时还利用了多模态学习中的相关方法来提高精度。首先,多模态数据是指对同一对象,因为描述方法不同,把描述这些数据的每一个视角叫作一个模态。而多模态表示学习(multimodal representation)是指通过利用多模态之间的互补性,剔除模态间的冗余性,从而学习到更好的特征表示。现阶段的多模态数据融合分析方法主要分为基于阶段的数据融合、基于特征的数据融合和基于语义的数据融合。其中基于阶段的数据融合方法是指在不同阶段使用不同的模态数据完成相应的数据融合;基于特征的数据融合方法是指从原始特征中学习新的融合特征,然后通过学习到的新的融合特征完成分类、预测等任务;最后基于语义的数据融合方法需要对每个模态数据的含义以及不同模态之间的特征关系进行理解,通过抽象的语义信息完成跨模态数据的融合。目前,基于图卷积的方法多采用基于特征的数据融合方法,该方法虽然能较大地提升实验结果,但是需要针对不同的特征生成的不同训练集进行多次训练,通过融合不同训练集上的训练结果的方式得到最终的结果。基于图卷积的方法虽然在最终的结果上有不错的表现,但是因为需要在多模态数据集上进行多次训练,所以同样存在参数量过大和对计算要求过高的问题。

针对上述这些问题,本文提出了一种融合多模态数据的轻量级图卷积神经网络用于基于人体骨架的行为识别。不同于之前的一些使用GCN 的方法,本文方法虽然同样使用了基于特征的数据融合方法来提高实验结果,但并不需要针对不同的特征预先生成不同的训练集,而是直接采用多模态数据融合与自适应图卷积相结合的方式,仅通过一次训练就能达到其他方法在预先生成的多个数据集上的训练效果。总体而言,本文方法能够在兼顾参数量的同时取得很好的效果。最后根据在行为识别数据集NTU60 RGB+D和NTU120 RGB+D 上的测试结果表明,该方法能够以极低的参数量完成基于人体骨架的行为识别。

1 融合多模态数据的轻量级图卷积网络

1.1 图卷积简介

由于图结构的不规则性和复杂性,其节点的排列方式并不存在明显的上下左右关系,因此无法通过固定大小的卷积核来提取相应的特征,故传统的卷积神经网络在这一领域很难发挥作用。为了解决这一问题,研究人员提供了两条思路:一条是将非欧氏空间的图转换到欧氏空间,即构建伪图;另一条就是构建一种可处理变长邻居节点的卷积核,这也就是GCN 的最初设计原理。

对于一张给定图,需要两种输入数据来提取特征:一个是维度为N×F的特征矩阵X,其中N为图中的节点数,F为每个节点的输入特征;另一个是维度为N×N的邻接矩阵A。因此,GCN 中隐藏层可以表示如式(1)所示:

其中,l代表层数,代表上一层的输出,f代表一种传播规则,而H(0)=X为第一层的输入。在每一层中,GCN 会通过f将这一层的信息聚合起来,从而形成下一层的特征,不同图卷积模型的差异点在于f的实现不同。

1.2 具有自适应性的图卷积

本文以SGN(semantics-guided neural networks)[13]中的网络结构为基础,提出了一种能够融合多模态数据的自适应图卷积网络结构如图1 所示。与之前的一些同样使用图卷积网络的方法相比,最大的区别在于邻接矩阵A的构成不同。之前的方法,诸如ST-GCN(spatial temporal graph convolutional networks)[11]与2s-AGCN(two-stream adaptive graph convolutional networks)[12],虽然同样使用了图卷积来表征骨架数据,但是这两个方法所使用的邻接矩阵A均是通过手工设计的方式完成的。手工设计的邻接矩阵A在聚合帧内关节点数据时,往往缺乏自适应性,未能进行有效的聚合。

为了解决这个问题,本文提出了一种将多模态数据融合到图卷积之中的方法。如图2 所示,通过将不同模态的数据,诸如关节点信息流、骨长信息流、运动信息流、速度差信息流和基于速度差的骨长信息流进行融合,一方面可以确保构建出一个具有全局适应性的邻接矩阵,另一方面能够减少运算次数,从而降低运算成本,提高运算效率,最终实现网络轻量化的目标。

1.3 多模态数据融合

首先,对于一个给定的骨架序列,其关节点的定义如式(2)所示:

Fig.1 Network framework图1 网络框架结构

Fig.2 Multi-modal data fusion图2 多模态数据融合

其中,T为序列中的总帧数,N为总关节点数,Vi,t表示为在t时刻的关节点i。因为涉及到多模态数据的融合,训练开始前需要对集合S进行多样化的预处理。因为关节点信息流可以直接获取,所以在这里只需要给出骨长信息流、运动信息流和基于速度差的骨长信息流的定义公式。

骨长信息流(bone information flow):通常定义靠近人体重心的点为源关节点,其坐标可以定义为Vi,t=(xi,t,yi,t,zi,t),而远离重心的点为目标关节点,其坐标为Vj,t=(xj,t,yj,t,zj,t),通过源关节点与目标关节点的差值可以计算骨长信息流。因此骨长信息流的定义如下所示:

运动信息流(motion information flow):运动信息流是通过计算相邻两个帧中相同关节点之间的差值得到的。本文定义在t帧上的关节点i,其坐标为Vi,t=(xi,t,yi,t,zi,t),则在t+1 帧上的关节点i定义为Vi,t+1=(xi,t+1,yi,t+1,zi,t+1)。因此在关节点Vi,t与关节点Vi,t+1之间的运动信息流可以定义如式(4)所示:

速度差信息流(velocity difference information flow):速度差信息流首先需要计算前T-1 帧与后T-1 帧的差值,接着通过填补0 元素的方式扩充矩阵,弥补维度上的变化。假设关节点i在前T-1 帧上的定义为Vi,0:T-1=(xi,0:T-1,yi,0:T-1,zi,0:T-1),在后T-1 帧上的定义为Vi,t+1=(xi,1:T,yi,1:T,zi,1:T),因此速度差信息流的定义如下所示:

基于速度差的骨长信息流(bone information flow based on velocity difference):基于速度差的骨长信息流是在速度差信息流的基础上通过计算相邻两个帧中相同骨骼之间的差值得到的。根据式(2)的骨长信息流与式(5)的速度差信息流定义,可以定义前T-1 帧上的源关节点i到目标关节点j骨长的信息流为,后T-1 帧上的骨长信息流为,因此基于速度差的骨长信息流如式(6)所示:

如图2 所示,根据式(2)到式(6)中对于关节点信息流、骨长信息流、运动信息流、速度差信息流和基于速度差的骨长信息流的定义,多模态数据融合的定义如下所示:

1.4 基于密集连接卷积网络的空间流模块

为了更好地表征骨架序列在时间维度空间维度上的信息,本文在SGN[13]的基础上,重新设计了时间流模块和空间流模块。

设计空间流模块的目的主要是为了获得某一帧内不同关节点之间的相关性。在空间流模块中,通过使用图卷积来探索结构型骨架数据中关节点的相关性,如图3所示,空间流模块的主体部分主要由三层图卷积组成。相比于之前一些方法,例如ST-GCN[11],该方法虽然同样使用图卷积来建模骨架数据,但是这些方法都缺乏自适应性,即ST-GCN[11]中的图的拓扑结构是根据人体的物理结构预先定义好的,但是通过这样的方法定义的图结构并不一定适用于行为识别的任务。此外,由于需要对不同的动作进行识别,如果都使用相同的拓扑结构的图显然也是不合理的。针对这些问题,一个合适的解决方法是设计一种具有自适应的图卷积网络来建模结构型骨架数据。如图3 所示,通过计算t帧的关节点i与关节点j之间的相关性来得到这两个节点之间的边缘权重(edge weight),具体公式如下:

其中,θ与φ主要用来进行维度变换,具体实现如下所示:

通过计算同一帧中所有关节点之间的相关性,得到了具有所有帧中所有关节点的自适应邻接矩阵。

在SGN[13]的基础上,本文还采用了密集连接卷积网络(densely connected convolutional networks,Dense-Net)[14]中密集连接(dense connection)的方式来提高模型的泛化效果。本文借用DenseNet 的思想,将第一层GCN 之前的输出与之后每层GCN 的输出直接相连。具体的实现过程并不是残差网络(residual network,ResNet)[15]中所采用的直接相加的方式,而是采用了连结结构(concatenate)的方式,这样能够以增加少量参数量为代价,实现浅层特征的复用,加强特征在三层GCN 网络中的传播,同时也能够避免某些层被选择性丢弃,造成信息堵塞等。通过建立不同层之间的密集连接,不仅能够提高运算效率,减少不同层之间的依赖性;同时还能加强深层特征与浅层的联系,最终达到复用浅层特征的目的。

1.5 基于残差网络的时间流模块

与空间流模块不同的是,时间流模块的设计目的是获得帧与帧之间的相关性。如图4 时间流模块所示,时间流模块主要由空间最大池化层、时间最大池化层以及两层CNN 所组成。其中空间最大池化层(spatial maxpooling layer,SMP)用来聚合同一帧中的关节点信息;时间最大池化层(temporal maxpooling layer,TMP)用来聚合不同帧之间的信息。第一层CNN 为时间卷积层,用于对帧的相关性进行建模;第二层CNN 用于增强其所学习到特征的泛化能力。与SGN[13]中的结构相比,本文通过在双重卷积层之间引入ResNet[15]中的快捷连接(skip connection)的方式,确保帧内信息的多次使用,从而在加强帧与帧之间相关性的同时,加强特征的表现能力。

Fig.3 Spatial flow module图3 空间流模块

Fig.4 Temporal flow module图4 时间流模块

1.6 融合多模态数据的轻量级图卷积网络的参数量对比

近几年,虽然基于人体骨架的行为识别方法成为了主要研究方向之一,但是这些方法往往都存在一些问题。一方面是这些方法往往通过构建复杂的网络结构的方式来提高实验精度,针对人体骨架这种简单有效的数据而言,过于复杂的网络结构会造成整体计算效率的低下。另一方面,这些方法在初始数据集的基础上生成多个派生数据集用于训练,通过将多个派生数据集上的训练结果进行融合的方式获得更高的精度,这造成了时间成本的大量浪费。

为了解决这一问题,本文提出了一种基于人体骨架的轻量级行为识别方法。除了网络结构更加高效之外,训练过程也较为简单。不同于之前一些基于图卷积的方法所采用的方法,该方法并不需要在多个派生数据集上进行多次训练。本文通过多模态数据融合的方式直接将多种信息流进行融合,这样做的好处就是可以避免生成多个对应的派生数据集,将训练次数减少为一次,从而降低网络的整体参数量。与之前的方法相比,该方法最大的特点就是能够在参数量与精度之间达到很好的平衡,即通过较少的参数量达到甚至超过之前的一些方法的精度。

为了验证该方法的具体表现,与近两年的方法在NTU60 RGB+D[15]数据集的X-sub 标准上进行了比较。如图5 所示,ST-GCN[11]、2s-AGCN[12]、AS-GCN(actional-structural graph convolutional networks)[16]这三个方法均是基于GCN 的方法,相比于其他方法可以看出,使用了图卷积的方法在参数量和精度方面都有较好的表现。相较于基于CNN 的方法VA-CNN(view adaptive convolutional neural networks)[17]与基于RNN 的方法AGC-LSTM(joint)(attention enhanced graph convolutional LSTM network)[18],虽然同样取得了不错的结果,但是参数量却远超其他方法。通过对比可以发现,相比于VA-CNN[17]与AGC-LSTM(joint)[18]这两类非图卷积方法,本文方法不仅在精度上有很大的提升,同时参数量也仅为VA-CNN[17]与AGC-LSTM(joint)[18]的1/100;相比于ST-GCN[11]、2s-AGCN[12]、AS-GCN[16]这三个均是基于GCN 的方法,本文方法同样在精度和参数量上有明显优势。此外,通过与SGN[13]进行对比可以发现,SGN[13]的参数量为6.9×105,而本文方法参数量为7.7×105;如果仅从参数量上看,由于本文方法从结构上对SGN[13]网络中的空间流模块和时间流模块进行了优化,导致了参数量比它略多了8×104;但是从精度对比上看,在NTU60 RGB+D[15]数据集上本文提升了约1 个百分点,在NTU120 RGB+D 数据集[19]上,提升了约3 个百分点,通过增加少量的参数量,得到在精度上的较大提升。通过综合比较可以看出,在综合考虑参数量与精度的情况下,本文方法均取得了很好的效果。

Fig.5 Comparison of parameters of different methods图5 不同方法参数量对比

1.7 算法介绍

根据1.3 节公式的推导过程与1.4 节、1.5 节对空间流模块和时间流模块的描述,本文算法的具体流程描述如算法1 所示。

算法1本文算法的具体流程

输入:维度为(T×J×C1)的原始骨架序列。

输出:最终分类结果。

2 实验结果与分析

2.1 数据集

本文使用了两个目前主流的基于人体骨架的数据集NTU60 RGB+D 数据集[20]和NTU120 RGB+D 数据集[19],作为实验对象,其样例如图6 所示。

Fig.6 Visualization of three actions(reading,writing and shaking hands)in NTU RGB+D dataset图6 NTU RGB+D 数据集中三种行为(阅读、书写、握手)的可视化

NTU60 RGB+D[15]数据集出自新加坡南洋理工大学,该数据集由3 个Microsoft Kinect v2 相机同时捕获完成,具体采样点的分布如图7 所示。该数据集采集的关节点数为25,相机摆放位置组合有17 个,由56 880 个动作片段组成,包含有40 名演员执行的60个动作分类。

本文采用了该数据的两种评判标准:(1)跨表演人(X-Sub),X-Sub 表示训练集和验证集中的行为来自不同的演员,其中身份标识为1、2、4、5、8、9、13、14、15、16、17、18、19、25、27、28、31、34、35、38 的演员所演示的行为用于训练,而其余的用作测试,其中训练集样本数为40 320,测试集样本数为16 560。(2)跨视角(X-View),X-View 表示标号为2 和3 的摄像机所拍摄的行为用作训练集数据,另一个用作测试,其中训练集样本数为37 920,测试集样本为18 960。

Fig.7 NTU RGB+D dataset joint point labels图7 NTU RGB+D 数据集关节点标签

NTU120 RGB+D 数据集[19]是对原数据集的扩充,相机摆放位置组合由17 个扩充到32 个,动作分类由原来的60 类行为扩充到120 类,演员人数扩充为106人,动作片段扩充到114 480,关节点数保持不变。

本文采用该数据集的两种评判标准:(1)跨表演人(X-Sub),X-Sub 表示训练集和验证集中的行为来自不同的演员,其中身份标识为1、2、4、5、8、9、13、14、15、16、17、18、19、25、27、28、31、34、35、38、45、46、47、49、50、52、53、54、55、56、57、58、59、70、74、78、80、81、82、83、84、85、86、89、91、92、93、94、95、97、98、100、103 的演员所演示的行为用于训练,而其余的用作测试。(2)跨相机摆放位置(X-Set),X-Set 表示将身份标识为偶数的相机摆放位置组合用于训练,其余的用作测试。

2.2 实验细节

在实验过程中,将batch 设置为64,模型迭代次数(epoch)设置为120,批大小(batch size)为64,初始学习率为0.1,当迭代次数分别为60、90、110 时,学习率乘以0.1。为了节省计算资源,提高计算效率,选用Adam 算法对模型进行优化,其中权重系数(weight decay)为0.000 1。为了防止过拟合,在训练时加入了Dropout,并设置为0.2。所有的模型由一块GeForce RTX 2080 Ti GPU 训练完成,深度学习框架为PyTorch1.3,Python 版本为3.6。

2.3 实验结果

为了验证算法的效果,本文在NTU60 RGB+D[15]与NTU120 RGB+D[19]两个数据库上进行实验对比,同时为了验证该网络在较低参数量的情况下的具体表现,仅选择近两年内提出的主流方法作为参考比较的对象。其中在NTU60 RGB+D 数据集上的实验结果如表1 所示。

Table 1 Comparison of accuracy on NTU60 RGB+D dataset表1 NTU60 RGB+D 数据集上的实验精度对比

本文方法在NTU60 RGB+D数据集上的X-Sub与X-View 两个评价标准上的精度分别为89.9%、94.7%。相比于SGN[13],分别提升了0.9 个百分点与0.2 个百分点。与基于循环神经网络的方法AGC-LSTM(joint)[18]、基于卷积神经网络的方法VA-CNN[17]相比,无论是在参数量上还是在精度上,本文方法都有较大的提升。当与基于图卷积的方法ST-GCN[11]、AS-GCN[10]相比时,本文方法在精度上和参数量上也较为优越。具体的参数展示如表2 所示,相比于近两年内的其他方法,本文方法综合表现最为出色。

Table 2 Comparison of parameters表2 参数量对比

为了更好地证明本文方法的优越性,同样在NTU120 RGB+D 数据集[19]上进行了比较,具体的实验结果如表3 所示。

在NTU120 RGB+D 数据集[19]上的X-Sub与X-Set两个评价标准上的精度分别为82.1%、83.8%。相比于SGN[13]方法,分别提升了2.9 个百分点与2.3 个百分点。与基于循环神经网络的方法Logsin-RNN[21]和基于卷积神经网络的方法Body Pose Evolution Map[22]相比,本文方法有较明显的优势。与基于循环神经网络的方法GVFE+AS-GCN with DH-TCN[23]相比,本文方法也有一定的优势。在该数据集上的实验结果表明本文方法可以在兼顾参数量的同时显著提高实验精度。

Table 3 Comparison of accuracy on NTU120 RGB+D dataset表3 NTU120 RGB+D 数据集上的实验精度对比

最后,为了更客观地证明本文中所提出的多模态数据融合与时空间流模块的性能和有效性,本文在NTU60 RGB+D 数据集[15]与NTU120 RGB+D 数据集[19]上分别构建了五个网络,用来测试删除该模块后对整个实验结果的具体影响,具体实验结果如表4 所示。其中wo-bone(without bone information flow)表示为数据融合中缺少骨长信息流;wo-motion(without motion information flow)表示为数据融合中缺少运动信息流;wo-diff(without velocity difference information flow)表示为数据融合中缺少速度差信息流;wo-diffbone(without bone information flow based on velocity difference)表示为数据融合中缺少基于速度差的骨长信息流。最后一组表示缺少时空间流模块中的密集连接与快捷连接。通过综合比较NTU60 RGB+D数据集[15]与NTU120 RGB+D 数据集[19]上各模块的测试结果,发现在这四类数据之中,缺少骨长信息流和速度差信息流会对实验结果造成较大影响。综合上述分析,证明了本文提出的多模态数据融合与时空间流模块的有效性。

Table 4 Comparison of different modules表4 各模块对比%

3 结束语

针对传统的行为识别方法计算复杂度过高的问题,本文提出了一种基于轻量级图卷积的人体骨架数据的行为识别方法。该算法通过多模态数据融合与自适应图卷积相结合的方式,在兼顾参数量的同时取得了很好的效果,同时通过密集连接以及快捷连接的方式提高特征的利用率。最后,在行为识别数据集NTU60 RGB+D 和NTU120 RGB+D 上的实验结果表明,该方法在较低参数量的情况下,能达到较高的实验精度。美中不足的是,通过密集连接以及快捷连接的方式虽然能够大幅提高精度,但是仍然会对参数量造成一定的影响。在未来的工作中,将继续研究基于人体骨架数据的行为识别方法,实现以更少的参数量达到更高的精度这一目标。

猜你喜欢

信息流骨架模态
联合仿真在某车型LGF/PP尾门模态仿真上的应用
浅谈管状骨架喷涂方法
汽车用减震件过盈配合骨架装配模具及装配技术
基于老年驾驶人的多模态集成式交互设计研究
基于约束逻辑的网络非集中式信息流整合系统设计
我国信息流广告发展现状及优化策略研究
——以微信朋友圈为例
“超级大陆”发现新物种完整骨架
模态可精确化方向的含糊性研究
周博士考察拾零(六十六)日光温室前屋面开机具作业门处骨架的处理方法
管理中资源要素的协同作用