当前位置: 代码迷 >> 综合 >> [OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)
  详细解决方案

[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)

热度:109   发布时间:2023-09-11 14:55:18.0

转载自here, 写的非常好.

论文原文地址:https://arxiv.org/abs/1611.08050(在网页右上角附近,有“PDF”字样,点击即可下载)

本论文有提供代码,最新网址:https://github.com/CMU-Perceptual-Computing-Lab/openpose

代码经本人测试可运行,安装配置以及运行过程参考本人另一篇博客:


关于文章理解或者翻译问题的,都可联系本人。


为了方便各位阅读与理解,翻译尽量将长句子拆分(如摘要开头第一句)。部分专业名词或翻译不准确,将附英文原词。

本文翻译的内容尽量忠于英文原版论文,因水平有限,如有错误欢迎讨论,如有不解之处建议参考英文原文。

如需转载请联系本人并标明出处。

文中下划线“          ”部分为注释,其中【】内的部分为英文原文的名词,()内的部分为本人的理解。


原论文撰写人不在此一一列出,感谢他们的付出与贡献,以下为本人对论文的理解和翻译(仍在翻译中。。。):


摘要

    我们提出了一个的方法,它能在有多个人的图像中高效地进行 2D【二维】姿势检测。该方法运用了 非参数表示【non-parametric representation】,我们称之为 部分亲和域【PAFs】,我们用它来学习怎么将身体部分和个体联系起来。该结构编译了全局,这允许了贪婪的自底向上分解的步骤,使得不管图片中有多少人,它都可以在实现实时性的同时保持高识别准确度。我们设计的这个结构,通过相同的顺序预测过程的两个分支,来同时学习 部分位置【part location】和它们的 关联【即部分位置的关联】。我们的方法首先用在了 最早的【inaugural】COCO 2016关键点挑战上【COCO 2016 keypoint challenge,应该是某种比赛】,而且在 检测表现(可以理解为“准确度”)和效率上,明显地超越了 MPII Multi-Person benchmark(他们是当时做的最好的)的运行效果。



