基于GCN的局部增强人体骨骼行为识别算法

2022-06-23 11:12谢伙生罗洪文
计算机工程与设计 2022年6期
关键词:全局骨骼准确率

谢伙生,罗洪文

(福州大学 数学与计算机科学学院,福建 福州 350591)

0 引 言

通常,人体行为可以使用人体骨骼的运动轨迹来刻画,骨骼数据可以很好地描述人体运动的动态特征。同时,骨骼数据大幅度降低了视频帧包含的数据量,例如,在使用Kinect体感摄像机采集的NTU-RGB+D[1,2]数据集中,每一帧骨骼数据只包含了人体的25个关节点,每个关节点仅仅包含一个三维空间坐标点。目前,有许多方法通过将骨骼序列数据重构为二维网格结构,构造成“伪图片”的格式,进而使用CNN、LSTM、GRU等网络模型提取特征[3-6]。人体骨骼的自然连接是一种非欧几里得结构,如果直接将其网格化会损失其中蕴含的重要的空间信息。为了解决这个问题,图卷积神经网络被应用于基于骨骼数据的行为识别任务中,并且在多个大规模骨骼数据集上显著地提升了识别准确率[7-12]。

本文探讨了关节的全局信息与局部信息的信息共现性,提出将身体按部位进行分块,在每一个分块内部聚合关节的局部信息,并且利用自适应图卷积神经网络[10,13-15]提取每个关节的全局信息,关联全局信息与局部信息以此构建为一个完整的信息推理模型,达到局部信息增强全局信息的目的,使得整体模型的信息交流更加充分。此外,本文认为在时间维度上使用单一的卷积操作是不够充分的,因此本文提出通过使用多层膨胀时间卷积网络来提取骨骼数据在时间维度中的上下文依赖关系。通过堆叠多个时间卷积层,并且逐步扩大每一层的感受野,使得模型可以捕获短期和长期时序上下文依赖关系。通过这种方式本文的模型能够更加充分地提取骨骼序列的上下文依赖关系,进一步提升模型的推理能力。

1 相关工作

图神经网络可以大致分为两种方式:①谱域,利用图拉普拉斯矩阵的特征值和特征向量,这些方法利用图的傅里叶变换在频域进行图的卷积;②空间域,直接迭代地聚合每个节点的邻域信息以此更新每个节点的状态。Kipf等[16]首先提出使用切比雪夫核的一阶近似作为GCN的卷积核,并且在半监督分类任务中表现出优越的性能。Yan等[17]将GCN应用于基于骨骼的行为识别任务中,他们利用GCN提取关节的空间信息,TCN提取关节的时间上下文依赖关系,提出ST-GCN。Thakkar等[18]将人体分成数个独立的分块分别提取信息,最后汇总每个块的信息,但是,他们忽略了关节的全局信息的重要性。Li等[13]将人体骨骼连接分为动作连接和结构连接,分别聚合信息,有效地提升了识别精度。Si等[19]提出一种网络模型使用GCN提取空间信息,使用LSTM提取时间信息。Gao等[20]提出使用图回归构建时空维度中的人体骨骼拓扑结构,并使用高阶切比雪夫核近似替代一阶的切比雪夫核。Shi等[15]提出了一种自适应图卷积神经网络,它可以通过数据驱动的方式自适应地学习人体骨骼的拓扑结构,他们从全局的角度考虑每个关节的全局相关性,忽略了关节的局部相关性也是一个重要而不可忽视的关键因素。Zhang等[14]提出了一种轻量级网络结构,显式地将关节类型和帧索引作为语义信息嵌入网络中,论证了语义信息能够很好地帮助模型理解行为动作。

2 图卷积神经网络

通常,一个骨骼序列由T帧组成,每一帧中包含N个关节,每个关节通常是一个三维空间坐标或者二维平面坐标。因此,可以将自然连接的骨骼序列构建为无向图G=(V,E), 其中顶点集V={vti|i=1,…,N,t=1,…,T}, 边集E由Es和Ef两个子集组成,Es代表每一帧中关节之间的自然连接关系,Es={vtivtj|(i,j)∈H}, 其中H代表自然连接的骨骼边集合。Ef代表相同的关节在连续的帧之间的连接关系,Ef={vtiv(t+1)i}。 令A表示人体骨骼自然连接的邻接矩阵,A={0,1}N×N, 如果vivj∈Es, 则Aij=1, 否则Aij=0。 关节vi和其邻域中其它关节的信息聚合方法可以定义为

(1)

