人体骨骼关键点检测OpenPose《OpenPose: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields》读后总结

人体骨骼关键点检测OpenPose《OpenPose: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields》读后总结

  • 前言
  • 文章主要内容与贡献
    • 提出了一种实时方法来检测图像中多个人的2D姿势;
    • 基于作者公开发布的内部带注释脚数据集,展示了第一个组合的身体和脚关键点检测器;
    • 发布了OpenPose,OpenPose是第一个用于多人2D姿态检测的开源实时系统,包括身体,脚,手和面部关键点。
    • 实验结果

前言

我的博客访问量终于破万了,突然发现很久没写博客了,最近都在疯狂地跑实验和写论文,写个博客来庆祝一下。

这是一些对于论文《OpenPose《OpenPose: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields》的简单的读后总结,首先先奉上该文章的下载超链接:点击这里下载论文地址1,github网址。

这篇文章是由 Berkeley Artificial Intelligence Research lab (BAIR), University of California的Z. Cao、Robotics Institute, Carnegie Mellon University的G. Hidalgo和Y. Sheikh以及Facebook Reality Labs的T. Simon and S. Wei合作完成的。该文章于2019年7月17日出版于IEEE Transactions on Pattern Analysis and Machine Intelligence (IEEE TPAMI),该期刊是计算机方向的顶级期刊,大类学科“计算机科学”一区,小类学科“计算机:人工智能”和“工程:电子与电气”一区。

该文章研究的是二维实时多人关键点检测:

  • 15或18或25个关键点的身体/脚关键点估计。 运行时间与检测到的人数无关。
  • 6个关键点脚关键点估计。与25个关键点的身体/脚关键点检测器集成在一起。
  • 2x21关键点关键点估计。 当前,运行时间取决于检测到的人数。
  • 70个关键点面部关键点估计。 当前,运行时间取决于检测到的人数。

而通常的人体关键点检测技术的关键点数量为每人18个关键点。

文章主要内容与贡献

该文章的贡献为:

  1. 提出了一种实时方法来检测图像中多个人的2D姿势;
  2. 基于作者公开发布的内部带注释脚数据集,展示了第一个组合的身体和脚关键点检测器;
  3. 发布了OpenPose,OpenPose是第一个用于多人2D姿态检测的开源实时系统,包括身体,脚,手和面部关键点。

提出了一种实时方法来检测图像中多个人的2D姿势;

首先先来看一下OpenPose的实际效果:





人体骨骼关键点检测OpenPose《OpenPose: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields》读后总结_第1张图片
从上面这些动态图中可以看见,OpenPose的精度非常高且将人体的骨架,脸部,手和脚都精确的描绘了出来。同时鲁棒性很高,不管是复杂的背景、人员众多的地方还是有其它干扰物,其都能准确的将每个人给描绘出来。

首先先来看一下OpenPose到底是怎么一回事:

顶部:多人姿势估计。 同一个人的身体部位被链接在一起,包括脚的关键点(大脚趾,小脚趾和脚跟)。
左下:与连接右肘和手腕的肢体相对应的Part Affinity Fields(PAF)。 颜色编码方向。
右下:每个PAF的每个像素中的2D向量可编码四肢的位置和方向。
由上可知,人体的关键部位由PAF进行编码,使用向量来描绘强度和方向。

接下来是OpenPose的总体管道图:
(a)该方法将整个图像作为CNN的输入,以共同预测(b)用于身体部位检测的置信度图和(c)用于部位关联的PAF。
(d)解析步骤对关联的身体部位候选者执行一组二部匹配。
(e)最终将它们组装成图像中所有人的完整姿势。
以上就是OpenPose从输入到输出的简单流程。

接下来是详细的网络结构:
人体骨骼关键点检测OpenPose《OpenPose: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields》读后总结_第2张图片
多阶段CNN的体系结构。
第一组阶段预测PAF L t L^t Lt,而最后一组阶段预测置信度图 S t S^t St。每个阶段的预测及其对应的图像特征针对每个后续阶段进行级联。来自原始方法

Z. Cao, T. Simon, S.-E. Wei, and Y. Sheikh, “Realtime multi-person 2d pose estimation using part affinity fields,” in CVPR, 2017.

的内核大小为7的卷积被替换为内核3的卷积的3层卷积。PAF也是出自于上述论文。


上图是交叉右前臂的PAFs。 尽管在早期阶段左右身体部位和四肢之间存在混淆,但通过后期的全局推断,估计值越来越精确。

人体骨骼关键点检测OpenPose《OpenPose: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields》读后总结_第3张图片
上图是部分关联策略。
(a)两种身体部位类型的身体部位检测候选物(红色和蓝色点)和所有连接候选物(灰色线)。
(b)使用中点(黄点)表示的连接结果:正确的连接(黑线)和错误的连接(绿线)也满足入射约束。
(c)结果使用PAF(黄色箭头)。 通过在肢体支撑上方编码位置和方向,PAF消除了错误的关联。

人体骨骼关键点检测OpenPose《OpenPose: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields》读后总结_第4张图片
上图是冗余PAF连接的重要性。
(a)两个不同的人由于错误的脖子鼻子连接而被错误地合并。
(b)右耳肩膀连接的较高置信度避免了错误的鼻颈链接。

基于作者公开发布的内部带注释脚数据集,展示了第一个组合的身体和脚关键点检测器;

人体骨骼关键点检测OpenPose《OpenPose: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields》读后总结_第5张图片
上图是脚关键点分析。
(a)脚关键点注释,由大脚趾,小脚趾和脚跟组成。
(b)右脚踝未正确估计的纯身体模型示例。
(c)类似的身体+脚模型示例,脚信息可帮助预测右脚踝的位置。


上图是三个数据集的关键点注释配置。

具体的数据集下载在github中有相应链接。

发布了OpenPose,OpenPose是第一个用于多人2D姿态检测的开源实时系统,包括身体,脚,手和面部关键点。

下图是当前OpenPose的github上的官方支持清单,可以看见,Openpose几乎已经全平台制霸了,特别是连amd显卡的版本都有,这是难能可贵的。
人体骨骼关键点检测OpenPose《OpenPose: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields》读后总结_第6张图片

实验结果

以下是在MPII数据集上的结果:
人体骨骼关键点检测OpenPose《OpenPose: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields》读后总结_第7张图片

OpenPose不仅可以用来检测人体关键点,也能训练用于检测车辆关键点:

验证集中的车辆关键点检测示例。 在具有挑战性的场景下成功地估计了关键点的位置,包括汽车之间,重叠的车辆之间的重叠以及不同的比例。

当然其也会犯错,也有识别出错的时候,但是这种时候有时就算是人类也无法正确标注关键点:

上图是常见故障案例:
(a)罕见的姿势或外观,
(b)缺少或错误的零件检测,
(c)重叠的零件,即由两个人共享的零件检测,
(d)两个人的零件连接错误,
(ef)假阳性动物或动物。


上图是常见的脚的错误案例:
(a)脚或腿被身体遮挡,
(b)脚或腿被另一物体遮挡,
(c)脚可见但腿被遮挡,
(d)鞋和脚未对齐,
(e):假阴性 当脚可见但身体其余部分被遮挡时,
(f):通常不会检测到脚底(训练中很少见),
(g):左右身体部位之间的互换。

最后再放上一些作者运行出的实验结果图:

你可能感兴趣的:(人体骨骼关键点检测,卷积神经网络,深度学习)