1. Introduction

       人体 2D【二维】姿势判断——一个关于定位人体关键点或者称“部分”【parts】问题——已经主要集中在寻找个体的人体部分【parts,我理解为人体的关键点】。要检测出图像中多个人的姿势,将面临一系列前所未有的挑战,尤其是一些社会性的个体(可能指图像中有交流,互相遮挡的个体)首先,每一个的图像可能包含未知数量的人,他们可能出现在图像的任何位置,大小也不一定(应该指离镜头近就大,离镜头远就小)其次,例如 相互接触【contact】、闭塞【occlusion,这个不懂怎么翻译】、肢体关节【limb articulations,这个不懂怎么翻译】等由人们之间的互动引起的空间交互(反正这一句大概指不同个体之间的交流和遮挡造成的问题),都使得对 部分【parts,我理解为关键点】的关联更加困难。还有,随着图像中人的数量增加,程序的运行时间复杂度也会上升,这使得 实时监测的表现成为一个挑战(应该是指在运行时间复杂度上升的前提下,保证满足实时性的基础上,保证准确度将变得很有困难,很有挑战)

       一种常见的方法是用一个 人检测子【person detector】并在每一次检测后都呈现 单人姿势判断【single-person pose estimate】。这些 自上而下【top-down】的方法直接借助了现有的用于单人姿势判断的技术(我的理解是,这些方法直接在一个多人图像中,用了单人检测的方法不断进行探测,从而检测出多个人),而且受制于单人检测技术的前提声明【early commitment】:如果 人检测子【person detector】失败了【当图片中人之间的距离太过接近时很容易出现失败】,那么将没有东西可以对其进行恢复。(这后半句理解了很久,可能还是翻译的不好,但大概意思就是:运用了单人检测子的多人检测任务中,假如检测子检测失败了,就无法恢复了。如果有人有更好的理解,请一定联系本人进行修改,感谢!)此外,这些自上而下方法的运行时间和图像中人的数量呈正比的:每一次检测,一个单人的姿势检测子将会运行,而且图像中人越多,计算成本越大。相反,自底向上【bottom-up】方法是很受人欢迎的,因为它拥有对于前期声明【early commitment,前面运用单人检测方法那里提过】的鲁棒性(即健壮性)和具有缓解因图像中人数上升引起的运行时间复杂度上升的潜力。然而,自底向上方法没有直接运用来自其他人体部分【body parts,基本可以确定是指人体关键点】和其他人的全局条件【global contextual cues】。实际运用中,以往的自底向上方法没能维持住在效率上的提升,因为最终的划分需要巨大的全局推算成本(大概意思是指将检测出来的关键点,划分到不同个体时需要消耗巨大的运算成本)。举个例子,像 Pishchulin 等人做的开创性的研究工作。他们提出了一个自底向上方法,可以标记出候选的部分检测【part detection candidates,大概指检测出来的待分类的关键点】,并且将它们和每个个体关联起来。可是,在全连接图上求解整数线性编程问题,是属于 NP-Hard 问题【non-deterministic polynomial,非确定性多项式,NP-hard 问题通俗来说是其解的正确性能够被“很容易检查”的问题,这里“很容易检查”指的是存在一个多项式检查算法(摘自百度)】,而且解决这类问题的平均处理时间大概要几个小时。Insafutdinov 等人以基于 ResNet 的更强大的部分检测子【part detector】和基于图像的一对分数【pairwise scores】来进行实验,然后在运行时间上取得了巨大的提升,但是这种方法仍然需要花费几分钟来处理一幅图像,因为其受限于部分提议【part proposals】的数目。运用在引用的第【11】篇论文的一对表示【pairwise representation】,很难准确的回归,因此需要用到独立的逻辑回归。

       在这篇论文中,我们提出了一个针对多人姿态检测【multiperson pose estimation】的有效的方法,而且它的准确性达到了多人检测的公共标准【mutiple public benchmarks】的领先水平【state-of-the-art】。我们提出了第一个相关分数的【association scores】自底向上的表示【representation】,它是通过部分亲和域【Part Affinity Fields,PAFs】来实现的。而部分亲和域【Part Affinity Fields,PAFs】是一个在图像域【image domain】中编码了四肢的位置和方向的2D【二维】向量域【2D vector field】。我们证明了,同时推测这些探测和关联的自底向上的表示【bottom-up representations of detection】,将全局编译的非常好且有效(前面这一整句是在顺不过来,有看懂的请一定联系本人进行修改,感谢!),足以让贪心划分【greedy parse】达到一个高质量的运行结果,而且是在耗费十分小的计算成本情况下。为了项目的可重现性(估计就是让每个需要的人都能利用到这项技术),我们已经开源了项目的代码,并正式发表这史上第一个实时多人2维姿势探测系统【realtime system for multi-person 2D pose detection】



2. Method

       图 2【Figure 2】展示了我们的方法的整个流程。本系统将一副尺寸为 w×h的彩色图片【Fig. 2a】作为作为输入,输出一张2维的带有每个人人体关键点位置的图像。首先,一个前馈网络【feedforward network,前馈神经网络是一种最简单的神经网络,各神经元分层排列。每个神经元只与前一层的神经元相连。接收前一层的输出,并输出给下一层,各层间没有反馈。(摘自百度,具体请度娘:前馈神经网络)】同时预测出一组关于身体部分位置【body part locations】的二维自信映射【2D confidence map】S【Fig. 2b】,和一组关于部分亲和【part affinities】的二维向量域【2D vector fields】L,其中二维向量域的集合 L 编码了部分【parts,应该指关键点】的关联的程度【Fig. 2c】。集合 S = (S1,S2,...,SJ) J 个自信映射【confidence maps】,每个部分【parts】一个映射,其中[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)(这个条件应该是指 S1 SJ都是图像R中某一点)。集合 L = (L1,L2,...,LC) C 个向量域,四肢中每一个(即每一只手,或者每一只脚)对应一个向量域,其中[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)(这个条件应该是指 L1LC 在图像集合 R 中,而因为向量有起点和终点,所以有w×h×2,即起点在一个 w×h 中,终点在一个 w×h,综合起来就是w×h×2,这只是我个人的理解,有更好的理解的请联系博主修改,感谢!),而 Lc 中的每一个图像位置(应该是指LC中的每一个像素点,前面提过,LC指一个手臂或脚对应的向量域)编码了一个2维向量【如图 Figure 1】。最终,自信映射【confidence maps】和亲和域通过贪心推断【greedy inference】这种方式来进行划分【parse】,来为图像中每个人输出二维关键点。【Fig. 2d】


