Skeleton-Based Action Recognition with Multi-Stream Adaptive Graph Convolutional Networks
CVPR2019
基于骨架的多流自适应图卷积网络动作识别
主要内容:
- 提出一种多流注意力增强的自适应图卷积神经网络l multi-stream attention-enhanced adaptive graph convolutional neural network (MS-AAGCN),端到端自适应地学习图的拓扑结构。
- 提出STC注意模块并嵌入到每个卷积层,帮助模型学习选择性地专注于区分性关节、框架和通道,以便与其他参数一起共同学习和更新。这种数据驱动的方法增加了模型的灵活性和泛化能力。
- 首先构造骨架数据的二阶信息(骨骼)并将其与一阶信息(关节)结合,这为识别性能带来了显着的改善;进一步提取关节和骨骼的运动信息,并将这四种方式集成到一个多流框架中。
- 证实了自适应学习的图的拓扑结构比基于人体的图更适合于动作识别任务。
创新点:
- 在每个图卷积层中嵌入了一个STC-attention模块,有助于模型更加关注重要的节点、帧和特征。
- 在统一的多流框架中明确地对关节、骨骼和相应的运动信息进行建模,进一步增强了性能。
- 将骨架数据与骨架引导的RGB数据融合,这带来了额外的改进。
- 未来的工作可以集中在如何更好的融合RGB模态和骨架模态。将基于骨架的动作识别算法和姿态估计算法结合在一个统一的框架内进行研究也是值得的。
以前的GCN-based存在的问题:
- 在所有模型层和输入数据上,图的拓扑结构是启发式设置并固定的,并固定在所有模型层和输入数据上,不适合GCN的层次结构和动作识别中数据的多样性。
- 对人体动作识别来说更具信息性和辨别性的骨架数据二阶信息:骨骼的长度和方向很少被研究。
MS-AAGCN,多流注意力增强自适应图卷积神经网络。图拓扑可以基于输入数据以端到端的方式统一或单独学习,这种数据驱动的方法增加了用于图形构建的模型的灵活性,并为适应各种数据样本带来了更多的通用性。自适应图卷积层通过时空通道注意模块得到进一步增强,有助于模型对重要关节、框架和特征给予更多关注。多流框架同时对关节和骨骼信息以及他们的运动信息进行建模,识别准确性显著提高。
与使用RGB视频进行识别的传统方法相比,基于骨架的动作识别对动态环境的强大适应性和复杂的背景。基于深度学习的基于骨架动作识别的方法手动结构作为一系列关节坐标向量或伪图像,被馈送到RNN或CNN中以产生预测。将骨架数据表示为矢量序列或2D网格不能完全表达相关关节之间的依赖性。骨架自然地作为非欧几里德空间中的曲线图,其中关节作为顶点和他们在人体中的自然连接作为边缘。以前的方法无法利用骨架数据的图形结构并且难以将具有任意形式的骷髅概括。
ST-GCN:首先用GCN对骨架数据建模,基于人体关节自然连接构建空间图并在连续帧中相应关节之间添加时间边缘,提出一种基于距离的采样函数来构造图卷积层。ST-GCN的缺点:
- 骨架图是基于人体自然连通性启发式预定义的,不能保证对动作识别是最佳的。预定义的基于人体的图形中彼此相距很远,有的时候不能捕获较远部位的依赖关系。
- 神经网络是分层的,不同层包含不同级别的语义。应用于ST-GCN的图拓扑在所有层上都是固定的,缺乏对不同层多级语义建模的灵活性和能力。
- 对所有不同动作类别的样本,一个固定的图结构对于不同动作类的所有样本可能不是最优的。图形结构应该是数据相关的。
为解决上述问题,文章提出一种新的自适应图卷积层,为图卷积参数化两种自适应图。一种称为全局图global graph,根据从数据集中提取的知识通过学习图邻接矩阵获得。学习过程使用基于任务的损失,所获得的图拓扑比先前的基于人的图更适合于动作识别。另一种是独立图individual graph,边缘是根据图顶点之间的特征相似性构建的。由于数据样本多种多样,该模块可以为每个输入捕获唯一的结构。使用门控机制将这两种图形融合在一起,这可以自适应地调整它们在每个模型层中的重要性。两个图都在不同层上进行了单独优化,因此可以更好地拟合神经网络的层次结构。这种数据驱动的方法增加了用于图构造的模型的灵活性,并带来了更多的通用性以适应各种数据样本。
先前方法只用了骨架数据的一阶信息:包含关节的2D或3D坐标,没有利用表示两个关节之间的骨骼特征的二阶信息。骨骼的长度和方向对动作识别会提供更多的信息和判别力。骨骼信息公式化为从源关节指向目标关节的向量。两个关节和骨骼之间的坐标差连续的帧作为运动信息来帮助建模动作时间演变。
文章在许多方面是以前工作( L. Shi, Y . Zhang, J. Cheng, and H. Lu, “Two-Stream Adaptive Graph Convolutional Networks for Skeleton-Based Action Recognition,” in The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2019.)的扩展版本:
- 优化了所提出的全局图和单个图的合成方案,并引入了一种门控机制来自适应地调整两个图的重要性;
- 提出STC-attention模块,以针对不同的数据样本自适应地重新校准关节,框架和通道的激活,能够有效地帮助模型关注重要的关节、框架和特征;
- 将之前的模型扩展到多流框架,该框架集成了关节和骨骼的运动模态;
A。skeleton-based action recognition
与本方法相关的工作
- 传统方法:设计手工特征模拟人体
- 在Lie group中旋转和平移来编码骨架
- 使用rank pooling方法用ranker的参数表示数据
- 数据驱动data-driven:
- RNN-based:将骨架数据建模为沿着空间和时间维度的坐标向量序列,其中每个向量表示人体关节
- (“Hierarchical recurrent neural network for skeleton based action recognition,” CVPR2015)使用分层双向模型来识别骨骼序列,该模型将人体分成不同的部分,并将它们发送到不同的子网络
- (“An End-to-End Spatio-Temporal Attention Model for Human Action Recognition from Skeleton Data.” AAAI2017)在基于的模型中嵌入时空注意模块,使网络能够自动关注骨架序列的判别时空区域
- (“View Adaptive Recurrent Neural Networks for High Performance Human Action Recognition From Skeleton Data,” CVPR2017)在基于的模型中引入了视图转换的机制,该机制自动将骨架数据转换成更有利于动作识别的角度
- (“Skeleton-Based Action Recognition with Spatial Reasoning and Temporal Stack Learning,” ECCV2018)提出了一种具有空间推理(SRN)和时间堆栈学习(TSL)的模型,其中SRN可以捕捉不同身体部位之间的结构信息,而TSL可以对详细的时间动态进行建模
- CNN-based:将骨架数据建模为伪图像
- (“Interpretable 3d human action analysis with temporal convolutional networks,” CVPR2017)使用一维残差CNN识别关节坐标直接连接的骨架序列
- (“Enhanced skeleton visualization for view invariant human action recognition,”)提出10种用于骨架编码的时空图像,并使用视觉和运动增强方法对这些图像进行增强
- (“Skeleton based action recognition using translation-scale invariant image mapping and multi-scale deep CNN,” CMEW2017)使用多尺度残差网络和各种数据增强策略进行基于骨架的动作识别
- (“Skeleton-Based Action Recognition with Gated Convolutional Neural Networks,”)设计了一个排列网络,以学习关节重新排列的优化顺序
B。GCNN:
- 空间透视法spatial perspective methods:直接对图形顶点及其邻域进行卷积。问题:如何从遗漏顶点和边的隐含顺序的图中构造局部连通的邻域。这些方法总是根据手动设计的规则来提取邻居:
- 根据每个顶点在图中的距离对其邻域进行采样。提出了一种裁剪多余顶点和填充虚拟顶点的归一化算法
- 将视频表示为包含用于动作识别的人和检测到的对象的图形。根据特征相似性和时空关系定义每个顶点的邻域
- 光谱透视方法spectral perspective methods:使用graph Laplace matrices的特征值和特征向量
- (“The emerging field of signal processing on graphs: Ex-tending high-dimensional data analysis to networks and other irregular domains,” 2013)借助于图形傅立叶变换在频域中执行图形卷积
- (“Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering,” 2016)使用递归切比雪夫多项式作为滤波方案,比以前的多项式滤波器更有效
- (“Semi-Supervised Classification with Graph Convolutional Networks,” arXiv2016)使用谱图卷积的一阶近似进一步简化了这种方法,这个方法遵循空间透视法
A。图结构
空间维度:同一帧中的关节
时间维度:所有帧上的相同关节
B。图形卷积
对于空间维度,顶点上图卷积运算公式: f o u t ( v i ) = ∑ v j ∈ B i 1 Z i j f i n ( v j ) ⋅ w ( l i ( v j ) ) f_{out}(v_i)=\sum_{v_j\in{\mathcal{B}}_i}{\frac{1}{Z_{ij}}{f_{in}(v_j)·w(l_i(v_j))}} fout(vi)=∑vj∈BiZij1fin(vj)⋅w(li(vj)),其中 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是类似于传统卷积运算的加权函数,根据给定的输入提供一个权重向量。因为卷积的权重向量数量是固定的而顶点数量是变化的因此映射函数 l i l_i li来将所有相邻顶点映射到一个固定编号的子集,每个子集都与唯一的权重向量相关联。根据经验将内核大小设置为3,分成3个子集,顶点本身、向心子集和离心子集。
C。实现
对于空间维度:网络特征图是张量 f ∈ R C × T × N f\in{\Bbb{R}}^{C×T×N} f∈RC×T×N,其中 N N N表示顶点数量, T T T表示时间长度, C C C表示通道数, f o u t = ∑ k K v W k ( f i n A k ) {\bf{f}}_{out}=\sum^{K_v}_{k}{{\bf{W}}_k({\bf{f}}_{in}{\bf{A}}_k)} fout=∑kKvWk(finAk)。 K v K_v Kv表示空间维度内核大小(3), A k = Λ k − 1 2 A ‾ k Λ k − 1 2 {\bf A}_k={\bf \Lambda}_k^{-\frac{1}{2}}{\overline{\bf A}}_k{\bf \Lambda}_k^{-\frac{1}{2}} Ak=Λk−21AkΛk−21, A ‾ k ∈ R N × N {\overline{\bf A}}_k\in{\Bbb R}^{N\times N} Ak∈RN×N与邻接矩阵相似,元素表示顶点是否在另一顶点子集中。 Λ k i i = ∑ j ( A ‾ k i j ) + α {\bf \Lambda}_k^{ii}=\sum_j({\overline{\bf A}}_k^{ij})+\alpha Λkii=∑j(Akij)+α是归一化对角矩阵, α = 0.001 \alpha=0.001 α=0.001来避免出现空行, W k ∈ R C o u t × C i n × 1 × 1 {\bf W}_k\in{\Bbb R}^{C_{out}\times C_{in}\times1\times1} Wk∈RCout×Cin×1×1是1×1卷积运算的权重向量,表示等式1中的加权函数w。
对于时间维度:每个顶点的邻居数量都是2,对上面计算的输出特征图执行 K t × 1 K_t×1 Kt×1卷积, K t K_t Kt是时间维的核大小。
MS-AAGCN multi-stream attention-enhanced adaptive graph convolutional network
A。adaptive graph convolutional layer
自适应图卷积层以端到端的学习方式使图的拓扑与网络的其他参数一起得到优化,增加了灵活性,保持了原来的稳定性。
邻接矩阵 A k {\bf{A}}_k Ak确定两个顶点之间是否有连接;掩码 M k {\bf{M}}_k Mk确定连接的强度;为了使拓扑自适应: f o u t = ∑ k K v W k f i n ( B k + α C k ) {\bf{f}}_{out}=\sum^{K_v}_{k}{{\bf{W}}_k{\bf{f}}_{in}({\bf{B}}_k+\alpha{\bf{C}}_k}) fout=∑kKvWkfin(Bk+αCk)。主要区别在于图的邻接矩阵分为了两个子图:
- B k {\bf{B}}_k Bk:从数据中学到的全局图,表示更适合动作识别任务的图拓扑,用基于人体的图的邻接矩阵初始化。在训练过程中参数化并与其他参数一起更新,没有约束即完全根据训练数据来学习。通过这种数据驱动的方法模型可以学习完全针对识别任务的图形。对每一层都是唯一的,因此对于包含在不同层中的不同语义级别来说更个性化。
- C k {\bf{C}}_k Ck:是学习每个样本的唯一拓扑的独立图。使用嵌入高斯函数 f ( v i , v j ) = e θ ( v i ) T ϕ ( v j ) ∑ j = 1 N e θ ( v i ) T ϕ ( v j ) f(v_i,v_j)=\frac{e^{\theta(v_i)^T\phi(v_j)}}{\sum^{N}_{j=1}{e^{\theta(v_i)^T\phi(v_j)}}} f(vi,vj)=∑j=1Neθ(vi)Tϕ(vj)eθ(vi)Tϕ(vj)来估计两个顶点的特征相似度。点积测量嵌入空间中两个顶点的相似度,这里选择1×1卷积层作为嵌入函数,将两个嵌入的特征图重塑为矩阵然后相乘来获得相似度矩阵 C k C_k Ck,矩阵元素表示顶点与顶点之间的相似度,归一化高斯用softmax运算: C k = S o f t M a x ( f i n T W θ k T W ϕ k f i n ) {\bf{C}}_k=SoftMax({\bf{f}_{in}}^T{\bf{W}}_{\theta k}^T{\bf{W}_{\phi k}}{\bf{f}_{in}}) Ck=SoftMax(finTWθkTWϕkfin)
- gating mechanism:全局图决定动作识别任务的基本图拓扑,单个图根据各种样本特征增加个性。底层接受场小,限制了从不同样本中学习图拓扑的能力,因此顶层比底层更需要单独的图individual graph,顶层包含的信息更具有语义性,具有更大的可变性,需要图拓扑更多个性。这两种图形使用选通机制(gating mechanism)进行融合,该机制可以自适应地调整它们在每个模型层中的重要性。两个图在不同的层上都是单独优化的,因此它可以更好地适应神经网络的层次结构。总之,这种数据驱动的方法增加了模型构建图的灵活性,并为适应各种数据样本带来了更大的通用性。 C k {\bf C}_k Ck乘的参数 α \alpha α都是每个层唯一参数化的系数,在训练过程中学习和更新。
B。注意力模块:
提出一个STC注意模块,包含三个子模块,可以以不同方式放置:并行或不同顺序,最好的顺序是SAM TAM CAM。
- Spatial attention module (SAM)空间注意模块帮助模型对每个关节进行不同级别的关注: M s = σ ( g s ( A v g P o o l ( f i n ) ) ) {\bf{M}}_s=\sigma(g_s(AvgPool(f_{in}))) Ms=σ(gs(AvgPool(fin))),对输入特征图在所有帧上取平均值, g s g_s gs是1维卷积。
- Temporal attention module (TAM)时间注意模块: M t = σ ( g t ( A v g P o o l ( f i n ) ) ) {\bf{M}}_t=\sigma(g_t(AvgPool(f_{in}))) Mt=σ(gt(AvgPool(fin)))
- Channel attention module (CAM)通道注意模块可以帮助模型根据输入样本来增强区分特征(通道): M c = σ ( W 2 ( δ ( W 1 ( A v g P o o l ( f i n ) ) ) ) ) {\bf{M}}_c=\sigma({\bf{W}}_2(\delta ({\bf{W}}_1(AvgPool(f_{in}))))) Mc=σ(W2(δ(W1(AvgPool(fin)))))
C。基本块:沿时间维度的卷积与ST-GCN相同。为了稳定训练并简化梯度传播,为每个基本块添加了一个残余连接。
D。网络体系结构
E。多流网络
骨骼是同一帧中源节点指向目标节点的向量(后减前);运动信息是连续帧中相同关节或骨骼之间的差异。
实验:
融合骨架数据和RGB数据用与动作识别的必要性。