一文读懂图卷积在根据骨架的动作辨认中的使用

放大字体  缩小字体 发布时间:2019-12-08 22:29:58  阅读:4644+ 作者:责任编辑。王凤仪0768

机器之心发布

作者:张秉异

依据骨架的动作辨认(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 研讨一扫而光。

“如果发现本网站发布的资讯影响到您的版权,可以联系本站!同时欢迎来本站投稿!