markdown 行为识别论文笔记
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了markdown 行为识别论文笔记相关的知识,希望对你有一定的参考价值。
## 概述
人体行为识别可以分为基于视频(color video-based)和基于3D人体骨架(3D skeleton-based)。
## Deep Progressive Reinforcement Learning for Skeleton-based Action Recognition(CVPR 2018)
**FDNet+GCNN**
### 1. 目的:
提出一个深度逐步改进的强化学习方法来做基于骨架的动作识别
### 2. 思路概括:
- 输入一段视频,视频中有多个帧
- 用强化学习的算法来选择关键帧(本文是FDNet)
FDNet指的是frame distillation network,帧蒸馏网络,形象的将选取最有用的帧的过程用蒸馏来形容。
- 再把选取到的关键帧输入到GCNN网络,得到这段视频的标签
GCNN指的是graph convolutional neural network,对图进行卷积
![](https://ws1.sinaimg.cn/large/cdd040eely1g2qhz4444hj20f90e0gn4.jpg)
### 3. 利用强化学习来提取关键帧
#### (1)思路
- 已知输入的是含有多个帧的一段视频,但我们不要全部用到全部帧数
- 设定提取的关键帧数为m,把这m个关键帧按序号排序,每一个action表示这些关键帧是要向左移动,向右移动或是保持当前位置
- 设定迭代步数,当程序迭代步数达到设定值时,就停止程序
![](https://ws1.sinaimg.cn/large/cdd040eely1g2qi5bfjnwj20rs0ceafn.jpg)
#### (2)State的定义
![](https://ws1.sinaimg.cn/large/cdd040eely1g2qid2dckrj20v708agni.jpg)
![](https://ws1.sinaimg.cn/large/cdd040eely1g2qidmqfkwj20uz05ct9u.jpg)
![](https://ws1.sinaimg.cn/large/cdd040eely1g2qie10czcj20fg080gmx.jpg)
#### (3)Action的定义
action由FDNet输出,包含三种:
- 帧向左移动
- 帧向右移动
- 帧保持不动
每一次迭代,FDNet都输出一个vector![](https://ws1.sinaimg.cn/large/cdd040eely1g2qj0f5nucj202d00lq2p.jpg),而![](https://ws1.sinaimg.cn/large/cdd040eely1g2qj1dx0ykj202g00pq2p.jpg)表示为第i帧选择动作j的概率大小,也就是为某一帧选择向左向右或是不动的概率大小。
**问题:帧移动的上下限**
在采取action的时候有一个问题,比如第一帧向右移动的很多,而第二帧一直向左移动,导致第一帧到了第二帧右边,这样不同帧的顺序可能在一次次移动中产生混乱。
**解决:**
为action设定了界限,以保证所有帧都是按顺序排列的。上限是这一帧和下一帧中间帧:
![](https://ws1.sinaimg.cn/large/cdd040eely1g2qj4rtzpyj208r01mweg.jpg)
表示第i帧移动的上界,也就是向右移动的界限,是第i帧和第i+1帧的中间位置向上取整,而如果i等于m,也就是i成为了选出来的m帧里的最后一个,那么调整的上限就是f,也就是graph序列的总帧数。
下限也是同样的思想,是这一帧和上一帧的中点,若是不能整除就向下取整:
![](https://ws1.sinaimg.cn/large/cdd040eely1g2qj7m7tysj208501qq2t.jpg)
![](https://ws1.sinaimg.cn/large/cdd040eely1g2qjaal79jj20uk07xjtb.jpg)
#### (4)FDNet网络结构
执行流程如下:
1. Sb经过一个全连接层得到一段向量
2. Sa经过3层卷积后,在经过一层全连接层得到另一段向量
3. 将上面两个结果合并起来,通过一个全连接层连接到softmax输出层
4. softmax输出层由每组3个的几组神经元组成,每一组神经元表示对应关键帧的action分布
![](https://ws1.sinaimg.cn/large/cdd040eely1g2qif61vvuj20g10d075r.jpg)
#### (5)Reward定义
体现的是agent在状态S下采取动作action,会带来多好的结果。Reward用一个事先训练好的GCNN来获得的,在第一次迭代时,如果预测结果正确,那么r = 1,否则r = -1:
![](https://ws1.sinaimg.cn/large/cdd040eely1g2qjge6qjyj20tn05zaad.jpg)
![](https://ws1.sinaimg.cn/large/cdd040eely1g2qjhftlfij20ts07f404.jpg)
其中Ω是一个较大的数字
#### (6)训练FDNet
训练FDNet的目标是要最大化“discounted reward R”:![](https://ws1.sinaimg.cn/large/cdd040eely1g2qjjq22xej202500rq2p.jpg)
由此要最小化的损失函数是:
![](https://ws1.sinaimg.cn/large/cdd040eely1g2qjkavjvej206c01m3ye.jpg)
更新FDNet的参数θ:
![](https://ws1.sinaimg.cn/large/cdd040eely1g2qjm0v31kj204m010a9v.jpg)
FDNet的训练采用训练深度强化学习的policy gradient方法
### 4. GCNN进行动作识别
通过这个公式可以构建骨架的图(Graph),定义了两个节点之间的连接权重:
![](https://ws1.sinaimg.cn/large/cdd040eely1g2qjryl92aj20v504xglt.jpg)
**GCNN的大致流程:**
![](https://ws1.sinaimg.cn/large/cdd040eely1g2qjtdgau6j20v40fxjth.jpg)
### 5. FDNet-GCNN联合训练
最后作者讲了如何将FDNet和GCNN结合起来,首先,从graph的序列中均匀的选出一些frames,用它们来训练GCNN,之后将GCNN的参数固定,再来训练FDNet,而训练过的FDNet又能够精细调节GCNN。
![](https://ws1.sinaimg.cn/large/cdd040eely1g2qju8jg60j20fy0hhwgx.jpg)
## A New Representation of Skeleton Sequences for 3D Action Recognition (CVPR 2017)
### 1. 主要思想:
将3D骨架坐标转换成图片,然后再用卷积网络提取特征,时域上的特征通过特殊的卷积核来提取,以达到时序记忆的目的。
### 2. New representation:
- 每一段3d skeleton sequence都转换成四张图片
- 以左肩、右肩、左臀、右臀作为基准点,计算和其他节点的相对位置,由此得到四个矩阵,再把这四个矩阵归一化到0-255之间,变成灰度图片,再送入网络提特征
- 每张图片的维度:(m−1)∗ t
m:关节点个数
t:帧数
![](https://ws1.sinaimg.cn/large/cdd040eely1g2qkjuh5y7j20h807qtal.jpg)
**因为每张图片都是针对同一个基准点的,因此同一张图片都是 spatial invariarant的,所以描述出来的temporal dynaminc都很鲁棒。**
### 3. 网络结构:
对于每张图片都进行如下操作:
- 先用VGG的前五层提特征,得到14X14x512的特征向量
- 再在行上(时间上)做池化,池化kernel size 为14 x 1,这样就实现了时域上的信息融合
- 采用平均池化:
![](https://ws1.sinaimg.cn/large/cdd040eely1g2qkmhzkzej209503vgll.jpg)
- 再将得到的14X512个feature map压成一个7168维的向量
![](https://ws1.sinaimg.cn/large/cdd040eely1g2qkmxkvn6j20h605m3yv.jpg)
### 4. Multi-task:
- 4张图片,看成四个task,训练时这4个task的损失加起来变成一个总的损失函数。
- 测试时,这四个task预测的值做一个平均
单个task的损失函数:
![](https://ws1.sinaimg.cn/large/cdd040eely1g2qkqd4i92j20eo06lq3e.jpg)
总的损失函数:
![](https://ws1.sinaimg.cn/large/cdd040eely1g2qkqz0unoj208a02vjr9.jpg)
#### 5. 实验结果:
- Frames + CNN: 用四个中的单个feature vector来做分类,最后结果取平均
- Clips + CNN + Concatenation:将四个feature vector拼接起来
- Clips + CNN + Pooling:对四个feature vector 做max pooling
- Clips + CNN+ MTLN:对四个做multi-task
由实验结果可见,multi-task是要好于四个特征拼接的,在ntu-rgbd上相对于拼接差不多有3%的提升。按说这四个都是同类特征,用拼接是没有问题的。可是结果却令人深思。
NTU-RGBD数据集
![](https://ws1.sinaimg.cn/large/cdd040eely1g2qkss4jz0j208x07u0u2.jpg)
## Co-occurrence Feature Learning from Skeleton Data for Action Recognition and Detection with Hierarchical Aggregation(IJCAI 2018)
根据骨架序列来设计和提取共现特征(co-occurrence feature)
### 1. 主要思想:
- 使用 CNN 模型来学习骨架数据的全局共现特征,研究表明这优于局部共现特征。
- 设计了一种全新的端到端分层式特征学习网络,其中的特征是从点层面特征到全局共现特征逐渐聚合起来的。
使用了CNN 来自动地从骨架序列中学习分层的共现特征。我们发现一个卷积层的输出是来自所有输入通道的全局响应。如果一个骨架的每个关节都被当作是一个通道,那么卷积层就可以轻松地学习所有关节的共现。更具体而言,我们将骨架序列表示成了一个形状帧×关节×3(最后一维作为通道)的张量。我们首先使用核大小为 n×1 的卷积层独立地为每个关节学习了点层面的特征。然后我们再将该卷积层的输出转置,以将关节的维度作为通道。在这个转置运算之后,后续的层分层地聚合来自所有关节的全局特征。此外,我们引入了一种双流式的框架 [Simonyan and Zisserman, 2014] 来明确地融合骨架运动特征。
![](https://ws1.sinaimg.cn/large/cdd040eely1g2qsnsa567j20ef0cxjrq.jpg)
**3×3 卷积的分解分为两个步骤。(a) 每个输入通道的空间域中的独立 2D 卷积,其中的特征是从 3×3 的临近区域局部聚合的。(b) 各个通道上逐个元素求和,其中的特征是在所有输入通道上全局地聚合。**
- 全面地使用了多人特征融合策略,可以轻松地扩展用于人数不同的场景。
### 2. 共现特征
人的某个行为动作常常和骨架的一些特定关节点构成的集合,以及这个集合中节点的交互密切相关。如要判别是否在打电话,关节点“手腕”、“手肘”、“肩膀”和“头”的动作最为关键。不同的行为动作与之密切相关的节点集合有所不同。例如对于“走路”的行为动作,“脚腕”、“膝盖”、“臀部”等关节点构成具有判别力的节点集合。我们将这种几个关节点同时影响和决定判别的特性称为共现性(Co-occurrence)。
有很多早期研究都曾试图根据骨架序列来设计和提取共现特征,比如每个关节的配对的相对位置 [Wang et al., 2014]、配对关节的空间方向 [Jin and Choi, 2012]、Cov3DJ [Hussein et al., 2013] 和 HOJ3D [Xia et al., 2012] 等基于统计的特征。
### 3. 分层式共现网络(HCN:Hierarchical Co-occurrence Network)的结构
![](https://ws1.sinaimg.cn/large/cdd040eely1g2qspoxpf9j20gf0lq3zg.jpg)
**绿色模块是卷积层,其中最后一维表示输出通道的数量。后面的「/2」表示卷积之后附带的最大池化层,步幅为 2。转置层是根据顺序参数重新排列输入张量的维度。conv1、conv5、conv6 和 fc7 之后附加了 ReLU 激活函数以引入非线性。**
### 4. 多人特征融合的后期融合(late fusion)
![](https://ws1.sinaimg.cn/large/cdd040eely1g2qssh1bxej20k00a074k.jpg)
**最大、平均和连接操作在表现和泛化性能上得到了评估。**
### 5. 时间动作检测框架
![](https://ws1.sinaimg.cn/large/cdd040eely1g2qsqj79nyj20k006l74k.jpg)
**描述了其中的骨干网络。还有两个子网络分别用于时间上提议的分割和动作分类。**
## View Adaptive Recurrent Neural Networks for High Performance Human Action Recognition from Skeleton Data(ICCV 2017)
## Skeleton-based Action Recognition Using LSTM and CNN(ICME2017)
### 1. 主要思路:
- 使用LSTM处理数据,考虑到数据的长时间相关性
- 不同类型的空间域特征输入到不同的LSTM通道中,用class score fusion来进行LSTM通道以及CNN通道的融合
### 2. 主要模块:
- 骨架运动序列提取出的特征作为10个神经网络的输入,包含3个LSTM模型和7个CNN模型
- 应用不同的方法从骨架运动序列中提取特征,定义了两种特征:
- spatial-domain-feature,SPF
为了得到SPF,还需要提取三种特征:
- 相对位置relative position(RP)
- distances between joints(JJD)
- distances between joints and lines(JLD)
- temporal-domain-feature,TPF
为了得到TPF,需要提取两种特征:
- joint distances map,JDM
- joint trajectories map,JTM
将SPF作为LSTM的输入,TPF作为CNN的输入
![](https://ws1.sinaimg.cn/large/cdd040eely1g2rotm0mqoj20y50g6dkj.jpg)
### 3. 从骨架运动序列提取特征
距离特征包含丰富的空间信息,但是同时也丢失了很多方向(人体朝向等等)信息,有关相对位置的特征可以用于获取方向信息。
#### 输入到LSTM的特征:
人体骨架第j个关节点的三维坐标为:
![](https://ws1.sinaimg.cn/large/cdd040eely1g2roxo6ltgj205d013glf.jpg)
第j个关节点和第k个关节点之间的相对位置relative position RP:
![](https://ws1.sinaimg.cn/large/cdd040eely1g2rozf8cz3j20jm01ndfp.jpg)
在第t帧,第j个关节点和第k个关节点之间的欧氏距离JJD:
![](https://ws1.sinaimg.cn/large/cdd040eely1g2rp1p319qj20jp01iwed.jpg)
第j个关节点和第k个关节点之间的连线为:![](https://ws1.sinaimg.cn/large/cdd040eely1g2rp342nbwj201i013a9t.jpg)
在第t帧,第n个关节点与第j个关节点和第k个关节点之间的连线的距离 JLD:
![](https://ws1.sinaimg.cn/large/cdd040eely1g2rp4kp6kej20jx01i3yg.jpg)
其中![](https://ws1.sinaimg.cn/large/cdd040eely1g2rp6634g3j202h01adfm.jpg)代表关节点n,j,k三点连成三角形的面积,计算时用Helen公式来提速
由于关节点两两之间连线较多,造成计算量过大,用下面的条件来筛选连线,满足任一则保留:![](https://ws1.sinaimg.cn/large/cdd040eely1g2rpbsw5pfj20m408zgmh.jpg)
#### 输入到CNN的特征:
使用了以下两篇文章中的方法,生成joint trajectory maps输入到CNN中
- ***Action recognition based on joint trajectory maps using convolutional neural networks(ACM 2016)***
- ***Joint distance maps based action recognition with convolutional neural networks(IEEE 2017)***
### 4. 神经网络结构
用三个LSTM模型分别接受三个SPF特征:
- 相对位置relative position(RP)
- distances between joints(JJD)
- distances between joints and lines(JLD)
每个LSTM模型包含3个layer
CNN采用AlexNet
### 5. Score fusion
采用max-score fusion,v代表每个网络模型输出的score vector,将它们逐元素做乘法,取最大值记为最后的score,score对应的index作为最后的label。
![](https://ws1.sinaimg.cn/large/cdd040eely1g2rsfe8ln3j20ep01bglj.jpg)
## Hierarchical Recurrent Neural Network for Skeleton Based Action Recognition(CVPR 2015)
### 1. 摘要:
人的动作识别能够由骨架关节的轨迹来表示,传统的方法通常利用手工制作的特征模拟人类骨骼的空间结构和时间动态,通过精心设计的分类器识别人类动作。我们提出一个端到端的层次RNN基于骨架的动作识别。**HRNN-L模型不是将整个骨骼作为输入,而是根据人类的身体结构将人类的骨骼划分成五个部分,然后分别的划分进五个子网。最后随着层数的增加,前一层特征融合的结果作为更高层的输入。最后骨架序列的表示被送入到一个单层感知器,将感知机积累的结果作为最后的决定。**论文后面将该模型与的其他五种衍生的深度RNN构架进行比较,验证了这个模型的有效性;并且在三个公开的数据集上与其他几种方法相比。实验结果表明该模型具有最好的表现性能和很高的计算效率。
### 2. 基本结构:
- 将提取到的人类的四肢和躯干的空间位移作为5个输入信息,并且采用双向递归神经网络(BRNN)
- 后面逐层都是由前一层分层融合构成
- 最后有一个全连接层和softmax层对动作进行分类;(为了克服梯度消失问题,最后BRNN层采用LSTM神经元)
![](https://ws1.sinaimg.cn/large/cdd040eely1g2rwcwpmxyj20xk0f5dku.jpg)
### 3. 讨论:
- 为了克服HBRNN-L模型overfitting问题,本论文采用了增加输入噪声、权重噪音和提前停止的方法(经试验证明增加权重噪声的效果最好)。
- 克服模型的underfitting问题,通过调整学习率增加不同的输入噪声和权重噪声反复训练的方法解决。
## Spatial Temporal Graph Convolutional Networks for Skeleton Based Action Recognition (AAAI 2018)
[Github代码](https://github.com/yysijie/st-gcn)
### 1. 主要思想:
提出一种ST-GCN 时空图卷积网络模型,并利用它们进行人类行为识别。这种算法基于人类关节位置的时间序列表示而对动态骨骼建模,并将图卷积扩展为时空图卷积网络而捕捉这种时空的变化关系。
### 2.
## Fusing Geometric Features for Skeleton-Based Action Recognition using Multilayer LSTM Networks
### 1. 主要思路:
- 选择了一组简单的几何特征,然后将每种类型的特征分别提供给一个3层的LSTM框架。
- 提出了一种新的基于平滑分数融合技术(smooth score fusion)的多流LSTM结构,从不同的几何特征流中学习分类。
- 观察到基于节点与所选直线之间距离的几何关系特征(JLD)优于其他特征,融合结果在四个数据集上达到了最先进的性能。展示了在第一个LSTM层中由几何特征训练的输入门权的稀疏性,并证明了利用关节线距离作为输入需要较少的训练数据。
以上是关于markdown 行为识别论文笔记的主要内容,如果未能解决你的问题,请参考以下文章