2.1. Simultaneous Detection and Association

       我们设计的结构,(如图3【Fig】),同时预测 探测自信映射【detection confidence maps】和编码了 部分到部分【part-to-part】联系的亲和域。该网络有两个分支:上方的分支,(图中米黄色框内的部分),预测 自信映射【confidence maps】;而下方的分支,(图中蓝色框内的部分),预测 亲和域【affinity field】。两个分支都是采取反复预测的结构,(如同引用的第31篇论文的S.-E. Wei等人所采用的方式),这种结构是通过连续重复的阶段【stage】来优化预测结果的,[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)其中每个阶段都有中间监管【intermediate supervision,应该是为了确保结果不会向着错误的方向发展】。

      图像首先通过一个卷积网络来进行分析(通过引用的第26篇论文中的VGG-19的前10层来进行初始化和微调),来生成一组特征映射 F,用于输入到两个分支的 第一阶段【first stage】。在第一阶段,该网络产生一组检测 自信映射【detection confidence maps】[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)和一组部分亲和域[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版),其中[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)是在第一阶段中的 推断【inference】的[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)。在每一个 后续的阶段中【subsequent stage】,两个分支在前一阶段的 预测【prediction】和原始的 图像特征 F【image feature】,将被联系起来,并且用于产生更准确的预测,

[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)

其中,[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)是在第 t 阶段中的 推断【inference】的[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)

       图 4【Figure 4】展示了 自信映射【confidence maps】和亲和域在各个 阶段【across stages】的 优化效果【refinement】。为了引导网络去 反复地【iteratively】预测第一个分支中 身体部分【body parts】的自信映射和第二个分支中的PAFs(Part Affinity Fields),我们在每个阶段的结尾处均应用了两个 损失函数【loss fuctions】,其中每个分支一个损失函数。我们用的是 估计预测【estimated prediction】与正确【groundtruth,参考网页:https://www.zhihu.com/question/22464082】的映射和域之间的L2损失【l2 loss,或者说误差】。我们对损失函数【loss fuction】进行 空间【spatially】加权来解决一个实际问题,即某些数据集并没有完全标记所有人。特别地,两个分支在 t 阶段的损失函数【loss fuction】是:

[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)

其中[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)是正确【groundtruth,参考网页:https://www.zhihu.com/question/22464082】的部分自信映射,[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)是正确的部分亲和向量域,W 是一个二进制掩码,当注释【annotation】在图像位置 P 中丢失【missing】时,[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)。该掩码用于在训练过程中避免 惩罚【penalizing】正确【true】正面【positive】的预测。(意思是指避免对正确的预测进行抑制)每个阶段的中间监管【intermediate supervision】通过 定期地补充梯度【replenishing the gradient periodically,如引用的第31篇论文】来 处理【adress】梯度 消失【vanishing】问题。总体目标【overall objective】是:

[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)


2.2. Confidence Maps for Part Detection

       为了在训练过程中估计方程式(5)中 fs,我们从注释了的2维关键点中生成 正确【groundtruth】自信映射 S*。每一个自信映射都是一个信念【belief】的2维表示,该信念即每个 像素位置【pixel location】都是独一无二的 身体部分【body part】。理想情况下,如果图像中有一个人,那么在对应的 部分【part】可见的情况下,在每个置信图【confidence map】中都应该存在一个 单锋【single peak】;如果图中有多个人,那么对于每个人 k 的每个可见部分 j 都应该有一个 峰【peak】。

       我们首先为每个人 k 生成个体置信图【individual confidence maps】[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)。设[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)是图中第 k 个人第 j 个身体部分的 准确【goundtruth】位置。那么在[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)中处在[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)位置的值定义为,

