Centrality Graph Convolutional Networks for Skeleton-based Action Recognition
摘要
骨架图的拓扑结构在人体动作识别中十分重要。将拓扑结构和图卷积相结合取得了显著的性能,在已存在方法中,对骨架数据的拓扑结构进行建模仅仅考虑骨骼和关节之间的连接并直接使用其物理信息。但是以前的方法存在缺陷,对人体每个动作的关键关节、骨骼和身体部位的研究依然存在未知问题。本文提出了一个中心性图卷积网络用于发现那些被忽略的拓扑信息,并区分关键关节、骨骼和身体部位。一个新的中心性图卷积网络首次提出,主要强调关键关节和骨骼的作用,从而带来了明确的改进。同时,研究并结合了骨架序列的拓扑信息,进一步提高四通道框架的性能,并在训练时采用自适应的方法实现重构图。本文在两个大型数据集中进行验证,并与其他方法进行比较。
一、介绍
前面主要介绍了一些动作识别的方法,例如RNN、CNN、GCN等,还有最早提出的使用图卷积进行动作识别的方法STGCN。而本文提出的方法,能够自动检测人类关键关节和骨骼,并强调两者之间的关系,两者与每个动作都有很大的距离。本文提出的方法可将突出的特征编码到人体骨骼的拓扑结构及其动态特性中,可强烈阐述GCN的强度,即具有较高的聚类性能。骨架是结构图,而不是2D或3D网格,大多数先前的方法构造一个结构图作为输入信号。同时,为完成一个动作,每个人需要身体的各个部位进行配合。这个现象表明,人体动作是基于不同身体部位之间的关系,还有一些身体部位起着至关重要的作用。
本文系统的学习了人体动作,提出一个新的图卷积当打来建模识别骨架动作,称为中心性图卷积网络(CGCN)。在图论中,中心性被定义为在一个图中识别很多重要的结点、边和子图。考虑到骨骼数据,本文方法考虑了不同动作的重要关节、骨骼和内源性身体部位的特征。然后CGCN将提供一个排名,确定最重要的关节、骨骼和身体部位。
CGCN通过突出关键关节、骨骼和身体部位,为基于骨架动作识别提供了新的重要的简介,如图1。这个图模型建立在一系列骨架图上,其中每个节点反映了人体的一个关节。这个基本结构加入了中心性特征,向关节中心性、骨骼中心性和子图中心性,称为中心性模块。然后,提取的特征编码到时空模块中进行进一步训练。该CGCN可以对物理连接和不连接的关系之间进行建模,能够有效的获取低阶和高阶骨架信息。中心性模块对近度、特征向量和三重子图计算,从骨架数据中获取特征拓扑特征。这个模块也可以反映在注意力机制中的内源依赖性来增强聚类性能。
本文基于图论的启示,基于图的固有结构和人的行为,研究设计了中心性图卷积网络的策略。本文的主要创新点为四个方面。(1)CGCN是首个强调中心性结构的方法,例如关节、骨骼和子图中心性。其设计是为了揭示人类骨骼中物理连接和不连接部分之间被忽略的信息。(2)CGCN在设计中心性模块是遵循了几种图机制,一满足人体活动的特定需求。(3)提取连续帧间的运动信息为时间信息建模。同时空间和运动信息被输入到一个四通道框架中进行动作识别任务。(4)在两个大型数据集中对本文方法和其他方法进行验证。最终发现这三种中心性结构是隐藏在骨架拓扑结构中的基本机制和因素,为人体动作识别带来了显著的改进。
二、相关工作
本章主要对骨架动作识别和图卷积网络的基本知识进行介绍。
三、方法
本节,主要阐述基于骨架数据的人体动作中心性图卷积,首先介绍如何从骨架数据建立空间图的拓扑结构。
1、空间图结构
图是骨骼结构的图解表示,包括节点和边,可定义为
G
=
(
N
,
E
)
\ G=(N,E)
G=(N,E),N,E分别为结点和边的数量,A是N*N的邻接矩阵。设
x
∈
R
N
\ x \in R ^N
x∈RN是图中每个节点的特征向量,通过傅里叶转换,定义光谱滤波器为
g
(
θ
)
=
d
i
s
g
(
θ
)
\ g(\theta)=disg(\theta)
g(θ)=disg(θ),
θ
∈
R
N
\ \theta \in R ^N
θ∈RN是一个参数向量,所以图上的谱卷积表示为:
其中z是每个节点提取的特征向量,U是拉普拉斯矩阵的特征向量的正交矩阵,
L
=
U
A
U
T
\ L= UAU ^T
L=UAUT。通过拉普拉斯变换,可将
g
(
θ
)
\ g(\theta)
g(θ)看作是L的特征值的函数。
U
A
U
T
\ UAU ^T
UAUT的时间复杂度是
O
(
N
2
)
\ O(N ^2)
O(N2),为减少图的时间复杂度,
g
(
θ
)
(
∧
)
\ g _{(\theta)}(\wedge)
g(θ)(∧)可用切比雪夫多项式
T
m
(
x
)
\ T _m(x)
Tm(x)的截断展开式到M阶。
其中
θ
′
∈
R
M
\ \theta ' \in R ^M
θ′∈RM是切比雪夫多项式向量,
λ
m
a
x
\ \lambda _{max}
λmax是拉普拉斯矩阵的最大特征值。通常来说,切比雪夫多项式是两个多项式序列,递归关系定义
T
0
(
x
)
=
1
\ T _0(x)=1
T0(x)=1和
T
1
(
x
)
=
x
\ T _1(x)=x
T1(x)=x。
因此,使用逼近法,式1可表示为:
其中
这个公式是拉普拉斯矩阵中的M阶多项式,由离中心节点最大M步的节点决定的。公式3的时间复杂度是
O
(
E
)
\ O(E)
O(E),E是边的数量。
为得到线性拉普拉斯谱,本文在公式三中设M=1,
λ
m
a
x
=
2
\ λ _{max}=2
λmax=2,因此推导出公式3的线性公式:
包括两个参数
θ
0
′
\ θ' _{0}
θ0′和
θ
1
′
\ θ' _{1}
θ1′。上述公式允许构建更深层次的模型买一提高在大型图上的能力,两个参数还能适应训练过程中尺度的变化。
实际操作中,将每层的操作次数最小化,以简化上式
其中
θ
=
θ
0
′
=
−
θ
1
′
\ θ=θ' _0=-θ' _1
θ=θ0′=−θ1′,
I
N
×
N
+
D
−
1
/
2
A
D
−
1
/
2
\ I _{N \times N}+D ^{-1/2}AD ^{-1/2}
IN×N+D−1/2AD−1/2的特征值范围是0~2。
在公式5中,将上式进行归一化之后:
其中
X
∈
R
N
×
C
\ X \in R ^{N \times C}
X∈RN×C,
Θ
∈
R
C
×
F
\ \Theta \in R ^{C \times F}
Θ∈RC×F。其中Z是卷积或提取的特征矩阵,
Θ
\ \Theta
Θ是滤波参数矩阵,该公式的时间复杂度是
O
(
E
F
C
)
\ O(EFC)
O(EFC)。
2、中心性图卷积网络
考虑到人体动作,骨架图是序列图或时间图,类似
G
=
G
1
,
G
2
,
G
3
,
.
.
.
,
G
t
\ G=G _1,G _2,G _3,...,G _t
G=G1,G2,G3,...,Gt,其中t是步长。另外,人体动作识别是一个有监督学习分类问题,基于GCN提出的 中心图卷积网络由骨架数据输入模块、中心图模块和softmax模块三个模块组成。CGCN的总体结构图,如上图1。在骨架数据输入模块中,关节和骨骼被提取作为输入数据,最后一个模块获取训练后的特征和模型来计算动作得分,然后做出预测。在训练过程中,中心性模块的功能在突出关键关节、骨骼和身体部位方面起着重要作用。这个中心性模块有三个子模块组成,分别是关节、骨骼和子图中心性子模块。
关节中心性:骨架图中,关节作为图中的节点,同时,每个节点是相应的坐标。不同的人的行动在空间域中具有不同的坐标,即两个节点之间的空间距离随着人的行动而改变。在图论中,归一化紧密中心性是度量两个节点空间距离相关性的一种合理方法,也是该节点和其他节点之间最短路径的平均长度。将其定义为距离的倒数:
其中
d
(
i
,
j
)
\ d(i,j)
d(i,j)是节点i和j之间的空间距离,N是节点数。一个节点越靠近中心,就越接近所有其他节点。无向图中测量节点和其他节点之间的距离是不相关的,而在有向图可以产生高度相关的结果。骨架图是有向图,在此机制上,,骨架图可以很容易的从外边获取高接近中心性,而从入边获取低中心性。这一方法可以有效的突出关键关节。为将重要和潜在的特征编码到训练中,本文可将骨架图的紧密矩阵设为
J
∈
R
N
×
N
\ J \in R ^{N \times N}
J∈RN×N。
骨骼中心性:在骨架图中,骨骼被看作是边。由于每个节点的坐标不同,骨骼之间的距离也有不同的变化。在图论中,边缘间中心性是衡量图中边缘重要程度的一种可行方法,定义为在图中通过某条特定边的最短路径的数量。在骨架图中的每个边可以与一条边之间的中心性值关联,被定义为:
其中
e
i
,
j
\ e _{i,j}
ei,j是节点i和j之间的边,
S
~
l
,
q
\ \tilde{S} _{l,q}
S~l,q是节点l到q之间中存在的最短路径的数量,
S
~
l
,
q
(
e
i
,
j
)
\ \tilde{S} _{l,q}(e _i,j)
S~l,q(ei,j)是节点l到q之间中存在的总体距离长度,
d
l
,
q
(
e
i
,
j
)
\ d _{l,q}(e _i,j)
dl,q(ei,j)是节点l到q经过边的距离总长。中间值高的边表示图中两部分之间的桥状连接。如果边移除,将直接影响通过这条边的许多对节点之间的连通性。去掉这条边会导致骨架图分成两个紧密相连的子图。因此,边之间可以直接突出骨架图中边的重要性。将边值之间的分数编码到边值矩阵中,即
B
∈
R
N
×
N
\ B \in R ^{N \times N}
B∈RN×N。
子图中心性:不同的身体部位与完整的人类动作相关联。然而,如何评价人体各部位在人体活动中的影响,以及测量人体各部位之间的相关性是一个问题。身体部位可以作为一个子图,子图S是节点集
N
(
S
)
\ N(S)
N(S)是节点集
N
(
G
)
\ N(G)
N(G)的子集的图。同样,子图边集
E
(
S
)
\ E(S)
E(S)是边集
E
(
G
)
\ E(G)
E(G)的子集。本文使用一种方法将子图特征编码到每个对应的节点中,将
S
1
,
S
2
,
S
3
,
.
.
.
,
S
k
\ S _1,S _2,S _3,...,S _k
S1,S2,S3,...,Sk表示子图集,这些子图可以有不同的节点集。在本文方法中只考虑3节点子图。每个节点都属于一个子图,且权重为1。因此子图权重矩阵,
W
∈
R
N
×
N
\ W \in R ^{N \times N}
W∈RN×N。多对子图关联由每个节点的权值来度量,即一个加权邻接矩阵。通过子图中心性,通过断开的身体部位建立强连接,突出人体动作的关键部位。
3、CGCN实施
为在动作识别中实现CGCN,使
X
=
X
i
n
\ X=X _{in}
X=Xin作为每个视频样本总帧的输入特征矩阵。所以,将公式6表示为:
提出的中心性矩阵J,B,W,
A
~
\ \tilde{A}
A~被代替为
J
+
B
+
W
+
A
~
\ J+B+W+\tilde{A}
J+B+W+A~,故上式可表示成:
使用softmax分类器后:
当
C
^
=
J
+
B
+
W
+
A
~
\ \hat{C}=J+B+W+\tilde{A}
C^=J+B+W+A~,
Θ
0
∈
R
C
×
N
\ \Theta ^0 \in R ^{C \times N}
Θ0∈RC×N是N个特征映像的权重矩阵,
Θ
0
∈
R
N
×
F
\ \Theta ^0 \in R ^{N \times F}
Θ0∈RN×F是一个隐藏输出权重矩阵,softmax运算将四个矩阵的组合归一化。
4、网络结构
CGCN卷积块类似于STGCN,对三维特征图进行时空卷积,包括关节特征( C)、帧数(T)、关节数量(N)。如图2,CGCN的一个基本块有7层,叫空间卷积层,两个批处理层,两个Relu层,一个时间卷积层和一个dropout层,丢失率被设置为0.5。空间卷积层包含四种不同的流,如关节中心流,骨骼中心流,子图中心流和邻接流。
根据图1,CGCN的总体结构,提取的拓扑信息,关节中心性、骨骼中心性和子图中心性在动作识别中扮演着重要的角色,但在以往的方法中被忽略。因此,本文提出一个新的方法来提取拓扑信息和四通道框架,用于提高动作识别。
在有向图骨架图中,每个骨骼连接着两个关节,就像从源节点到目标节点。源节点靠近骨架的重力点,目标节点离骨架的中心点较远。一个有向边可以定义为从源节点到目标节点的骨骼,即边。每个有向边都有对应的骨骼的长度和方向信息。在有向图中,没有循环,这表明每条有向边只能包含一个源节点和一个目标节点。计算骨架邻接,关节中心性,骨骼中心性和子图中心性,并将其实现到图的卷积块中,最后通过softmax分类器计算四个流的结果,得到评分排名并预测动作分类。
实验
评估CGCN方法,本文在两个数据集中进行验证。本文主要在NTU-RGB+D中进行验证,验证本文提出的每个方法模块,并与其他方法进行比较。
1、数据集
简单介绍两个数据集
2、训练细节
卷积核设置为4,优化方法采用Nesterov动量随机梯度下降法,损失函数采用交叉熵作为反向梯度传播。批处理为32到65。
NTU-RGB+D数据集中,特征维度分别是64,128,256,视频总帧为300,学习率设施为0.1,衰减率设置为0.0001,训练过程在第49次迭代停止。
Kinect数据集,输入数据设置为150帧,每个视频样本有两个人,学习率和衰减率同上,在迭代57次停止。
3、消融实验
本文方法在数据集NTU-RGB+D中进行消融实验,通过突出的中心性信息和四通道训练框架,提高本文方法的性能。
中心性图卷积块:在上节第二部分描述,有四个中心性结构,A,J,B,W,进行消融实验,结果如下。
中心图可视化:下图显示了同一动作下一层的三个中心性图。
红色的关节、骨骼、身体部位代表中心性图中突出显示的部分。关节中心图更加关注相邻关节。在子图中心性结构中,颈部和髋骨部分在物理骨骼中彼此距离较远,但监测到两者之间有较强的连接。中心性图进一步捕捉了低层次的特征,如关键的关节和骨骼,以及高层次的结构,即身体部位。这些信息可以揭示不同人类行为的内生因素,为人类行为识别和图卷积网络研究提供新视觉。
4、与其他方法进行比较