[论文阅读]Spatio-Temporal Graph Routing for Skeleton-Based Action Recognition

Spatio-Temporal Graph Routing for Skeleton-Based Action Recognition

paper: https://www.aaai.org/ojs/index.php/AAAI/article/view/4875/4748

基于骨架的动作识别时空图路由方法

摘要

​ 基于骨架的人体动作识别由于其表征的有效性,受到了相当多的研究关注,并具有广泛的实际应用。 在这一领域,现有的许多方法通常依赖于固定的骨架结构物理连通进行识别,这不能很好地捕捉到骨架关节之间的内在高阶相关性。 本文提出了一种新的基于骨架的动作识别时空图路由(STGR)方案,该方案自适应地学习物理上分离的骨架关节的内在高阶连通性关系。具体而言,该方案由空间图路由器(SGR)和时间图路由器(TGR)两部分组成。 SGR的目标是基于空间维度上的子群聚类来发现关节之间的连通关系,而TGR则通过测量时间关节节点轨迹之间的关联度来探索结构信息。该方案自然、无缝地融入到图卷积网络(GCNS)的框架中,生成一组骨架-关节连通性图,并进一步馈送到分类网络中。 此外,还对图节点的感受野进行了深入的分析,说明了该方法的必要性。 在两个基准数据集(NTU-RGB+D和Kinetics)上的实验结果证明了该方法的有效性。

Figure 1

图1:三种路由方式示意图:(a)物理连接固定路由;(b)考虑局部聚类的空间路由;(c)通过节点轨迹关联度建模的时间路由。

引言

​ 作为计算机视觉中一个具有挑战性的问题,基于骨骼的人体动作识别以三维人体坐标为输入,输出动作类别,近年来受到越来越多的关注。 典型地,人体骨骼将几何身体结构表征为精准的身体,它们的动力学以连续的方式捕捉运动模式。这种动态的几何结构不仅在空间上而且在时间上表达了关节之间的关系。通过这种方式,图形表示是表达人的内在结构的自然方式。因此,在给定的图上表示关节是至关重要的。最近时空图卷积网络(ST-GCN)的成功证明了基于物理人体骨架的图聚合方案的有效性,并与pseduo图像等现有文献进行了对比。

​ 一般情况下,基于图的方法将固定的人体骨架应用于图的卷积运算,并将隐藏特征与邻域特征进行迭代聚合。然而,在复杂的场景中捕捉多变的人体结构是一个挑战。这给进一步改进带来了三方面的问题:1)骨架本身是可变的,并且依赖于特定的数据集,例如NTURGB+D中的25个关节而Kinetics中有18个关节,导致对真实人体骨骼的混淆;2)关节连接高度不平衡。当躯干关节过度平滑时,肢体关节可能仍然处于欠平滑状态,这给两个肢体关节的特征共享带来极大困难;3)对每个样本应用全局图结构,提出了“一刀切”的问题,这可能是次优的。 在固定图的情况下,数据流被限制在预定义的条目中,这大大降低了模型的灵活性。 类似于计算机网络,我们将其称为“静态路由”。

​ 相比之下,我们更注重寻求更灵活的连接方案,它针对特定的样本自适应地学习骨架关节之间固有的高阶连通性,称为“动态路由”。 在现实世界的场景中,动态骨架本身嵌入了丰富的信息,这些信息隐含地显示了物理上分开的两个关节之间的强连接,例如动作类“拍手”中的两个手关节。 因此,我们将这个动态路由问题描述为一个图拓扑学问题,它自动为所有节点选择信息最丰富的连接。 我们证明了动态路由方案和静态路由方案在该任务中同等重要。

​ 基于这个观察结果,我们把这个问题描述成一个关节学习问题。我们首先通过骨架的位置和运动来学习动态图拓扑,然后将其作为GCN识别框架的先验知识。特别地,我们提出了一种新的时空图路由(STGR)方案,以分离的方式对节点之间的语义连接进行建模。两个子网络不使用固定的人体骨架,而是负责捕捉每两个节点之间的空间和时间依赖性,充当所有节点的路由器。如图1所示,一个空间图路由器(SGR)基于沿空间维度的子组聚类来发现节点之间的连通关系。时态图路由器(TGR)通过测量时间节点轨迹之间的关联度来挖掘结构信息。然后将时空骨架连接图以多种路由方式输入ST-GCN。

​ 为了说明这一必要性,我们进一步引入了“图上的感受野”,类比于CNNs中的同义词。 图上的感受野是指节点可以从中提取信息的覆盖范围。 通过引入这一概念,我们证明了固定的人体骨骼会导致高度不平衡的问题,这是可以通过我们的工作来解决的。

我们的贡献可以总结如下:

  • 我们提出了一种新的时空图路由方案,用于利用骨骼关节之间固有的高阶关系。 该模块与分类网络联合学习,更好地匹配动作识别任务。
  • 我们在图节点上提出了感受野,证明了以前模型的瓶颈是不同节点的感受野的不平衡,从而说明了该时空图路由方案的有效性。

相关工作

Figure 2

图2:时空图路由器概述。首先将输入的三维骨架序列分别转换为逐帧骨架和节点轨迹。然后空间图路由器(SGR)和时间图路由器(TGR)分别生成新的骨架连接图。ST-GCN接收该图并输出动作类。

基于骨架的动作识别

​ 传统的基于骨架的动作识别方法主要集中在手工制作的特征来捕捉关节运动的动态,如轨迹的协方差矩阵、Lie Group。

​ 随着深度学习的成功,许多基于CNN的方法以端到端的方式被提出,为了更好地利用已有的强大结构,人们通过多种方式将原始骨架转换为pseduo图像,包括skepxels、temporal-then-spatial recalibration scheme,以及jointwise co-occurence。

循环神经网络

另一方面,有效地对时间依赖进行建模。 LSTM和GRU被提出用于学习序列的时间上下文。 为了更好地处理复杂的时空变化因素,提出了注意力机制来保证健壮性的要求,如关键帧的选择和全球信息关节挖掘。

图神经网络

图神经网络(GCN)可以大致分为两个流

谱域

它基于图傅立叶变换(GFT),在基图进行变换。 通过Klocalized卷积的参数化,最近实现了计算有效和局部滤波。为了降低计算拉普拉斯矩阵特征值的昂贵成本,引入了切比雪夫多项式作为截断展开

空域

另一方面,学习迭代地聚合每个节点的邻域作为其新的隐藏表示。提出了一种一阶近似成功地应用于半监督分类。与此同时,一些文献探索了将图快速转换为序列并利用一维卷积网络的方法。

​ 最近,有一些工作试图用任一度量学习或跳跃知识网络来揭示GCNS的机制。 然而,目前的方法主要集中在半监督分类问题上。 在这项工作中,我们首先借助图上的感受野对基于骨架的动作识别进行了分析。

方法

​ 在这一部分中,我们首先阐述我们的问题,然后通过描述两个子网络SGR和TGR来介绍我们的时空图路由(STGR)方案。稍后我们将描述总体架构和优化。最后,我们在图上讨论感受野,进一步验证STGR的必要性。

问题描述

​ 三维人体骨架表示为 X = { x n t } ∈ X=\left\{x_{n}^{t}\right\} \in X={xnt} R C in  × T × N \mathbb{R}^{C_{\text {in }} \times T \times N} RCin ×T×N 其中有 T T T 帧 和 N N N 个关节点。 在第 t t t个时间步的第 n n n个关节,每个个体表示为 x y z x y z xyz -坐标特征向量 ,因此 C i n = 3 C_{\mathrm{in}}=3 Cin=3。为了更加方便,我们将单个帧骨架表示为 X t ∈ R C in  × N X^{t} \in \mathbb{R}^{C_{\text {in }} \times N} XtRCin ×N 对于第 t t t 帧和关节轨迹表示为 X n ∈ R C in  × T X_{n} \in \mathbb{R}^{C_{\text {in }} \times T} XnRCin ×T 对于第 n n n 个关节。