图卷积神经网络的详细实现过程稍显复杂,通过使用切比雪夫核的一阶近似作为GCN的卷积核,可以将式(1)变换为式(2)

(2)

3 本文提出的方法

ST-GCN中的图拓扑结构是人体关节的自然连接,它形式固定缺乏灵活性,在一些动作中非自然连接的关节之间相关性更强,固定形式的关节连接方式会导致模型推理能力不佳。文献[10,13~15]采用数据驱动的方法自适应学习人体骨骼的图拓扑结构,计算每个关节点与其它关节点之间的连通性以及连接强度,结果表明采用自适应图卷积网络的方式大幅度地提升了网络的识别准确率。本文提出了一种分层次的时空图卷积神经网络模型,从时间和空间两个维度分别提取骨骼数据的信息。如图1所示,在空间维度上,本文探讨了关节全局相关性与局部相关性的信息共现关系,以数据驱动的方式自适应地学习关节的全局相关性,通过对身体部位分块,构建每个分块内部关节的局部相关性,关联关节的全局信息与局部信息,达到局部信息增强全局信息的目的。此外,在每个GCN模块后加入了SENet[21]注意力网络模块,使得活跃度高的关节受到更多的关注度;在时间维度上,本文通过堆叠多层的时间膨胀卷积网络层,并且逐步扩大每一层的感受野,使得网络模型可以兼具捕获短期和长期时序上下文依赖关系。

图1 网络模型整体流程

3.1 多模态特征融合模块

对于原始的输入数据fin∈R3×N×T, 通过在时间维度上执行一阶差分,获得可以表征关节的运动方向和距离的运动矢量,其作为一种二阶信息可以从关节的运动轨迹分析行为过程,具有很强的鲁棒性。通过计算各个关节与人体骨骼的中心关节的相对位置,可以减少人体尺度不一致带来的影响,相对于关节的三维空间坐标来说,相对位置具有更强的鲁棒性。文献[14]论证了显式地将关节类型与骨骼帧索引输入模型中,对于行为识别任务能够起到语义增强的作用。不同模态的特征进行粗糙融合会造成特征尺度差异过大的问题,不利于模型推理,因此本文利用多层感知机(multilayer perceptron,MLP)先将不同模态的数据(三维空间坐标、运动矢量、相对位置、关节类型和帧索引,其中关节类型与帧索引编码为one-hot向量)嵌入高维空中,以此平滑不同模态特征的差异性,并且融合多种特征作为网络的输入。特征融合的过程使用两层MLP,由1×1卷积实现,可以用数学模型描述如下

fout=σ(w2σ(w1fin+b1)+b2)

(3)

式中:w1和w2是参数矩阵,b1和b2是偏置向量,σ是ReLU激活函数。

3.2 空间图卷积网络模块

3.2.1 构建全局自适应邻接矩阵

在构建基于骨骼数据的图卷积神经网络模型时,如何构建各个关节之间相关性是一个至关重要的工作。在ST-GCN中使用人体骨骼的自然连接构建骨骼拓扑图,这方式最大的缺陷是缺乏灵活性,分析所有的行为都使用固定的关节邻接关系,这种方式的效果并不理想。在文献[10,13~15]的工作中,根据不同的输入数据自适应地学习关节的邻接关系,这种数据驱动的方式可以根据不同行为的特点,为关节之间的连通关系赋予不同的关注度,使得网络模型在提取特征时可以重点关注于相关性高的关节,具有良好的灵活性。

本文采用Ag=(PA+C) 的形式构建关节与关节之间的全局相关性,其中Ag表示全局邻接矩阵,PA的大小与人体骨骼的自然连接所构造的邻接矩阵A一致,并且是一个可训练的矩阵,它利用A进行参数初始化,在训练过程中PA可以自主学习调整参数,进一步增加了关节连通的灵活性。C是一个自适应邻接矩阵,它根据不同的输入数据,自适应地计算出不同关节之间的邻接关系。与文献[10,13~15]的工作相似,本文通过计算输入数据中每个关节与其它关节之间的相关性来获得自适应邻接矩阵C∈RN×N。 对于输入数据fin∈R3×N×T, 本文使用两个嵌入函数将其嵌入到高维空间中以获得C′×N×T的张量,并将它重塑为N×C′T矩阵和C′T×N矩阵,再通过矩阵乘法便可以得到N×N的张量,使用Softmax便可以得到关节的全局相关性自适应邻接矩阵C。计算方法可以定义为

C=Softmax(θ(fin)Tφ(fin))

(4)

式中:θ=w1x+b1和φ=w2x+b2表示两个嵌入函数,两者均由1×1卷积实现。

