CTR-GCN 论文解读
- 论文名称:Channel-wise Topology Refinement Graph Convolution for Skeleton-Based Action Recognition
- 论文下载:https://arxiv.org/pdf/2107.12213.pdf
- 论文代码:https://github.com/Uason-Chen/CTR-GCN
CTR-GCN 是中科院自动化所发表在 ICCV 2021 会议上的一个基于骨骼关键点的动作识别模型,其在学界的常用的几个基准数据集上均取得了目前最优的结果。
论文:基于骨骼动作识别的通道拓扑细化图卷积
摘要
图卷积网络(GCNs)在基于骨骼的动作识别中得到了广泛的应用并取得了显著的效果。在 GCNs 中,图拓扑在特征聚集中占主导地位,因此是提取代表性特征的关键。
在这项工作中,我们提出了一种新的通道拓扑优化图卷积(CTR-GC),以动态学习不同的拓扑,并有效地聚合不同通道中的关节特征,用于基于骨骼的动作识别。提出的 CTR-GC 通过学习共享拓扑作为所有通道的通用先验,并使用每个通道的特定通道相关性对其进行细化,从而对通道拓扑进行建模。
我们的细化方法引入了很少的额外参数,并显著降低了建模通道拓扑的难度。此外,通过将图卷积重新定义为统一的形式,我们发现 CTR-GC 放松了图卷积的严格约束,从而获得了更强的表示能力。
结合 CTR-GC 和时间建模模块,我们开发了一个名为 CTR-GCN 的强大的图卷积网络,它在 NTU RGB+D, NTU RGB+D 120和 NW-UCLA 数据集上明显优于最先进的方法。
引入
早期基于深度学习的方法将人体关节视为一组独立的特征,并将其组织成一个特征序列或伪图像,输入 RNN 或 CNN 来预测动作标签。然而,这些方法忽略了关节之间的内在关联,而这些关联揭示了人体的拓扑结构,是人体骨骼的重要信息。
Yan 等[32]首先用图形建模人体关节之间的相关性,并应用 GCNs 和时间卷积来提取运动特征。而他们采用的人工定义拓扑很难实现非自然连接节点之间的关系建模,限制了 GCNs 的表示能力。
为了提高 GCNs 的能力,最近的方法[24,35,34]通过注意或其他机制自适应地学习人类骨骼的拓扑结构。它们对所有通道使用一个拓扑,这迫使 GCNs 在不同通道中聚合具有相同拓扑的特征,从而限制了特征提取的灵活性。由于不同的通道代表不同类型的运动特征,不同运动特征下的关节之间的相关性并不总是相同的,因此使用一种共享拓扑并非最优。
Cheng 等[3]为信道组设置了单独的参数化拓扑。但是,不同组的拓扑结构都是独立学习的,在设置通道参数化拓扑时,模型变得过于沉重,增加了优化的难度,阻碍了通道拓扑的有效建模。此外,参数化拓扑对所有样本保持相同,这无法模拟样本相关。
基于 GCN 的算法所有通道共享同一拓扑结构,这样限制了模型的能力上限。作者认为拓扑结构(邻接矩阵A)可以继续被细化训练。即 A[0],A[1],A[2]分别参与训练。针对这一问题作者提出了通道拓扑细化网络,以此来提高模型的上限。
在本文中,我们提出了一种信道拓扑优化图卷积,该卷积可以动态有效地对信道拓扑进行建模。CTR-GC 不是独立地学习不同通道的拓扑,而是以细化的方式学习基于通道的拓扑。具体来说,CTR-GC 同时学习共享拓扑和特定于通道的相关性。
共享拓扑是一个参数化的邻接矩阵,作为所有通道的拓扑先验,并提供顶点之间的一般相关性。
针对每个样本动态推断特定于信道的相关性,并捕获每个信道内顶点之间的微妙关系。通过使用特定于通道的相关性细化共享拓扑,CTR-GC 获得了通道拓扑(如下图所示)。
我们的细化方法避免了对每个通道的拓扑进行独立建模,并且很少引入额外的参数,这大大降低了建模通道拓扑的难度。此外,通过将四类图卷积重新表述为统一的形式,我们验证了所提出的 CTR-GC 从本质上放松了其他类型图卷积的严格约束,提高了表示能力。
上图为通道拓扑优化图。不同颜色的线条对应不同通道中的拓扑结构,线条的粗细表示节点之间的关联强度。
将 CTR-GC 与时间建模模块相结合,构建了一个功能强大的图卷积网络 CTR-GCN,用于基于骨骼的动作识别。在 NTU RGB+D、NTU RGB+D 120和 NW-UCLA 上的大量实验结果表明:
- 我们的 CTR-GC 在参数和计算成本相当的情况下,显著优于其他提出的基于骨骼的动作识别图卷积;
- 我们的 CTR-GCN 在所有三个数据集上都超过了最先进的方法。
我们的贡献总结如下:
- 我们提出了一种信道拓扑优化图卷积,该卷积以一种优化方法对信道拓扑进行动态建模,从而实现灵活有效的相关建模。
- 我们从数学上统一了基于骨骼的动作识别中现有图卷积的形式,并发现 CTR-GC 放松了其他图卷积的约束,提供了更强大的图建模能力。
- 大量的实验结果突出了通道拓扑和细化方法的好处。提出的 CTR-GCN 在三个基于骨骼的动作识别基准上显著优于目前最先进的方法。
相关工作
图卷积网络
卷积神经网络(Convolutional Neural Networks, CNNs)在处理图像等欧氏数据方面取得了显著的效果。为了处理像图这样的非欧几里得数据,人们对开发图卷积网络(GCNs)越来越感兴趣。GCNs 通常分为光谱方法和空间方法。
- 谱方法对谱域进行卷积[1,5,11]。但是,它们依赖于与图结构相关的拉普拉斯特征基,因此只能应用于具有相同结构的图。
- 空间方法直接在图上定义卷积[7,21,29],空间方法的挑战之一是处理不同大小的邻域。
在不同的 GCN 变体中,Kipf 等人[11]提出的 GCN 因其简单而广泛适用于各种任务。[11]中的特征更新规则包括两个步骤:
(1)将特征转换为高级表示;
(2)根据图的拓扑结构聚合特征。
我们的工作采用相同的特征更新规则。
基于 GCN 的骨骼动作识别
GCNs 已成功应用于基于骨骼的动作识别[20,24,32,34,36,27],大多数 GCNs 遵循[11]的特征更新规则。由于拓扑(即顶点连接关系)在 GCN 中的重要性,许多基于 GCN 的方法都侧重于拓扑建模。根据拓扑结构的不同,基于 GCN 的方法可分为以下几类:
- 根据推理过程中拓扑结构是否动态调整,基于 GCN 的方法可分为静态方法和动态方法。
- 根据拓扑在不同通道间是否共享,基于 GCN 的方法可分为拓扑共享方法和拓扑非共享方法。
静态/动态方法
- 对于静态方法,GCNs 的拓扑结构在推理过程中保持固定。Yan 等[32]提出了一种 ST-GCN,根据人体结构预定义拓扑,在训练和测试阶段拓扑都是固定的。Liu et al[20]和 Huang et al[9]将多尺度图拓扑引入 GCNs,实现多范围联合关系建模。
- 对于动态方法,在推理过程中动态推断 GCNs 的拓扑结构。Li 等[15]提出了一个 A-llinks 推理模块来捕获特定行为的相关性。Shi 等[24]和 Zhang等[35]利用自注意机制增强拓扑学习,该机制对给定相应特征的两个关节之间的相关性进行建模。这些方法通过局部特征推断两个关节之间的相关性。Ye 等[34]提出了一种动态 GCN,其中所有关节的上下文特征都被纳入其中,以学习任何关节对之间的相关性。由于拓扑结构的动态性,动态方法与静态方法相比具有更强的泛化能力。
拓扑共享/拓扑非共享方法
- 对于拓扑共享方法,静态或动态拓扑在所有通道中共享。这些方法迫使 GCNs 聚合具有相同拓扑的不同通道中的特征,限制了模型性能的上限。大多数基于 GCN 的方法都遵循拓扑共享的方式,包括前面提到的静态方法[9,20,32]和动态方法[15,24,34,35]。
- 拓扑非共享方法在不同的信道或信道组中使用不同的拓扑,自然克服了拓扑共享方法的局限性。Cheng 等[3]提出了一种 DC-GCN,它为不同的信道组设置单独的参数化拓扑。然而,DC-GCN在设置通道拓扑时,由于参数过多而面临优化困难。据我们所知,在基于骨骼的动作识别中,拓扑-非共享图卷积很少被探索,而这项工作是第一次对动态通道拓扑进行建模。
注意,我们的方法也属于动态方法,因为拓扑在推理过程中是动态推断的。
方法
在本节中,我们首先定义相关的符号,并制定常规的图卷积。然后,我们详细阐述了我们的通道拓扑精致图卷积(CTR-GC),并从数学上分析了 CTR-GC 和其他图卷积的表示能力。最后,我们介绍了我们的 CTR-GCN 的结构。
前期准备
符号
人体骨骼被表示为一个以关节为顶点,以骨骼为边的图。图记为 G = ( V , E , X ) \mathcal G = (\mathcal V, \mathcal E, \mathcal X) G=(V,E,X),其中,
- V = v 1 , v 2 , ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ , v N \mathcal V = {v_1, v_2, ······, v_N} V=v1,v2,⋅⋅⋅⋅⋅⋅,vN 是 N N N 个顶点的集合。
- E \mathcal E E 为边集,表示为邻接矩阵 A ∈ R N × N A∈ \mathbb R^{N×N} A∈RN×N,其元素 a i j a_{ij} aij 反映了 v i v_i vi 和 v j v_j vj 之间的相关性强度。 v i v_i vi 的邻域表示为 N ( v i ) = { v j ∣ a i j ≠ 0 } \mathcal N (v_i) = \{v_j |a_{ij} ≠ 0\} N(vi)={vj∣aij=0}。
- X \mathcal X X 为 N N N 个顶点的特征集,表示为矩阵 X ∈ R N × C \mathbf X∈\mathbb R^{N×C} X∈RN×C, v i v_i vi 的特征表示为 x i ∈ R C \mathbf x_i∈\mathbb R^C xi∈RC。
拓扑共享图卷积
正则拓扑共享图卷积利用权值 W \mathbf W W 进行特征变换,通过 a i j a_{ij} aij 对 v i v_i vi 的邻居顶点进行聚合表示来更新其表示 z i \mathbf z_i zi,表示为 z i = ∑ v j ∈ N ( v i ) a i j x j W (1) \mathbf z_i = \sum_{v_j∈\mathcal N(v_i) }a_{ij} \mathbf {x_j} \mathbf W \tag{1} zi=vj∈N(vi)∑aijxjW(1) 对于静态方法, a i j a_{ij} aij 是手动定义或设置为可训练参数。对于动态方法, a i j a_{ij} aij 通常由模型根据输入样本生成。
信道拓扑优化图卷积
上图为所提出的通道拓扑优化图卷积的框架。基于通道的拓扑建模使用推断出的特定于通道的相关性来细化可训练的共享拓扑。特征转换的目的是将输入特征转换为高级表示形式。最终,通过通道聚合获得输出特征。
我们的 CTR-GC 的一般框架如上图所示。我们首先将输入特征转换为高级特征,然后动态推断通道拓扑,以获取不同类型运动特征下输入样本关节之间的成对相关性,并将每个通道中的特征与相应的拓扑进行聚合,得到最终输出。
具体来说,我们的 CTR-GC 包含三个部分:
- 特征转换,通过变换函数 T ( ⋅ ) \mathcal T(·) T(⋅) 进行特征变换;
- 通道拓扑建模,包括相关建模函数 M ( ⋅ ) \mathcal M(·) M(⋅) 和细化函数 R ( ⋅ ) \mathcal R(·) R(⋅);
- 通道聚合,由聚合函数 A ( ⋅ ) \mathcal A(·) A(⋅) 完成。
给定输入特征 X ∈ R N × C \mathbf X∈\mathbb R^{N×C} X∈RN×C,则 CTR-GC 的输出 Z ∈ R N × C ′ \mathbf Z∈\mathbb R^{N×C'} Z∈RN×C′ 表示为 Z = A ( T ( X ) , R ( M ( X ) , A ) ) (2) \mathbf Z = \mathcal A( \mathcal T(\mathbf X) , \mathcal R( \mathcal M(\mathbf X) , \mathbf A ) ) \tag{2} Z=A(T(X),R(M(X),A))(2)其中 A ∈ R N × N \mathbf A∈\mathbb R^{N×N} A∈RN×N 为可学习共享拓扑。
接下来,我们将详细介绍这三个部分。
特征转换
如上图中的橙色块所示,特征转换的目的是通过 T ( ⋅ ) \mathcal T(·) T(⋅) 将输入特征转换为高级表示。这里我们采用一个简单的线性变换作为拓扑共享图卷积,表达式为 X ~ = T ( X ) = X W (3) \widetilde {\mathbf X} = \mathcal T( \mathbf X ) = \mathbf X \mathbf W \tag{3} X =T(X)=XW(3)其中 X ~ ∈ R N × C ′ \widetilde {\mathbf X} ∈\mathbb R^{N×C'} X ∈RN×C′ 是变换后的特征, W ∈ R C × C ′ \mathbf W∈\mathbb R^{C×C'} W∈RC×C′ 是权值矩阵。注意,其他转换也可以使用,例如,多层感知器。
T ( ⋅ ) \mathcal T(·) T(⋅) 用于将输入转化为高级特征表示。(代码使用的是卷积核为1的 2d 卷积)。
通道拓扑建模
通道拓扑建模显示在上图中的蓝色块。邻接矩阵 A \mathbf A A 被用作所有通道的共享拓扑,并通过反向传播学习。
此外,我们学习了通道特定的相关性 Q ∈ R N × N × C ′ \mathbf Q∈\mathbb R^{N×N×C'} Q∈RN×N×C′,以建模 C ′ C' C′ 通道中顶点之间的特定关系。
通过对共享拓扑 A \mathbf A A 和 Q \mathbf Q Q 进行细化,得到通道型拓扑 R ∈ R N × N × C ′ \mathbf R∈\mathbb R^{N×N×C'} R∈RN×N×C′。
网络各个通道有一个共享的邻接矩阵 A \mathbf A A,这个 A \mathbf A A 可学习,会根据反向传播而变化。 Q \mathbf Q Q 是不同通道的特有拓扑结构。细化 A \mathbf A A 和 Q \mathbf Q Q,得到通道拓扑 R \mathbf R R。
具体来说,我们首先使用相关建模函数 M ( ⋅ ) \mathcal M(·) M(⋅) 来建模顶点之间的通道相关性。为了降低计算成本,我们在将输入特征发送到 M ( ⋅ ) \mathcal M(·) M(⋅) 之前,利用线性变换 ψ \psi ψ 和 ϕ \phi ϕ 来降低特征维数。
ψ \psi ψ 和 ϕ \phi ϕ 在代码中是卷积核大小为1的2d 卷积。
给定一对顶点 ( v i , v j ) (v_i, v_j) (vi,vj) 及其对应的特征 ( x i , x j ) (\mathbf {x_i}, \mathbf {x_j}) (xi,xj),我们设计了两个简单而有效的相关建模函数。
第一个相关建模函数 M 1 ( ⋅ ) \mathcal M_1(·) M1(⋅) 表述为 M 1 ( ψ ( x i ) , ϕ ( x j ) ) = σ ( ψ ( x i ) − ϕ ( x j ) ) (4) \mathcal M_1(\psi( \mathbf{x_i} ), \phi( \mathbf{x_j}) ) = \sigma( \psi( \mathbf{x_i}) - \phi(\mathbf{x_j})) \tag{4} M1(ψ(xi),ϕ(xj))=σ(ψ(xi)−ϕ(xj))(4)其中 σ ( ⋅ ) σ(·) σ(⋅) 为激活函数。 M 1 ( ⋅ ) \mathcal M_1(·) M1(⋅) 本质上计算了沿通道维度的 ψ ( x i ) \psi(\mathbf{x_i}) ψ(xi) 和 ϕ ( x j ) \phi(\mathbf{x_j}) ϕ(xj) 之间的距离,并利用这些距离的非线性变换作为 v i v_i vi 和 v j v_j vj 之间通道特定的拓扑关系。
σ ( ⋅ ) σ(·) σ(⋅) 为 Tanh 激活函数。
第二个相关建模函数 M 2 ( ⋅ ) \mathcal M_2(·) M2(⋅) 表示为 M 2 ( ψ ( x i ) , ϕ ( x j ) ) = M L P ( ψ ( x i ) ∣ ∣ ϕ ( x j ) ) (5) \mathcal M_2( \psi(\mathbf{x_i}), \phi(\mathbf{x_j})) = MLP( \psi(\mathbf{x_i}) || \phi(\mathbf{x_j})) \tag{5} M2(ψ(xi),ϕ(xj))=MLP(ψ(xi)∣∣ϕ(xj))(5)其中 ∣ ∣ || ∣∣ 为串联运算, M L P MLP MLP 为多层感知器。我们在这里使用 M L P MLP MLP 是因为它强大的拟合能力。
基于相关建模函数,利用线性变换 ξ ξ ξ 提高信道维数,得到信道特定相关 Q ∈ R N × N × C ′ \mathbf Q∈\mathbb R^{N×N×C'} Q∈RN×N×C′,式为 q i j = ξ ( M ( ψ ( x i ) , ϕ ( x j ) ) ) , i , j ∈ { 1 , 2 , . . . , N } (6) \mathbf{q_{ij}} = \xi( \mathcal M( \psi(\mathbf{x_i}), \phi(\mathbf{x_j})) ), i,j \in \{ 1, 2, ..., N\} \tag{6} qij=ξ(M(ψ(xi),ϕ(xj))),i,j∈{1,2,...,N}(6)其中, q i j ∈ R C ′ \mathbf{q_{ij}} ∈\mathbb R^{C'} qij∈RC′ 是 Q \mathbf Q Q 中的一个向量,反映了 v i v_i vi 和 v j v_j vj 之间通道特定的拓扑关系。注意 Q \mathbf Q Q 不强制对称,即不要求 q i j ≠ q j i \mathbf {q_{ij}} ≠ \mathbf {q_{ji}} qij=qji,这增加了相关建模的灵活性。
最终,通过细化共享拓扑 A \mathbf A A 和特定通道相关 Q \mathbf Q Q,可以得到通道相关拓扑 R ∈ R N × N × C ′ \mathbf R \in \mathbb R^{N×N×C'} R∈RN×N×C′, R = R ( Q , A ) = A + α ⋅ Q (7) \mathbf R = \mathcal R( \mathbf Q, \mathbf A) = \mathbf A + \alpha · \mathbf Q \tag{7} R=R(Q,A)=A+α⋅Q(7)其中 α α α 是一个可训练的标量来调整细化的强度。加法以广播的方式进行,将 A \mathbf A A 添加到 α × Q α × \mathbf Q α×Q的每个通道。
α α α 初始值为0,是一个可训练的标量,用于调整细化的强度。
Channel-wise 聚合
给定经过细化的通道拓扑 R \mathbf R R 和高级特征 X ~ \widetilde{\mathbf X} X ,CTR-GC 以通道方式聚合特征。
具体来说,CTR-GC 为每个通道构建了对应细化拓扑 R c ∈ R N × N \mathbf {R_c}∈\mathbb R^{N×N} Rc∈RN×N 和特征 x ~ : , c ∈ R N × 1 \tilde {\mathbf x}_{:, c}∈\mathbb R^{N×1} x~:,c∈RN×1 的通道图,其中 R c \mathbf {R_c} Rc 和 x ~ : , c \tilde {\mathbf x}_{:, c} x~:,c 分别来自 R c \mathbf {R_c} Rc 和 X ~ ( c ∈ { 1 , ⋅ ⋅ ⋅ , C ′ } ) \widetilde{\mathbf X}(c \in \{ 1, ··· , C'\}) X (c∈{1,⋅⋅⋅,C′}) 的第 c c c 个通道( c ∈ { 1 , ⋅ ⋅ ⋅ , C ′ } c∈\{1, ···, C'\} c∈{1,⋅⋅⋅,C′})。
每个通道图都反映了某种运动特征下顶点之间的关系。因此,对每个通道图进行特征聚合,将所有通道图的输出特征串联起来,得到最终的输出 Z \mathbf Z Z,表示为 Z = A ( X ~ , R ) = [ R 1 x ~ : , 1 ∣ ∣ R 2 x ~ : , 2 ∣ ∣ ⋅ ⋅ ⋅ ∣ ∣ R C ′ x ~ : , C ′ ] (8) \mathbf Z = \mathcal A( \widetilde{\mathbf X}, \mathbf R ) = [ \mathbf R_1 \mathbf { \tilde x_{:, 1}} || \mathbf R_2 \mathbf {\tilde x_{:, 2}} || ··· || \mathbf {R_{C'}} \mathbf {\tilde x_{:, C'}} ]\tag{8} Z=A(X ,R)=[R1x~:,1∣∣R2x~:,2∣∣⋅⋅⋅∣∣RC′x~:,C′](8)其中 ∣ ∣ || ∣∣ 为级联操作。在整个过程中,信道特定相关性 Q \mathbf Q Q 的推断依赖于输入样本,如式(6)所示。因此,提出的 CTR-GC 是一个动态的图卷积,它随不同的输入样本而自适应地变化。
通道聚合将 R \mathbf R R 与 Feature transformation 得到的高维特征 X ~ \widetilde{\mathbf X} X 做一些操作达到聚合特征的效果。
代码中用的爱因斯坦求和约定。
图卷积的分析
我们通过将不同的图卷积重新表述为统一的形式,并将其与 CNN 中使用的动态卷积[2,33]进行比较,分析了不同图卷积的表示能力。
我们首先回顾动态卷积,它用动态权值增强了香草卷积。在动态卷积中,中心像素 p i p_i pi 的每个邻居像素 p j p_j pj 在卷积核中都有相应的权值,并且权值可以根据不同的输入样本动态调整,这使得动态卷积具有较强的表示能力。动态卷积可以表述为 z i k = ∑ p j ∈ N ( p i ) x j k W j k (9) \mathbf{z^k_i}= \sum_{p_j \in \mathcal N(p_i)} \mathbf{x^k_j W^k_j} \tag{9} zik=pj∈N(pi)∑xjkWjk(9)其中 k \mathbf k k 为输入样本的指标。 x j k \mathbf{x^k_j} xjk 和 z i k \mathbf{z^k_i} zik 是 p j p_j pj 的输入特征和 p i p_i pi 的第 k \mathbf k k 个样本的输出特征。 W j k \mathbf {W^k_j} Wjk 为动态权值。
由于图的结构不规则,相邻顶点和权值之间的对应关系很难建立。因此,图卷积(GC)将卷积权值降级为邻接权值(即拓扑)和邻域共享权值。然而,共享邻域权值限制了 GC 的表示能力。为了分析不同 GC 和动态卷积之间的表示能力差距,我们将邻接权值和邻域共享权值整合为广义权值矩阵 E i j k \mathbf {E^k_{ij}} Eijk。也就是说,我们用 z i k = ∑ v j ∈ N ( v i ) x j k E i j k \mathbf z_i^k = \sum_{v_j∈\mathcal N(v_i)} \mathbf {x^k_j E^k_{ij}} zik=∑vj∈N(vi)xjkEijk 的形式来表示所有的 GC,其中 E i j k \mathbf {E^k_{ij}} Eijk 是广义权值。如前所述,我们将 GC 分为四类。
静态共享拓扑 GC
在静态共享拓扑 GC 中,拓扑对不同样本保持固定,并在所有通道上共享,可以表示为 z i k = ∑ v j ∈ N ( v i ) a i j x j k W = ∑ v j ∈ N ( v i ) x j k ( a i j W ) (10) \mathbf{z^k_i} = \sum_{v_j∈\mathcal N(v_i)} a_{ij} \mathbf {x^k_j W} = \sum_{v_j∈\mathcal N(v_i)} \mathbf {x^k_j}(a_{ij} \mathbf W) \tag{10} zik=vj∈N(vi)∑aijxjkW=vj∈N(vi)∑xjk(aijW)(10)其中 a i j W a_{ij} \mathbf W aijW 是静态拓扑共享 GC 的广义权值。由式(9)和式(10)可以看出,动态卷积和静态拓扑共享 GC 的区别在于它们的(广义)权值。具体来说,对于每个 j j j 和 k k k,动态卷积 W j k \mathbf {W^k_j} Wjk 的权值是独立的,而静态拓扑共享 GC 的广义权值受以下约束:
约束1:强制
E
i
j
k
1
\mathbf {E^{k_1}_{ij}}
Eijk1 和
E
i
j
k
2
\mathbf {E^{k_2}_{ij}}
Eijk2 相同。
约束2:
E
i
j
1
k
\mathbf {E^k_{{ij}_1}}
Eij1k 和
E
i
j
2
k
\mathbf {E^k_{{ij}_2}}
Eij2k 相差一个比例因子。
注意 k 1 \mathbf k_1 k1, k 2 \mathbf k_2 k2 是不同的样本指标, j 1 \mathbf {j_1} j1, j 2 \mathbf {j_2} j2 是不同的相邻顶点指标。这些约束导致静态拓扑共享 GC 与动态卷积在表示能力上存在差距。注意,我们关注的是基于 v i v_i vi 的邻域,为了简单起见,我们没有考虑 v i v_i vi 的变化。
动态共享拓扑 GC
与静态共享拓扑 GC 相比,动态共享拓扑 GC 具有更好的泛化能力。动态共享拓扑 GC 的公式为 z i k = ∑ v j ∈ N ( v i ) a i j k x j k W = ∑ v j ∈ N ( v i ) x j k ( a i j k W ) , (11) \mathbf z^k_i = \sum_{v_j∈\mathcal N(v_i)} a^k_{ij} \mathbf {x^k_j W} = \sum_{v_j∈ \mathcal N(v_i)} \mathbf {x^k_j} (a^k_{ij} \mathbf W),\tag{11} zik=vj∈N(vi)∑aijkxjkW=vj∈N(vi)∑xjk(aijkW),(11) 其中 a i j k a^k_{ij} aijk 为 v i v_i vi、 v j v_j vj 之间的动态拓扑关系,且依赖于输入样本。可以看出,动态拓扑共享 GC 的广义权值仍然受到约束2的影响,但将约束1放宽为以下约束:
约束3: E i j k 1 \mathbf {E^{k_1}_{ij}} Eijk1 和 E i j k 2 \mathbf {E^{k_2}_{ij}} Eijk2 相差一个比例因子。
静态非共享拓扑 GC
这种 GC 对不同的信道(组)使用不同的拓扑结构。这里我们只分析具有通道拓扑的静态 GC,因为它是静态拓扑非共享 GC 的最通用形式,并且可以退化为其他形式,例如静态组拓扑 GC。具体的公式是
其中
⊙
\odot
⊙ 为元素乘,
p
i
j
∈
R
C
′
\mathbf {p_{ij}}∈\mathbb R^{C'}
pij∈RC′ 为
v
i
v_i
vi,
v
j
v_j
vj 之间的通道拓扑关系。
p
i
j
c
p_{ijc}
pijc 是
p
i
j
\mathbf {p_{ij}}
pij 的第
c
c
c 个元素。
w
:
,
c
\mathbf {w_{:,c}}
w:,c 是
W
\mathbf W
W 的第
c
c
c 列。(为了清晰起见,我们省略了公式(12)和(13)的推导。详情可参阅补充资料。)由式(13)可知,由于拓扑结构是静态的,这类 GC 的广义权值受到约束1的约束,而将约束2松弛为以下约束:
约束4: E i j 1 k \mathbf {E^k_{{ij}_1}} Eij1k 和 E i j 2 k \mathbf {E^k_{{ij}_2}} Eij2k 对应的不同列有不同的缩放因子。
动态非共享拓扑 GC
静态非共享拓扑 GC 与动态非共享拓扑 GC 的唯一区别是,动态非共享拓扑 GC 动态推断非共享拓扑,因此动态非共享拓扑 GC 可表示为 z i k = ∑ v j ∈ N ( v i ) x j k ( [ r i j 1 k w : , 1 , . . . , r i j C ′ k w : , C ′ ] ) (14) \mathbf{z^k_i} = \sum_{v_j \in \mathcal N(v_i)} \mathbf{x^k_j}([ r^k_{{ij}_1} \mathbf{w_{:,1}, ..., r^k_{ijC'} \mathbf {w_{:, C'}} }]) \tag{14} zik=vj∈N(vi)∑xjk([rij1kw:,1,...,rijC′kw:,C′])(14)其中 r i j c k r^k_{ijc} rijck 为第 k k k 个样本在第 c c c 个通道中 v i v_i vi、 v j v_j vj 之间的动态拓扑关系。显然,动态非共享拓扑图卷积的广义权值同时放松了约束1和约束2。其中,将约束2松弛为约束4,将约束1松弛为以下约束:
约束5: E i j k 1 \mathbf {E^{k_1}_{ij}} Eijk1 和 E i j k 2 \mathbf {E^{k_2}_{ij}} Eijk2 对应的不同列有不同的缩放因子。
我们在下表中总结了不同类别的图卷积及其约束。可以看出,动态非共享拓扑 GC 的约束最小。我们的 CTR-GC 属于动态非共享拓扑 GC,公式(8)可以重新表述为公式(14),说明理论上 CTR-GC 比以前的图卷积具有更强的表示能力[3,24,32,34]。具体推理详见补充材料。
不同类别的图卷积和相应实例的约束。数字1-5对应五个约束。红色、绿色、蓝色分别表示相对高、中、低约束强度。
模型架构
基于 CTR-GC 构建了一个功能强大的图卷积网络 CTR-GCN,用于基于骨骼的动作识别。我们将每个关节的邻域设置为整个人体骨架图,这在之前的工作中被证明是更有效的[4,24]。
整个网络由十个基本块组成,然后是一个全局平均池和一个 s o f t m a x softmax softmax 分类器来预测动作标签。十个块的通道数为64-64-64-64-128-128-256-256。在第5块和第8块通过跨步时间卷积将时间维度减半。
我们的 CTR-GCN 的基本块如下图所示,每个块主要由空间建模模块、时间建模模块和残差连接组成。
(a)我们的 CTR-GCN 的基本区块。(b)带有
M
1
(
⋅
)
\mathcal M_1(·)
M1(⋅) 或
M
2
(
⋅
)
\mathcal M_2(·)
M2(⋅) 相关建模函数的 CTR-GC。
空间建模
在空间建模模块中,我们使用三个 CTR-GC 并行提取人体关节之间的相关性,并将其结果汇总为输出。为了清晰起见,上图(b)展示了一个带有 M 1 ( ⋅ ) \mathcal M_1(·) M1(⋅) 的 CTR-GC 实例。我们的 CTR-GC 被设计用于提取具有输入特征 X ∈ R N × C \mathbf X∈\mathbb R^{N×C} X∈RN×C 的图的特征。为了对骨架图序列 S ∈ R T × N × C \mathbf S∈\mathbb R^{T×N×C} S∈RT×N×C 采用 CTR-GC,我们沿着时间维度将 S \mathbf S S 池化,并使用池化特征来推断通道拓扑。
具体来说,CTR-GC 首先利用约简率为 r r r 的 ϕ \phi ϕ 和 ψ \psi ψ 来提取紧凑表示,然后使用时间池来聚合时间特征。之后,CTR-GC 按照公式(4)进行两两相减和激活。然后用 ξ ξ ξ 值提高激活的通道维数,以获得通道特定的相关性,用于细化共享拓扑 A \mathbf A A,以获得通道级拓扑。最后,在每个骨架图中进行通道聚合(通过批量矩阵乘法实现),以获得输出表示 S o \mathbf {S^o} So。
时序建模
为了模拟不同持续时间的动作,我们设计了一个基于[20]的多尺度时序建模模块。主要的区别是我们使用更少的分支,因为太多的分支会降低推断速度。如图3 (a)所示,该模块包含四个分支,每个分支包含一个
1
×
1
1 × 1
1×1 的卷积以降低信道维数。前三个分支分别包含2个不同扩张的时间卷积和
1
×
1
1 × 1
1×1 卷积后的
MaxPool。将四个分支的结果连接起来得到输出。
实验
数据集介绍
三个数据集:
- NTU RGB+D
- NTU RGB+D 120
- Northwestern-UCLA
实现细节
所有实验都在一个 RTX 2080 TI GPU 上进行,并使用 PyTorch 深度学习框架。我们的模型用 SGD 训练,动量为0.9,权值衰减为 0.0004。训练 epoch 设置为65,前5个 epoch 使用热身策略[8],使训练过程更加稳定。学习率设置为0.1,在第35和55 epoch 衰减为0.1因子。对于 NTU RGB+D 和 NTU RGB+D 120,批大小为64帧,每个样本大小调整为64帧,我们采用[35]中的数据预处理。对于 Northwestern-UCLA,批大小为16,我们采用了[4]中的数据预处理。
总结
在这项工作中,我们提出了一种新的基于骨骼的动作识别的通道拓扑细化图卷积(CTR-GC)。CTR-GC 以细化的方式学习信道拓扑,显示出强大的关联建模能力。数学分析和实验结果都表明,与其他图卷积相比,CTR-GC 具有更强的表示能力。在三个数据集上,提出的 CTR-GCN 优于目前最先进的方法。
这篇文章最大的创新就是细化训练了拓扑结构,CTR-GCN 的代码完全基于2s-AGCN 改进的。
文章除了在空间建模做处理外,时间建模也借鉴了其他文章的多尺度时间建模,有啥作用作者没指出,也没有实验对比。
代码数据处理部分貌似去除了很多“无用帧”,貌似这就会长点了吧,真正靠算法的创新会涨多少点,可以实验一下。
参考文章:动作识别论文—CTR-GCN