A ∈ R N × N A \in \mathbb{R}^{N \times N} ARN×N 是简单的领接矩阵, A i j A_{i j} Aij 表示关节 i i i 和 关节 j j j 是相连的。 D D D 是相应的度矩阵。默认的图由胰以下表示:
G default  = D ~ − 1 2 A ~ D ~ − 1 2 \mathcal{G}^{\text {default }}=\tilde{D}^{-\frac{1}{2}}\tilde{A}\tilde{D}^{-\frac{1}{2}} Gdefault =D~21A~D~21
其中 A ~ = A + I \tilde{A}=A+I A~=A+I 是包括节点自环的广义邻接矩阵。 D ~ \tilde{D} D~ A ~ \tilde{A} A~ 相应的度矩阵。因此, G default  \mathcal{G}^{\text {default }} Gdefault  A ~ \tilde{A} A~的对角规范化矩阵。 如前所述,固定的人体骨架不足以模拟复杂场景中多变的人体结构。我们的目标是学习从原始骨架到图拓扑表示的映射 X → G X \rightarrow \mathcal{G} XG 在多个视图中,例如姿势和运动。因此,我们有:
{ G spat  , G temp  } = f STGR  ( X ; θ spat  , θ temp  ) \left\{\mathcal{G}^{\text {spat }}, \mathcal{G}^{\text {temp }}\right\}=f_{\text {STGR }}\left(X ; \theta^{\text {spat }}, \theta^{\text {temp }}\right) {Gspat ,Gtemp }=fSTGR (X;θspat ,θtemp )

其中 G spat  \mathcal{G}^{\text {spat }} Gspat  G temp  \mathcal{G}^{\text {temp }} Gtemp 是时空图拓扑表示。 θ spat  \theta^{\text {spat }} θspat  θ temp  \theta^{\text {temp }} θtemp 代表相应的参数。 G spat  \mathcal{G}^{\text {spat }} Gspat  G temp  \mathcal{G}^{\text {temp }} Gtemp  将与默认图 G default  \mathcal{G}^{\text {default }} Gdefault  连接,形成一个图集 S = { G default  , G spat  , G temp  } \mathcal{S}=\left\{\mathcal{G}^{\text {default }}, \mathcal{G}^{\text {spat }}, \mathcal{G}^{\text {temp }}\right\} S={Gdefault ,Gspat ,Gtemp } 。在下面的部分中,我们将对两个子网进行详细的描述。

空间图路由器子网

Figure 3

图3:空间图路由器(SGR)的网络结构。

​ 在现实世界中,关节通常聚集在一个组中以表达特定动作。 换句话说,每个关节的位置和成对关节之间的距离编码了关系的强度,这对引导信息流至关重要。

空间图池

​ 为了提取空间连通图,我们首先对每个帧骨架使用非参数图割聚类方法(Shii和Malik2000) X t ∈ R C in  × N , X^{t} \in \mathbb{R}^{C_{\text {in }} \times N}, XtRCin ×N, 形成了 K K K个子组。对于每个子组,我们将其视为一个完全连通图,即每个子群中的每两个节点都是连通的。这样,我们为每个帧 t t t定义一个空间连接的图,并将所有这些图聚集在一起以形成“空间图池”:
G = { G 1 , … , G T } \mathcal{G}=\left\{\mathcal{G}^{1}, \ldots, \mathcal{G}^{T}\right\} G={G1,,GT}

