港中文团队论文的主要内容

1 Introduction

近年来,人类动作识别已成为活跃的研究领域,因为它在视频理解中起着重要作用。一般而言,人类行为可以从多种形式中识别,例如外观、深度、 光流和人体骨架。在这些方式中,动态的人体骨架通常传达重要的信息,这些信息是其他信息的补充。但是,与外观和光流相比,动态骨架的建模受到的关注相对较少。在这项工作中,团队系统地研究了这种模式,目的是开发一种有效的方法来对动态骨架建模并利用它们进行动作识别。

动态骨架模态可以由人类关节位置的时间序列,以2D或3D坐标的形式自然地表示,然后可以通过分析其动作模式来识别其动作。早期,使用骨架进行动作识别的方法只是在各个时间步上使用关节坐标来形成特征向量,然后对其进行时间分析。但这些方法的能力有限,因为它们未明确利用关节之间的空间关系,这对于理解人类行为至关重要。

最近,已开发出尝试利用关节之间自然连接的新方法,这些方法显示出令人鼓舞的改进,表明了连接的重要性。但是,大多数现有方法都依靠手工制作的身体部位或规则来分析空间模式。结果,为特定应用设计的模型很难推广到其他应用。

为了克服这些限制,我们需要一种新的方法,该方法可以自动捕获特定模式并嵌入到关节空间配置及其时间动态中,这就是深度神经网络的优势。但是,如前所述,骨架是图(Graphs)形式,而不是2D或3D网格,这使得很难使用卷积网络之类的成熟模型。

图1

最近,将卷积神经网络(CNN)概括为任意结构图的图神经网络(GCN)【图1】,得到了越来越多的关注,并成功地在许多应用中被采用,例如图像分类、文档分类和半监督学习。但是,沿这条线所做的许多先前工作都是以固定图(Fixed Graph)作为输入。GCN在大型数据集上对动态图建模的应用【图2】,例如人体骨架序列,还有待探索。

图2

在本文中,港中文团队提出通过将图神经网络扩展到称为时空图卷积网络(ST-GCN)的时空图模型,来设计用于动作识别的骨架序列的通用表示。如图3所示,此模型是在骨架图(Graph)的序列之上制定的,其中每个节点对应于人体的一个关节。边(Edges)有两种类型,空间边:与关节的自然连通性相符的边;时间边:在连续的时间步长上连接相同关节的边。在其上构造了多层的空间时间图卷积,这允许沿空间和时间维度整合信息。

图3

ST-GCN的分层级特性,消除了手工制作身体部位分配(Part Assignment)或遍历规则的需要。这不仅可以提高表达能力,从而提高性能,而且还可以很容易地将其推广到不同的环境。在通用GCN形式的基础上,团队还从图像模型的灵感中研究了设计图卷积核的新策略。

这项工作的主要贡献在于三个方面:

  • 提出ST-GCN,它通用基于图形且适用于建模动态骨架,这是第一个将基于图的神经网络应用于此任务的模型。
  • 在设计ST-GCN卷积核时提出了一些原则,可以满足骨架建模的特定要求。
  • 在两个大型数据集上进行基于骨架的动作识别,与以前使用手工制作身体部位或遍历规则的方法相比,该模型具有更高的性能,在手动设计上的工作量大大减少。ST-GCN的代码和模型公开发布。

2 Related work

图上的神经网络。将神经网络泛化为具有图结构的数据,是深度学习研究中的一个新兴主题,讨论的神经网络架构包括循环神经网络和卷积神经网络(CNN),这项工作与CNN或图卷积网络(GCN)的泛化有关。

在图上构造GCN的原理通常遵循两个方面:1)频谱透视,其中以频谱分析的形式考虑了图卷积的局部性; 2)空间透视,其中将卷积滤波器直接应用于图的节点及其邻域(Neighbors)。本文工作遵循了第二方面的精髓。通过将每个滤波器的应用限制到每个节点的1-neighbor,我们在空间域上构造CNN过滤器。

基于骨架的动作识别。人体的骨架和关节轨迹对于光照变化和场景变化具有鲁棒性,并且借助高精度的深度传感器或姿势估计算法,骨架和关节轨迹易于获得。因此,存在多种基于骨架的动作识别方法,这些方法可以分为基于手工特征的方法和深度学习方法。

第一种方法设计了一些手工特征来捕获关节运动的动力学,这些可能是关节轨迹的协方差矩阵,关节的相对位置或身体各部位之间的旋转和平移。而深度学习的最新成功,导致了基于深度学习骨架建模方法的激增。这些工作一直使用循环神经网络和Temporal CNN,以端到端的方式学习动作识别模型。

在这些方法中,许多人都强调了对人体各部位的关节建模的重要性,但是通常是使用领域知识明确分配这些部分。团队的ST-GCN是第一个将图CNN用于基于骨架的动作识别任务,它与以前方法的不同之处在于,它可以通过利用图卷积的局部性和时间动态来隐式地学习人体各部位的信息。通过消除对手动分配人体各部位的需求,该模型更易于设计,并且可以有效地学习更好的动作表示。

