近日笔者在阅读Shift-GCN[2]的文献,Shift-GCN是在传统的GCN的基础上,用Shift卷积算子[1]取代传统卷积算子而诞生出来的,可以用更少的参数量和计算量达到更好的模型性能,笔者感觉蛮有意思的,特在此笔记。
前言
近日笔者在阅读Shift-GCN[2]的文献,Shift-GCN是在传统的GCN的基础上,用Shift卷积算子[1]取代传统卷积算子而诞生出来的,可以用更少的参数量和计算量达到更好的模型性能,笔者感觉蛮有意思的,特在此笔记。如有谬误请联系指出,转载请联系作者并注明出处,谢谢。
e-mail: FesianXu@gmail.com
github: https://github.com/FesianXu
知乎专栏: 计算机视觉/计算机图形理论与应用
微信公众号:机器学习杂货铺3号店
Shift-GCN是用于骨骼点序列动作识别的网络,为了讲明其提出的背景,有必要先对ST-GCN网络进行一定的了解。
ST-GCN网络
骨骼点序列数据是一种天然的时空图结构数据,具体分析可见[5,6],针对于这类型的数据,可以用时空图卷积进行建模,如ST-GCN[4]模型就是一个很好的代表。简单来说,ST-GCN是在空间域上采用图卷积的方式建模,时间域上用一维卷积进行建模。
骨骼点序列可以形式化表达为一个时空图
ST-GCN的缺点体现在几方面:
- 计算量大,对于一个样本而言,ST-GCN的计算量在16.2GFLOPs,其中包括4.0GFLOPs的空间域图卷积操作和12.2GFLOPs的时间一维卷积操作。
- ST-GCN的空间和时间感知野都是固定而且需要人为预先设置的,有些工作尝试采用可以由网络学习的邻接矩阵的图神经网络去进行建模[10,11],即便如此,网络的表达能力还是受到了传统的GCN的结构限制。
Shift-GCN针对这两个缺点进行了改进。
Shift-GCN
这一章对Shift-GCN进行介绍,Shift-GCN对ST-GCN的改进体现在对于空间信息(也就是单帧的信息)的图卷积改进,以及时序建模手段的改进(之前的工作是采用一维卷积进行建模的)。
Spatial Shift-GCN
Shift-GCN是对ST-GCN的改进,其启发自Shift卷积算子[1],主要想法是利用1x1卷积算子结合空间shift操作,使得1x1卷积同时可融合空间域和通道域的信息,具体关于shift卷积算子的介绍见博文[12],此处不再赘述,采用shift卷积可以大幅度地减少参数量和计算量。如Fig 2.1所示,对于单帧而言,类似于传统的Shift操作,可以分为Graph Shift
和1x1 conv
两个阶段。然而,和传统Shift操作不同的是,之前Shift应用在图片数据上,这种数据是典型的欧几里德结构数据[7],数据节点的邻居节点可以很容易定义出来,因此卷积操作也很容易定义。而图数据的特点决定了其某个数据节点的邻居数量(也即是“度”)都可能不同,因此传统的卷积在图数据上并不管用,传统的shift卷积操作也同样并不能直接在骨骼点数据上应用。那么就需要重新在骨骼点数据上定义shift卷积操作。
作者在[2]中提出了两种类型的骨骼点Shift卷积操作,分别是:
- 局部Shift图卷积(Local Shift Graph Convolution)
- 全局Shift图卷积(Global Shift Graph Convolution)
下文进行简单介绍。
局部shift图卷积
在局部shift图卷积中,依然只是考虑了骨骼点的固有物理连接,这种连接关系与不同数据集的定义有关,具体示例可见博文[13],显然这并不是最优的,因为很可能某些动作会存在节点之间的“超距”关系,举个例子,“拍掌”和“看书”这两个动作更多取决于双手的距离之间的变化关系,而双手在物理连接上并没有直接相连。
尽管局部shift图卷积只考虑骨骼点的固有连接,但是作为一个好的基线,也是一个很好的尝试,我们开始讨论如何定义局部shift图卷积。如Fig 2.2所示,为了简便,我们假设一个骨架的骨骼点只有7个,连接方式如图所示,不同颜色代表不同的节点。对于其中某个节点
整个例子的示意图如Fig 2.2所示,其中不同颜色的节点和方块代表了不同的节点和对应的特征。以节点1和节点2的shift操作为例子,节点1的邻居只有节点2,因此把节点1的特征向量均匀划分为2个片区,第一个片区保持其本身的特征,而片区2则是从其对应的邻居,节点2中的特征中平移过去,如Fig 2.2的Shift for node 1
所示。类似的,以节点2为例子,节点2的邻居有节点4,节点1,节点3,因此把特征向量均匀划分为4个片区,同样第一个片区保持其本身的特征,其他邻居节点按照序号升序排列,片区2则由排列后的第一个节点,也就是节点1的特征平移得到。类似的,片区3和片区4分别由节点3和节点4的对应片区特征平移得到。如Fig 2.2的Shift for node 2
所示。最终对所有的节点都进行如下操作后,我们有The feature after shift
所示。
全局shift图卷积
局部shift图卷积操作有两个缺点:
- 只考虑物理固有连接,难以挖掘潜在的“超距”作用的关系。
- 数据有可能不能被完全被利用,如Fig 2.2的节点3的特征为例子,如Fig 2.3所示,节点3的信息在某些通道遗失了,这是因为不同节点的邻居数量不同。
为了解决这些问题,作者提出了全局Shift图卷积,如Fig 2.4所示。其改进很简单,就是去除掉物理固有连接的限制,将单帧的骨骼图变成完全图,因此每个节点都会和其他任意节点之间存在直接关联。给定特征图The feature after shift
所示。
为了挖掘骨骼完全图中的人体关键信息,把重要的连接给提取出来,作者在全局shift图卷积基础上还使用了注意力机制,如式子(2.2)所示。
Temporal Shift-GCN
在空间域上的shift图卷积定义已经讨论过了,接下来讨论在时间域上的shift图卷积定义。如Fig 2.5所示,考虑到了时序之后的特征图层叠结果,用符号naive temporal shift graph convolution
。在这种策略中,我们需要将通道均匀划分为adaptive temporal shift graph convolution
,是一种自适应的时序shift图卷积,其对于每个通道,都需要学习出一个可学习的时间偏移参数
网络
结合spatial shift-gcn
和temporal shift-gcn
操作后,其网络基本单元类似于ST-GCN的设计,如Fig 2.6所示。
Reference
[1]. Wu, B., Wan, A., Yue, X., Jin, P., Zhao, S., Golmant, N., … & Keutzer, K. (2018). Shift: A zero flop, zero parameter alternative to spatial convolutions. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (pp. 9127-9135).
[2]. Cheng, K., Zhang, Y., He, X., Chen, W., Cheng, J., & Lu, H. (2020). Skeleton-Based Action Recognition With Shift Graph Convolutional Network. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (pp. 183-192).
[3]. https://fesian.blog.csdn.net/article/details/109474701
[4]. Sijie Yan, Yuanjun Xiong, and Dahua Lin. Spatial temporal graph convolutional networks for skeleton-based action recognition. In Thirty-Second AAAI Conference on Artificial Intelligence, 2018.
[5]. https://fesian.blog.csdn.net/article/details/105545703
[6]. https://blog.csdn.net/LoseInVain/article/details/87901764
[7]. https://blog.csdn.net/LoseInVain/article/details/88373506
[8]. https://fesian.blog.csdn.net/article/details/90171863
[9]. https://fesian.blog.csdn.net/article/details/90348807
[10]. Lei Shi, Yifan Zhang, Jian Cheng, and Hanqing Lu. Skeleton-based action recognition with directed graph neural networks. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 7912–7921, 2019
[11]. Lei Shi, Yifan Zhang, Jian Cheng, and Hanqing Lu. Two stream adaptive graph convolutional networks for skeleton based action recognition. In The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), June 2019.
[12]. https://fesian.blog.csdn.net/article/details/109474701
[13]. https://fesian.blog.csdn.net/article/details/108242717