Semantics-Guided Neural Networks for Efficient Skeleton-Based Human Action Recognition 论文阅读

Semantics-Guided Neural Networks for Efficient Skeleton-Based Human Action Recognition 论文阅读笔记

语义引导的神经网络在基于骨架的人体动作识别中的应用
论文地址

摘要

基于骨架的人体动作识别因其易于获取人体骨架数据而引起了人们极大的兴趣。近年来,有一种趋势是在不考虑计算效率的情况下,使用非常深入的前馈神经网络来建模关节的三维坐标。本文提出了一种简单有效的语义引导神经网络(SGN)用于基于骨架的动作识别。我们明确地将关节的高级语义(关节类型和帧索引)引入到网络中,以增强特征表示能力。 此外,我们还通过两个模块,即用于建模同一帧中关节相关性的关节级模块和用于将同一帧中的关节作为一个整体来建模帧间依赖关系的帧级模块,分层地利用关节之间的关系。提出了一个强有力的基线,以促进该领域的研究。SGN在NTU60、NTU120和SYSU数据集上实现了最先进的性能,其模型尺寸比以前的大多数作品小了一个数量级。 源代码在 代码地址

1.引言

人类行为识别有着广泛的应用场景,例如人机交互和视频检索[35,50,1]。近年来,基于骨架的动作识别吸引了越来越多的兴趣。骨架是一种结构良好的数据,人体的每个关节都由关节类型、帧索引和三维位置标识。使用骨架进行动作识别有几个优点。首先,骨架是人体的高级表示,抽象了人体的姿态和运动。 从生物学角度讲,在没有外观信息的情况下,人类只通过观察关节的动作就能识别动作类别 。[17]. 其次,经济高效的深度相机[61]和姿势估计技术[38,4,43]的进步使骨骼的获取变得更加容易。第三,与RGB视频相比,骨架表示对视点和外观的变化具有鲁棒性。第四,由于低维表示,它的计算效率也很高。此外,基于骨架的动作识别也是对基于RGB的动作识别的补充【42】。在这项工作中,我们关注基于骨架的动作识别。

图1:NTU60(CS设置)上不同方法在精确度和参数数量方面的比较。所提出的SGN模型在模型尺寸较小的数量级上实现了最佳性能。

对于基于骨架的动作识别,深度学习被广泛用于建模骨架序列的时空演化[11,47]。已经开发了各种网络结构,例如循环神经网络(RNN)[7,63,36,41,57,40],卷积神经网络(CNN)[18,58,30,51],以及图卷积网络(GCN)[54,40,44]。 在早期,RNN /LSTM是最受欢迎的网络,用于开发短时间和 长期时间动态学。 最近,有一种趋势是使用前馈(即非递归)卷积神经网络对语音、语言[34、10、53、48]和骨架[18、58、30、51]中的序列进行建模,因为它们具有优异的性能。 大多数基于骨架的方法将关节坐标组织为2D贴图,并将贴图大小调整为适合CNN输入的大小(例如224×224)(例如ResNet50[12])。其行列对应于不同类型的关节帧索引。在这些方法中[18,58,30,51],长期依赖性和语义信息有望被深层网络的大感受野捕获。这似乎很残酷,通常会导致模型的高度复杂性。 直观地说,语义信息,即关节类型和帧索引,对动作识别非常重要。语义和动力学(即3D坐标)揭示了人体关节的空间和时间配置/结构。正如我们所知,两个坐标相同但语义不同的关节将传递非常不同的信息。例如,对于头部上方的关节,如果该关节是手关节,则动作可能是举手;如果是脚关节,动作可能是踢腿。此外,时间信息对动作识别也很重要。以坐和站这两种动作为例,它们只是在帧的出现顺序上有所不同。然而,大多数方法[11,47]忽视了语义信息的重要性,并没有对其进行充分的探索。
图2
图2:提出的端到端语义引导神经网络(SGN)的框架。它由关节级模块和框架级模块组成。在DR中,我们通过融合关节的位置和速度信息来学习关节的动力学表示。关节级模块和框架级模块分别包含两种语义,即关节类型和框架索引。为了在关节级别模块中建模关节的依赖关系,我们使用了三个GCN层。为了建模帧之间的依赖关系,我们使用了两个CNN层。