[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)

其中 δ 控制峰【peak】的延展范围。由网络预测的 正确【groundtruth】置信图是 个体置信图【individual confidence maps】经过 max算子【max operator】操作后得到的 聚集体【aggregation】,

[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)

       我们采用置信图的最大值而不是平均值,这样就可以使得 邻近的峰【close by peaks】的准确度保持 不同【distinct】,如同右图所示。在测试时,我们预测置信图(如图 4 第一行所示),并通过执行 非最大值抑制【non-maximum suppression,详情请百度“非最大值抑制”】来获得 人体部分的候选【body part candidates】。


2.3. Part Affinity Fields for Part Association

       给出一组检测出来的 人体部分【body parts】(如图 5a 中的红点和蓝点),在人的数量未知的情况下,我们要怎么组合他们【指检测出来的人体部分】来形成一个 全身姿势【full-body poses】呢?我们需要为每一对 人体部分探测【body part detections】的相关性【association】进行置信测量【confidence measure】,即 他们【指检测出来的人体部分】是否属于同一个人。一种可行的检测其相关性的方法是,在每一对处在 同一肢体上的部分【parts on a limb】之间 检测【detect】出一个额外的 中间点【midpoint】,然后检查它们在 候选部分探测【candidate part detections】之间的 关联【incident,这个意思不知道怎么翻译】,如图 5b。可是,当人们聚集到一起时,(人很容易会聚集到一起),这些中点很可能会支持了 错误的关联【false association】。(如图 5b 中的绿线所示)。这种 错误关联【false association】的出现时由于表示的两个限制【two limitationsin the  representation】:(1)它只为每个 肢体【limb】编码了位置,却没有编码方向;(2)它减少了 肢体【limb】对于一个单点的支持区域。

       为了解决这些限制,我们提出了一个 新的特征表示【novel feature representation】,即部分亲和域【part affinity fields】,它保存了 肢体的支持区域【the region of support of the limb】中的位置和方向信息(如图 5c 所示)。部分亲和是每一个肢体的二维向量域,如图 1d 所示:对于属于 每个肢体(指手臂,或腿,或躯干)的区域中的每个像素,二维向量编码了从肢体上的一个 部分【part】指向另一个 部分【part】的方向。每一种肢体(指手臂,或腿,或躯干)都有对应的亲和域来联系起它们的 身体部分【body parts】。

       现在考虑如下图中只有一个手臂的情况。设[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)是图中第 k 个人的肢体 c 的 身体部分【body parts】j1 和 j2 的 正确【groundtruth】位置。如果一个点 p 在手臂上,[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版) 处的值是一个从 j1 指向 j2 单位向量;对于所有其他点,其向量是零向量。

       为了在训练的过程中计算方程式 5 中的[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版),我们在图像的点p处定义了 正确部分亲和向量域【groundtruth part affinity vector field】[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)

[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)

       这里,[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)是一个在 肢体【limb】方向上的单位向量。肢体上的点集【The set of points on the limb】的定义是在 线段【line segment】的 距离阈值范围【distance threshold】内的点,即满足以下条件的点 p,

[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)

其中肢体宽度 δl 是以像素为单位的距离,肢体长度是[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版),而[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)是垂直于V的的向量。

       正确【groundtruth】部分亲和域 拉平【average】了图像中所有人的亲和域,

[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)

其中[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)是所有 k 个人在点 p 处的非零向量的数目(即不同人的肢体重叠处的像素平均值)。

       在测试中,我们通过在对应的 PAF【part affinity field,部分亲和域】上,沿着 连接候选部分位置【connecting the candidate part locations】的线段计算 线积分【line integral】,来测算【measure】 候选部分探测的相关性【association between candidate part detections】。换句话说,我们通过 候选肢体【candidate limb】,来测量 预测的PAF【predicted PAF,part affinity field,部分亲和域】的准线,即那些可能能通过连接 预测的身体部分【detected body parts】来获得的线。(这句翻译不知道准不准确)特别的,对两个 候选部分位置【candidate part locations】[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版),我们沿着线段对 预测部分亲和域【predicted part affinity field】Lc进行取样,来测量它们联系的置信度【confidence in their association】:

[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)

其中 p(u) 插入【interpolate,值的是】了两个 身体部分【body parts】[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)的位置,

[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)

实际中,我们通过取样和求和 u 的 等间距值【uniformly-spaced values】来 估算积分【approximate the integral】。


2.4. MultiPerson Parsing using PAFs

       我们在 探测置信图【detection confidence maps】上运用 非最大值抑制【non-maximum suppression,详情请百度“非最大值抑制”】来获得 部分候选位置【part candidate locations】的离散集【discrete set】。对于每个 部分【part】,我们可能有几个候选的,这是由于有多个人在图像中或者出现了错误的探测结果。(如图 6b 所示)。这些 部分候选【part candidates】形成了一个巨大的 有可能肢体【possible limb】的集合。我们用在 PAF【part affinity field,部分亲和域】上的线积分计算结果来给每个候选肢体【candidate limb】打分【score】,如方程式(10)所示。找出 最优划分【optimal parse】这种问题是一个 k 维匹配问题【K-dimensional matching problem】,即一个NP-Hard问题【non-deterministic polynomial,非确定性多项式,NP-hard 问题通俗来说是其解的正确性能够被“很容易检查”的问题,这里“很容易检查”指的是存在一个多项式检查算法(摘自百度)】。在本篇论文中,我们提出了一个 贪婪松弛【greedy relaxation】,它会持续地产生高质量的(即准确的)匹配。我们猜测它的原因是:由于 PAF【part affinity field,部分亲和域】网络巨大的 接收区【receptive field】,成对的相关分数【pair-wise association scores】隐式地【mplicitly】编码了 全局【global context】。

       正式地,我们首先为 众人【multiple people】获取 身体部分探测候选【body part detection candidates】的集合[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版),其中[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版),而 Nj 是 部分 j 的候选的数目【number of candidates of part j】,[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)是 身体部分 j 【body part j】的 第 m 个探测候选的位置【location of the m-th detection candidate】。这些 部分探测候选【part detection candidates】仍需要与 同一个人的其他部分【other parts from the same person】进行关联——换句话说,我们需要找到那些真正属于 连接肢体【connected limb】的 部分探测对【pairs of part detections】。我们定义了一个变量[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)来表示两个 探测候选【detection candidates】[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)是否相连的,目标是为了找到 所有可能相连的集合【set of all possible connections】的 最优分配【optimal assignment】,其中:

[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)

       如果我们考虑第 c 个 肢体【limb】的一对 部分【parts】j1 和 j2,那么寻找 最优相关【optimal association】将简化为一个 最大权重二部图匹配问题【maximum weight bipartite graph matching problem,“二部图”详细可百度】。这个的例子如图 5b 所示。在这个 图匹配问题中【graph matching problem】,图的节点是 身体部分探测候选【body part detection candidates】[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版),它的边是 探测候选对【detection candidates】之间所有可能的连接。另外,每条边由方程式 10 来确定权重——即部分亲和的总和。二部图中的配对是以 没有两条边共享同一个节点【no two edges share a node】这种方式选择出来的边的子集。我们的目标是找到 一个被选择的边有最大权重的匹配【a matching with maximum weight for the chosen edges】,

[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)

[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)