其中对于每个 G t \mathcal{G}^{t} Gt :
G i j t = { 1 ,  if  i  and  j  in the same sub-group  0 ,  otherwise  \mathcal{G}_{i j}^{t}=\left\{\begin{array}{ll} 1, & \text { if } i \text { and } j \text { in the same sub-group } \\ 0, & \text { otherwise } \end{array}\right. Gijt={1,0, if i and j in the same sub-group  otherwise 

挤压和激励注意力

​ 由于我们已经获得了一系列空间连通图,因此我们的目标是选择信息最丰富的一个作为代表。
为此,提出了一种用于图融合的联合学习帧重要性的帧注意方案 。

​ 如图3所示,我们以挤压和激发的方式对框架注意力进行建模。首先采用较大的 7 × 7 7\times7 7×7卷积来聚合局部特征。 然后通过全局平均汇聚层进行挤压操作,以获得中间特征:

m t i n = 1 N × N ∑ i = 1 N ∑ j = 1 N f C o n v ( G t ) i j m_{t}^{\mathrm{in}}=\frac{1}{N \times N} \sum_{i=1}^{N} \sum_{j=1}^{N} f_{\mathrm{Conv}}\left(\mathcal{G}^{t}\right)_{i j} mtin=N×N1i=1Nj=1NfConv(Gt)ij

其中 m in  = ( m 1 i n , … , m T i n ) m^{\text {in }}=\left(m_{1}^{\mathrm{in}}, \ldots, m_{T}^{\mathrm{in}}\right) min =(m1in,,mTin) 表示时间上的中间特征的集合。 由于 m in  m^{\text {in }} min 包含整个图的完整信息,因此激励操作可以对帧之间的内部依赖性进行建模。

μ = Sigmoid ⁡ ( W 2 ⋅ σ ( W 1 ⋅ m i n ) ) \mu=\operatorname{Sigmoid}\left(W_{2} \cdot \sigma\left(W_{1} \cdot m^{\mathrm{in}}\right)\right) μ=Sigmoid(W2σ(W1min))

其中 μ = ( μ 1 , … , μ T ) \mu=\left(\mu_{1}, \ldots, \mu_{T}\right) μ=(μ1,,μT)表示每帧的重要性分数。 W 1 ∈ R T r × T W_{1} \in \mathbb{R}^{\frac{T}{r} \times T} W1RrT×T W 2 ∈ R T × T r W_{2} \in \mathbb{R}^{T \times \frac{T}{r}} W2RT×rT 1 × 1 1 \times 1 1×1变换矩阵。 r r r是降维参数, σ \sigma σ是RELU激活函数。 该降维方案主要用于挖掘时间维之间的关系。 我们对每个帧重要性 μ t \mu_{t} μt进行加权融合,以形成 G spat  \mathcal{G}^{\text {spat }} Gspat  :

G s p a t = 1 T ∑ t = 1 T μ t ⋅ G t \mathcal{G}^{\mathrm{spat}}=\frac{1}{T} \sum_{t=1}^{T} \mu_{t} \cdot \mathcal{G}^{t} Gspat=T1t=1TμtGt

时间图路由器子网

Figure 4

图4:时态图路由器(TGR)的网络结构。

​ 与SGR子网不同,TGR子网从全局的角度考虑时空图。 根据简单的观察,关联度高的关节通常暗示着密切的关系。 例如,在“行走”类中,手和脚高度相关(向相反方向摆动),表明了区别关系。 在这一思想的启发下,TGR首先用LSTM编码器对每个关节的轨迹进行编码,然后以一种自关注的方式对每对关节的关系进行建模。

LSTM编码器

​ 如上所述,TGR首先将输入序列重新排列为 N N N个独立的节点轨迹 X n , n = 1 , … , N X_{n}, n=1, \ldots, N Xn,n=1,,N,每个都被视为 X n ∈ R C in  × T X_{n} \in {\mathbb{R}^{C_{\text {in }} \times T} } XnRCin ×T 。如图4所示,LSTM单元首先对每个输入节点轨迹进行编码,并在最后一个时间步输出隐藏状态:
h n , t = ψ ( X n , h n , t − 1 ) h_{n, t}=\psi\left(X_{n}, h_{n, t-1}\right) hn,t=ψ(Xn,hn,t1)

其中 ψ \psi ψ表示LSTM模块。 h n , t h_{n, t} hn,t是最后一个时间点的输出。 然后将 h n , t h_{n, t} hn,t作为关系建模网络的输入,以捕获两个节点之间的交互。为清楚起见,对于每个节点,我们将 h n , t h_{n, t} hn,t表示为 v n v_{n} vn

关系建模

​ 我们在编码特征空间中建立成对节点关系模型。类似于最近的工作,我们用标准化点积来度量这种关系。特别地,给定每个轨迹的编码特征 v = [ v 1 , … , v N ] v=\left[v_{1}, \ldots, v_{N}\right] v=[v1,,vN],成对相似性建议为:
D ( v i , v j ) = θ ( v i ) ⊤ ⋅ φ ( v j ) D\left(v_{i}, v_{j}\right)=\theta\left(v_{i}\right)^{\top} \cdot \varphi\left(v_{j}\right) D(vi,vj)=θ(vi)φ(vj)
其中, θ \theta θ φ \varphi φ是两个 1 × 1 1 \times 1 1×1转换操作。 通过执行点积,我们通过两个节点的余弦距离来检查它们。 在计算了每个成对距离之后,我们在每一行中进一步应用softmax操作,确保单个节点的所有条目之和将被设置为1。
G i j t e m p = exp ⁡ D ( v i , v j ) ∑ k = 1 N exp ⁡ D ( v k , v j ) \mathcal{G}_{i j}^{\mathrm{temp}}=\frac{\exp D\left(v_{i}, v_{j}\right)}{\sum_{k=1}^{N} \exp D\left(v_{k}, v_{j}\right)} Gijtemp=k=1NexpD(vk,vj)expD(vi,vj)

网络体系结构与优化

​ 在本节中,我们将介绍整个网络体系结构。我们的模型是由STGR和ST-GCN构造的。特别地,STGR负责探索空间和时间域中语义相关关节的内在连接关系。ST-GCN以三维骨架和图形为输入输出动作类。具体而言,ST-GCN堆叠多个“GCN-TCN”单元用于表示学习,其中每个“GCN-TCN”单元被视为一层。每个GCN单元在空间维上用默认图 G default \mathcal{G}^{\text {default}} Gdefault和学习图 G spat  \mathcal{G}^{\text {spat }} Gspat  G temp  \mathcal{G}^{\text {temp }} Gtemp 进行图形卷积运算,在时间维上用TCN单元得到高级特征图。

​ 为了清楚起见,假设第 l l l层中特定节点 n n n的隐藏特征用$h_{v}^{l} \in \mathbb{R}^{d_{l}} 表 示 。 为 了 一 致 性 , 我 们 假 设 表示。为了一致性,我们假设 h^{0}=X , , d_{0}=C_{\text {in}}$。原始ST-GCN可解释为:

h v l + 1 = σ ( ( M ⊗ G default  ) h v l w l ) + h v l h_{v}^{l+1}=\sigma\left(\left(M \otimes \mathcal{G}^{\text {default }}\right) h_{v}^{l} w^{l}\right)+h_{v}^{l} hvl+1=σ((MGdefault )hvlwl)+hvl

其中 M M M表示一个可学习的掩码,以进一步扩大模型的表达能力。 ⊗ \otimes 是基于元素的乘积,并且 w l w^{l} wl表示紧接在图形卷积之后的规则卷积运算。 与我们的STGR一起,我们分别为每一层生成了一系列的空间和时间图 G i spat  , G i temp  , i = 1 , … , L \mathcal{G}_{i}^{\text {spat }}, \mathcal{G}_{i}^{\text {temp }}, i=1, \ldots, L Gispat ,Gitemp ,i=1,,L。 我们不共享STGR的每个单元的权重,因为该模型是轻量级的。

​ 因此,时空图被嵌入到每个“GCN-TCN”单元中。关节不仅可以从固定骨架聚合特征,还可以从这些学习的语义连接中聚合特征:
h v l + 1 = σ ( ∑ G ∈ S ( M G ⊗ G ) h v l w G l ) + h v l h_{v}^{l+1}=\sigma\left(\sum_{\mathcal{G} \in \mathcal{S}}\left(M_{\mathcal{G}} \otimes \mathcal{G}\right) h_{v}^{l} w_{\mathcal{G}}^{l}\right)+h_{v}^{l} hvl+1=σ(GS(MGG)hvlwGl)+hvl
其中 S = { G default  , G spat  , G temp  } . M G \mathcal{S}=\left\{\mathcal{G}^{\text {default }}, \mathcal{G}^{\text {spat }}, \mathcal{G}^{\text {temp }}\right\} .M_{\mathcal{G}} S={Gdefault ,Gspat ,Gtemp }.MG w G l w_{\mathcal{G}}^{l} wGl是特定图的对应掩码和卷积。我们堆叠多个GCN-TCN单元,然后应用全局平均池化和全连接层来获得动作分数 y ^ \hat{y} y^

y ^ = f S T − G C N ( X ; G 1 s p a t , G 1 t e m p , … G L s p a t , G L t e m p ) \hat{y}=f_{\mathrm{ST}-\mathrm{GCN}}\left(X ; \mathcal{G}_{1}^{\mathrm{spat}}, \mathcal{G}_{1}^{\mathrm{temp}}, \ldots \mathcal{G}_{L}^{\mathrm{spat}}, \mathcal{G}_{L}^{\mathrm{temp}}\right) y^=fSTGCN(X;G1spat,G1temp,GLspat,GLtemp)

我们采用标准交叉熵损失进行分类。 对于这两个子网,为了保证图的稀疏性,采用了 L 1 L1 L1损失:

L c l s = − ∑ i = 1 M y c log ⁡ ( y ^ i ) \mathcal{L}_{c l s}=-\sum_{i=1}^{M} y_{c} \log \left(\hat{y}_{i}\right) Lcls=i=1Myclog(y^i)
L sparse = ∑ i = 1 L ∥ G i spat  ∥ 1 + ∥ G i temp  ∥ 1 \mathcal{L}_{\text {sparse}}=\sum_{i=1}^{L}\left\|\mathcal{G}_{i}^{\text {spat }}\right\|_{1}+\left\|\mathcal{G}_{i}^{\text {temp }}\right\|_{1} Lsparse=i=1LGispat 1+Gitemp 1
L = L c l s + λ L sparse + ∥ Θ ∥ 2 \mathcal{L}=\mathcal{L}_{c l s}+\lambda \mathcal{L}_{\text {sparse}}+\|\Theta\|_{2} L=Lcls+λLsparse+Θ2

其中, M M M是动作类别的总数, y c y_{c} yc表示基本事实标签。 Θ \Theta Θ是ST-GCN和STGR的总体参数。 λ \lambda λ 用于平衡分类损失和稀疏损失的权重。

探讨

Figure 5

图5:3种连接类型的比较。 (A)物理连接;(B)SGR学习到的空间上的连接;©TGR学习到的时间上的连接。 上面是图的矩阵表示法。 下面是关节连接的相应可视化效果。 为了更好去看,在可视化中使用阈值0.05对连接进行二值化。

​ 在这一部分中,我们用解析的方法验证了STGR的必要性,首先直观地给出了“感受野”的定义,然后指出人体骨骼的“星形结构”使得两个肢体关节之间的特征共享变得困难。

​ 感受野是CNNs中一个重要的提法,它揭示了单个神经元的空间环境。通过类比这一思想,我们引入了“图上感受野”的概念,它是指单个节点可以提取信息的覆盖范围。

​ 图5演示了3种连接模式。(a)表示预定义的人体骨骼,而(b)和(c)分别显示了与我们的SGR和TGR的学习到的连接。显而易见,预定义的骨骼会自行组织形成一个“星型结构”,其中躯干连接头部和所有四肢。这样,躯干中心关节的扩展速度会比四肢边缘关节快得多,从而导致严重的不平衡。

Figure 6

图6:躯干关节(下背部)和非躯干关节(右手)的感受性比较。(a) “右手”关节感受野,左侧:扩散3步后。右:8步扩散后;(b)“下背部”关节感受野。左:三步扩散后。右图:经过8步扩散。红色表示高概率,紫色表示低概率。

​ 为了说明,我们在图6中检查肢体关节(右手)和躯干关节(下背部)的感受野。遵循以前的文献(Xu et al.。 2018),我们将图卷积的展开转化为k步随机游走过程。 颜色表示节点接收的信息的比例。 如图6所示,在3个步长扩散之后,两个关节都从相对较小的范围接收信息。 经过8个步长后,躯干关节几乎可以接收到全局信息,而右手关节仍然在一个小区域内挣扎。

​ 从另一个角度来看,我们提出的STGR方案通过关节的位置或运动来学习成对连接,从而打破了上述限制。 如图5所示,SGR学习图主要关注局部聚集,其中紧密的关节具有很强的连接。 另一方面,TGR学习图长期主要关注长期的相关关节。 这样,我们的STGR方案有效地扩大了每个关节的接受范围,进一步促进了试验过程。

实验

​ 在本节中,我们将在基于骨架的动作识别数据集中评估我们的STGR方案。 我们在NTU-RGB+D和Kinetics两个大规模数据集上进行了实验,首先介绍了我们的实现细节,然后对时空图路由方案的各种设置进行了消融研究。 最后,我们将我们的完整模型与其他最先进的方法进行比较。 所有实验都在4个GTX 1080Ti GPU上进行。

数据集

NTU-RGB+D

​ NTU-RGB+D是一个广泛使用的大规模基于骨骼的人体动作识别数据集。它包含56880个骨架序列和60个动作类。总体行动类别大致分为日常行动、医疗状况和交互行动。每一个动作都是由同一高度的摄像机从三个不同的水平角度捕捉到的,即:-45 ,0 和45 。每个人体骨架都被表示为25个关节的三维坐标。交互作用类包含两个对象,而其他类仅包含一个对象。NTU-RGB+D推荐两种评估方法:1)交叉对象(X-Sub):根据实验对象的不同,训练集和测试集分别分为40320个片段和16560个片段。2) 交叉视图(X-view):训练集通过摄像 2和摄像3收集到37920个片段,而评估集是从摄像 1收集的,包含18960个片段。通过遵循现有工作关于基于骨架的动作识别的惯例,我们报告了两个方法的top-1。

Kinetics

​ DeepMind Kinetics是最近最大的人类行动数据集之一。 该数据集包含近30万个视频剪辑,持续时间约为10秒。 为了尽可能多地报道真实场景,Kinetics从YouTube上收集视频,组成400个动作类。 请注意,原始运动学数据集仅包含原始视频剪辑。 遵循之前的做法,我们首先在OpenPose工具箱的帮助下提取原始2D坐标。然后应用我们的模型。 与NTU RGB+D相似,我们提取了18个人体关节,选取平均关节置信度最高的2个人作为主要研究对象。 在实践中,我们使用发布的数据来评估我们的模型。 数据集被分为具有240,000个片段的训练集和具有20,000个片段的测试集。在这个实验中,我们同时报告了TOP-1和TOP-5的准确性。

实现细节

​ 为了减轻计算负担,与以往的零填充不同,我们首先将序列长度下采样到固定大小的64帧,当序列长度大于64帧时,我们使用双线性插值进行均匀采样,而当给定序列小于64帧时,则进行零填充。在实践中,我们还对每一帧进行规范化处理,使训练过程更加稳定。在训练方面,采用SGD优化器对整个网络进行训练,ST-GCN的学习率为0.1,STGR学习率为0.01。权重衰减为 1 e − 4 1 \mathrm{e}-4 1e4,批次大小设置为32。 分类损失和 L 1 L1 L1损失的平衡参数设置为0.2,因为我们主要关注分类结果。 当监测验证损失停止减少超过5个周期时,我们将两个模块的学习率除以10。受到最近在基于骨架的动作识别上成功的启发,采用“双流”方法融合骨架特征和运动特征,模型收敛需要60个训练周期。

消融实验

​ 在这一部分,我们将检验我们提出的STGR方法的有效性,并进行实验来测试各种参数设置。所有实验均在NTU-RGB+D数据集上的X-Sub基准测试上进行。

感受野

Figure 7

图7:(a)躯干关节和非躯干关节的感受野随层数增加的趋势比较;(b)识别精度随层数增加的趋势。

​ 在这项工作中,我们研究了STGR的必要性。 根据图7(A),我们首先将所有25个关节分为躯干关节(根部、下背部、上背部)和非躯干关节(其他)。 然后,我们分别计算了两个集合从1层(向前1步)到10层(我们在模型中使用)的平均感受野。 如图所示,两组都用更多的层扩大了它们的接受视野。
而躯干关节的增长速度明显加快,验证了我们对人体骨骼结构的分析。

​ 另外,我们对不同层数的原生ST-GCN进行了测试。 我们发现,识别准确率与平均感受野的变化趋势是一致的。 如图7(B)所示,精度最初增长很快。 经过5层后,增长速度变慢。 当接近10层时,精度趋于稳定。 堆叠更多层不会影响总体精度。

​ 当达到一定阶段时,躯干和四肢关节都被限制在一个相对固定的范围内,这限制了进一步的改进。 这对非常深层的结构是有利的。但是,这样的模型带来了较大的计算负担。相比之下,STGR通过直接学习关节连接有效地解决了这一问题。

分组数

​ 如前所述,在SGR中,我们首先将每个帧中的骨架聚类成K个子群。该方法通过直接探测相对距离来挖掘隐含的先验信息。在实践中,通过实验将聚类数K设为5。结果见表1。

Table 1

表1:不同簇数精度的比较。

​ 从理论上讲,太多的簇通常会导致过度分裂,而不足分裂的主要原因是簇太少。在取值范围在3到7之间,我们发现性能总体上是稳健的。因此,我们的选择正好保持了良好的平衡。

时空图路由器

​ 如上所述,STGR由SGR和TGR两个子网络组成。表2表明,我们提出的STGR可以为原生ST-GCN带来好处。

Table 2

表2:在NTU-RGB+D X-Sub上STGR模块的识别精度

​ 在这一部分,我们检查了STGR-GCN的四个变体,以测试STGR模块的有效性。这四个变体包括:1)带空间图路由器的GCN;2)带时间图路由器的GCN;3)带时空图路由器的GCN;4)带时空图路由器的双流GCN。