为了解决现有方法的上述局限性,我们提出了一种语义引导的神经网络(SGN),它明确地利用语义和动力学来实现高效的基于骨架的动作识别。 图2显示了总体框架。我们通过依次探索骨架序列的关节级和帧级依赖关系来构建层次网络。 为了更好的联合水平相关性建模, 除了动力学之外,我们还将关节类型(例如,“头部”和“臀部”)的语义结合 到GCN层,这使得内容自适应图的构建和每个帧内关节之间的有效消息传递成为可能。为了更好地进行帧级相关建模,我们将时间帧索引的语义合并到网络中。特别是,我们对同一帧内关节的所有特征执行空间最大化池化(SMP)操作,以获得帧级特征表示。 结合嵌入的帧索引信息,采用两层时间卷积神经网络学习特征表示进行分类。此外,我们开发了一个性能和效率都很高的强大基线。由于对语义信息的有效探索、分层建模和强大的基线,我们提出的SGN以更少的参数实现了最先进的性能。
我们将我们的三个主要贡献总结如下:

  1. 我们提出明确探索关节语义(帧索引和关节类型),以实现高效的基于骨架的动作识别。以前的工作忽略了语义的重要性,并依赖于高度复杂的深层网络进行动作识别 。
  2. 我们提出了一种语义引导的神经网络(SGN),以分层地利用关节级和帧级的空间和时间相关性。
  3. 我们开发了一个轻量级的强基线,它比以前的大多数方法更强大。我们希望这一强基线将有助于基于骨架的动作识别的研究。

基于以上技术贡献,我们获得了一个计算效率高的基于骨架的高性能动作识别模型。 大量的消融研究证明了所提出模型设计的有效性。在三个最大的基于骨架的动作识别基准数据集上,所提出的模型始终比许多竞争性算法具有优异的性能,同时模型大小比许多算法小一个数量级(见图1)。

2.相关工作

基于骨架的动作识别近年来受到越来越多的关注。最近使用神经网络[11]的工作明显优于使用手工特征的传统方法[11,52,46,55,9]。
基于递归神经网络。 递归神经网络,如LSTM[14]和GRU[5],通常用于建模骨骼序列的时间动力学[7,36,63,41,57,59,60]。 一帧中所有关节的三维坐标按一定顺序连接起来,作为时隙的输入向量。它们不会明确告诉网络哪些维度属于哪个关节。其他一些基于RNN的工作倾向于在RNN中设计特殊的结构,以使其了解空间结构信息。Shahroudy等人将LSTM模块分为五个子模块,分别对应于五个身体部位,即躯干、双臂和双腿【36】。Liu等人提出了一个时空LSTM模型,以利用时间域和空间域中关节的上下文依赖性[27],它们在每一步中为不同类型的关节提供信息。在某种程度上,它们区分不同的关节。
**基于卷积神经网络。**近年来,在语音、语言序列建模领域,卷积神经网络在准确性和并行性方面都显示出其优越性[34、10、53、48、45]。基于骨架的动作识别也是如此[6,22,18,3]。这些基于CNN的作品将骨架序列转换为一些目标大小的骨架图,然后使用一种流行的网络,如ResNet[12],来探索时空动态。有些作品通过将关节坐标(x、y、z)视为像素的R、G和B通道,将骨架序列转换为图像[6、22]。Ke等人将骨骼序列转换为四个2D阵列,这些阵列由四个选定参考关节(即左/右肩、左/右髋)和其他关节之间的相对位置表示【18】。骨架是结构良好的数据,具有明确的高层语义,即框架索引和关节类型。然而,CNN的内核\过滤器是平移不变的[32],因此无法直接从此类输入骨架映射中感知语义。CNN希望通过深层网络的大感受域来感知这种语义,但这不是很有效。
基于图卷积网络。 图卷积网络[21]被证明是处理结构化数据的有效方法,也被用于对结构化骨架数据建模。Yan等人。 提出了一种时空图卷积网络[54]。它们将每个关节视为图形的一个节点。表示关节关系的边的存在是人类基于先验知识预先定义的。为了增强预定义的图,Tang等人定义了物理断开和连接的关节对的边,以便更好地构造图[44]。提出了一种SR-TSL模型[40],该模型使用数据驱动的方法来学习每个帧内五个人体部位的图形边缘,而不是利用人体定义。双流GCN模型【37】学习基于非本地块的内容自适应图,并使用它在GCN层中传递消息。然而,由于没有利用信息语义来学习GCN的图边和消息传递,使得网络效率降低。
语义信息的显式探索。 语义的明确探索已经在其他领域得到了利用,例如机器翻译[45]和图像识别[62]。Ashish等人明确编码标记在序列中的位置,以利用机器翻译任务中序列的顺序【45】。Zheng等人将群索引编码为卷积信道表示,以保留群序信息[62]。然而,对于基于骨架的动作识别,关节类型和帧索引语义被忽略,尽管这些信息非常重要。在我们的工作中,我们建议显式编码关节类型和帧索引,以保留空间和时间身体结构的重要信息。作为探索这种语义的初步尝试,我们希望它能激发相关学术界更多的调查和探索。

