Channel-wise Topology Refinement Graph Convolution for Skeleton-Based Action Recognition
论文地址:https://arxiv.org/abs/2107.12213
仓库地址:https://github.com/Uason-Chen/CTR-GCN
这篇论文于2021年发表在ICCV。
一、存在的问题:
基于GCN的算法所有通道共享同一套拓扑结构,这样限制了模型的能力上限。作者认为拓扑结构(邻接矩阵A)可以继续被细化训练。即A[0],A[1],A[2]分别参与训练。
针对这一问题作者提出了通道拓扑细化网络,以此来提高模型的上限。
二、相关工作部分:
文章将基于GCN的骨架动作识别算法根据拓扑结构是否动态变化分为Static / Dynamic Methods,文章对比了前人的相关工作,指出Dynamic Methods有更强的泛化能力;根据拓扑结构与通道而言是否共享分为 topology-shared methods and topology-non-shared methods,其中topology-shared methods迫使 GCN 聚合具有相同拓扑的不同通道中的特征,限制了模型性能的上限。
三、重点
如图1,CTR-GC包含三个部分
(1) Feature transformation:
图中橙色部分, 根据文章介绍 T (·)用于将输入转化为高级特征表示。(代码使用的是卷积核为1的2d卷积)。
(2) Channel-wise topology modeling
图中蓝色部分,网络各个通道有一个共享的邻接矩阵A,这个A也是可学习,会根据反向传播而变化。Q是不同通道的特有拓扑结构。精化A和Q,得到通道拓扑R。
φ 和 ψ在代码中是卷积核大小为1的2d卷积,然后对V维度求均值。M包含M1与M2。
M1(ψ(xi), φ(xj)) = σ(ψ(xi) − φ(xj))
σ为Tanh激活函数。
M2(ψ(xi), φ(xj)) = M LP (ψ(xi)||φ(xj))
|| contact操作,M2这里我在代码里没发现在哪,根据后面的消融实验我觉得可能是M1与M2二选一。M1出来就是文中的Q。
R = R(Q, A) = A + α · Q
α初始值为0,是一个可训练的标量,用于调整细化的强度。
(3) Channel-wise aggregation
这个部分就是将R与Feature transformation得到的高维特征做一些操作达到聚合特征的效果。代码中用的爱因斯坦求和约定。
图1
四、实验结果:
①消融实验
②不同拓扑结构实验
③算法对比
④个人使用2S-AGCN处理的NTU-RGBD数据跑了一下CTR-GCN网络,我只跑了joint特征数据,结果如图。
五、总结
这篇文章最大的创新就是细化训练了拓扑结构,CTR-GCN的代码完全基于2S-AGCN改进的。文章除了在空间建模做处理外,时间建模也借鉴了其他文章的多尺度时间建模,有啥作用作者没指出,也没有实验对比。代码数据处理部分貌似去除了很多“无用帧”,貌似这就会长点了吧,真正靠算法的创新会涨多少点,可以实验一下。文章还是有挺多小细节的,可以认真看看原文。以上全部为个人见解,有错误的地方还请指出,欢迎讨论。