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