3.语义引导的神经网络

对于骨架序列,我们通过其语义 (关节类型和帧索引) 来识别关节,并将其与其动力学(位置\三维坐标和速度)一起表示。如果没有语义,骨架数据将失去重要的时空结构。然而,以前基于CNN的作品[18、6、58]通常会通过在2D骨架图中隐式隐藏语义来忽略语义(例如,与不同类型的关节对应的行和与帧索引对应的列)。我们提出了一种用于基于骨架的动作识别的语义引导神经网络(SGN),并在图2中展示了整体端到端框架。它由关节级模块和框架级模块组成。我们在以下小节中描述了该框架的细节。
具体而言,对于骨骼序列,我们将所有关节表示为一个集合
S = { X t k ∣ t = 1 , 2 , . . . t : k = 1 , 2 , 3 , . . . J } \mathbf S = \{ \mathbf X_t^k |t= 1,2, ...t:k =1,2,3,...J\} S={ Xtkt=1,2,...t:k=1,2,3,...J}
其中 X t k \mathbf X_t^k Xtk表示时间t时k类型的关节。t表示骨骼序列的帧数,J表示帧中人体的关节总数。对于给定的时间t时k型关节 X t k \mathbf X_t^k Xtk,可以通过其动力学和语义来识别。动力学与关节的三维位置相关。 语义是指框架索引t和关节类型k。

3. 1动力学表示

对于给定的关节 X t k \mathbf X_t^k Xtk,我们通过位置 p t , k = ( x k , t , y t , k , z t , k ) T ∈ R 3 , \mathbf p_{t,k} = (x_{k,t}, y_{t,k},z_{t,k})^T \in \mathbb R^3, pt,k=(xk,t,yt,k,zt,k)TR3,,在3维坐标系中定义其动力学, 以及速率 v t , k = p t , k − p t − 1 , k v_{t,k} = p_{t,k} - p_{t-1,k} vt,k=pt,kpt1,k。我们将位置和速度编码/嵌入到相同的高维空间中, i . e . , P t , k ~ i.e.,\widetilde{P_{t,k}} i.e.,Pt,k v t , k ~ \widetilde{v_{t,k}} vt,k 。并通过求和将它们融合在一起 z t , k = p t , k ~ + v t , k ~ ∈ R C 1 ( 1 ) z_{t,k} = \widetilde{p_{t,k} } +\widetilde{v_{t,k}} \in \mathbb R^{C_1} (1) zt,k=pt,k +vt,k RC1(1)其中 C 1 C_1 C1是关节表示的尺寸。以位置的嵌入为例,我们使用两个完全连接的(FC)层来编码位置 p t , k p_{t,k} pt,k. p t , k ~ = σ ( W 2 ( σ ( W 1 p t , k + b 1 ) ) + b 1 ) , ( 2 ) \widetilde{p_{t,k}} = \sigma (W_2(\sigma(W_{1}p_{t,k} + b_1)) +b_1),(2) pt,k =σ(W2(σ(W1pt,k+b1))+b1),(2)其中 W 1 ∈ R C 1 × 3 W_1\in \mathbb R^{C_1 \times 3} W1RC1×3 W 2 ∈ R C 1 × C 1 W_2\in \mathbb R^{C_1 \times C_1} W2RC1×C1是权重矩阵, b 1 b_1 b1 b 2 b_2 b2是偏差向量, σ \sigma σ表示ReLU激活函数[33]。相似的,我们得到速度的嵌入为 v t , k ~ \widetilde{v_{t,k}} vt,k

