机器之心发布
作者:张秉异
依据骨架的动作辨认(skeleton-based action recognition)一直是计算机视觉范畴中的一个研讨热门,在计算机视觉的各大顶会 AAAI、CVPR、NeurIPS 等会议中都能见到它的身影。本文将介绍图卷积在依据骨架的动作辨认中的使用。
在进入正题之前,先介绍一下一些布景常识。
什么是依据骨架的动作辨认
人的骨架是什么?信任没有谁比咱们自己更了解咱们身体的结构了。浅显地说,人骨架结构包含六个部分——头部、左手、右手、躯干、左脚和右脚。
在维基百科中有对人骨架愈加准确的界说:人体骨架是人身体的内涵结构。人刚出生时,体内约有 270 块骨头,成年之后体内骨头的数量削减为 206 块。
一副骨架能够笼统为两种元素组成——关节点(joint)和骨骼(bone)。关节点的作用是衔接两根相邻的骨骼。因而,咱们咱们能够把骨架简化为一个由点和边所构成的图(graph)。点对应骨架中的关节点,边对应骨架中的骨骼。
把一副骨架放在三维欧几里得空间中,点的特点便是其对应的三维空间中的坐标(x,y,z),边便是三维空间中的一条线段。在动作辨认中,还需求参加另一个维度——时刻。人在一段时刻内接连有语义的姿态(pose)改变被界说为动作。例如,招手、坐下、自拍等。在实践使用中,骨架的坐标点是经过传感器接连采样所得到的,在时刻维度上是离散的。在计算机视觉范畴内,依据骨架的动作辨认的界说为:对一副骨架序列进行形式判别,辨认这副骨架语义上所代表的执行者所表达的动作。
一般,获取骨架点的办法有两种:
1. 一种办法是经过深度传感器,例如最有名的微软公司研制的 Kinect 传感器套件,合作 Kinect 开发的 SDK,能够每秒钟获取 30 帧骨架,一起支撑收集 6 副骨架,每一副骨架收集 25 个关节点的 3D 坐标。2019 年,微软推出了新一代的 Microsoft Kinect Azure(microsoftstore.com.cn/v),初次官方支撑了 Ubuntu 体系,这对开发者来说是一个好消息。此前的 kinect SDK 在 ubuntu 体系上运转需求用开源的 libfreenect2。
链接:https://github.com/OpenKinect/libfreenect2
2. 第二种办法是经过图画合作骨架提取算法来从视频中获取骨架序列,可是提取到的骨架坐标是在图画中的 2 维坐标。
从图画中提取骨架比较有名的开源库有
Deep pose:https://github.com/mitmul/deeppose
open pose:https://github.com/CMU-Perceptual-Computing-Lab/openpose
骨架序列的数据集
日常动作(daily activity)
医疗相关的动作
双人的交互行为
最近,NTU RGB+D 数据集的发布者 Rose 试验室又推出了 NTU RGB+D 数据集的增强版——NTU RGB+D 120。新的数据会集包含了 120 类动作,114480 个骨架序列的样本。而且最有必要留意一下的是,为了添加数据的多样性,收集时摄像机的视角添加到了 155 个。想深化了解新数据集的作者能够参阅文献 TPAMI 的最新文献《NTU RGB+D 120: A Large-Scale Benchmark for 3D Human Activity Understanding》。文中作者具体地介绍了新的数据集的各项特性。
地址:https://arxiv.org/abs/1905.04757
依据骨架的动作辨认中的使用
问题的数学建模
spatial-temporal graph 中有两个维度,一个是时刻(temporal)维度,一个是空间(spatial)维度。空间维度为一帧内的骨架图,时刻维度的结构是将相邻帧中的图同一方位的结点衔接起来,然后依据骨架序列结构出了一个 spatial-temporal graph。
这种图的结构办法还在交通网络顶用的比较多,来猜测交通流量。结构出了骨架序列的 spatial-temporal graph(STG),许多论文中选用 graph Spatial-Temporal Networks 对骨架 STG 进行分类。下面来介绍几篇具有代表性的文章:
ST-GCN
《Spatial temporal graph convolutional networks for skeleton-based action recognition》这篇文章是宣布在 AAAI 2018 会议上的一篇论文。文章中,作者初次运用 Spatial temporal graph convolutional networks 在依据骨架的动作辨认的问题上。
在文章中,作者提出一种卷积的思路,首要确认一个卷积中心(也便是一个关节点):
1. 在 spatial 维度上,取与之相邻的点,作为需求参加卷积的点;
2. 在 temporal 维度上,取前后帧在相同方位的点,作为需求参加卷积的点。
确认了卷积中心和需求参加卷积的点,进行卷积,聚合时刻维度和空间维度上的信息。作者在文章中给出了多种卷积的战略,有爱好的读者能够参阅原论文了解其数学模型。文章中的 ST-GCN 每一层的 ST-GCN 的特征图结构都共同,中心没有参加池化层,在最终一层卷积层之后选用了大局均匀池化的战略,将每一个 channel 缩短为一个点,之后选用全衔接层进行分类。
作者在 github 上开源了文章的源代码:https://github.com/yysijie/st-gcn
DPRL+GCNN
这是 CVPR 2018 中的一篇论文,作者提出了一种取关键帧的办法,类似于视频压缩中的取关键帧。由于在骨架序列中前后帧的信息可能会比较冗余,所以只需求选取序列中比较有代表性的关键帧,就能够直接进行动作的分类辨认。所以在 GCNN 之前,作者参加了一个 FDNe t 用来提取关键帧。作者试验证明,运用了取关键帧的办法,能够添加辨认的准确率。
GEGCN
在文章中,作者提出除了给图中的点做卷积之外,还能够给图中的边做卷积,这便是所说的 Graph edge convolution, 卷积办法如下图所示:
取一条边与之相邻的边作为参加卷积的边,边的特点为其在三维空间中的向量表明。据此,作者规划了一个双流的图卷积神经网络,一个是点的图卷积网络,另一个是边的图卷积神经网络:
作者经过试验证明,参加了 Graph edge convolution 能够有用添加辨认的准确率。
SGR-GCN
在文章中,作者提出了一个 graph regression based GCN(GR-GCN) 网络。GR-GCN 的作用是用来学习骨架图中关节点联络的强弱程度, 如下图所示:
其间 Sparsified Spatio-Temporal Graph 为经过 graph regression 的进程所学习到的图中结点的联络,其间黑色的边代表具有生理意义上的强联络,赤色的边代表非生理衔接可是关于动作判别很重要的言语联络,绿色的边代表比较弱的联络。得到了 Sparsified Spatio-Temporal Graph 再进一步经过 GCN 对东西进行分类。作者在试验中证明了经过 graph regression 的进程能够很好地进步辨认的准确率。
2s-NLGCN
最开端, 文章的标题叫做《Adaptive Spectral Graph Convolutional Networks for Skeleton-based Action Recognition》,后来不知道什么原因,作者将文章的姓名改为了《Non-Local Graph Convolutional Networks for Skeleton-based Action Recognition》。笔者觉得可能用《Adaptive Spectral Graph Convolutional Networks for Skeleton-based Action Recognition》这个标题会更好,由于文章中选用的是 spectral-based graph convolution networks,而且也使用了双流的网络结构,一个网络处理点(joint)的信息,另一个网络处理边 (bone) 的信息:
总结
总结前人的论文,咱们会发现,在论文中作者往往都会考虑一个问题——怎么从骨架的序列图中提取信息?从维度上考虑,有时刻维度和空间维度;从特征上考虑,有一次信息关节点的 3D 坐标(传感器+SDK 直接获取),有二次信息关节边的向量表明;从衔接上考虑,能够学习关节点之间语义上衔接的强弱(将衔接设置为 learnable parameter),或者是提取骨架序列中的关键帧。笔者觉得能够从更多的视点来考虑这样的一个问题,或许能够发现新的主意,进行立异。
例如:
1. 使用新的特征
2. GCN 中心参加 pooling 层
之前,图卷积现已将 NTU RGB+D 准确率刷得很高了,基本上算是屠榜了,准确率一点小的提高都很困难了。而新的 NTU RGB+D 120 数据集发布在即,估计一个新的分数榜即将呈现,信任会有更多好的 idea 呈现,将这一范畴持续推动下去。假如读者有爱好研讨该范畴,能够更多地重视南洋理工大学的 Rose Lab,他们是该范畴数据集的发布者和算法研讨的领头者。
参阅文献:
1. en.wikipedia.org/wiki/H
2. Shahroudy A, Liu J, Ng T T, et al. NTU RGB+ D: A large scale dataset for 3D human activity analysis Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 1010-1019.
3. Liu J, Shahroudy A, Perez M, et al. NTU RGB+ D 120: A Large-Scale Benchmark for 3D Human Activity Understanding. arXiv preprint arXiv:1905.04757, 2019.
4. A Comprehensive Survey on Graph Neural NetworksYan
5. S, Xiong Y, Lin D. Spatial temporal graph convolutional networks for skeleton-based action recognition Thirty-Second AAAI Conference on Artificial Intelligence. 2018.
6. Tang Y, Tian Y, Lu J, et al. Deep progressive reinforcement learning for skeleton-based action recognition Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018: 5323-5332.
7. Zhang X, Xu C, Tian X, et al. Graph edge convolutional neural networks for skeleton based action recognition. arXiv preprint arXiv:1805.06184, 2018.
8. Gao X, Hu W, Tang J, et al. Optimized Skeleton-based Action Recognition via Sparsified Graph Regression. arXiv preprint arXiv:1811.12013, 2018.
9. Shi L, Zhang Y, Cheng J, et al. Non-Local Graph Convolutional Networks for Skeleton-based Action Recognition. arXiv preprint arXiv:1805.07694, 2018.
机器之心「SOTA模型」:22大范畴、127个使命,机器学习 SOTA 研讨一扫而光。