Feedback Graph Convolutional Network for Skeleton-based Action Recognition
文章目录
摘要
基于骨骼的动作识别由于骨骼数据在动态环境和复杂背景下比其他模式具有更强的鲁棒性,而引起了计算机视觉领域的广泛关注。近期,大部分学者使用图卷积网络(GCN),通过端到端优化模型的骨架列的时空特征。但是传统的GCN是前馈网络,底层不能访问高层的语义信息。本文采用的是一种新的网络,为反馈图卷积网络(FGCN)。这是第一个将反馈机制引入到GCN和动作识别中的方法。比较传统的GCN方法,该模型有以下优点:(1)多节时间采样策略,从粗到细的提取时空特征用于动作识别中;(2)基于反馈图卷积块(FGCB)的密集连接,将反馈连接引入到GCN中。将高级语义特征传递到地基与已层,逐步流动时间信息,逐步建模全局时空特征,用于动作识别;(3)FGCN模型提供先验。在低层时间采样阶段,模型接收动作识别的部分信息,但是预测结果较为粗糙。粗糙的预测结果作为先验,指导后期特征学习以实现准确预测。本文对数据集进行广泛实验,主要在NTU-RGB+D,NTU-RGB+D120和orthwestern-UCLA中验证FGCN的有效性,并在这三个数据集中与一些最新技术进行比较。一、引言
近些年,基于骨架动作识别由于其对动态环境和复杂背景的适应性强,吸引了众多计算机领域研究人员的关注,相比较与RGB和光流等其他模式方法。早期使用骨骼进行动作识别的深度学习方法通常讲个数据表示为一系列关节坐标向量或是一幅伪图像,然后用RNN和CNN的方法进行建模。但是这些方法没有明确的利用关节之间的空间依赖关系,空间依赖关系可以提供理解动作识别的信息。最近的研究基于连续帧的关节的自然连接和时间边构造时空图。他们使用一种GCN的方法建模使用特征。但是传统的GCN都是单流前馈网络,以整个骨架的序列作为输入数据,这些方法很难提取有效的时空特征,因为当整个骨架序列作为输入数据时,有用的信息往往是埋藏在无关运动和不加区别的视频中的。例如在踢东西的动作中,大部分帧中的动作都是直立的。还有,单流前馈网络是不能将高层的语义信息传输到底层的。同时,将整个骨架序列作为输入数据会增加模型计算的难度。
基于以上描述反馈的问题,本文提出了一种新的神经网络,FGCN用来从骨骼数据中提取有效的时空特征,从粗到细的渐进过程进行动作识别。FGCN首先引入反馈机制,与传统的GCN方法相比,FGCN采用多级时间采样策略,用来将输入骨架序列在时间域被划分为多个阶段,并从时间阶段中稀疏采样输入骨架片段,来避免将整个骨架序列作为输入数据。且每一个采样片段用来提取每一级的局部时空特征,并融合局部特征建模全局时空特征。FGCB是一个局部密集图卷积网络,每一级到下一级都有横向连接,并在传统的GCN中引入反馈连接。从语义的角度上看,是自顶向下的方法,低级层在每一个阶段都能访问高层的语义信息。从时间域上看,反馈机制作用于反馈图卷积网络,具有一系列因果关系,前一阶段的输出数据作用到下一阶段来调整输入。
FGCN的另一个优点是其在总体推断时间的一小部分中提供的输出先验。先验是提出的多阶段粗-细渐进优化的结果。在低级阶段只接收一部分骨架序列,结果较为粗糙。这些粗糙的先验结果将作为后阶段知道特征学习的先决条件。在高级阶段,接收到更加完整的动作信息,将低阶结果作为输入,对结果进行细化。提出的几种时间融合策略在时间阶段同和局部策略,实现视频级预测,这些策略在循序渐进的过程中得到优化。
本文的主要创新点总结如下:
(1)提出一个新的FGCN模型,通过多阶段建模提取时空特征;
(2)基于FGCB提出一个密集连接在两个时间阶段之间横向连接的局域网络,可将高级的语义信息传送到低级层;
(3)提供先验,有利于从粗到细的优化多级阶段,并在三个数据集中进行实验。
二、相关工作
1.动作识别
简单描述了下动作识别的背景,以前主要是使用深度学习中数据驱动的RNN和CNN的方法进行识别,RNN将骨架数据作为一系列坐标向量,CNN是将骨架数据作为伪图像进行输入。
2.GCN
图卷积网络是将卷积运算推广到用图构造来处理数据,主要有两个种图构造方法,一种是空间透视,一种是光谱透视。而且GCN是一种前馈网络,不能讲高级语义信息传送到低级层。
3.FN
反馈机制,可以作用在心理学,控制理论等方面。由于反馈机制允许网络携带输出的信息来纠正之前的状态,因此近几年被广泛的应用于计算机视觉领域。
三、方法
1.GCN
GCN是将卷积运算推广到从图结构数据中学习有效表示。动作识别中,将骨架定义为无向图,每个关节被定义为图中的一个顶点,人体的自然连接被定为图的边。本文将骨架在t帧表示为
G
t
=
{
V
t
,
E
t
}
\ G _t ={\lbrace V _t,E _t \rbrace}
Gt={Vt,Et} ,其中
V
t
\ V _t
Vt是t帧中关节的集合,
E
t
\ E _t
Et是骨架中骨骼的集合。对于3D骨架数据,关节集表示为
V
t
=
{
v
t
i
}
i
=
1
N
\ V _t={\lbrace v _{ti}\rbrace } {^N_{i=1}}
Vt={vti}i=1N,其中
v
t
i
=
(
x
t
i
,
y
t
i
,
z
t
i
)
\ v _{ti} =(x _{ti},y _{ti},z _{ti})
vti=(xti,yti,zti)。给定两个关节
v
t
i
=
(
x
t
i
,
y
t
i
,
z
t
i
)
\ v _{ti} =(x _{ti},y _{ti},z _{ti})
vti=(xti,yti,zti)和
v
t
j
=
(
x
t
j
,
y
t
j
,
z
t
j
)
\ v _{tj} =(x _{tj},y _{tj},z _{tj})
vtj=(xtj,ytj,ztj),骨架的骨骼被定为一个向量
e
v
i
i
,
v
i
j
=
(
x
t
j
−
x
t
i
,
y
t
j
−
y
t
i
,
z
t
j
−
z
t
i
)
∀
(
i
,
j
)
∈
Q
\ e _{v _{ii},v _{ij}} =(x _{tj}-x _{ti},y _{tj}-y _{ti},z _{tj}-z _{ti})\quad\forall (i,j)\in\ Q
evii,vij=(xtj−xti,ytj−yti,ztj−zti)∀(i,j)∈ Q,其中Q人体关节的自然连接集合。骨架序列有len帧,表示为
S
=
{
G
1
,
G
2
,
.
.
.
,
G
l
e
n
}
\ S =\lbrace{G _1,G _2,...,G _{len}\rbrace}
S={G1,G2,...,Glen}。
图卷积的定义是对每一个顶点及其邻接点进行运算。对于图中的点
v
t
i
\ v _{ti}
vti,其邻近点的集合表示为
N
v
t
i
=
{
v
t
j
∣
d
(
v
t
i
,
v
t
j
≤
D
)
}
\ N _{v _{ti}} =\lbrace{v _{tj}|d(v _{ti},v _{tj}\leq\ D)\rbrace}
Nvti={vtj∣d(vti,vtj≤ D)},其中
d
(
v
t
i
,
v
t
j
)
\ d(v _{ti},v _{tj})
d(vti,vtj)表示从
v
t
j
\ v _{tj}
vtj到
v
t
i
\ v _{ti}
vti的最短路径长度。本文设置D=1为1-距离邻域集合。对顶点
v
t
i
\ v _{ti}
vti的邻集进行图卷积表达式为:
其中
f
i
n
\ f _{in}
fin和
f
o
u
t
\ f _{out}
fout表示卷积层的输入输出特征映射,
l
(
v
t
j
)
\ l({v _{tj})}
l(vtj)是标签函数,在顶点
v
t
i
\ v _{ti}
vti的邻接集合
N
v
t
i
\ N _{v _{ti}}
Nvti中分配1到K的标签。本实验根据经验设置K=3,将
N
v
t
i
\ N _{v _{ti}}
Nvti分为三个子集。
W
(
⋅
)
\ W(\cdot)
W(⋅)是根据标签函数
l
(
v
t
j
)
\ l({v _{tj})}
l(vtj)提供权重向量的权重函数。而
Z
[
l
(
v
t
j
)
]
\ Z[l({v _{tj})}]
Z[l(vtj)]表示
l
(
v
t
j
)
\ l({v _{tj})}
l(vtj)的子集对应的向量数。
对于图卷积的实现,本文将一个图的连接记录在一个
N
×
N
\ N\times\ N
N× N的邻接矩阵
A
k
\ A _k
Ak中,对于邻接矩阵,上式可表示为:
其中
⨀
\ \bigodot
⨀表示为点乘,
Λ
k
i
i
=
Σ
j
A
k
i
j
\ \Lambda {^{ii}_k}=\Sigma _jA{^{ij}_k}
Λkii=ΣjAkij为一个对角矩阵。
W
k
\ W _k
Wk为卷积运算的权向量,对应与公式1中的权函数
W
(
⋅
)
\ W(\cdot)
W(⋅)。运行时,
A
k
\ A _k
Ak被分配了一个科学系的权值矩阵
M
k
\ M _k
Mk,
M
k
\ M _k
Mk是一个
N
×
N
\ N\times\ N
N× N的注意图,表示每个顶点的注意力,初始化为一个全一矩阵。
2.FGCN
传统的动作识别方法都是基于GCN方法的,在前馈网络中将整个骨架序列作为输入数据。但是有用的数据都被隐藏在于运动无关和无区别的片段中。而且单流前馈网络不能访问底层的语义信息。为了解决这些问题,本文提出了FGCN。FGCN提出了一个多阶段时间采样策略,如图1,稀疏采样骨架数据中的输入片段序列,而不是直接对整个骨架序列进行采样。这些片段先传输到图卷积层中用于提取局部时空特征,然后反馈图卷积块将这些局部时空特征,通过将前一阶段的高级信息输入到下一阶段来调节输入,进行融合;最后几种时间融合策略融合时间阶段的局部预测,从而得到视频级预测。
给定一个骨架序列S,多阶段时间采样策略首先将其划分为等时间间隔的T个时间阶段,表示为
S
=
s
1
,
s
2
,
.
.
.
,
s
T
\ S={s _1,s _2,..., s _T}
S=s1,s2,...,sT。在每一个时间阶段,随机采样一个骨架片段作为深度模型的输入,表示为
c
1
,
c
2
,
.
.
.
,
c
T
\ {c _1,c _2,..., c _T}
c1,c2,...,cT,其中
c
t
\ c _t
ct表示为对应于
s
t
\ s _t
st的采样输入片段。每个采样片段
c
t
\ c _t
ct输入到推得的多个图卷积层中,提取相应时间阶段的局部时空特征,公式如下:
其中
t
=
1
,
2
,
.
.
.
,
T
\ t=1,2,...,T
t=1,2,...,T,
F
t
\ F _t
Ft为图卷积层提取的局部时空特征,在图1中表示为GConvs。
图1.左边为传统的GCN,后边是本文提出的FGCN,红色方块表示为FGCB
从所有时间阶段提取的局部特征输入到反馈图卷积块FGCB中学习全局时空特征进行动作识别。如图2中所示,FGCB在t阶段有两个输入数据,一个是前一阶段t-1的隐藏状态,表示为
H
t
−
1
\ H _{t-1}
Ht−1,另一个为现阶段的局部特征,表示为
F
t
\ F _t
Ft。另外,第一阶段的输入特征
F
1
\ F _1
F1看作是初始隐藏状态
H
0
\ H _0
H0。基于这两个输入数据,FGCB的公式转化为:
H
t
\ H _t
Ht是FGCB中t阶段的输出,
f
F
G
C
B
(
⋅
)
\ f _{FGCB}(\cdot)
fFGCB(⋅)表示FGCB的操作,更多细节看下一节。
图2
根据FGCB,在每个阶段都使用一个全连接层和一个softmax损失函数层来预测动作。因此FGCB的
H
t
\ H _t
Ht的输出预测表示为如下公式:
其中
P
t
∈
R
C
\ P _t\in\ R^C
Pt∈ RC表示t阶段的局部预测,C表示动作的类别。函数
f
p
r
e
d
(
⋅
)
\ f _{pred}(\cdot)
fpred(⋅)表示为全连接层和softmax层的操作。在T个时间阶段进行运算后,得到完全T个局部预测
{
P
1
,
P
2
,
.
.
.
,
P
T
}
\ \lbrace{P _1,P _2,...,P_T\rbrace}
{P1,P2,...,PT}。用提出的几种时间融合策略对这些对应于多阶段的局部预测进行融合,得到一个视频级的预测
P
s
\ P _s
Ps表示为:
其中
f
t
f
\ f _{tf}
ftf,表示为时间融合策略,本文一共用到了三种时间融合策略,分别是last-win-all融合策略,average融合,weighting融合。该FGCN模型进行端到端的交叉熵训练,公式如下:
其中y表示骨架序列S中的动作标签,如果y=i,则
y
i
=
1
\ y ^i=1
yi=1,否则为0。
3.FGCB
FGCB是FGCN的核心,一方面用来传输高级语义信息到低层,使用密集连接局部图卷,将每一层的快捷连接添加到所有后续层,在t时间阶段,FGCB从前一阶段输出层
H
t
−
1
\ H _{t-1}
Ht−1接收高级语义信息,并调节当前阶段的底层输入
F
t
\ F _t
Ft;另一方面,前一阶段的输出作为下一阶段的输入。在模型中FGCB有L个时空图卷积层组成,表示为
G
C
o
n
v
(
k
s
,
k
t
,
m
)
\ GConv(k _s,k _t,m)
GConv(ks,kt,m),如图2。
k
s
\ k _s
ks和
k
t
\ k _t
kt为空间和时间域的大小,m表示图卷积层的输出通道。
如图2,FGCB中第一个卷积层接收两个输入数据,
F
t
\ F _t
Ft和
H
t
−
1
\ H _{t-1}
Ht−1。FGCB压缩并融合来自两个输入级联的特征
[
F
t
,
H
t
−
1
]
\ [F _t, H _{t-1}]
[Ft,Ht−1],卷积层的输出表示为:
其中
f
F
G
C
B
1
(
⋅
)
\ f {^ 1_{FGCB}}(\cdot)
fFGCB1(⋅)表示FGCB的第一个卷积层的操作,
h
t
1
\ h {^ 1_t}
ht1表示第一层的输出特征映射,
l
t
h
\ l_{th}
lth层接收所有层的输出特征映射,
h
t
1
,
h
t
2
,
.
.
.
,
h
t
l
−
1
\ h {^1_t},h {^2_t},...,h {^{l-1}_t}
ht1,ht2,...,htl−1,输入:
其中
l
=
1
,
2
,
.
.
.
,
L
\ l=1,2,...,L
l=1,2,...,L和
[
h
t
1
,
h
t
2
,
.
.
.
,
h
t
l
−
1
]
\ [h {^1_t},h {^2_t},...,h {^{l-1}_t}]
[ht1,ht2,...,htl−1]表示前一层的连接特征映射。与第一层类似,FGCB的最后一层也是压缩和融合前面所有层的输出数据,表示为:
4.FGCN的双流框架
骨架中的关节和骨骼信息中只包含了动作的空间信息,但是很多动作很难从空间信息中单独识别出来,例如,穿鞋和脱鞋,戴眼镜和摘眼镜等。因此本文是从骨架中提取时空特征,不仅获得空间信息,还可以从动作序列中获得时间信息。在第三部分的第一节中有描述,将骨骼和关节表示为向量坐标。
将来自两个连续帧中的关节和骨骼分别表示为
v
t
i
\ v _{ti}
vti和
v
(
t
+
1
)
i
\ v _{(t+1)i}
v(t+1)i,
e
v
i
i
,
v
i
j
\ e _{v _{ii},v _{ij}}
evii,vij和
e
v
(
t
+
1
)
i
,
v
(
t
+
1
)
j
\ e _{v _{(t+1)i},v _{(t+1)j}}
ev(t+1)i,v(t+1)j,关节的运动表示为
m
v
t
i
=
v
(
t
+
1
)
i
−
v
t
i
\ m _{v _{ti}}=v _{(t+1)i}-v _{ti}
mvti=v(t+1)i−vti,同样的,骨骼的运动表示为
m
e
t
i
j
=
e
v
(
t
+
1
)
i
,
v
(
t
+
1
)
j
−
e
v
i
i
,
v
i
j
\ m _{e {^{ij} _t}}=e _{v _{(t+1)i},v _{(t+1)j}}-e _{v _{ii},v _{ij}}
metij=ev(t+1)i,v(t+1)j−evii,vij。作为空间信息建模,运动信息表示为一个图序列
S
m
=
{
G
1
m
,
G
2
m
,
.
.
.
,
G
l
e
n
m
}
\ S ^m=\lbrace{G {^m _1},G {^m _2},...,G {^m _{len}}\rbrace}
Sm={G1m,G2m,...,Glenm},其中
G
t
m
=
{
V
t
m
,
E
t
m
}
\ G {^m _t}=\lbrace{V {^m _t},E {^m _t}\rbrace}
Gtm={Vtm,Etm},
V
t
m
=
{
m
v
t
i
}
i
=
1
N
\ V {^m _t}=\lbrace{m _{v _{ti}}\rbrace}{^N _{i=1}}
Vtm={mvti}i=1N,
E
t
m
=
{
m
e
t
i
}
(
i
,
j
)
∈
Q
\ E {^m _t}=\lbrace{m _{e _{ti}}\rbrace}{ _{(i,j)\in\ Q}}
Etm={meti}(i,j)∈ Q。本文将空间图S和运动图
S
m
\ S ^m
Sm分别输入到两个分离的FGCN模型中进行预测动作标签,具体如下图:
四、实验
本文使用的数据集是NTU-RGB+D,NTU-RGB+D120和Northwestern-UCLA三个。分别在这三个数据集中划分训练集和测试集进行训练。
同时针对提出的方法,进行消融实验,主要分为四个消融实验。
第一个是对网络模型中的两个关键超参进行消融,两个超参一个是划分的阶段数,一个是每个阶段输入片段的长度。具体的实验数据如图:
第二个实验是对模型中的几种时间融合策略的效率进行评估,一共有四种策略,分别是last-win-all,average,weighting-1,weighting-2。
第三个和第四个分别是基于关节和骨骼的反馈图卷积的有效性,还有空间信息和运动信息作为输入数据的性能评估。其中第三个实验中的方法与STGCN的方法得出的结果的混合矩阵如下。
最后将本文提出的方法与其他的动作识别的方法在NTU-RGB+D120和Northwestern-UCLA数据集中进行比较。