3.2关节级模块

我们设计了一个关节级模块来利用同一帧中关节的相关性。我们采用图卷积网络(GCN)来探索结构骨架数据的相关性。以前的一些基于GCN的方法将关节作为节点,并基于先验知识预先定义图形连接(边)[54]或学习内容自适应图形[37]。我们还学习内容自适应图,但不同的是,我们将关节类型的语义合并到GCN层,以实现更有效的学习。
我们通过从两个方面充分利用语义来增强GCN层的能力。首先,我们使用关节类型的语义和动力学来学习帧内节点(不同关节)之间的图连接。关节类型信息有助于学习合适的邻接矩阵(即关节之间的连接权重关系)。以两个源关节(脚和手)和一个目标关节头为例,从直觉上看,即使脚和手的动力学相同,脚到头的连接权重值也应该与手到头的连接权重值不同。其次,作为关节信息的一部分,关节类型的语义参与GCN层的消息传递过程。
我们用one-hot向量 j k ∈ R d j_k \in\mathbb R^d jkRd表示第k个关节的类型(也称为k型),其中第k维度为1,其他维度均为零。与…的位置相似 。我们得到第k个关节类型的嵌入为 j k ~ ∈ R d \widetilde {j_k }\in\mathbb R^d jk Rd
给定骨架框架的J节点,我们构建了J节点图。我们用关节的动力学和语义来表示框架t处关节类型k的关节表示 类型为 z t = [ z t , k , j k ~ ] ∈ R 2 C 1 z_t = [z_{t,k},\widetilde {j_k}]\in \mathbb R^{2C_1} zt=[zt,k,jk ]R2C1。然后,框架t的所有关节都用 Z t = ( z t , 1 ; . . . ; z t , J ) ∈ R J × 2 C 1 Z_t = (z_{t,1};...;z_{t,J})\in\mathbb R^{J\times 2C_1} Zt=(zt,1;...;zt,J)RJ×2C1表示 。
与[49,48,37]类似,在同一帧t中,从第i个关节到第j个关节的边缘权重由嵌入空间中的相似性/亲和力建模,如下所示: S t ( i , j ) = θ ( z t , i ) T Φ ( z t , j ) ( 3 ) S_t (i,j) = \theta(z_{t,i})^T\Phi(z_{t,j})(3) St(i,j)=θ(zt,i)TΦ(zt,j)(3)

其中θ和φ表示两个变换函数,每个函数由一个FC层实现,即 θ ( x ) = W 3 x + b 3 ∈ R C 2 \theta(x)=W_3x+b_3\in\mathbb R^C2 θ(x)=W3x+b3RC2 Φ ( x ) = W 4 x + b 4 ∈ R C 2 \Phi(x)=W_4x+b_4\in\mathbb R^{C_2} Φ(x)=W4x+b4RC2
通过基于(3)计算同一帧中所有关节对的亲和力,我们得到了邻接矩阵 S t ∈ J × J S_t\in\mathbb J\times\mathbb J StJ×J.在 S t S_t St的每一行上使用SoftMax 如[45,48]执行归一化,以便连接到目标节点的所有边缘值之和为1。我们用Gt表示归一化邻接矩阵。 我们用Gt表示归一化邻接矩阵。利用残差图卷积层实现了节点间的消息传递 Y t = G t Z t W y , Y_t=G_tZ_tW_y, Yt=GtZtWy, Z t = Y t + Z t W z ( 4 ) Z_t=Y_t+Z_tW_z(4) Zt=Yt+ZtWz(4)其中Wy和Wz是变换矩阵。对于不同的时间帧,权重矩阵是共享的。Z0t是输出。请注意,可以堆叠多个残差图卷积层,以便在具有相同邻接矩阵Gt的节点之间进一步传递消息。