3 Spatial Temporal Graph ConvNet

进行活动时,人体关节在一个小的局域群中运动,称为“身体部位”。现有的基于骨架的动作识别方法已经验证了在建模中引入“身体部位”的有效性。团队认为,这种改进主要是由于与整个骨架相比,“身体部位”限制了关节轨迹在“局部区域”内的建模,从而形成了骨架序列的层次表示。在诸如图像目标识别之类的任务中,通常通过卷积神经网络的固有属性来实现层次表示和局部性,而不是手动分配目标的“身体部位”。它促使我们将CNN极具吸引力的属性引入到基于骨架的动作识别中。尝试的结果是ST-GCN模型。

3.1 Pipeline Overview

基于骨架的数据可以从运动捕获(Motion-Capture)设备中获取,也可以从视频中通过姿势估计算法获取。通常,数据是帧序列,每个帧将具有一组关节坐标集合。给定2D或3D坐标形式的人体关节序列,构建一个时空图,其中以关节为图(Graph)节点,以身体部位结构间的自然连通性和时间作为图(Graph)的边。因此,ST-GCN的输入是图节点上的关节坐标矢量。可以将其视为基于图像的CNN的类比,其中输入是由2D图像网格上的像素强度矢量形成的。多层时空图卷积操作将应用于输入数据,并在图上生成更高级别的特征图(Feature Maps)。然后,它将由标准的SoftMax分类器分类为相应的动作类别。整个模型通过反向传播,以端到端的方式进行训练。现在,介绍ST-GCN模型中的组件之Skeleton Graph Construction(关节图构造)。

3.2 Skeleton Graph Construction

骨架序列通常由每帧中每个人体关节的2D或3D坐标表示。以前使用卷积进行骨架动作识别的工作将所有关节的坐标向量串联起来,从而每帧形成一个特征向量。在团队的工作中,他们利用时空图来形成骨架序列的层次表示,特别是在具有N个关节和T帧的骨架序列上构造了无向时空图 (Undirected Spatial Temporal Graph) G =(V, E),T帧骨架同时具有体内和帧间连接。

在这种图中,节点集合V={v_ti |t=1,...,T,i=1,...,N}包括骨架序列中的所有关节。作为ST-GCN的输入,节点上的特征矢量 F(vti) 包括帧t上第i个关节的坐标矢量以及估计置信度。

团队分两步在骨架序列上构建时空图。首先,根据人体结构的连通性,将一帧内的关节采用边(Edges)进行连接,如图3所示。然后,在连续帧中,每个关节将连接到与其相同的那个关节。因此,无需手动分配身体部位即可自然定义此设置中的连接。这也使网络体系结构可以处理具有不同数量的关节或不同关节连接性的数据集。

例如,在Kinetics数据集上,我们使用来自OpenPose工具箱的2D姿态估计结果,该结果输出18个关节,而在NTU- RGB+D数据集中,团队使用3D关节Tracking结果作为输入,产生25个关节。ST-GCN可以在两种情况下运行,并提供一致的卓越性能。图3展示了一个构建的时空图的例子。

形式上,边(Edge)集合 E 由两个子集组成,第一个子集描述每个帧的骨架内连接,表示为 E_S={v_ti v_tj |(i,j)∈H},其中 H 是自然连接的人体关节的集合。第二个子集包含帧与帧之间的边,这些边将连续的帧中相同的关节连接为E_F={v_ti v_((t+1)i)}。因此,随着时间的推移,对于每个特定关节i,E_F 中对应的所有边都将代表其轨迹。

本篇简要回顾了动作识别的发展历程以及近阶段学界的相关工作进展,重点介绍了港中文的Sijie Yan团队所做工作。采用时空图卷积网络应用于动作识别,进一步介绍了ST-GCN模型中的组件之关节图构造,该模型为人类动作识别的研究打开了新的大门。

参考文献

[Yan et al. 2018] BrunSijie Yan, Yuanjun Xiong, Dahua Lin.2018. Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recognition. In arXiv: 1801.07455.

[Bruna et al. 2014] Bruna, J.; Zaremba, W.; Szlam, A.; and Lecun, Y. 2014. Spectral networks and locally connected networks on graphs. In ICLR.

[Cao et al. 2017a] Cao, Z.; Simon, T.; Wei, S.-E.; and Sheikh, Y. 2017a. Realtime multi-person 2d pose estima- tion using part affinity fields. In CVPR.

[Cao et al. 2017b] Cao, Z.; Simon, T.; Wei, S.-E.; and Sheikh, Y. 2017b. Realtime multi-person 2d pose estima- tion using part affinity fields. In CVPR.