其中 Ec 是 c 类型肢体的匹配的 总体权重【overall weight】,Zc 是 c 类型肢体的 Z 的子集,Emm 是部分[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)【如方程式 10 中所定义】之间的部分亲和。方程式 13 和 14 确保 没有两个边共享一个节点【no two edges share a node】,即没有 相同类型的肢体【two limbs of the same type】分享同一个部分。我们可以用 Hungarian 算法【引用的论文的第 14 篇】来获得最优匹配。

       当需要寻找多人的全身姿势时,确定 Z 是一个 K维的匹配问题。这个问题是一个 NP Hard【non-deterministic polynomial,非确定性多项式,NP-hard 问题通俗来说是其解的正确性能够被“很容易检查”的问题,这里“很容易检查”指的是存在一个多项式检查算法(摘自百度)】而且有很多 释放【relaxation,有关于relaxation的解释:https://blog.csdn.net/lanchunhui/article/details/52422031】。在这项工作中(指前面的确定 Z 的值),我们在我们的范围【domain,域】里面给 优化【optimization】增加两个 释放【relaxation】。首先,我们选择一个 最小边数【minimal number of edges】来获得人体姿势的一颗生成树的基本骨架,而不是用完全树,如图 6c 所示。然后,我们 进一步【further】将配对问题分解成一组偶匹配问题,并 分别【independently】确定 相邻树节点【adjacent tree nodes】的匹配,如图 6d 所示。我们在 3.1 节中展示了详细的结果对比,其证明了 最小贪心推断【minimal greedy inference】在很小的【a fraction of】计算成本的情况下 很好的近似【well-approximate】出 全局结果【global solution】。原因是相邻树节点的关系被 PAFs【Part Affinity Fields】精确地模型化【modeled explicitly】了,但本质上【internally】,非相邻树节点之间的关系通过 CNN 隐式地模型化【implicitly modeled】了。这一性质的 出现【emerges】是因为 CNN 是通过一个巨大的 接收区【receptive field】进行训练的,而 PAFs 非相邻树节点的 PAFs【Part Affinity Fields】也影响着 预测的 PAF【predicted PAF】。

       通过这两个释放【relaxation】,最优化被简单地分解为:

[OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)

我们因此分别地获得了对每个肢体类型的 肢体连接候选【limb connection candidates】,通过用方程式 12 - 14。利用所有 肢体连接候选【limb connection candidates】,我们可以 组合【assemble】那些共享同一 部分探测候选【part detection candidates】的连接【connection】成多个人的全身姿势。我们对树结构的 优化方案【optimization scheme】数量级倍地快于【orders of magnitude faster】基于 全连接图【fully connected graph】的优化。


3. Results

       我们用两个针对多人姿势估计的 基准【benchmarks】来评估我们的方法:(1)MPII human 多人数据集【MPII human multi-person dataset】和(2)COCO 2016 关键点挑战数据集【COCO 2016 keypoints challenge dataset】。这两个数据集收集了不同情景【diverse scenario】下的图像, 包含许多 现实世界【real-world】的挑战,例如拥挤的人群,尺度的变化,闭塞,和接触【crowding, scale variation, occlusion, and contact】。我们的方法在 开始的【inaugural】COCO 2016 关键点挑战中 创下了新的最好的效果【set the state-of-the-art】,而且明显地超过了之前在 MPII multi-person benchmark 中 最好的结果【state-of-the-art result】。我们也提供了 运行时间分析【runtime analysis】来来 量化【quantify】系统的效率。图 10 展示了我们的算法的一些 定性结果【qualitative results】。