​ 该方法使SGR和TGR比基线精度分别提高了1.84%和1.32%。从结果来看,SGR的性能略优于TGR。通过“双流技巧”,该模型进一步提高了1.18%,是基于骨架的动作识别的有效实践。

与最先进技术的比较

​ 在这一节中,我们评估了我们的完整的STGR-GCN模型和NTU-RGB+D中已有的基于骨架的动作识别模型和动力学数据集。

NTU-RGB+D

我们将以前的先进方法大致分为四类:1)手工制作的方法:Lie group;2)基于RNN的方法:STA-LSTM,RNN-T/ACH,GCA-LSTM;3)基于CNN的方法:Joint Trajectory Maps,Skepxels,Temporal Conv,HCN;4)基于图的方法:ST-GCN。

Table 3

表3:在NTU-RGB+D数据集的识别性能。
在cross-sub (X-Sub)和 cross-view(X-view)方面,我们将模型与先前的先进技术进行了比较。

​ 我们的STGR-GCN模型具有简单的时空路由方法,与原生的ST-GCN相比,具有更好的效果,进一步达到了先进的水平,说明了动态路由方案在图卷积层之间的有效性。

Kinetics

Table 4

表4:在Kinetics数据集上的识别性能。 我们报告Top-1和Top-5的准确率。