3.2.2 人体局部划分策略

文献[18]论证了通过将身体按部位划分为不同的部分,并在各个部分内部分别聚合信息,可以有效地提高人体行为识别任务的识别准确率。在这一节中,本文根据人体骨骼的图拓扑结构,提出了一种划分策略,如图2所示,将身体部位分为6块,分别是:左臂、右臂、上主干、下主干、左腿、右腿,这种策略中存在着一些关节同时属于不同的分块,这意味着在使用图卷积神经网络聚合信息时,这些分块可以进行信息交流。将每个分块单独构造为一个图,这样一个骨骼图就可以根据分块划分为多个子图,因此可以为每个子图构造对应的局部分块邻接矩阵Ai∈Asubset,Asubset={A1,A2,…,An}。 对于每个子图内部的连通关系,本文将每个分块内部的关节构造为彼此连通的关系,这就意味着每个分块内部都是一个全连通图,这种方式对于局部特征提取更为有效。

图2 身体部位分块策略

3.2.3 全局与局部的信息共现性

本文认为全局信息与局部信息是一种互补的关系,全局信息放眼于整体,从全局的角度关注信息的整体变化,提取到的是一种全局性的信息变化,然而也存在对局部信息的敏感度不足的问题。局部信息关注的则是信息的局部变化,对于细节信息更为敏感,然而也缺乏了对于信息的全局变化的感知能力。因此,仅仅关注于全局信息或是局部信息都是不够充分的,只有将全局信息与局部信息相结合,使得彼此相互补充才能有效地提升网络模型的信息提取能力。

根据3.2.1节可以得到全局自适应邻接矩阵,通过式(5)可以实现聚合每个关节的全局信息,本文将其定义为G-GCN模块(全局图卷积神经网络模块)。根据3.2.2节可以得到局部分块的邻接矩阵,通过式(6)可以在每个分块内部聚合每个关节的局部信息,本文将其定义为L-GCN模块(局部图卷积神经网络模块)。通过式(7)实现了加权融合关节的局部信息与全局信息,利用关节的局部信息增强全局信息,以此提高模型对整体信息的提取能力

fG - G CN=MAgfinwg

(5)

(6)

fo ut=fG - G CN+λfL- G CN

(7)

其中,Ag是全局邻接矩阵,M是N×N的注意力矩阵。wg和wi是参数矩阵,λ是超参数。

3.3 时间膨胀卷积网络模块

对于在时间维度上的信息提取,现有的基于ST-GCN的方法使用单一的时间卷积网络模块提取骨骼数据的时序上下文依赖关系,这种单一的卷积层受限于卷积核的大小,无法提取到更加高水平的特征,因此无法充分地提取时序上下文依赖关系。TCN[22]在时间维度上通过使用膨胀卷积使单个卷积核在尺寸不变的前提下,增大卷积核的采样间隔,使得卷积核拥有更大的感受野,能够很好地提取更长时间的上下文依赖关系。

受到TCN的启发,本文采用多层膨胀时间卷积网络在时间维度上进行信息提取,以此取代原先ST-GCNs中单一的时间卷积网络层。如图3所示,M-TCN模块每一层从左至右依次为TCN、BN、ReLU和Dropout,通过堆叠多层TCN模块并为每个模块设置依次增大的膨胀因子d,使得网络模型对于时序的上下文依赖关系的提取能力逐渐增强。此外,通过引入膨胀因子d可以使同等大小的卷积核拥有更大的感受野,并没有增加额外的参数量。与单一的时间卷积网络模块相比,本文的M-TCN(多层时间膨胀卷积网络模块)可以兼具提取骨骼数据时序上的短期和长期上下文依赖关系,进一步增强了网络模型对整体信息的提取能力。形式上,多层时间膨胀卷积网络模块可以定义为

(8)

图3 M-TCN

4 实验结果和分析

4.1 数据集

NTU-RGB+D-60[1]是一个由Kinect体感摄像机采集的大规模且极具挑战性的人体行为数据集,该数据集包含了多种数据流,如RGB图像、RGB+D图像以及骨骼数据,其中骨骼数据被广泛地应用于基于骨骼数据的人体行为识别任务中。在这个数据集中,一共包括56 880个视频片段,每一帧都包含25个关节,通过3台不同设置的深度摄像机采集由40个志愿者分别执行的60种行为动作视频片段。文献[1]中提供了两种评估基准:Cross-Subject(CS)和Cross-View(CV)。此外,在两个基准中均使用Top-1的识别准确率。