3.3帧级模块

我们设计了一个帧级模块来利用帧间的相关性。为了让网络知道帧的顺序,我们加入了帧索引的语义来增强帧的表示能力。
我们用one-hot向量 f t ∈ R d f f_t\in\mathbb R^{d_f} ftRdf来表示帧索引。类似于Equ中的位置编码(2)。 我们得到框架索引的嵌入为 f t ~ ∈ R C 3 \widetilde{f_t}\in\mathbb R^{C_3} ft RC3。我们用帧索引的语义和学习到的特征来表示与帧t处的关节类型k对应的关节表示 如 z t , k ′ = z t , k ′ + f t ~ ∈ R C 3 z^{'}_{t,k}=z^{'}_{t,k}+\widetilde{f_t}\in\mathbb R^{C_3} zt,k=zt,k+ft RC3,其中 z t , k ′ = Z t ′ ( k , : ) z^{'}_{t,k}=Z^{'}_{t}(k,:) zt,k=Zt(k,:)
为了合并帧中所有关节的信息,我们应用一个空间MaxPooling层跨关节聚合它们。因此,该序列的特征维数为T×1×C3。应用两个CNN层。第一个CNN层是一个时间卷积层,用于建模帧之间的依赖关系。第二层CNN通过映射到核大小为1的高维空间来增强学习特征的表示能力。在两个CNN层之后,我们应用时间最大化层来聚合所有帧的信息,并获得C4维的序列级特征表示。然后是一个与Softmax完全连接的层来执行分类。

4.实验

4.1数据集

NTU60 RGB+D数据集(NTU60)[36]。该数据集由Kinect摄像头收集,用于对56880个骨架序列进行3D动作识别。它包含60个动作类,由40名不同的受试者执行。每个人体骨骼由25个关节和3D坐标(J=25)表示。对于交叉学科(CS)设置【36】,40名受试者中的一半用于培训,其余用于测试。对于交叉视图(CV)设置【36】,三个摄像头中的两个摄像头捕获的序列用于训练,另一个摄像头捕获的序列用于测试。根据文献[36],我们随机选择10%的训练序列对CS和CV设置进行验证。
NTU120 RGB+D数据集(NTU120)[25]。此数据集是NTU60的扩展。最大的3D骨骼识别数据集是RGB+114D。它包含120个动作类,由106个不同的人类受试者执行。对于跨学科(C学科)设置,106名受试者中的一半用于培训,其余用于测试。对于交叉设置(C设置)设置,一半设置用于培训,其余用于测试。
SYSU 3D人机交互数据集(SYSU)[15]。它包含480个骨架序列,由40个不同的受试者执行12个动作。每个人体骨骼有20个关节(J=20)。我们使用与[15]相同的评估协议。对于跨学科(CS)设置,一半的受试者用于培训,其余用于测试。对于同一主题(SS)设置,每个活动的一半样本用于培训,其余样本用于测试。我们使用30倍交叉验证,并显示每个设置的平均准确度【15】。

4.2 实施细节