​ 在Kinetics上,我们比较了我们的方法同一种手工制作的方法:Feature encoding;一种RNN方法:Deep LSTM;基于时间的CNN方法和ST-GCN。 按照常规,我们同时报告Top-1和Top-5的准确率。

总结

​ 本文提出了一种新的路由方案,用于在基于骨架的动作识别中为物理上分开的关节生成时空相关图,解决了预定义的人类结构的不足。 此外,我们还通过在图上引入感受野来说明建立必要连接的重要性,并通过我们的工作有效地扩大了感受野。 给出定性和定量结果,验证了该方法的有效性。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
时空动作检测(spatio-temporal action detection)是一项计算机视觉任务,旨在从视频片段中准确地检测和识别出发生的动作。与传统的动作识别任务相比,时空动作检测旨在通过不仅仅检测动作在空间上的出现,还要捕捉动作在时间上的变化。 时空动作检测往往涉及以下几个主要步骤: 1. 帧级特征提取:首先,利用现有的特征提取技术,从每个视频帧中提取稳定而有信息量的特征,以捕捉空间信息。 2. 时间建模:接下来,通过对连续帧之间的变化进行建模,来捕捉动作的时间相关性和动态信息。这可以通过各种技术,如光流,差分图和循环网络等来实现。 3. 动作检测:在获得空间和时间特征后,利用学习算法(如深度神经网络)来进行动作检测。这通常通过将时空特征输入到分类器,然后根据预先训练的模型推断动作类别和位置。 4. 时空定位:最后,定位动作在视频中的准确位置。这可以通过在时间上进行滑窗检测,并使用非极大值抑制来抑制重叠检测结果来实现。 时空动作检测在很多领域具有广泛应用,比如视频监控、智能交通、运动分析和人机交互等。通过准确地检测和识别动作,我们可以实现更精确的行为理解和动作预测,从而为许多实际应用带来便捷和效益。然而,时空动作检测仍然存在一些挑战,如动作遮挡、背景干扰和不同尺度的动作等问题,所以该领域的研究仍在不断发展和进步。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值