Disentangling and Unifying Graph Convolutions for Skeleton-Based Action Recognition

Disentangling and Unifying Graph Convolutions for Skeleton-Based Action Recognition

paper: https://arxiv.org/pdf/2003.14111.pdf​arxiv.org
code: https://github.com/kenziyuliu/ms-g3d​github.com

基于骨架的动作识别的分离和统一的图卷积

摘要

基于骨架的动作识别算法广泛使用时空图对人体动作动态进行建模。

为了从这些图中捕获稳健的运动模式,长期和多尺度的上下文聚合与时空依赖建模是一个强大的特征提取器的关键方面。

然而,现有的方法在实现以下方面存在局限性。

​ (1)多尺度算子下的无偏差长期关节关系建模

​ (2)用于捕捉复杂时空依赖的通畅的跨时空信息流

在这项工作中,我们提出了

​ (1)一种简单的分解(disentangle)多尺度图卷积的方法和

​ (2)一种统一的时空图卷积算子G3D。

所提出的多尺度聚合方法理清了不同邻域中节点对于有效的长期建模的重要性。

所提出的G3D模块利用密集的跨时空边作为跳跃连接,用于在时空图中直接传播信息。

通过结合上述提议,我们开发了一个名为MS-G3D的强大的特征提取器,在此基础上,我们的模型在三个大规模数据集NTU RGB+D60,NTU RGB+D120和Kinetics Skeleton 400上的性能优于以前的最先进方法。

引言

image1

图1.(a)骨架图序列的空间和时间分解的建模导致间接信息流。 (b)在这项工作中,我们建议用统一的时空图卷积来捕捉跨时空关联。 (c)在不同的时空邻域(在不同距离的黄色、蓝色、红色,为了清晰而部分着色)上的节点特征的分离对于在时空域中进行有效的多尺度学习至关重要

​ 人体动作识别是许多实际应用中的重要任务。特别是,基于骨架的人体动作识别涉及从人体的骨架表示而不是原始的RGB视频预测动作,并且在最近的工作中看到了有意义的结果证明了它的优点。对比RGB表征,骨架数据只包含2D 或3D 人体关键关节的位置,提供了高度抽象的信息,并且没有环境噪声(例如背景杂波,光照条件,衣服)使得动作识别算法可以专注于动作的稳健特征。

​ 早期的基于骨架的动作识别方法将人体关节视为一组独立的特征,他们通过手工制作的或学习的这些特征的集合来建模空间和时间上的关节相关性。 然而,这些方法忽略了人体关节之间的内在关系,这种关系最好用人体骨架图来捕捉,人体骨架图中的关节为节点,而它们的自然连接(即“骨头”)为边。为此,最近的研究方法利用骨架时空图建立了动作的关节运动模式的模型,骨架时空图是一系列不相交、同构的不同时间步长的骨架图,承载着空间和时间维度上的信息。

​ 为了从骨架图进行稳健的动作识别,理想的算法应该超越局部关节连接性,提取多尺度结构特征和长期依赖关系,因为结构上分离的关节也可以有很强的相关性。许多现有的方法都是通过使用骨架邻接矩阵的高次幂来实现这一目的: 直观地,邻接矩阵的幂来捕获每对节点之间的路径数,且行走的长度与幂相同;因此,邻接多项式通过使远邻可达来增加图卷积的感受野。然而,这种方法存在有偏权问题,即无向图上环的存在意味着边权重将偏向于更靠近的节点而不是更远的节点。 在骨架图上,这意味着邻接矩阵高次幂只能低效地捕捉远处关节的信息,因为聚集的特征将由局部身体部位的关节主导。 这是限制现有多尺度聚合器可伸缩性的一个严重缺陷。

​ 鲁棒算法的另一个理想特征是利用复杂的跨时空关节关系进行动作识别的能力。 然而,为此,大多数现有的方法部署的仅空间和仅时间交错的的模块(图1(a)) ,类似于分解的3D 卷积。 典型的方法是首先使用图卷积提取每个时间步长的空间关系,然后使用循环神经网络或一维卷积层建立时间动态模型。 虽然这样的分解方法可以有效的长期建模,但它阻碍了跨时空的直接信息流,无法捕获复杂的区域时空关节依赖关系。例如,“站立”动作通常是上身和下身在空间和时间上的共同运动,上身的运动(向前倾)与下身未来的运动(站立)有很强的相关性。 分解方法建模可能无法有效地捕捉到这些用来做预测的有力线索。