Network Setting :为了获得动态表示(DR.),每个FC层的神经元数量设置为64个(即C1=64)。请注意,FC层的权重不是位置和速度的共享权重。为了对关节类型进行编码,两个FC层的神经元数量都设置为64为了对帧索引进行编码,两个FC层的神经元数量分别设置为64和256 。C3=256。 对于(3)中的变换函数,每个FC层的神经元数量设置为256,即C2=256。对于关节级模块,我们将三个GCN层的神经元数量分别设置为128、256和256。对于fame级别模块,我们将第一层CNN的神经元数量设置为256,沿时间维度的内核大小为3,并将第二层CNN的神经元数量设置为512,内核大小为1(即C4=512)。在每个GCN或CNN层之后,使用批量归一化[16]和ReLU非线性激活函数 。
Training: 所有实验均在Pytorch平台上进行,使用一块P100 GPU卡。我们使用Adam(20)优化器,初始学习率为0.001。学习率在第60个阶段、第90个阶段和第110个阶段分别衰减10倍。训练在第120个纪元结束。我们使用0.0001的权重衰减。NTU60、NTU120和SYSU数据集的批大小分别设置为64、64和16。所有实验均使用标签平滑[13],我们将平滑因子设置为0.1。分类时的交叉熵损失用于训练网络 。
Data Processing. 与[57]类似,基于第一帧的序列级平移被执行为对初始位置不变。如果一个帧包含两个人,我们将通过使每个帧包含一个人体骨骼将帧拆分为两个帧。在训练期间,根据文献[27],我们将整个骨骼序列平均分割为20个片段,并从每个片段中随机选择一帧,以获得20帧的新序列。在测试过程中,类似于[2],我们以类似的方式随机创建5个新序列,并使用平均分数预测类别。
在训练过程中,我们通过在序列级别随机旋转三维骨架到一定程度来执行数据论证,以对视图变化保持鲁棒性。对于NTU60(CS设置)、NTU120和SYSU数据集,我们在[−17◦, 17◦] 一个序列。考虑到NTU60的视图变化较大(CV设置),我们在[−30◦, 30◦].

4.3消融实验

4.3.1 利用语义的有效性

语义包含骨架序列的重要结构信息,这对于基于骨架的动作识别非常重要。为了证明利用语义的有效性,参考我们的框架(见图2),我们构建了八个神经网络,并在NTU60数据集上进行了各种实验。表1显示了比较结果。 下面,JT表示关节类型的语义,FI表示帧索引的语义,G表示图(邻接矩阵)的学习,P表示使信息能够传递的图卷积运算。T-Conv表示时间卷积层,即帧级模块的第一个CNN层。 jointlevel(JL)模块和帧级(FL)模块分别使用三个GCN层和两个CNN层。w和w/o分别表示“有”和“无”。利用节理类型的有效性。我们研究了四个设计模型(表1中的第1行至第4行),以验证关节类型在关节级模块(JL)上的有效性,并且所有四个模型都不包含时间索引的语义。 我们在这里解释一个模型,其他三个模型可以用类似的方式理解 。
表1
表1:NTU60数据集上关节级模块(JL)和帧级模块(FL)中利用语义的准确性(%)的有效性。JT表示关节类型,FI表示框架索引 。
JL(G w/o JT&P w /o JT)&FL“表示关节类型的语义不用于学习图(G)(即G w /o JT),也不参与信息传递(P)(即P w /o JT)的图卷积运算的方案 。
我们有以下三个重点的观察结果 :

  1. 对于骨骼序列图的学习,通过引入关节类型的语义,“JL(G w JT&P w /o JT)&FL”在CS和CV设置下分别比“JL(G w /o JT&P w /o JT)&FL”好0.6%和0.9%。直观地说,如果模型不知道关节的类型,它就无法区分具有相同坐标的关节,即使它们的语义不同。关节类型的语义有利于图边的学习。
  2. 联合类型信息有利于GCN层中的消息传递。对于CS和CV设置,“JL(G w/o JT&P w JT)&FL”分别比“JL(G w/o JT&P w/o JT)&FL”优越1.7%和1.3%。原因是GCN本身不知道关节的顺序(类型),这使得使用高结构信息很难学习骨架数据的特征。例如,即使在消息传递过程中两个关节的3D坐标相同,从脚关节和腕关节到目标关节的信息也应该不同。引入关节类型信息可以提高GCN的效率。
  3. 与“JL(G w /o JT&P w JT)&FL”相比,将关节类型的语义同时用于学习图和消息传递(“JL(G w JT&P w JT)&FL”)不会带来进一步的好处。对于Equ中的消息传递Yt=GtZtW。(4) 反向传播到Gt的梯度也会受到包含关节类型信息的Zt的影响。实际上,Gt隐式地知道关节类型信息,即使我们在相似性/亲和性学习中不包括关节类型信息