NTU-RGB+D-120[2]是ROSE lab最新发布的一个大规模人体行为数据集,它是NTU-RGB+D-60的扩展版本,包含了114 480个由106个志愿者执行的120种不同的行为的视频片段。文献[2]提供了两种评估基准:Cross-Subject(C-Subject)和Cross-Setup(C-Setup)。同样地,在两个基准中均使用Top-1的识别准确率。

4.2 训练细节

(1)模型设置

在多模态特征融合模块中,MLP层使用1×1卷积代替全连接层,特征的输出通道分别为32和64,经过5种模态的特征拼接后得到融合特征通道数为320,再使用两个1×1卷积将特征维度分别降为128和64。在空间图卷积网络模块中,本文的最终的模型使用五层GCN模块来聚合关节的空间信息,每个GCN模块由G-GCN模块和L-GCN模块组成,G-GCN模块的输出特征通道分别为128、128、256、256、256。输出特征的通道数方面L-GCN模块与G-GCN模块保持一致,并且设置超参数λ为0.5。此外,GCN模块中的所有的卷积操作都是通过1×1卷积操作实现的。在时间膨胀卷积网络模块中,本文最终的模型堆叠了三层时间膨胀卷积网络,卷积核设置为1×3,膨胀因子d分别设置为1、2、4,输出通道分别为256、256、512。此外,每一个GCN模块和TCN模块都使用了ReLU激活函数和批量正则化。

(2)训练设置

本文的所有实验均在两块Tesla P100 GPU、Pytorch深度学习框架、Python3.7的环境下完成的。本文使用Adam作为模型的优化器,设置初始学习率为1×10-3,权重衰减因子为1×10-4。训练过程的迭代次数设置为120次,使用MultiStepLR学习率调整策略,分别在第60、90、110个epoch衰减学习率为原来的十分之一,使用多分类交叉熵损失函数训练本文的模型。此外,本文将NTU-RGB+D-60数据集和NTU-RGB+D-120数据集的批训练大小均设置为64。

4.3 消融实验

为了验证本文所提出的方法的有效性,本文在NTU-RGB+D-60数据集上进行了消融实验,并且构建了消融实验的基准线:移除了GCN模块的L-GCN模块,保留G-GCN部分,设置TCN模块为一层的时间卷积网络,膨胀因子d取值为1,其它部分与主体网络保持一致。

为了验证M-TCN模块的有效性,本文采用多层堆叠TCN的方式进行对比实验,单层TCN模块与基准线实验设置一致;两层堆叠TCN模块,分别取膨胀因子d=1,2; 三层堆叠TCN模块,分别取膨胀因子为d=1,2,4; 四层堆叠TCN模块,分别设置膨胀因子为d=1,2,4,8。 实验结果见表1,在NTU-RGB+D-60数据集的CV评估基准中,多层堆叠的TCN模块相较于基准线的识别准确率均有了明显的提升。其中,二层和四层堆叠TCN模块相较于基准线分别提升了0.8%和1.2%,三层堆叠TCN模块相较于基准线的识别准确率提升了1.4%。结果表明仅仅使用单一的TCN模块提取骨骼序列的时序上下文依赖关系是不够充分的,通过使用多层时间膨胀卷积网络模块,并且逐步扩大每一层的感受野,使得模型可以兼具提取骨骼数据在时序上的短期与长期上下文依赖关系。

表1 对比多层次TCN的识别准确率/%

对于超参数λ的取值,本文通过实验对比λ在不同取值的情况下的识别准确率来确定最终的取值。在CV评估基准下,选取λ的值分别为0、0.25、0.5、0.75、1,执行对比实验。实验结果如图4所示,在CV评估基准下,网络模型的识别准确率随λ的不同取值变化而变化,当λ=0.5时达到最佳的识别准确率95.8%。根据λ的取值变化,在CV评估基准中模型的识别准确率的变化趋势符合凸组合理论,因此本文最终选择0.5作为超参数λ的取值。

图4 λ取值不同时的实验结果对比

如表2所示,在NTU-RGB+D-60数据集的CS评估基准中,在基准线的基础上,通过增加L-GCN模块,模型的识别准确率提升了0.8%;通过增加M-TCN模块,模型的识别准确率提升了1.5%;通过增加L-GCN、M-TCN模块使得本文的模型识别准确率提升了1.8%。在CV评估基准中,在基准线的基础上,通过增加L-GCN模块,模型的识别准确率提升了0.9%;通过增加M-TCN模块,模型的识别准确率提升了1.4%;通过增加L-GCN、M-TCN模块使得模型的识别准确率提升了1.9%。实验结果表明,L-GCN模块提取的局部信息增强了整体模型对于局部信息变化的感知能力,有效地提升了模型的识别准确率。M-TCN模块通过多层膨胀卷积,使得网络模型在时序上拥有逐步增大的感受野,因此网络模型能兼具提取骨骼数据在时序上的短期和长期上下文依赖关系,使得模型在时间维度上的信息提取更为充分,进一步提升了模型的识别准确率。