3.1. Results on the MPII MultiPerson Dataset

       为了对比 MPII 数据集【MPII dataset】,我们用工具包【toolkit】,基于 PCKh 阈值,来测量所有 身体部分【body parts】的 平均AP值【mAP,mean Average Precision,参考:https://blog.csdn.net/jningwei/article/details/78955536】。表 1 对比了在 有 288 个测试图片的同一子集上【如引用的第 22 篇论文中所使用的】我们的方法和其他方法的 mAP 表现,另外还有整个 MPI 测试集,还有在我们自己的验证集上的自我比较。除了这些 测量【measure】,我们比较了 短时间内【in seconds】每幅图的平均 推断/优化【inference/optimization】时间。对于那个 288 幅图的子集,比之前最先进的自底向上方法要好上【outperform,比......好】8.5%的mAP。惊人的是,我们的推断时间比起其他方法有 6 倍数量级的减少。在第 3.3 节,我们有更详细的运行时间分析。对于整个 MPII 数据集,我们的方法不用 尺度搜索【scale search】就已经比之前最先进的方法要好上 许多【a large margin】,即在mAP上 13% 的绝对增长。使用一个3级搜索【×0.7,×1 和 ×1.3】后,进一步将表现增加到 75.6% mAP。与以前的自底向上的方法的 mAP 比较,表明了我们新的特征表示【PAFs,Part Affinity Fields】关联身体部分【body parts】的有效性【effectiveness】。基于树结构,我们的 贪心划分方法【greedy parsing method】达到了比基于 全连接图结构【fully connected graph structure】的 图割优化公式【graphcut optimization formula】更好的准确度。

       在表 2 中,我们利用我们的验证集,展示了在不同骨架结构中的对比结果【如图 6 所示】,即 343 幅不在 MPII 训练集里的图像。我们基于全连接图去训练我们的模型,还有通过选择所有边来对比结果(这句不知道怎么翻译)【图 6b,通过整形线性规划来近似求解】,还有通过最小树边【图 6c,通过整数线性规划来近似求解,和图 6d,通过本篇论文中提出的贪心算法来解决】。它们相似的表现表明,使用最小边是可以的【it suffices to use minimal edges】。我们训练另一个模型,它只学习最小边,来 完全利用【fully utilize】网络容量——在这篇论文中提出的方法——如图 6d 所表示的。在保持效率的同时,这个方法比图 6c,甚至比图 6b都要效果好。这是由于其远远更小的 部分关联通道【part association channels】【树的 13 条边 VS 图的 91 条边】使它更加达到训练收敛。

       图 7a 展示了在我们验证集上的一个消除分析【ablation analysis,参考:https://www.zhihu.com/question/60170398】。对于 PCKh-0.5 的阈值,使用 PAFs【Part Affinity Fields,部分亲和域】的结果比使用 中点表示【midpoint representation】的结果要好,明确地说,是高于 单中点【one-midpoint】2.9%,高于 两中点【two intermediate points】2.3%。PAFs同时编译了人类肢体的位置和方向信息,更能区分常见的 肢体交叉重叠【common cross-over】的情况,例如手臂重叠。用未标记人的mask(不知道怎么翻译)进行训练可以进一步提升 2.3% 的性能表现,因为在训练过程中,它可以避免 惩罚【penalizing】真正正确的对损耗的预测【true positive prediction in the loss】。如果我们用我们的划分算法【parsing algorithm】来用正确【ground-truth】关键点位置,我们可以达到 88.3% 的 mAP。在图 7a 中,在不同的 PCKh 阈值下,我们利用 GT 探测子进行划分得到的 mAP 是都一个常量,这是由于没有定位错误【no localization error】。使用 GT 连接【GT connection】和我们的关键点探测,可以使 mAP 达到 81.6%。值的注意的是,我们基于 PAFs【Part Affinity Fields】的划分算法【parsing algorithm】达到了与使用 GT 连接【GT connections】相近的 mAP【79.4% VS 81.6%】。这表明基于 PAFs【Part Affinity Fields】的划分 在关联正确的部分探测时【in associating correct part detections】相当 具有健壮性的【robust】。图 7b 展示了在不同阶段的表现的比较。在 迭代改良框架【iterative refinement framework】下,mAP 单调递增。图 4 展示了经过多个阶段后,预测结果的质量的提升。