利用框架索引的有效性 :
我们研究了两个模型(表1中的第5行和第6行),以研究当时间卷积通过将其内核大小设置为1而降级时,帧索引对帧级模块(FL)的影响。“JL&FL(w/o T-Conv)w FI”表示使用帧索引语义的模型。两种模型都融合了关节类型的语义。
此外,我们研究了两个模型(表1中的第7行和第8行),以研究使用核大小为3的时间卷积时帧索引的影响。“JL&FL(w T-Conv)w FI”表示使用帧索引语义的模型。两种模型都融合了关节类型的语义。
我们这里有两个主要的观察结果。

  1. 当禁用时间卷积时(即过滤器内核大小为1而不是3),“JL&FL(w /o T-Conv)w FI”在CS和CV设置下分别比“JL&FL(w /o T-Conv)w /o FI”好1.0%和0.9%。帧索引信息“告诉”网络骨架序列的帧顺序,这有利于动作识别。
  2. 帧索引有助于时间卷积。对于CS和CV设置,“JL&FL(w T-Conv)w FI”分别优于“JL&FL(w T-Conv)w /o FI”0.3%和0.4%。帧索引的语义带来的好处小于那些没有时间循环的模型(过滤器内核大小为1)。主要原因是时间卷积层使得网络能够通过较大的内核大小在一定程度上了解骨架序列的帧顺序。然而,显式地“告诉”网络帧索引的语义进一步提高了性能,成本可以忽略不计。我们采用“JL&FL(w T-Conv)w FI”方案作为最终方案,也称为“SGN”。

总之,关节类型信息的显式建模有利于相邻矩阵的学习和GCN层中的消息传递。帧索引信息使模型能够有效地利用序列顺序信息。

4.3.2分层模型的有效性

我们对关节级模块和帧级模块中关节的相关性进行了层次化建模。为了证明其有效性,我们将我们的SGN与两种不同的模型进行了比较,结果如表2所示。

“SGN w G-GCN”表示一种非分层方案,其中我们删除了空间最大池层(SMP),并在GCN层中使用组合语义(即关节类型和帧索引)和动力学(位置和速度)。我们不是为每一帧构建一个图,而是构建一个包含所有帧中所有关节的全局自适应图,并在所有关节之间进行消息传递。“SGN w /o SMP”表示在我们的方案“SGN”中删除了空间MaxPooling层(SMP),
我们有以下两个观察结果:
在这里插入图片描述
表2:我们的分层模型在NTU60数据集的准确率(%)方面的有效性。

  1. 用GCN对同一帧的节点相关性进行建模比对所有帧的节点相关性进行建模要有效得多,对于CS和CV设置,“SGN w /o SMP”分别优于“SGN w G-GCN”1.0%和0.6%。学习全局内容自适应图更加复杂和困难。
  2. 对于CS和CV设置,“SGN”分别比“SGN w /o SMP”好0.7%和0.6%。通过MaxPooing(SMP)聚合帧中所有关节的信息,可以提取帧的代表性鉴别信息(具有较大的激活值)。此外,空间MaxPooling层减少了后续的计算负担。

4.3.3强大的基线

以前的工作通常采用重网络来建模低维骨架序列【40、39、37、58】。我们开发了一些在以前的工作中被证明非常有效的技术,并建立了一个轻量级的强基线,它与大多数其他最先进的方法取得了相当的性能【40、57、54、8】。我们希望这能为基于骨架的动作识别领域的未来研究奠定坚实的基础。在本节中,并非所有模型都使用语义。
我们首先构建一个基本基线(“基线”),整个管道类似于图2中的管道。有三个区别。1) 未使用速度、关节类型和帧索引信息。2) 培训期间未采用数据扩充(DA)(见数据处理)。3) 使用AveragePooling代替Maxpooling,如[54,37]。