​ 在这项工作中,我们从两个方面解决了上述限制。 首先,我们提出了一种新的多尺度聚合方案,通过消除较远和较近邻域间的冗余依赖关系来解决有偏差的权重问题,从而理顺多尺度聚合下的特征(如图2所示)。 这就产生了更强大的多尺度算子,可以建模关节之间的关系,而不用考虑它们之间的距离。 其次,我们提出了 G3D,一个新的统一的时空图卷积模块,可以直接建模跨时空关节依赖关系。 G3D通过引入跨越“3D”时空域的图形边作为无障碍信息流的跳过连接来做到这一点(图1(B)),实质上促进了时空特征学习。值得注意的是,我们提出的解纠缠聚合方案增加了 G3D 的多尺度时空推理(图1(c))而没有受到有偏差权重问题的影响,尽管引入了额外的边。由此产生的功能强大的特征提取器,命名为 MSG3D,构成了我们最终模型架构的基石,在三个大规模骨架动作数据集(NTU rgb + d120、 NTU rgb + d60和 Kinetics Skeleton 400)上的性能优于最先进的方法。

这项工作的主要贡献概括如下:

(i)提出了一种解纠缠多尺度聚合方案,该方案消除了不同邻域节点特征之间的冗余依赖关系,使强大的多尺度聚合器能够有效地捕获人体骨架上的图形广义关节关系。
(ii)提出了一种统一的时空图卷积(G3D)算子,使得信息在时空中直接流动,从而实现高效的特征学习。
(iii)将解纠缠方案与 G3D 相结合,提供了一个强大的特征提取器(MS-G3D) ,具有跨时空的多尺度感受野。 时空特征的直接多尺度聚合进一步提高了模型性能。

相关工作

图神经网络

架构

​ 为了从任意结构的图中提取特征,图神经网络(GNNs)得到了广泛的发展和探索。最近提出的GNN大致可分为频谱GNN和空域GNN。频谱GNN将输入的图形信号与图傅立叶域中的一组学习滤波器进行卷积。然而,由于特征分解的要求和固定邻接的假设,它们在计算效率和对新图的推广性方面受到限制。相反,空域GNN通常通过(1)选择具有邻域函数的邻居(例如,相邻节点);(2)将来自所选择的邻居及其自身的特征与聚集函数合并(例如,均值池);以及(3)将激活的变换应用于合并的特征(例如,MLP),来执行针对每个节点的层级更新。在不同的GNN变体中,图卷积网络(GCN)最初是作为局部频谱卷积的一阶近似引入的,但它作为平均邻域聚合器的简单性迅速导致许多后续的空域GNN体系结构和涉及图结构数据的各种应用将其视为空域GNN基线。本文采用了GCN中的分层更新规则。

多尺度图卷积

​ 多尺度空域GNNs也被提出用来捕捉非局部邻域的特征。 使用图邻接矩阵的邻接矩阵高次幂来聚合来自远处邻居节点的特征。Truncated Block Krylov network同样将邻接矩阵提高到更高的幂次,并通过不同隐层的密集特征串联来获得多尺度信息。LanczosNet利用邻接矩阵的低秩近似来加速大型图的幂运算。如第1节所述,我们认为邻接权重可能会因权重偏差而对远程建模产生不利影响,而我们提出的模块旨在通过解缠的多尺度聚合器解决这一问题。

基于骨架的动作识别

​ 早期的基于骨架的动作识别方法侧重于下游分类器的手工制作特征和关节关系,忽略了人体语义连接的重要性。通过构造时空图和直接用GNNs建模空间关系,最近的方法的性能得到了显著提高,这表明人体骨架的语义对于动作预测的必要性。

​ 图卷积的一个早期应用是ST-GCN,其中空间图卷积与交错时间卷积一起用于时空建模。李等共同的工作提出了一个类似的方法,通过提高骨架邻接矩阵到更高的幂次来引入多尺度模块。AS-GCN也使用邻接矩阵的幂进行多尺度建模,但它还额外生成人体姿势以增强空间图卷积。时空图路由(STGR)网络使用逐帧注意和全局自注意机制为骨架图添加额外的边。类似地,2s-AGCN引入了具有自注意的图形自适应性以及自由学习的图形残差掩码。它还使用具有骨架骨骼特征的双流集成来提高性能。DGNN同样利用了骨骼特征,但是它通过交替的空间聚合方案同时更新关节和骨骼特征。要提出来的是,上述这些方法主要集中在空间建模上;相比之下,我们提出了一种统一的方法,用于直接跨时空捕获复杂的关节相关性。