3.2. Results on the COCO Keypoints Challenge

       COCO 训练集包括超过 100K 个人的实例,其中有总共超过一百万个关键点标记【即身体部分,body parts】。该测试集包括“测试挑战”,“开发测试”和“测试标准”子集【“test-challenge”,“test-dev”and“test-standard”subsets】,其中每一个包含大概 20K 张图片。COCO 评估【COCO evaluation】定义了 目标关键点相似性【the object keypoint similarity (OKS)】并用在 10 个 OKS 阈值【OKS thresholds】上的 平均AP【mean average precision】作为主对抗度量【main competition metric】。OKS 在目标探测上和 IoU 作用一样。它由 人的尺度【scale of the person】和 预测点【predicted points】与 GT 点间的距离来计算的。表 3 展示了挑战中顶尖队伍的实验结果。值的注意的是,在人的尺度较小时( [OpenPose翻译] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ?原文翻译(注释版)),我们的方法比起自顶向下方法的准确度要低。原因是我们的方法需要同一时间内【in one shot】处理一个大得多的 尺度范围【scale range】,而这个范围由于图像中的所有人而被扩展了。(这句不知道怎么翻译)相比之下,自顶向下方法可以重新调整每个被探测区域的补丁【patch,不知该怎么翻译】到一个更大的尺寸,并因此在小尺度下承受更少的 恶化【degradation】。

       在表 4 中,我们公布了在 COCO 验证集的子集上的自我比较【self-comparisons】,即 1160 幅随机选取的图像。如果我们用 GT 边框【GT bounding box】和单人 CPM,我们可以用 CPM 来达到自顶向下方法的 上界【upper-bound】,即 62.7%。如果我们用最先进的 目标探测子【object detector】,Single Shot MultiBox Detector【SSD】,表现会下降 10%。这一比较表明自顶向下方法的表现很依赖 人探测子【person detector】。相比之下,我们的自底向上方法达到了 58.4% AP。如果我们通过在 用我们的方法划分的被估计的人的每一个重新调整尺度的范围内【each rescaled region of the estimated persons parsed by our method】应用一个单人 CPM来优化我们方法的结果,我们会获得 2.6% 整体 AP 增长【overall AP increase】。注意,我们只更新 两种方法都相当吻合【both methods agree well enough】的预测的估计【estimations on predictions】,从而提升准确度和召回率【recall,参考:https://www.zhihu.com/question/19645541】。我们期望 一个较大尺度的搜索【a larger scale search】可以进一步提升我们自底向上方法的表现。图 8 展示了一个在 COCO 验证集上我们的方法发生错误引起的崩溃。大多数的 假正确【false positives】来自不准确的定位【imprecise localization】,而不是背景混乱【background confusion】。这表明比起识别 身体部分外观【body parts appearances】,捕获空间依赖有更多的提升空间。


3.3. Runtime Analysis

       为了分析我们的方法的运行时间表现,我们收集了录有不同人数的视频。视频原始的帧大小是 1080 × 1920,在测试中我们将它重新调整大小为 368×654,使它可以适用于 GPU 的内存。该运行时间分析被执行在配有 NVIDIA GeForce GTX-1080 GPU 的笔记本电脑上。在图 8d 中,我们用人检测与单人 CMP 作为一个自顶向下比较,其运行时间大概与图像中的人数成比例。相比之下,随着图像中人数的增加,我们自底向上方法的运行时间增加得相对要慢一些。运行时间包含两个主要方面:(1)CNN 处理时间,运行时间复杂度是 O(1),随人数变化它依旧是常数;(2)多人划分时间,运行时间复杂度是 O(n?),其中 n 代表人数。可是,划分时间不是整体运行时间的主要影响因素,因为它比 CNN 的处理时间要小两个数量级,即当有9个人时,划分耗时 0.58 毫秒,而 CNN 耗时 99.6 秒。当视频中有19个人时,我们的方法达到了 8.8 fps 的处理速度。



4. Discussion

       一些有社会意义的时刻,驱使人们拍下相片和视频。我们图片收集倾向于 捕获【capture】有个人意义的时刻:生日,婚礼,假期,朝圣,运动赛事,毕业典礼,家庭合照等等。为了让机器能够理解这些图片的意思,它们需要对图片中的人有一定的理解。被赋予了这种实时感知能力的机器,能够做出反应,甚至参与到人的个体和社会行为中。

       在这篇论文中,我们考虑了【consider,不知道怎么翻译】上面所说的那种感知的一个重要组成部分:检测图像中多人的二维姿势的实时算法。我们提出了关键点关联的一个明确的非参数表示,其编码了人肢体的位置和方向信息。其次,我们设计了一个同时学习部分探测和部分关联的结构。另外,我们证明了贪心划分算法能够给身体部分提供高质量的划分,而且甚至在图像中人数增加时仍能保持效率。我们在图 9 中展示了具有代表性的失败案例。我们已经开源了我们的代码【包括训练模型】来确保 再现性【reproducibility】和鼓励该领域内的进一步研究。



Acknowledgements

       感谢 MPII 和 COCO 人体姿势数据集的作者所做的贡献。这些数据集使得二维人体姿势估计变得很有可能。这一研究由ONR Grants N00014-15-1-2358 and N00014-14-1-0595 提供部分支持。














  相关解决方案