![00d263348739e1361cdcde3252460ec4.png](https://i-blog.csdnimg.cn/blog_migrate/b36bc3af56cc4a041ff93e65e59de39f.jpeg)
An Attention Enhanced Graph Convolutional LSTM Network for Skeleton-Based Action Recognition
论文链接:
https://arxiv.org/pdf/1902.09130.pdfarxiv.org这篇论文是2019年发表在CVPR上的,论文提出来一个AGC-LSTM的网络框架,是第一个将图卷积与LSTM应用到基于骨骼的行为识别上的。
首先,是介绍了关于图卷积的一些公式,如下面的公式(1)和(2)。这两个公式就是图卷积的公式,对其稍作改变就是ST-GCN的公式,其实公式(1)就是具体某个关节的输出,而公式(2)就是整合了全部关节的输出。
![0612397f3ad15b2eae2e6d33e4edfc34.png](https://i-blog.csdnimg.cn/blog_migrate/1a843a149d9ecb2b54df65e49c112021.png)
![0883cd0c4043a9568b841a6b201ffb3c.png](https://i-blog.csdnimg.cn/blog_migrate/e62fdb0b2ffca4d47bc41d623b73f437.png)
既然用的是AGC-LSTM网络结构,那么先介绍AGC-LSTM的单元块。从名字可以看出,AGC-LSTM结构包括三个要素:注意力机制(A)、图卷积(GC)和长短时记忆网络(LSTM)。下面讲一下怎么将这个三个要素堆在一起完成我们行为识别的任务。
下面就是AGC-LSTM单元块的结构图,其实主要部分就是LSTM上的改进。这里与一般的LSTM不同的是,将原来输入的序列数据改成了骨骼数据,并将里面原来是乘积的改成了图卷积。因为之前一直在看图卷积相关的论文,LSTM也快忘完了,关于LSTM的原理可以翻看一下这篇博客,写的很好理解。
元峰:(译)理解长短期记忆(LSTM) 神经网络zhuanlan.zhihu.com![fd721f36f373057550595f1b42d7dd45.png](https://i-blog.csdnimg.cn/blog_migrate/cab20cfee150920fa9eb2cb5dad54cf4.png)
下图的
![d4b940283f1f1534b557a3e50a929111.png](https://i-blog.csdnimg.cn/blog_migrate/88c8fc864eb6aaecf74cb057730c6f85.jpeg)
![589dde296018bd8095f9c35157f2d4b5.png](https://i-blog.csdnimg.cn/blog_migrate/e944a7268dcccd137fe1a3076acc869e.jpeg)
下图就是注意力机制的模型,首先将所有节点通过AGC-LSTM得到的
![e07b7aaac2c7963079d360abcc0b23e2.png](https://i-blog.csdnimg.cn/blog_migrate/3f5c0ebffa7e14ad3a6ccf8b33392700.jpeg)
![681d43b9dc90f698d74eb8a16a8b45cd.png](https://i-blog.csdnimg.cn/blog_migrate/714dc084341b253e07d100525c49cd36.png)
![8c0a922149bb9ae302ea3a0f0e976ded.png](https://i-blog.csdnimg.cn/blog_migrate/42cc7f05f7ef2032f68a67d426e5db0f.png)
AGC-LSTM块最后输出的特征有两个,一个是公式(6)的全局特征
![44d5d29207320391d311f87f6b05c113.png](https://i-blog.csdnimg.cn/blog_migrate/7ba6bfbbdb06382d483b09634e5542b3.png)
下图是整体的网络框架图,在输入到AGC-LSTM块之前要对数据进行一些处理。首先,输入的数据通过一个全连接层转换成
![b0f52b167b1b46911795684215efce99.png](https://i-blog.csdnimg.cn/blog_migrate/cf50fdc467276fcdf423039b807f866a.jpeg)
其实这里我是有问题的,按他的说法,对于每个关节,位置特征是很好计算的,但是特征差异需要连续两帧之差,那么这个两帧之差的特征数肯定会少于帧数,这里怎么分配呢?
下图是从主框图截取的虚线部分,可以看到LSTM部分既有向前传播的,又有帧与帧之间传播的(向上的箭头)。作者的解释是:位置特征和帧差特征在串联时存在尺度差异。我的理解就是位置特征和帧差特征数量不匹配,达不到一一配对的效果。作者给出的解决方案就是将扩充特征再通过一个LSTM消除尺度差异,至于为什么LSTM能消除尺度差异我看不懂,希望懂得人解答一下。
![ecc5cf1630388253fbe0db1bb63f35e5.png](https://i-blog.csdnimg.cn/blog_migrate/3366ddaa2242161a7d32ea1bfac45c70.jpeg)
文章的另一个创新点就是时间分层结构,这是受CNN中的池化层的启发,提出来一个时间平均池化(TAP)。他的意思就是在时间维度上进行池化,就是说原来输入的是原始时间帧数,池化之后帧数变少了,相邻几帧的数据通过池化层聚合到同一帧,这样相对于下一层的网络来说时间感受野增大,计算量也减少了。好处就是对时间感知更加敏感,而且减少了计算量。
后面提到了使用分层模型,与原来的网络融合,也不算他的创新点吧,但是是基于他AGC-LSTM网络做的,确实能够提升效果(分层结构就是万金油)。
![3c07cf27092bdccc6d65dfa4750866b2.png](https://i-blog.csdnimg.cn/blog_migrate/724edaeabae42f00c2f8baf684c93885.jpeg)
总结一下,这篇论文首次尝试将图卷积和LSTM结合应用到基于骨骼的行为识别,值的学习的是图卷积和LSTM的结合方式:将LSTM中的乘积改成图卷积。
注意力机制的加权分数我是没太懂为什么要这样做,其实我对于注意力机制有一些自己的理解,首先,一个注意力机制一定要有可学习的参数,因为这个参数就是通过学习(训练)得到关注的关键的特征,其次,注意力机制要保留关键特征之外的全局特征,也就是学到新的东西不能忘了老的,但是这里要和我下面一篇博客讲的论文区别一下,详细看我下一篇博客。
时间池化我好像是第一次见,之前空间域用的再花里胡哨,时间域就是TCN,这个时间池化还是值得学习一下。
分层模型真是万金油啊,但是现在已经不能作为创新点了,可以用来提升效果。