​ 另一个相关的工作是GR-GCN,它在骨架图序列上每三帧合并一次,并在相邻帧之间添加稀疏边。虽然GR-GCN也应用了跨时空边,但跟我们的G3D模块有几个重要区别:

​ (1)G3D中的跨时空边遵循语义人体骨架,与GR-GCN中稀疏的、一刀切的图相比,G3D中的跨时空边自然是一种更可解释、更健壮的表示。底层图形也更容易计算。

(2)GR-GCN仅在相邻帧之间具有跨时空边,这使其无法推理超出三个帧的有限时间范围。

(3)G3D可以同时利用不同的窗口大小和膨胀从多个时间上下文中学习,这在GR-GCN中没有解决。

MS-G3D

前言

Notations

​ 人体骨架图被表示为 ,其中是表示关节的N个节点的集合,E是表示由邻接矩阵捕获的骨架的边集,其中如果边从指向

初始 否则为0。

因为G是无向图所以矩阵A是对称的。作为图序列的动作具有节点特征集

表示为特征张量其中

是节点总共T帧的第t帧的C维特征向量 。因此,输入动作在结构上由A和在特征上由
适当地描述,其中是时间t处的节点特征。

表示网络第L层的可学习权重矩阵。

图卷积网络

在特征向量X和图A定义的骨架输入上,可以将GCN的分层更新规则应用于时间t处的特征,如下所示:

式中, 是骨架图,添加了自循环以保持自身特征,的对角度矩阵, 是激活函数。 公式可以直观地解释为来自直接邻域的近似空间平均特征聚集,随后是激活的线性层。

解缠多尺度聚合

image2

Figure2: 图解有偏加权问题和所提出的分离聚合方案。颜色越深,表示对于中心节点的权重越大(红色)。左上角:越近的节点从邻接矩阵获得更高的权重,这会降低远程建模的效率,特别是在聚合多个尺度时。左下:我们提出的解缠结聚合模型在保持自身特征的同时,对每个邻域的关节关系进行建模。右:可视化相应的邻接矩阵。 为了视觉清晰,省略了节点自环

有偏加权问题

在公式1的空间聚集框架下,现有的方法使用邻接矩阵的高次幂来聚集时间t的多尺度结构信息,如:

其中控制要聚合的尺度。在这里, 的归一化形式,例如[19]使用堆成归一化拉普拉斯图 ;[21] 利用随机游走归一化邻接 更一般的说,可以使用GCNs中的 。很容易易看出

正在根据此类步数执行加权特征平均。然而,很明显,由于循环遍历,到更近的节点的长度为k的路径比到实际的k跳邻居的数量多得多。这会导致权重偏向局部区域以及度较高的节点。GCNS中的节点的自环允许更多可能的路径(因为总是可以在自环上循环),从而放大偏差。参见图2。因此,在骨架图上进行多尺度聚合时,聚合特征将以局部身体部位的信号为主导,从而使用具有较高次幂无法有效捕获长期关节依赖关系。

解开邻域关系

为了解决上述问题,我们首先将k邻接矩阵定义为

其中

之间跳数最短的距离, 到更远领域的一般化, 其中 and 。在式1中的空间聚集下,在中包含自循环对于学习当前关节与其k跳邻居之间的关系以及在没有k跳邻居时保持每个关节的自身信息至关重要。考虑到N很小,因此可以很容易地计算出 ,例如,使用图幂之差,如

(将邻接矩阵k次幂得到的矩阵中元素大于1的元素全都变为1)

将式2中的替换为 ,得出:

其中 邻接矩阵的归一化。

​ 与之前的情况不同,可能的长度k的路径数主要取决于长度k − 1的路径数,在式4提出的分离公式通过去除较远邻域对较近邻域权重的冗余依赖来解决有偏权重问题。 此外,具有较大k的尺度在多尺度算子下以相加的方式聚合,使得具有较大k值的长期建模保持有效。所得的k邻接矩阵也比其对应高次幂的矩阵稀疏(请参见图2),从而可以更有效地表示。

G3D:统一的时空建模

