目前深度学习方法解决基于骨架的动作识别问题,分别是RNN、CNN、GCN
- 将关节点序列表示成关节点向量,然后用RNN进行预测;将关节点信息表示成伪图像,然后用CNN进行预测;
- 将关节点信息表示成图结构,用图卷积进行预测;
- 以上两种方法不能将骨架信息中的图结构提取出来,也很难适应任意形状的骨架结构,所以就有了GCN,其中GCN也有基于spectral(光谱)与基于spatial(空间)的;
图卷积网络主要有两种主流方法:
- 基于光谱的观点(spectral perspective)图卷积中的位置信息被看做是以光谱分析的形式。
- 基于空间的观点(spatial perspective)卷积核直接被应用在图节点和他们的邻居节点。
Paper:Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recognition【AAAI2018】
code:https://github.com/yysijie/st-gcn
介绍:AAAI2018论文,来自港香港中文大学汤晓鸥实验室。作者是第一个将图卷积网络应用在基于骨架的动作识别任务中的,与以往的方法都不相同。本文章提出了一种新颖的动态骨架图模型来做行为识别的空间时间卷积网络,从数据中获取空间时间的信息,可以隐式地通过图卷积网络将位置信息和时序信息结合起来,相比与之前的方法该模型增强了模型的表达能力和泛化能力。传统的方法通常是用手工制作或者遍历规则来对骨架进行建模,但这样得到的结果不仅不能完全表达出相关的信息,而且泛化能力比较差。本文最后在Kinetics和NTU-RGBD两个公开数据集上做了实验,有了很突出的效果。
笔记:
- 作者将图卷积网络扩展到时空图模型,提出了ST-GCN,基于图的框架去对动态人体骨架进行建模。该模型建立在骨架图构成的序列之上,其中的每一个点都对应人体骨架结构中的每一个节点。这里有两种类型的边,一种是空间边(spatial edges)它建立在每一帧人体骨架的自然连接节点上,另外一种是时序边(temporal edges)它将连续两帧中相同节点连接起来,并且时空图卷积网络中的很多层也根据此建立了起来,这就使得信息在时间和空间域被整合起来了,能够获取到更多的有效信息。
- 在ST-GCN中提出了一些设计规则去满足骨架模型特殊的要求。
-
在本文中,节点有三种划分方式:
(1) 唯一划分( Uni-labeling):将节点的1邻域划分为一个子集
(2) 基于距离的划分 (Distance partitioning):将节点的1邻域划分为两个子集,节点本身子集与邻节点子集;
(3) 空间构型划分 (Spatial configuration partitioning):将节点的1邻域划分为3个子集,第一个子集连接了空间位置上比根节点更远离整个骨架的邻居节点,第二个子集连接了更靠近中心的邻居节点,第三个子集为根节点本身,分别表示了离心运动、向心运动和静止的运动特征。并且在本文中也使用了注意力机制,因为在不同的运动中,不用的关节重要性是不同的,所以ST-GCN对不同关节进行了加权。
在有了关节空间特征的基础上,还需要利用图片之间的时序关系来学习关节变化的局部特征来完善和丰富信息,所以接下来作者使用了TCN来完成时间卷积操作。
- 模型架构及一些细节:将输入的数据首先进行batch normalization,然后经过9个ST-GCN单元,前三层的输出有64个通道,中间三层有128个通道,最后三层有256个通道,并且每一个ST-GCN采用Resnet的结构,在每次经过ST-CGN结构后,以0.5的概率随机将特征dropout,其中第4和第7个时域卷积层的strides设置为2。然后是一个global pooling得到每个序列的256维特征向量,最后用SoftMax函数进行分类,得到最后的标签。整个模型都是用SGD训练,学习率为0.01,每10个epochs学习率下降0.1。注:为了避免过拟合,作者在训练Kinetics 数据集时还使用了两种方法来替换dropout。
实验结果: