前言

本文主要是对多视角动作识别问题以及基于骨骼点(Skeleton)模态数据的动作识别问题的一个简单的综述性文章,本文提到的方法,大部分是基于骨骼点数据进行的,为了读者可以有个更好地理解,本文将会从数据的获得开始谈起。如有谬误,请联系指出,如需转载,请注明出处,谢谢。

∇ \nabla ∇ 联系方式:

e-mail: FesianXu@gmail.com

QQ: 973926198

github: https://github.com/FesianXu

知乎专栏: 计算机视觉/计算机图形理论与应用

微信公众号


1. 骨骼点数据

1.1 骨骼点数据和其获得方法

骨骼点数据是一种landmark类型的数据,指的是用关键点去描述整个人体的动作,我们可以称之为动作描述的pose信息,因此对这类数据的估计在文献中一般也称为姿态估计(Pose Estimation),效果如下图Fig1和Fig2所示:

Fig 1. 利用Openpose[2]对RGB视频估计出来的骨骼点数据。

Fig 2. 利用Kinect v2.0[1]得到的骨骼点排序。

根据[3]中的研究,对于一个人体动作而言,可以通过 10 ∼ 12 10 \sim 12 10∼12个人体关节点有效地表达其动作内容1。为了获取到这种pose信息,按照使用器械不同或者原始模态不同,目前一般来说通过三种手段,分别是:

∇ ⇒ \nabla \Rightarrow ∇⇒ 1. 通过MoCap类似的传感器系统进行捕获

MoCap[4]全称为Motion Capture,是一种让表演者全身主要关节点穿戴好传感器之后,将传感器信息汇集到计算机中进行处理后,得到人体的关节点数据的一种系统。其得到的数据一般来说都是3D数据,既是有着关节点的(x,y,z)坐标的。

Fig 3. MoCap系统的示例,表演者需要全身穿戴传感器。

∇ ⇒ \nabla \Rightarrow ∇⇒ 2. 通过深度摄像头和彩色摄像头的配合进行伪3D骨骼点估计

随着深度摄像头的发展,通过结构光或者ToF技术,我们现在已经可以用传感器对物体的深度信息进行描述了,这点是传统的RGB摄像头所难以解决的,效果如下图所示:

Fig 4. 用Kinect捕获的深度信息,越深的颜色表示距离离摄像头越远,越浅代表越近。

基于这种技术,我们可以描述物体到摄像头的远近距离了,结合彩色摄像头提供的色彩信息,就可以对物体进行更为精确的描述。基于深度图和彩色图像,一些公司开发了可以对其进行骨骼点估计的算法[5],典型的产品如KinectRealSense。这些产品因为是基于图像进行处理的,不能观测到物体被遮挡的一面,因此这样估计出来的结果其实不是 完美的3D信息 ,其被遮挡部分或多或少都是 “估计,猜” 出来的,因此看成是 2.5D 的信息。尽管如此,大多数这类产品都提供(x,y,z)等对关节点的估计。

∇ ⇒ \nabla \Rightarrow ∇⇒ 3. 只用RGB图像进行姿态估计

尽管深度摄像头比起MoCap传感器来说的确便宜很多了,但是价格也还不够亲民,因此就产生了一类研究是关于如何仅仅依靠RGB图像对人体进行姿态估计,这个姿态估计可以是2D信息的[8],有些研究甚至是关于3D信息的[7],如Fig 5所示。

Fig 5. 利用RGB模态信息进行3D关节点的姿态估计。

目前,基于RGB的姿态估计基本上都是对遮挡部分鲁棒性不够,有部分工作[9-10]是考虑了对其进行遮挡部分的恢复的,但是似乎普遍对遮挡部分的效果都不是特别好,目前开源的最好结果似乎就是OpenPose了。(不是很了解姿态估计的进展,希望研究此的朋友给予指点)。

1.2 骨骼点数据的优劣

根据我们在1.1节讨论的,我们总结下这几类由不同手段得到的骨骼点数据的优劣点:

  1. 基于身体佩戴传感器的手段
  • 优点:姿态估计结果准确,不存在因为身体遮挡导致的估计失败问题,鲁棒性高。
  • 缺点:价格昂贵,不方便日常使用。
  1. 基于深度摄像头和彩色摄像头的手段
  • 优点:方便使用,价格较为低廉,准确率较高。
  • 缺点:对遮挡部分同样无能为力,只能通过时序上的上下文信息对某帧的遮挡部分进行推测,经常造成遮挡部分估计失败。
  1. 基于RGB视频的姿态估计
  • 优点:价格最为低廉,一般摄像头就可以部署,可以大规模使用。
  • 缺点:缺少了深度信息,导致对光照等信息比较敏感,同样无法克服遮挡部分的影响,准确率不如基于深度和彩色摄像头联合使用的效果。

从信息的角度来说,对比RGB视频信息,骨骼点信息极为紧凑,冗余量少,但是同样的,总体信息量也不如RGB模态的高,比如对于某些和物体交互的动作,光用骨骼点信息就很难完全描述。而且,因为其冗余量少,只要存在噪声,比如遮挡部分的推断噪声或者姿态估计算法不稳定导致的噪声,就会造成原信息的较大干扰,影响后续的识别或者其他任务的进行。如下图Fig 6和Fig 7所示,基于第二种和第三种方法的姿态估计通常对遮挡部分鲁棒性都不佳。

Fig 6. 用OpenPose对遮挡动作进行姿态估计,可以看到左手因为被遮挡而没有估计出来。

Fig 7. 用Kinect对遮挡动作进行姿态估计,左手部分被遮挡,但是Kinect还是对时序上的上下文进行了估计,但是这种估计常常效果不佳,容易引入估计噪声。

不过目前来说,基于骨骼点信息的应用因为其对于光照鲁棒性较强,对动作的表达能力强等特点,已经越来越受到了研究者的青睐。


Reference

[1]. Understanding Kinect V2 Joints and Coordinate System [需要特殊的上网姿势,你懂得]
[2]. OpenPose Github Project Page
[3]. Johansson G. Visual perception of biological motion and a model for its analysis[J]. Perception & psychophysics, 1973, 14(2): 201-211.
[4]. Rogez G, Schmid C. Mocap-guided data augmentation for 3d pose estimation in the wild[C]//Advances in Neural Information Processing Systems. 2016: 3108-3116.
[5]. Shotton J, Fitzgibbon A, Cook M, et al. Real-time human pose recognition in parts from single depth images[C]//Computer Vision and Pattern Recognition (CVPR), 2011 IEEE Conference on. Ieee, 2011: 1297-1304.
[6]. Kinect Introduction from Wikipedia
[7]. Pavllo D, Feichtenhofer C, Grangier D, et al. 3D human pose estimation in video with temporal convolutions and semi-supervised training[J]. arXiv preprint arXiv:1811.11742, 2018.
[8]. Cao Z, Simon T, Wei S E, et al. Realtime multi-person 2d pose estimation using part affinity fields[J]. arXiv preprint arXiv:1611.08050, 2016.
[9]. Sárándi I, Linder T, Arras K O, et al. How robust is 3D human pose estimation to occlusion?[J]. arXiv preprint arXiv:1808.09316, 2018.
[10]. Guo X, Dai Y. Occluded Joints Recovery in 3D Human Pose Estimation based on Distance Matrix[C]//2018 24th International Conference on Pattern Recognition (ICPR). IEEE, 2018: 1325-1330.


  1. 对于某些动作类别,是和物体存在有交互的,比如喝水吃东西捡起帽子捡起垃圾等,单纯用pose信息还不足以区分这些类别,那么就需要用到RGB的原始信息进行推断,这个就涉及到多模态识别了。 ↩︎

【动作识别相关,第一篇】skeleton骨骼点数据类型介绍相关推荐

  1. ps基础教程新手入门第一篇:ps界面的介绍

    欢迎来到慕恬瑶平面设计,今天给大家介绍PS基础教程新手入门第一篇: ps界面的介绍.目的让第一次接触ps的小伙伴通过ps基础教程新手入门来了解ps界面的菜单栏,工具栏已方便日后使用. 首先,打开PS ...

  2. 用不同的QR Code识别库实现二维码的识别(第一篇:opencv 和BoofCV)

    最近有个项目需要实现二维码的识别和摄像头的数据采集.在开始正式项目之前,我决定用python写几行简单的代码来测试每个库的识别效果.这次没有连续测量,也没有使用多线程识别.只是简单的测试了每个二维码的 ...

  3. linux系统第一篇(Linux系统入门介绍)

    Linux发展史 1.1操作系统是什么 操作系统(Operating  System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是配置在计算机硬件上的第一层软件,其他任何软件都必须在操作 ...

  4. 【数学建模】第一篇 matlab安装及基本介绍

    目录 1.介绍 2.Matlab 的特点与功能 1.介绍 Matlab是一种广泛应用于工程计算及数值分析领域的新型高级语言,自 1984 年推向市场以来,历经二十多年的发展与竞争,现已成为国际公认的最 ...

  5. 第一篇博客——(自我介绍篇)

  6. 基于骨骼关键点的动作识别(OpenMMlab学习笔记,附PYSKL相关代码演示)

    一.骨骼动作识别 骨骼动作识别是视频理解领域的一项任务 1.1 视频数据的多种模态 RGB:使用最广,包含信息最多,从RGB可以得到Flow.Skeleton.但是处理需要较大的计算量 Flow:光流 ...

  7. 综述:基于骨骼(skeleton)的动作识别方法

    Deep learning‐based action recognition with 3D skeleton: Asurvey 1. 简介 1.1 3D Skeleton‐based Action ...

  8. 基于骨骼的动作识别:PoseConv3D

    Revisiting Skeleton-based Action Recognition解读 摘要 1. 简介 2. Related Work 2.1 基于3D-CNN的rgb视频动作识别 2.2 基 ...

  9. 花样滑冰选手骨骼点动作识别方案总结

    文章目录 1. 赛题介绍 2. 解题思路 3. 前期探索与尝试 4. 本赛题方法 4.1 算法架构 4.2 数据处理 4.3 模型结构与创新 4.3.1 Baseline 4.3.2 模型创新 Res ...

最新文章

  1. 因论文《致谢》走红全网的中科院博士,如今已是腾讯大佬!
  2. iOS - 让view触发点击事件
  3. Highcharts 中文参考文档
  4. 吴恩达深度学习 —— 2.18(选修)逻辑回归损失函数的解释
  5. python部署到iis效率_IIS 部署 Python Django网站流程(受够了野路子)
  6. VMware vSAN 7.0 发行说明
  7. java基础 - 综合训练
  8. linux设备驱动归纳总结(三):5.阻塞型IO实现【转】
  9. 20. 有效的括号 python
  10. Windows下IIS搭建Ftp服务器
  11. php wind8.5,PHPWind Forums下载
  12. BooKuMaker0.6.04操作手册
  13. 谁说文艺青年开花店必亏,我用3年时间挣了20万
  14. 软件工程导论 银行储蓄系统_银行储蓄系统.ppt
  15. RoaringBitmap
  16. 百度编辑器上传图片后转到七牛存储
  17. ie浏览器点击无法打开问题【亲测有效哦】
  18. Softmax和关于它的交叉熵损失函数详细求导过程
  19. 绿皮书——iOS导出微信聊天记录,并用python制作词云
  20. 2.1 电子计算机的兴起

热门文章

  1. HTML如何在dl里面设置文字框,dl,dt,dd标记在网页中要充分利用
  2. 简约手绘竞聘通用PPT-朴尔PPT
  3. Dubbo遇到的异常-frozen class (cannot edit)
  4. Linux3.4.2的触摸屏驱动分析与编写
  5. 腾讯云轻量应用服务器、CVM云服务器和GPU云服务器价格表(2023版)
  6. oracle关联查询取交集,Oracle 取两个表中数据的交集并集差异集合
  7. 修改windows下用户名
  8. CTF练习WP(week1)之二
  9. OpenTelemetry系列 (三)| 神秘的采集器 - Opentelemetry Collector
  10. 志德阳光会:云游戏赛道又迎新玩家