​ 大多数现有工作将骨架动作视为一系列不相交的图,其中特征是通过仅空间(例如GCN)和仅时间(例如TCN)模块提取的。我们认为,这种分解的方法对于捕获复杂的时空关节关系不太有效。显然,如果一对节点之间存在牢固的连接,则在逐层传播期间,该对节点应包含彼此的显著特征部分以反映这种连接。然而,当信号通过一系列局部聚合器(GCNS和TCNs)在时空中传播时,随着从越来越大的时空感受野聚集冗余信息时,信号会被削弱。如果观察到gcn没有执行加权聚合来区分每个邻居,那么问题就更明显了。

跨时空跳跃连接

​ 为了解决上述问题,我们提出了一种更合理的方法来允许跨时空跳跃连接,这种连接很容易用时空图中的跨时空边来建模。(参数过大和提取的特征过于泛化)让我们首先考虑输入图序列上一个大小为的滑动时间窗口,在每一步中,它都会得到一个时空子图,其中是窗口中帧的所有节点集的并集。通过将平铺到块邻接矩阵来定义初始边集合 ,其中(每个node都和所有frames的对应邻居节点直接相连)

直观地说,每个子矩阵意味着 中的每个节点通过将逐帧的空间连通性(即所有的空间连通性为)外推到时域,在帧处连接到自身及其1跳的空间邻居。因此,内的每个节点都与自身及其跨所有帧的1跳空间邻居紧密相连。在上使用相同的零填充滑动窗口构造个窗口,可以很容易地得到 。利用式1,因此我们得出了用于 时间窗口的统一的时空图卷积算子:

膨胀窗口

​ 上述窗口结构的另一个重要方面是不需要是相邻帧。通过每帧选取一帧并重用相同的时空结构,可以构造具有帧和膨胀率的膨胀窗口。同样,我们可以获得节点特征(被忽略的话 ),执行式6中的逐层更新。膨胀窗口允许更大的时间感受野而不增加的大小,类似于空洞卷积如何保持恒定的复杂性。

多尺度G3D

​ 我们也可以将所提出的解缠多尺度聚合方案(式4)整合到G3D中,直接在时空域进行多尺度推理。因此,我们从式6推导出MS-G3D模块为:

其中 的定义分别类似于。值得注意的是,我们提出的解缠聚合方案补充了这一统一算子,因为G3D由于时空连通性而增加的节点度数可能会导致有偏权重问题。

讨论

​ 我们对G3D进行了更深入的分析,如下所示。

​ (1)它类似于经典的三维卷积块,其时空感受野由,定义。

​ (2) 与3D卷积不同,G3D的参数由得出独立于使得它在大的通情况下不太容易过拟合。(3)G3D中密集的跨时空连接需要在上进行权衡,因为较大的值带来了更大的时间感受野,代价是由于更大的邻域而牺牲了更一般的特征。此外,越大的意味着平方的扩大,因此多尺度聚合的运算量越大。另一方面,较大的膨胀率以时间分辨率(较低的帧率)为代价带来更大的时间覆盖。因此必须小心地平衡,。(4)G3D模块旨在捕获复杂的区域时空关系,而不是由因数分解模块可以更经济地捕获的长期依赖关系。因此,我们观察到,当G3D模块使用长期的因式分解模块增强时,性能最佳,我们将在下一节讨论这一点

模型架构

image-20200708002432414

Figure 3:架构概述:“TCN”、“GCN”、前缀“MS-”和后缀“-D”分别表示时间卷积块和图卷积块,以及多尺度和解缠聚集(第3.2节)。r个STGC块(b)中的每一个都使用了多分支设计,以同时捕获长期的和区域时空依赖关系。虚线模块:包括额外的G3D分支、1×1卷积层和跨步时间卷积,根据情况权衡模型的性能/复杂性。

整体架构

​ 最终的模型架构如图3所示。在高层次上,它包含r个时空图卷积(STGC)块的堆栈,用于从骨架序列中提取特征,随后是全局均值池化层和Softmax分类器。每个STGC块部署两种类型的路径,以同时捕获复杂的区域时空关节相关性以及长期的时空依赖性:(1) G3D路径首先构造时空窗口,对其进行解纠缠的多尺度图卷积,然后用一个全连接层对其进行折叠将窗口特征读出。额外的虚线G3D分支(图3(B))表明该模型可以同时从不同的的多个时空上下文中学习;(2) 因式分解路径通过长期、仅空间和仅时间的模块增强了G3D分支:第一层是一个多尺度的图卷积层,能够用最大K(最长关节间距离)对整个骨架图进行建模;随后是两个多尺度时间卷积层,以捕获扩展的时间上下文(下面讨论)。来自所有分支的输出被聚集为STGC块输出,该STGC块输出在典型的r=3块体系结构中分别具有96、192和384个特征通道。批归一化和ReLU添加到除了最后一层以外的每一层末尾。除第一个块外,所有STGC块均使用步幅为2的时间卷积和滑动窗口在时间维度上进行下采样。