表2 消融L-GCN及M-TCN组件的识别准确率/%

在NTU-RGB+D-60数据集的CV评估基准下,验证集的混淆矩阵如图5所示。其中,包含47种行为的识别准确率高于95%的水平,9种行为的识别准确率处于90%~95%的水平,4种行为的识别准确率低于90%的水平。标签10对应的行为是“reading”,识别准确率为79%,模型错误地将12%的测试样本预测为了“writing”。标签11对应的行为是“writing”,识别准确率为78%,模型错误地将8%的测试样本预测为了“reading”,将9%的测试样本预测为了“typing on a keyboard”。标签28对应的行为是“make a phone call/answer phone”,识别准确率为89%,模型错误地将3%的测试样本预测为了“writing”,将3%的测试样本预测为了“typing on a keyboard”。标签29对应的行为是“typing on a keyboard”,识别准确率为81%,模型错误地将11%的测试样本预测为了“writing”。由此可见,“reading”与“writing”在动作上相似度较高,模型对于这两种行为的辨识能力存在一定的误差。“writing”与“ty-ping on a keyboard”在动作上具有较强的相似度,模型对这两种行为的区分能力存在不足之处。整体而言,网络模型的识别准确率保持在较高的水平,对于区分度较大的行为,如“wear jacket”、“walking towards each other”,能够达到100%的识别准确率。

图5 混淆矩阵

4.4 与其它方法进行比较

在NTU-RGB+D-60数据集上,如表3所示,本文的方法在CS以及CV评估基准中分别取得89.3%与95.8%的识别准确率。与文献 [3,23~26] 方法相比,本文的方法在两种评估基准中准确率都有明显的提升。相较于其它基于CNNs或是RNNs的方法,本文方法的识别准确率均有较大的提升。本文方法在与其它基于图神经网络的方法进行比较时,识别准确率也在不同程度上有了提升,与具有代表性的ST-GCN[17]和2s-AGCN[15]相比,本文的方法在CS评估基准中识别准确率分别提高了7.8%和0.8%,在CV评估基准中准确率分别提高了7.5%和0.7%。与SGN[14]相比,本文的方法在CS和CV评估基准中的准确率分别提升了0.3%和1.3%。

表3 对比各方法在NTU-RGB+D-60中的识别准确率/%

在NTU-RGB+D-120数据集上,如表4所示,本文的方法在C-Subject与C-Setup两种评估基准中分别取得了79.6%和80.7%的识别准确率。与文献[1,3,24]方法相比,本文的方法的识别准确率有了较大的提升。相较于Part-Aware LSTM[1],本文方法的识别准确率在两种评估基准中分别提升了54.1%和54.4%。相较于ST-GCN[17],本文的方法在C-Subject评估基准和C-Setup评估基准中的识别准确率分别提高了7.4%和9.2%。与SGN[14]相比,本文的方法在C-Subject评估基准中也提升了0.4%的识别准确率。

表4 对比各方法在NTU-RGB+D-120中的 识别准确率/%

5 结束语

本文提出的分层次时空图卷积神经网络模型,探讨了关节的全局与局部信息的共现性,实现了局部信息增强全局信息的目的,并构建了一个完整的空间信息推理模型。此外,本文通过使用多层时间膨胀卷积网络提取骨骼数据在时间维度中的上下文依赖关系,使得模型可以兼具捕获短期和长期的时序上下文依赖关系,加强了模型对时间信息的提取能力。本文的模型在NTU-RGB+D-60和NTU-RGB+D-120数据集上均取得了较好的识别准确率。由于骨骼数据对外观特征不敏感,导致本文模型识别诸如“reading”、“writing”等行为易混淆,今后的研究工作可以考虑结合彩色图像的外观特征,提升模型对外观敏感动作的识别准确率。

猜你喜欢
全局骨骼准确率
基于改进空间通道信息的全局烟雾注意网络
做家务的女性骨骼更强壮
三减三健全民行动——健康骨骼
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察
落子山东,意在全局
记忆型非经典扩散方程在中的全局吸引子
高超声速飞行器全局有限时间姿态控制方法