图卷积网络(GCNs)将 CNN 推广到更通用的非欧几里得结构,在基于骨骼的动作识别方面取得了显著的性能。然而,以往基于 GCN 的模型仍然存在一些问题。首先,在所有模型层和输入数据上启发式地设置并固定图的拓扑结构。这可能不适合 GCN 模型的层次结构和动作识别任务中数据的多样性。
其次,骨骼数据的二阶信息,即骨骼的长度和方向很少被研究,这自然对人体动作识别的信息量和鉴别性更强。在这项工作中,我们提出了一种新的多流注意力增强自适应图卷积神经网络(MS-AAGCN)用于基于骨骼的动作识别。
我们模型中的图拓扑可以基于输入数据以端到端方式进行统一或单独学习。这种数据驱动的方法增加了图构建模型的灵活性,并带来了更多的通用性,以适应各种数据样本。此外,本文提出的自适应图卷积层通过时空通道注意模块进一步增强,帮助模型更加关注重要的关节、帧和特征。此外,在多流框架中同时建模关节和骨骼信息及其运动信息,显著提高了识别精度。在 NTU-RGBD 和 Kinetics-Skeleton 两个大规模数据集上进行的大量实验表明,我们的模型的性能大大超过了最先进的水平。
由于注意机制在[30]、[31]、[32]、[33]等任务中已被证明是有效和必要的,因此有必要将其用于基于骨骼的动作识别。从空间角度看,某种动作通常与关节的一个关键子集相关联并以其为特征。从时间的角度来看,一个动作流可能包含多个阶段,其中不同的子阶段或帧对最终识别的重要性不同。从特征的角度来看,卷积特征映射的多个通道包含多个层次的语义。每个通道对于不同的动作和数据样本扮演不同的角色。这些观察启发我们设计了一个空间-时间-通道(STC)注意模块,以自适应地重新校准不同数据样本的关节、框架和通道的激活。该模块插入到每个图卷积层,具有少量的参数,但促进性能改进。
在之前的方法中,另一个值得注意的问题是附加到每个顶点的特征向量只包含关节的 2D 或 3D 坐标。我们称之为骨架数据的一阶信息。然而,代表两个关节之间的骨骼特征的二阶信息并没有被利用。通常情况下,骨骼的长度和方向对动作识别来说自然更有信息量和分辨力。在这项工作中,我们将骨骼信息制定为从源关节指向目标关节的向量。此外,由于光流场已经被证明在基于 RGB 的动作识别[2],[5]的时间流中是有用的模态,对于骨骼数据,我们建议提取关节和骨骼在连续两帧之间的坐标差异作为运动信息,以帮助建模动作的时间演化。最后,将关节信息和骨骼信息以及它们的运动信息集成到一个多流框架中。所有流都使用相同的架构,四个流的 s o f t m a x softmax softmax 分数被融合以生成最终的预测。
为了验证所提出的多流注意力增强自适应图卷积网络(MS-AAGCN)模型的优越性,在 NTU-RGBD 和 KineticsSkeleton 两个大规模数据集上进行了大量实验。我们的模型在基于骨骼的动作识别的两个数据集上都达到了最先进的性能。我们还可视化了模型的自适应图和注意图,并分析了四种模式的互补性。
此外,由于 RGB 数据包含比骨架更丰富的外观信息,我们提供了与 RGB 模态的比较,并提出了一种骨架引导的裁剪策略来融合两种模态。融合模型在 NTU-RGBD 数据集的 CV 和 CS 基准上的准确率分别达到99%和96%,显著高于其他方法。
主要贡献在四个方面:
由于骨架数据自然地以图的形式嵌入,而不是向量序列或二维网格,RNN 和 CNN 都不能完全表示骨架数据的结构。最近,Yan 等[20]提出了一种时空图卷积网络(ST-GCN),将骨架数据直接建模为图结构。它消除了设计手工转换规则将骨架数据转换为矢量序列或伪图像的需求,从而获得了更好的性能。在此基础上,Tang 等[21]进一步提出了一种基于强化学习的关键帧选择策略。
构建 GCNs 的原理主要有两种:空间透视和光谱视角。
空间透视方法直接对图顶点及其邻居进行卷积。关键在于如何从图中构造局部连通邻域,而忽略了顶点和边的隐式顺序。这些方法总是基于手动设计的规则[24],[25],[27],[28],[29],[42]提取邻居。Niepert et al[25]根据每个顶点在图中的距离对它们的邻域进行抽样,提出了一种裁剪多余顶点和填充虚顶点的归一化算法。Wang 和Gupta[42]将视频表示为包含人物和被检测对象的图,用于动作识别,根据特征的相似度和时空关系确定每个顶点的邻域。
与空间透视法相比,谱透视法利用图拉普拉斯矩阵的特征值和特征向量。这些方法借助图的傅里叶变换[38]在频域进行图的卷积,不需要在每个卷积步骤[39],[40],[23],[41]从图中提取局部连通区域。derfferrard 等[41]提出使用循环切比雪夫多项式作为滤波方案,比以往的多项式滤波器效率更高。Kipf和Welling[23]使用谱图卷积的一阶近似进一步简化了这种方法。
该作品采用了空间透视的方法。
接下来介绍一种基本的图卷积网络及其在基于骨骼的动作识别中的实现。
一帧中的原始骨架数据总是由向量序列表示,每个向量表示相应人体关节的二维或三维坐标,一个完整的动作包含多个不同长度的帧。我们使用时空图沿着空间和时间维度来建模这些关节之间的结构化信息。这里,空间维度指的是同一帧中的关节,而时间维度指的是所有帧中的相同关节。下图的左子图是构建的时空骨架图示例,其中关节表示为顶点,其在人体中的自然连接表示为空间边(左侧的橙色线)。在时间维度上,两个连续帧中对应的关节用时间边(左边的绿线)连接,将每个关节的坐标向量设置为对应顶点的属性。由于该图是内在的,并且是基于人体的自然连通性构建的,因此我们将其称为基于人体的图。
给定上面定义的图,对于空间维度,在顶点 v i v_i vi 上的图卷积运算公式为: f o u t ( v i ) = ∑ v j ∈ B i 1 Z i j f i n ( v j ) ⋅ w ( l i ( v j ) ) (1) f_{out}(v_i) = \sum_{v_j \in \mathcal B_i} \frac{1}{Z_{ij}} f_{in}(v_j) · w(l_i(v_j)) \tag{1} fout(vi)=vj∈Bi∑Zij1fin(vj)⋅w(li(vj))(1)其中 f f f 表示特征映射, v v v 表示图的顶点。 B i \mathcal B_i Bi 表示 v i v_i vi 卷积的采样面积,定义为目标顶点( v i v_i vi)的1距离相邻顶点( v j v_j vj)。 w w w 是类似于传统卷积运算的权重函数,它基于给定的输入提供一个权重向量。注意,卷积的权向量数量是固定的,而 B i \mathcal B_i Bi 中的顶点数量是变化的。因此,需要一个映射函数 l i l_i li 将所有相邻的顶点映射到一个固定编号的子集,每个子集都与一个唯一的权重向量相关联。上图的右子图显示了这种映射策略,其中 × × × 表示骨架的重心。 B i \mathcal B_i Bi 是曲线围成的采样面积。具体来说,该策略根据经验将核大小设置为3,并将 B i \mathcal B_i Bi 自然划分为3个子集: S i 1 \mathcal S_{i1} Si1是顶点本身(红圈); S i 2 \mathcal S_{i2} Si2 是向心子集,它包含了更接近重心的相邻顶点(绿圈); S i 3 \mathcal S_{i3} Si3 是离心子集,它包含了离重心(蓝圈)更远的相邻顶点。 Z i j Z_{ij} Zij 表示包含 v j v_j vj 的 S i k \mathcal S_{ik} Sik 的基数。它的目的是平衡每个子集的贡献。
空间维的图卷积的实现并不简单。具体地说,网络的特征图实际上是一个张量 f ∈ R C × T × N f∈\mathbb R ^{C×T ×N} f∈RC×T×N,其中 N N N 表示顶点数, T T T 表示时间长度, C C C 表示通道数。为了在代码中实现 GCN,将式(1)转换为 f o u t = ∑ k K v W k ( f i n A k ) (2) \mathbf f_{out} = \sum^{K_v}_k \mathbf W_k( \mathbf f_{in} \mathbf A_k) \tag{2} fout=k∑KvWk(finAk)(2),其中 K v K_v Kv 表示空间维度的核大小。
根据上面设计的分区策略, K v K_v Kv 设为3。 A k = Λ k − 1 2 A ˉ k Λ k − 1 2 \mathbf A_k = \mathbf Λ^{−\frac{1}{2}}_k \mathbf {\bar A}_k \mathbf Λ^{−\frac{1}{2}}_k Ak=Λk−21AˉkΛk−21,其中 A ˉ k ∈ R N × N \mathbf {\bar A}_k∈\mathbb R^{N×N} Aˉk∈RN×N 类似于邻接矩阵。它的元素 A ˉ k i j \mathbf {\bar A}_k^{ij} Aˉkij 表示顶点 v j v_j vj 是否在顶点 v i v_i vi 的子集 S i k \mathcal S_{ik} Sik 中。它用于从 f i n f_{in} fin 中选择特定子集中的连接顶点,以获得相应的权值向量。 Λ k i i = ∑ j ( A ˉ k i j ) + α \mathbf Λ^{ii}_k= \sum_j (\mathbf {\bar A}_k^{ij}) + α Λkii=∑j(Aˉkij)+α 是标准化对角矩阵, α α α 被设置为0.001以避免空行。 W k ∈ R C o u t × C i n × 1 × 1 \mathbf W_k∈\mathbb R^{C_{out}×C_{in}×1×1} Wk∈RCout×Cin×1×1 为 1 × 1 1×1 1×1 卷积运算的权值向量,表示公式(1)中的权重函数 w w w。
对于时间维度,由于每个顶点的邻居数固定为2(两个相邻帧中的对应关节),因此执行类似经典卷积操作的图卷积是很简单的。具体来说,我们对上面计算的输出特征图进行 K t × 1 K_t × 1 Kt×1 卷积,其中 K t K_t Kt 是时间维的核大小。
利用上述公式,在图上应用多层时空图卷积运算来提取高层特征。然后使用全局平均池化层和 s o f t m a x softmax softmax 分类器根据提取的特征预测动作类别。
在本节中,我们详细介绍了提出的多流注意力增强自适应图卷积网络(MS-AAGCN)的组成部分。
上面描述的骨架数据的时空图卷积是基于一个固有的基于人体的图来计算的,这可能不是最佳选择。为了解决这个问题,我们提出了一个自适应图卷积层,它以端到端的学习方式使图的拓扑结构与网络的其他参数一起优化。图对于不同的层和样本是唯一的,这大大增加了模型的灵活性。同时将其设计为残差分支,保证了原模型的稳定性。
详细地,根据式(2),图实际上是由邻接矩阵和掩码分别决定的,即 A k A_k Ak 和 M k M_k Mk。 A k A_k Ak 决定了两个顶点之间是否有连接, M k M_k Mk 决定了连接的强度。为了使图拓扑自适应,我们将公式(2)修改为如下形式: f o u t ∑ k K v W k f i n ( B k + α C k ) (3) \mathbf f_{out} \sum_k^{K_v} \mathbf W_k \mathbf f_{in}(\mathbf B_k + \alpha \mathbf C_k) \tag{3} foutk∑KvWkfin(Bk+αCk)(3)主要区别在于图的邻接矩阵,它分为两个子图: B k \mathbf B_k Bk 和 C k \mathbf C_k Ck。
第一个子图( B k \mathbf B_k Bk)是从数据中学习到的全局图,它代表了更适合于动作识别任务的图拓扑结构。用基于人体的图的邻接矩阵初始化,即式(2)中的 A k \mathbf A_k Ak。与 A k \mathbf A_k Ak 不同的是, B k \mathbf B_k Bk 的元素在训练过程中与其他参数一起参数化和更新。 B k \mathbf B_k Bk 的值没有约束,这意味着图完全是根据训练数据学习的。通过这种数据驱动的方法,模型可以学习完全针对识别任务的图形。 B k \mathbf B_k Bk 对于每一层都是唯一的,因此对于不同层中包含的不同层次的语义更加个性化。
第二个子图( C k \mathbf C_k Ck)是学习每个样本的唯一拓扑的单个图。为了确定两个顶点之间是否存在连接以及连接的强度,我们使用归一化嵌入高斯函数来估计两个顶点的特征相似度为:
其中 N N N 是顶点的个数。我们使用点积来测量嵌入空间中两个顶点的相似性。具体来说,给定输入特征图 f i n ∈ R C i n × T × N f_{in}∈\mathbb R^{C_{in}×T ×N} fin∈RCin×T×N,我们首先用两个嵌入函数 θ θ θ 和 ϕ \phi ϕ 将其嵌入到嵌入空间 R C e × T × N \mathbb R^{C_{e}×T ×N} RCe×T×N 中。在这里,通过大量的实验,我们选择 1 × 1 1 × 1 1×1 卷积层作为嵌入函数。这两个嵌入的特征图被重塑为矩阵 M θ k ∈ R N × C e T \mathbf M_{θk}∈\mathbb R^{N×C_eT} Mθk∈RN×CeT 和矩阵 M ϕ k ∈ R C e T × N \mathbf M_{\phi k}∈\mathbb R^{C_eT ×N} Mϕk∈RCeT×N。然后将它们相乘,得到相似矩阵 C k ∈ R N × N \mathbf C_k∈\mathbb R^{N×N} Ck∈RN×N,其中元素 C k i j \mathbf C^{ij}_k Ckij 表示顶点 v i v_i vi 和顶点 v j v_j vj 的相似度。将矩阵的值归一化为 0 − 1 0 - 1 0−1,作为两个顶点的软边。由于归一化高斯函数具有 s o f t m a x softmax softmax 运算,我们可以根据公式(4)计算 C k \mathbf C_k Ck: C k = S o f t M a x ( f i n T W θ k T W ϕ k f i n ) (5) \mathbf C_k = SoftMax(\mathbf f_{in}^T \mathbf W_{\theta k}^T \mathbf W_{\phi k} \mathbf f_{in}) \tag{5} Ck=SoftMax(finTWθkTWϕkfin)(5)其中, W θ ∈ R C e × C i n × 1 × 1 \mathbf W_{θ}∈\mathbb R^{C_e×C_{in}×1×1} Wθ∈RCe×Cin×1×1 和 W ϕ ∈ R C e × C i n × 1 × 1 \mathbf W_{\phi}∈\mathbb R^{C_e×C_{in}×1×1} Wϕ∈RCe×Cin×1×1 分别是嵌入函数 θ \theta θ 和 ϕ \phi ϕ 的参数。
门控机制:全局图确定动作识别任务的基本图拓扑,个体图根据各种样本特征添加个性。在实验中,我们发现顶层对单个图形的要求比底层更强。这是合理的,因为底层的接受域较小,限制了从不同样本中学习图拓扑的能力。此外,顶层包含的信息更具语义性,这是更可变的,需要更多的图形拓扑的个体性。
单独的图更容易满足需求,因为它是基于输入特征构造的,并且对于每个样本都是单独的。基于这些观察,我们使用门控机制来调整不同层的单个图的重要性。详细地说, C k \mathbf C_k Ck 乘以参数化系数 α α α,其中 α α α 对于每一层都是唯一的,并且在训练过程中被学习和更新。
初始化:在实验中我们发现,在训练过程的早期,图的拓扑结构会发生剧烈的变化,从而导致不稳定,影响模型的收敛性。为了稳定训练,我们尝试了两种策略。第一种策略是用 A k + α B k + β C k \mathbf A_k + α \mathbf B_k + β \mathbf C_k Ak+αBk+βCk 作为邻接矩阵,其中 A k \mathbf A_k Ak 是固定的基于人体的图。 B k \mathbf B_k Bk, C k \mathbf C_k Ck, α α α 和 β β β 初始化为0,因此 A k \mathbf A_k Ak 在训练初期占主导地位。第二种策略是用 A k \mathbf A_k Ak 初始化 B k \mathbf B_k Bk,并在训练过程的早期阻断 B k \mathbf B_k Bk 梯度的传播,直到训练稳定。第二种策略得到了稍好的验证。嵌入函数( θ \theta θ、 ϕ \phi ϕ)和融合系数 α α α 的权值初始化为0。
图为自适应图卷积层(AGCL)的说明。每一层有两种图,分别是 B k \mathbf B_k Bk 和 C k \mathbf C_k Ck。橙色框表示该部分为网络参数,在训练过程中更新。 θ \theta θ 和 ϕ \phi ϕ 为两个核大小为 ( 1 × 1 ) (1 × 1) (1×1) 的嵌入函数, K v K_v Kv 为子集数。 ⊕ ⊕ ⊕ 表示元素相加, ⊗ ⊗ ⊗ 表示矩阵乘法,G 是控制两种图的重要性的门。剩余框(虚线)仅在 C i n C_{in} Cin 与 C o u t C_{out} Cout 不相同时才需要。
自适应图卷积层(Adaptive Graph Convolutional Layer, AGCL)的整体架构如上图所示,图卷积( K v K_v Kv)的核大小设置为3。 w k w_k wk 为公式(1)中引入的权重函数,其参数为公式(3)中引入的 w k w_k wk。为每一层添加一个类似于[43]的残差连接,这允许将该层插入任何现有模型而不破坏其初始行为。如果输入通道数与输出通道数不同,则在残差路径中插入 1 × 1 1 × 1 1×1 卷积(图中橘色虚线框),将输入转换为与输出在通道维度上匹配。G 是控制两种图的语义的门。
注意力模块[30],[31],[32],[33]有很多公式。在这里,通过大量的实验,我们提出了一个 STC 注意模块,如下图所示。
STC 注意模块的说明。三个子模块按照 SAM、TAM、CAM 的顺序依次排列。 ⊗ ⊗ ⊗ 表示逐元素的乘法, ⊕ ⊕ ⊕ 表示元素相加。
它包含三个子模块:空间注意模块、时间注意模块和通道注意模块。
空间注意模块(SAM)可以帮助模型对每个关节进行不同程度的注意。它的计算方式为: M s = σ ( g s ( A v g P o o l ( f i n ) ) (6) \mathbf M_s = σ(g_s(AvgPool(f_{in})) \tag{6} Ms=σ(gs(AvgPool(fin))(6),其中 f i n ∈ R C i n × T × N f_{in}∈\mathbb R^{C_{in}×T×N} fin∈RCin×T×N 是输入特征图,并在所有帧上求平均值。 g s g_s gs 是一个一维 1 − D 1-\mathbf D 1−D 卷积运算。 W g s ∈ R 1 × C i n × K s \mathbf W_{gs}∈\mathbb R ^{1×C_{in}×K_s} Wgs∈R1×Cin×Ks,其中 K s K_s Ks 为核大小, σ σ σ 为 S i g m o i d Sigmoid Sigmoid 激活函数。然后将注意图 M s ∈ R 1 × 1 × N M_s∈\mathbb R^{1×1×N} Ms∈R1×1×N 以残差方式与输入特征图相乘,进行自适应特征细化。
**时间注意模块(TAM)**与 SAM 相似,计算公式为: M t = σ ( g t ( A v g P o o l ( f i n ) ) (7) \mathbf M_t = σ(g_t(AvgPool(f_{in})) \tag{7} Mt=σ(gt(AvgPool(fin))(7),其中 M t ∈ R 1 × T × 1 \mathbf M_t∈\mathbb R^{1×T×1} Mt∈R1×T×1,其他符号的定义与式(6)相似。
信道注意模块(CAM)可以帮助模型根据输入样本加强鉴别特征(信道)。它生成的注意图如下: M c = σ ( W 2 ( δ ( W 1 ( A v g P o o l ( f i n ) ) ) ) ) (8) \mathbf M_c = σ(\mathbf W_2(δ(\mathbf W_1(AvgPool(f_{in}))))) \tag{8} Mc=σ(W2(δ(W1(AvgPool(fin)))))(8),其中 f i n f_{in} fin 是对所有关节和帧的平均值。 M c ∈ R C × 1 × 1 \mathbf M_c∈\mathbb R^{C×1×1} Mc∈RC×1×1。 W 1 ∈ R ( C × C r ) \mathbf W_1∈\mathbb R^{(C × \frac{C}{r})} W1∈R(C×rC) 和 W 2 ∈ R ( C r × C ) \mathbf W_2∈\mathbb R^{(\frac{C}{r} ×C)} W2∈R(rC×C) 是两个全连通层的权值。 δ δ δ 为 R e L u ReLu ReLu 激活函数。
注意模块的排列:上面介绍的三个子模块可以采用不同的排列方式,可以是平行的,也可以是顺序不同的顺序排列。最后我们发现,序列方式更好,其中顺序是 SAM, TAM 和 CAM。
沿时间维的卷积与 ST-GCN 相同,即对 C × T × N C × T × N C×T×N 特征图进行 K t × 1 K_t × 1 Kt×1 卷积。空间 GCN 和时间 GCN 后面都有一个批规范化(BN)层和一个 ReLU 层。如下图所示,一个基本块是一个空间 GCN (Convs)、一个 STC-注意模块(STC)和一个时间 GCN (Convt)的序列。为了稳定训练和缓解梯度传播,为每个基本块添加残差连接。
图为基本块的说明。Convs 表示空间 AGCL, Convt 表示时间 AGCL,两者后面都有 BN 层和 ReLU 层。STC 表示 STC-attention 模块。此外,为每个块添加一个残差连接。
如下图所示,网络的整体架构是 C 中的基本块的堆栈,总共有9个块。每个块的输出通道数为64、64、64、128、128、256、256和256。在开始时添加数据 BN 层以规范化输入数据。最后进行全局平均池化层,将不同样本的特征图池到相同大小。最终输出被发送到 s o f t m a x softmax softmax 分类器以获得预测结果。
图为网络架构的说明。共有9个基本块( B 1 − B 9 B1-B9 B1−B9)。每个块的三个数字分别表示输入通道数、输出通道数和步幅。GAP 表示全局平均池化层。
一阶信息(关节的坐标)和二阶信息(骨骼的方向和长度),以及它们的运动信息,都是值得研究的基于骨骼的动作识别任务。在这项工作中,我们在一个多流框架中对这四种模式进行建模。
特别地,我们定义离骨架重心较近的关节为源关节,离重心较远的关节为目标关节。每根骨头都表示为一个从源关节指向目标关节的向量。例如,给定帧 t t t 中的一根骨头,它的源关节 v i , t = ( x i , t , y i , t , z i , t ) \mathbf v_{i,t} = (x_{i,t}, y_{i,t}, z_{i,t}) vi,t=(xi,t,yi,t,zi,t) 和它的目标关节 v j , t = ( x j , t , y j , t , z j , t ) \mathbf v_{j,t} = (x_{j,t}, y_{j,t}, z_{j,t}) vj,t=(xj,t,yj,t,zj,t),骨头的向量计算为 e i , j , t = ( x j , t − x i , t , y j , t − y i , t , z j , t − z i , t ) \mathbf e_{i,j,t} = (x_{j,t}−x_{i,t}, y_{j,t}−y_{i,t}, z_{j,t}−z_{i,t}) ei,j,t=(xj,t−xi,t,yj,t−yi,t,zj,t−zi,t)。由于骨骼数据图中没有循环,因此可以为每个骨骼分配一个唯一的目标关节。注意,目标关节的数量比骨头的数量多一个,因为根关节没有分配给任何骨头。为了简化网络的设计,我们将一个值为0的空骨头分配给根关节。因此,骨骼的图形和网络都可以被设计成与关节相同。我们使用 J − s t r e a m J-stream J−stream 和 B − s t r e a m B-stream B−stream 分别表示关节和骨骼的网络。
对于运动信息,则计算为相同关节或骨骼在连续两帧中的差值。例如,给定帧 t t t 中的一个关节,即 v i , t = ( x i , t , y i , t , z i , t ) \mathbf v_{i,t} = (x_{i,t}, y_{i,t}, z_{i,t}) vi,t=(xi,t,yi,t,zi,t) 和帧 t + 1 t+1 t+1 中的同一个关节,即 v i , t + 1 = ( x i , t + 1 , y i , t + 1 , z i , t + 1 ) \mathbf v_{i,t+1} = (x_{i,t+1}, y_{i,t+1}, z_{i,t+1}) vi,t+1=(xi,t+1,yi,t+1,zi,t+1), v i , t \mathbf v_{i,t} vi,t 与 v i , t + 1 \mathbf v_{i,t+1} vi,t+1 之间的运动信息表示为 m i , t , t + 1 = ( x i , t + 1 − x i , t , y i , t + 1 − y i , t , z i , t + 1 − z i , t ) \mathbf {m_{i,t,t+1}} = (x_{i,t+1}−x_{i,t}, y_{i,t+1}−y_{i,t}, z_{i,t+1}−z_{i,t}) mi,t,t+1=(xi,t+1−xi,t,yi,t+1−yi,t,zi,t+1−zi,t)。
整体架构(MS-AAGCN)如下图所示。四种形态(关节、骨骼和它们的运动)被分成四种流。最后,利用加权和法将四种流的sof tmax分数进行融合,得到动作分数并预测动作标签。
图为 MS-AAGCN 的整体架构说明。采用加权和法将四个流的 s o f t m a x softmax softmax 分数进行融合,得到最终预测结果。 J J J 表示关节信息, B B B 表示骨骼信息, M M M 为运动信息。
NTU-RGBD 和 Kinetics-Skeleton 的相关介绍。
所有实验均在 PyTorch 深度学习框架[45]上进行。采用 Nesterov 动量为0.9的随机梯度下降(SGD)作为优化策略,批大小为64,选择交叉熵作为反向传播梯度的损失函数,权重衰减被设置为0.0001。
对于 NTU-RGBD 数据集,数据集的每个样本中最多有两个人。如果样本中主体的数量小于2,我们用0填充第二个主体。每个样本的最大帧数为300,对于小于300帧的样本,我们重复样本直到达到300帧。学习率设置为0.1,在第30和第40 epoch 分别除以10,训练过程在第50个 epoch 结束。
对于 Kinetics- skeleton 数据集,Kinetics 的输入张量大小设置同上,包含150帧,每帧2个主体。我们执行与上面相同的数据增强技能。具体而言,我们从输入骨架序列中随机选择150帧,并通过随机选择的旋转和平移略微干扰关节坐标。学习率也设置为0.1,并在第45 epoch 和第55 epoch 除以10,训练过程在第65 epoch 结束。
我们使用 NTU-RGBD 数据集验证了 MS-AAGCN 中提出的组件的有效性。接下来分别是各个组件的效果。
骨架数据对动态环境和复杂背景具有鲁棒性。但是,它缺少外观信息。例如,如果一个人在吃东西,仅凭骨骼数据很难判断他吃的是苹果还是珍珠。
我们使用了一个双流框架,其中一个流用3D卷积网络对RGB数据建模,另一个流用我们的MS-AAGCN对骨架数据建模。
在这项工作中,我们提出了一种新的多流注意力增强自适应图卷积神经网络(MS-AAGCN)用于基于骨骼的动作识别。该模型中使用的骨架数据的图拓扑被参数化并嵌入到网络中,与其他参数共同学习和更新。这种数据驱动的方法增加了模型的灵活性和泛化能力。同时也证实了自适应学习图的拓扑结构比基于人体的图更适合于动作识别任务。此外,在每个图卷积层中都嵌入了 STC-attention 模块,使模型更加关注重要的节点、帧和特征。此外,我们提出在统一的多流框架中明确地对关节、骨骼和相应的运动信息进行建模,这进一步提高了性能。最终的模型在两个大规模的动作识别数据集上进行评估,即 NTU-RGBD 和 Skeleton-Kinetics。它在这两方面都达到了最先进的性能。此外,我们将骨骼数据与骨骼引导的裁剪 RGB 数据融合,带来了额外的改进。未来的工作可以集中在如何更好地融合 RGB 模式和骨架模式。将基于骨骼的动作识别算法和姿态估计算法结合在一个统一的框架下也是值得研究的。
论文翻译
PPSIG:AAGCN动作识别
MS-AAGCN