多尺度时间建模

​ G3D所使用的时空窗口本身是一个封闭的结构,这意味着G3D必须伴随时间模块进行跨窗口信息交换。许多现有工作在整个架构中使用具有固定大小为的卷积核的时间卷积对时间建模。我们用多尺度学习增强香草时间卷积层,如图3(c)所示。为了降低额外分支所带来的计算成本,我们采用了瓶颈设计,将卷积核大小固定为3×1,并使用不同的膨胀率,而不是更大的卷积核来获得更大的感受野。我们还使用残差连接来促进训练。

自适应图

​ 为了提高执行同类邻域平均化的图卷积层的灵活性,我们给每个添加一个受[33,32]启发的简单的、可学习的、无约束的残缺掩码图,以动态地加强、削弱、添加或删除边。例如,公式4更新为

\tilde{\mathbf{A}}_{(\tau)}=\left[\begin{array}{ccc}
\tilde{\mathbf{A}} & \cdots & I \
\vdots & \ddots & \vdots \
O & \cdots & \tilde{\mathbf{A}}
\end{array}\right] \in \mathbb{R}^{\tau N \times \tau N}

\left[\begin{array}{cccc}
\tilde{\mathbf{A}} & I & I& \cdots I \
O & \tilde{\mathbf{A}} & I& \cdots I \
O & O & \tilde{\mathbf{A}}& \cdots I \
\cdots& \cdots&\cdots&\cdots I\
O & O & O & \cdots \tilde{\mathbf{A}}
\end{array}\right]

\tilde{\mathbf{A}}_{(\tau)}=\left[\begin{array}{ccc}
\tilde{\mathbf{A}} & \cdots & I \
\vdots & \ddots & \vdots \
I & \cdots & \tilde{\mathbf{A}}
\end{array}\right] \in \mathbb{R}^{\tau N \times \tau N}

\left[\begin{array}{cccc}\tilde{\mathbf{A}} & I & I& \cdots I \I & \tilde{\mathbf{A}} & I& \cdots I \I & I & \tilde{\mathbf{A}}& \cdots I \\cdots& \cdots&\cdots&\cdots I\I & I & I & \cdots \tilde{\mathbf{A}}\end{array}\right]

$$

关节-骨骼双流融合

​ 我们在NTU RGB+D60数据集上验证了我们在关节骨骼融合框架下的方法(表5中)。与[33]相似,我们在融合关节和骨骼特征时获得了最佳性能,这表明我们的方法可以推广到其他输入模式。

与最新技术相比

image-20200709002241972

表4:在NTU RGB+D 120骨骼数据集上的分类精度与最新方法的比较。

image-20200709002353026

NTU RGB+D60骨架数据集分类精度与最新方法的比较。

image-20200709002414727

表6:Kinetics Skeleton 400数据集上的分类精度与最新方法的比较。

​ 我们将我们的完整模型(图3(A))与表4、5和6中的最新水平进行比较。表4比较了非图和基于图的方法。 表5比较了非图方法、具有空间边和具有时空边[8]的基于图的方法。 表6比较了单流和多流方法。在所有三个大型数据集上,我们的方法在所有评估设置下都优于所有现有的方法。 值得注意的是,我们的方法首次应用多路径设计从骨架序列中学习远程时空相关性和复杂的区域时空相关性,结果验证了我们方法的有效性。

总结

​ 在这项工作中,我们提出了两种改进基于骨架的动作识别的方法:一种是去除不同邻域之间冗余依赖的解缠多尺度图卷积聚集方案;另一种是G3D,它是一种统一的时空图卷积算子,它直接从骨架图序列中建模时空依赖关系。 通过耦合这些方法,我们得到了MS-G3D,这是一个功能强大的特征提取器,它捕获了以前被因式分解方法建模忽视的多尺度时空特征。 在三个大规模数据集上的实验表明,我们的模型相比现有的方法有相当大的优势。