图卷积网络进行骨骼识别代码_深兰科学院:动作识别——人体骨架时空图卷积网络的关节图构造方法简介...相关推荐

  1. 图卷积网络进行骨骼识别代码_【骨骼行为识别】2s-AGCN论文理解

    Two-Stream Adaptive Graph Convolutional Networks for Skeleton-Based Action Recognition 论文链接: https:/ ...

  2. fcn网络训练代码_另辟蹊径,中科院自动化所等首次用图卷积网络解决语义分割难题...

    使用 CNN 处理图像问题已经是常规操作,但此类方法会造成局部位置信息的损失.如何解决这个问题呢?来自中科院自动化所和北京中医药大学的研究者另辟蹊径,提出用图卷积网络解决语义分割问题. 选自arXiv ...

  3. 卷积神经网络mnist手写数字识别代码_搭建经典LeNet5 CNN卷积神经网络对Mnist手写数字数据识别实例与注释讲解,准确率达到97%...

    LeNet-5卷积神经网络是最经典的卷积网络之一,这篇文章就在LeNet-5的基础上加入了一些tensorflow的有趣函数,对LeNet-5做了改动,也是对一些tf函数的实例化笔记吧. 环境 Pyc ...

  4. 手写体识别代码_足迹:我国第一代手写输入板及联机手写体汉字输入分析系统...

    主要完成人:舒文豪教授.唐降龙教授.刘家锋博士 1982年,在学科带头人舒文豪教授的带领下,哈工大631教研室成立了文字识别研究课题组,简称文字组.在创建的初期,舒文豪教授将研究方向锁定在既探索汉字识 ...

  5. 车牌识别 代码_用31行代码构建车牌识别服务

    车牌识别 代码 A few days ago, when prowling around the internet, I came across a very interesting article, ...

  6. 手写体识别代码_【玩转腾讯云】使用API快速构建文字识别小工具之唐诗识别

    本篇推文共计1500个字,阅读时间约3分钟. 腾讯云-腾讯倾力打造的云计算品牌,以卓越科技能力助力各行各业数字化转型,为全球客户提供领先的云计算.大数据.人工智能服务,以及定制化行业解决方案.具体包括 ...

  7. python人体行为识别代码_人体行为识别(骨架提取),搭建openpose环境,VS2019(python3.7)+openpose...

    这几天开始接触人体行为识别,经过多方对比后,选择了现在最热的人体骨架提取开源库,openpose. 下面就不多说了,直接开始openpose在win10下的配置: 需求如下: 1. VS2019    ...

  8. cnn验证码识别代码_中文项目:快速识别验证码,CNN也能为爬虫保驾护航

    原标题:中文项目:快速识别验证码,CNN也能为爬虫保驾护航 机器之心专栏 作者:Nick Li 随着卷积网络的推广,现在有各种各样的快捷应用,例如识别验证码和数学公式等.本文介绍了一个便捷的验证码识别 ...

  9. micropython人脸识别代码_【雕爷学编程】MicroPython动手做(03)——零基础学MaixPy之开机测试...

    1.几个知识点 (1)MicroPython 是 Python 3 语言的精简高效实现 ,包括Python标准库的一小部分,并针对嵌入式微控制器(单片机)和受限制的环境进行了优化,它是Python延伸 ...

最新文章

  1. java多线程总结图_Java多线程总结之Queue
  2. vmlinux 反汇编_ARM Linux内核驱动异常定位方法分析--反汇编方式
  3. 微信小程序 基础2【条件渲染、swiper组件、生命周期、发起请求API】
  4. 输出所有的合法的括号组合
  5. mysql知识测试_MySQL基础知识测试
  6. 零分钟即可在容器开发套件(CDK)上实现云运营
  7. java照片墙_基于jQuery实现照片墙自动播放特效
  8. Ubuntu18.04安装最新R语言环境的方法
  9. 复数基础——虚数和复数_5
  10. 使用Python实现生产者消费者问题
  11. Jenkins管理静态资源
  12. mysql省市区递归查询_mysql递归查询
  13. 北斗sdk_北斗定位终端开发技术方案.pdf
  14. Guass-newton
  15. java流浪救助站公益志愿者管理系统
  16. 晒晒自己电脑里的常用工具
  17. 程序员遭遇精神内耗该如何“自救”?
  18. [Python嗯~机器学习]---用python3来分析和预测加州房价
  19. MTKAndroidP平台实现应用单独控制Camera某些效果参数
  20. 一维激波管(Lax shock tube)问题的数值求解

热门文章

  1. 2016年开源软件排名TOP50,最受IT公司欢迎的50款开源软件
  2. JDK Dynamic Proxy_JDK动态代理
  3. java button jbutton_java程序将Button改成JButton,该如何改?
  4. 基于系统的流量控制(Qos)
  5. 最小生成树的纠结_交流电之王-ChinaUnix博客
  6. nginx服务器防sql注入/溢出***/spam及禁User-agents
  7. 微型计算机原理王道生,微型计算机电路基础大纲2010年
  8. linux驱动访问内存,linux驱动笔记八(内存与IO访问)
  9. vue 列表 萌层 鼠标移入移出_vue鼠标移入添加class样式,鼠标移出去除样式(active)实现方法...
  10. hash算法_阿里面试官:讲一下Hashmap中hash算法!