表3显示了我们采用的技术对构建强基线的影响。我们有以下三个观察结果。1) 数据扩充显著提高了CV设置的性能。通过对观察到的视图进行扩充,可以在训练期间“看到”一些“看不见”的视图。2) 两个流网络(同时使用位置和速度)[40]已被证明是有效的,但两个单独的网络使参数数量增加了一倍。我们在早期阶段(输入中)融合了这两种类型的信息,只需少量的附加参数(即0.01M),即可显著提高性能。3) MaxPooling比AveragePooling强大得多。原因是MaxPooling就像一个注意力模块,它驱动学习和选择有区别的特征。
在这里插入图片描述
表3:某些技术对NTU60数据集精度(%)和参数数量的影响。

4.3.4SMP的可视化

空间最大化池(SMP)起着与注意机制类似的作用。我们通过SMP将所选关节可视化为三个动作,即图3中的鼓掌、踢腿和敬礼。响应的尺寸为256,每个尺寸对应一个选定的关节。我们统计SMP选择每个关节的次数。选择的前五个关节用蓝色大圆圈显示,其余关节用蓝色小圆圈显示。我们观察到,不同的动作对应不同的信息关节。左脚对踢腿很重要。只有左手对敬礼很有价值,而左手和右手对鼓掌都很重要。这与人类的感知是一致的。
在这里插入图片描述
图3:空间MaxPooling层对三个动作的响应可视化,即鼓掌、踢腿和敬礼。SMP选择的前5个关节用较大的蓝色圆圈绘制。

4.3.5 SGN的复杂性

我们通过将SGN与基于骨架的八种最先进的动作识别方法进行比较,讨论了SGN的复杂性。如图1所示,V A-RNN【58】的参数数量最少,但精度最差。V A-CNN【58】和2s AGCN【37】实现了良好的精度,但参数数量太多。与基于RNN、GCN和CNN的方法相比,我们提出的SGN在参数更少的情况下取得了略好的性能,这使得SGN对于许多计算能力有限的实际应用具有吸引力。
在这里插入图片描述
图1:NTU60(CS设置)上不同方法的精确度和参数数量比较

所提出的SGN模型在模型尺寸较小的数量级上实现了最佳性能

4.4与最新技术的比较

我们分别在表4、表5和表6中的NTU60、NTU 120和SYSU数据集上将所提出的SGN与其他最先进的方法进行了比较。“SGN w /o Sem。”表示我们的强基线,而不使用语义

如表4所示,语义介绍(Sem.)CS和CV设置的精度分别提高了2.1%和1.7%。“ElAtt GRU”【59】和“Clips+CNN+MTLN”【18】分别是基于RNN和基于CNN方法的两种代表性方法。对于CS设置,SGN的准确率分别比它们高8.3%和9.4.
在这里插入图片描述
表4:NTU60与CS和CV设置在精确度方面的性能比较(%)

在这里插入图片描述
表5:NTU120与CSubject和C-Setup设置在精确度(%)方面的性能比较。

更好地探索骨骼的结构信息。有些方法[54,40]将CNN和GCN或LSTM和GCN混合在一起。对于CS设置,我们建议的SGN在精度上也优于[54]和[40],分别为5.5%和4.2%。与[37]和[58]相比,本文提出的SGN实现了具有竞争力的性能,同时其只有10%的参数数量,如图1所示。

如表5和表6所示,提出的SGN在NTU120和SYSU上实现了最佳精度。NTU120数据集是一个新发布的数据集,我们将其与[25]中报告的结果进行比较。语义(sem)C-Subject和C-Setup设置的准确率分别提高了1.8%和2.3%。
在这里插入图片描述

5 结论

在这项工作中,我们提出了一种简单而有效的端到端语义引导神经网络,用于基于骨架的高性能人类行为识别。我们明确引入了高级语义,即关节类型和帧索引,作为网络输入的一部分。为了对关节的相关性进行建模,我们提出了一个关节级模块来捕获同一帧中关节的相关性,并提出了一个框架级模块来建模帧之间的依赖关系,其中同一帧中的所有关节都被视为一个整体。语义有助于提高GCN和CNN的能力。此外,我们制定了一个强大的基线,比以前的大多数方法都要好。与以前的一些工作相比,我们提出的模型的大小小了一个数量级,在三个基准数据集上取得了最新的结果。

猜你喜欢

转载自blog.csdn.net/qq_43679351/article/details/124837856