目录
- 1. 人类行为(层次):
- 2. 输入数据
- 3. 基于骨架的行为识别
- 4. 数据集
- 5. 相关论文
-
- 5.1 Skeleton-based Action Recognition with Convolution Neural Networks(2017.8 海康威视)
- 5.2 Co-ocurrence Feature Learning from Skeleton Data for Action Recognition and Detection with Hierachial Aggregation(2018.8)
- 5.3 Skeleton-based action recognition with synch(2019.6.12)
- 5.4 Actional-Structural Graph Convolutional Networks for Skeleton-based Action Recognition(2019 CVPR)
- 5.5 Skeleton-Based Action Recognition with Directed Graph Neural Networks(2019CVPR)
1. 人类行为(层次):
- 身体的一部分移动(比如手势识别)
- 单个人类活动(比如跑步、拳击)
- 两个或者两个以上的多人交互活动(会议握手)
多人团体活动(篮球比赛、足球比赛)
2. 输入数据
- RGB video
- RGBD video(有深度信息、基于骨架)
3. 基于骨架的行为识别
输入:骨架序列(video)
输出:动作类别标签
来源:Kinect,Human pose estimation algorithms
优点:不受环境的干扰,数据量级小,可以实现端到端的系统
4. 数据集
目前使用的是NTU RGBD中的Action Recognition中的3D skeletons(body joints),大小为5.8GB。
4.1 NTU RGBD
4.1.1 下载方式
下载地址:http://rose1.ntu.edu.sg/datasets/login.asp?DS=3
4.1.2 Benchmark
- Cross-Subject
我们将40个志愿者划分为training和testing团体。每个团体包含20个志愿者,其中1,2,4,5,8,9,13,14,15,16,17,18,19,25,27,28,31,34,35,38为训练集,其余为测试集。 - Cross-View
我们将cameras2和3作为训练集,1为测试集。
4.1.3 Skeleton数据集详解
否NTU RGBD包含60个动作种类以及56880个录像。数据集是由三个kinect V2摄像机实时捕获。NTU RGBD数据集中的RGB录像大小为19201080,深度矩阵和红外录像大小为512424。而在3D skeletal数据集中包含志愿者在每一帧的三维坐标(包含每帧25个主要身体关节的三维位置)。3D骨骼节点信息是通过Kinect相机中的骨骼追踪技术获得的。
每个数据集的格式为SsssCcccPpppRrrrAaaa(eg:S001C001P001R001A001.skeleton)。每个符号代表的意思分别为:
- sss是下载的顺序号(整个数据集特别大,所以要分开放)
- ccc是摄像头ID,分别是degree、front、side
- ppp是志愿者编号
- rrr是同一个动作的表演次数
- aaa动作类别
关于具体如何使用该数据集,简单代码实现为(matlab):https://github.com/shahroudy/NTURGB-D/blob/master/Matlab/read_skeleton_file.m
事实上,在打开skeleton文档后,我们看到的是如下画面:
- 102表示共有102帧3d骨架图;
- 1是指单张骨架图中有多少骨架,
- 72057594037931691是指追踪的骨架编号;
- 接下来是6个整型数,分别是clipedEdges,handLeftConfidence,handLeftState,handRightConfidence,handRightState,isResticted,
- 该行接下来是骨架的x,y偏置(骨架位置?),该行最后一个数字是该骨架的trackingState(?);
- 25表示有25个关键点(关节)信息,接下来有25行;每个关键点信息行上有11个数据,前三个是关键点的3D位置(x,y,z),第四五个是在2D帧中的位置(用于匹配IR帧),第六第七个是在2D帧中的位置(用于匹配RGB帧),第八第九第十第十一是该关键点的方向(WXYZ)
- 第十二个是该关键点的trackingState(?)
是keleton的60个动作类别
5. 相关论文
5.1 Skeleton-based Action Recognition with Convolution Neural Networks(2017.8 海康威视)
5.1.1 论文亮点
- 在该论文发表之前,大部分的基于骨骼的行为识别都使用了LSTM网络,并以LSTM为基础进行改进。该论文提出了双流CNN,取得了比起LSTM(STA-LSTM、VA-LSTM)更快更好的结果(在NTU RGBD数据集上达到了89.3%的准确度)。
事实上,双流CNN(2014)并不是该论文的首创。在传统的数据集(基于视频而非人体骨架的数据集)上,双流CNN一直都是主流算法。在RGB视频数据集上,双流CNN的输入为原始RGB图和光流图。 - 该论文使用的双流CNN是第一次在基于骨骼的动作识别上使用的RCNN
- 上图是论文设计的用于裁剪后(代码实现为30帧)的骨骼序列识别高效CNN网络。输入分为两部分,一部分是正常的骨骼序列,一部分是连续序列的移动(motion,从代码上实现其实就是相邻两帧之间做差)。论文同时提出了一种新的结构叫Skeleton Transformer(事实上是一种线性函数),这种网络结构据说可以自动学习一种更好的骨架排序,比人工选取相应的骨架有更好的效果(有点类似于注意力机制,选择更加重要的骨架,选择更重要的帧)。为了处理多骨架任务,使用了maxout来合并不同骨架的特征。每一个骨架最后的输入其实是T(帧数)*N(骨架数)*3的图像。
- 论文网络中未执行任何的正则化。
5.2 Co-ocurrence Feature Learning from Skeleton Data for Action Recognition and Detection with Hierachial Aggregation(2018.8)
5.2.1 论文亮点
- 论文指出基于骨骼行为识别任务要解决两个方面的问题:首先是,同一帧内骨架同时出现的表示;然后是骨架随时间变化的帧间表示。
- 论文提出一种端到端的卷积共现(co-occurrence)特征学习框架,这种共现特征是以分层的方式进行学习,这种分层使不同层次的语义信息逐渐聚合。
- CNN模型卓越的能力在抽象高层次的信息,它们能够使用来从骨架中学习时空特征[Du et al.,2016;Ke at al.,2017]。
- 由于在空间维度的权值共享,CNN模型不能够学习到所有骨架的参数,这些是论文提出一个能够从所有骨架得到整体反馈来探索不同骨架之间的相关性。
- 如上图,在最开始,输入的大小是framesjoints3,在红色(0,2,1)部分,joints变为了channel。这里的依然使用的是双流CNN的想法,一个输入是frames,一个输入是motions。
- 不同的人在第六层卷积后进行融合。
- 最后的损失函数使用了交叉熵。
5.3 Skeleton-based action recognition with synch(2019.6.12)
5.3.1 论文亮点
- 提出了一种残差频次注意力机制(rFA,residual frequency attention)来关注一些经常出现的域;同时提出了一种同步局部以及非局部的块(SLnL,synchronous local and non-local)来捕获在时空