OpenPose 2019版总结

论文时间 30 May 2019
OpenPose: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields
原作者:Zhe Cao, Gines Hidalgo, Tomas Simon, Shih-En Wei, Yaser Sheikh

总结:flyfish

数据集地址
http://domedb.perception.cs.cmu.edu/

数据采集系统
我们一直在升级我们的系统。 当前,我们的系统具有以下硬件设置:
480个VGA摄像机,640 x 480分辨率,25 fps。
使用硬件时钟相互同步31个高清摄像机,1920 x 1080分辨率,30 fps。
使用硬件时钟彼此同步,定时对齐 带有VGA摄像机的10个KinectⅡ传感器。 1920 x 1080(RGB),512 x 424(深度),30 fps。

其他传感器配合使用5个DLP投影仪。 与高清摄像机同步。

可以看一下制作数据集的设备的视频

数据集大小
当前,可以使用65个序列(5.5小时)和150万个3D骨架。

源码地址
https://github.com/CMU-Perceptual-Computing-Lab/openpose

论文地址
https://arxiv.org/abs/1812.08008

摘要

实时多人2D姿态估计是使机器能够了解图像和视频中人物的关键组件。在这项工作中,我们提出了一种实时检测图像中多个人的2D姿态的方法。所提出的方法使用非参数表示(我们称为(PAFs))来学习将身体部位与图像中的个体相关联。无论图像中的人数是多少,该自下而上的系统都可以实现高精度和实时性能。在先前的工作中,PAF和身体部位位置估计在整个训练阶段中同时进行了完善。我们证明,仅使用PAF进行细化,而不是同时进行PAF和身体部位定位细化,会导致运行时性能和准确性均得到大幅提高。我们还基于我们公开发布的内部带标注的脚数据集,展示了第一个组合关检测器用来检测身体和脚的关键点。结果表明,与顺序运行相比,组合检测器不仅减少了推理时间,而且还保持了每个组件单独的准确性。这项工作的最终成果是发布了OpenPose,OpenPose是第一个用于多人2D姿态检测的开源实时系统,包括身体,脚,手和面部关键点

Part Affinity Fields (PAFs) 如果按照字面翻译是 部分亲和力字段 ,如果翻译 部分亲和场,把亲和 先换换,按照理解就先翻译 部分仿射场,关键点仿射场、部位仿射场 这样翻译的理由如下
向量场是Vector Field,仿射变换是affine transformation
affine
adj. <数>仿射的
n. <人类学>姻亲
affinity
n. 本性爱好 / 同情心 / 密切关系 / 吸引力。

根据上下文,这个part指代的是body part,人体部位,可以理解成关键点,就像 例如人脸关键点检测,关键点就指代了耳朵,眼睛,鼻子等,指代的更加详细,就需要用图来说明。

先使用原文的PAFs,不做翻译,part也不翻译,要翻译就先翻译成关键点
keypoint与part表达的含义是可以等同的。

PAFs的作用
使用自底向上的方法即先回归出所有人的关键点,然后对关键点使用PAF进行划分,这样就把关键点分配到每个人。

1、说明(Introduction)

在这篇文章中,我们考虑了在图像和视频中获得对人的详细理解的一个核心组件:人体2D姿态估计-或者说是定位解剖关键点或“部分”的问题。人类的估计在很大程度上集中在寻找个体的身体部位。推断图像中多个人的姿态是一项独特的挑战。
首先,每幅图像可能包含未知数量的人,这些人可以出现在任何位置或人物的大小比例可以是不同的。
其次,人与人之间的相互作用会导致复杂的空间干扰,这是由于接触、遮挡或肢体关节造成的,使得关键点之间的联系变得困难。
第三,运行时复杂性往往随着图像中的人数增加而增加,这使得实时性能成为一个挑战。

注解

多人姿态估计分为Bottom-Up方法和top-down方法两个方向
1、自下而上(Bottom-Up)方法:先检测图像中人体关键点,然后将图像中多人的人体关键点分别分配到不同的人体实例上。
2、自上而下(Top-Down方法):在图像上首先运行一个人体检测器,找到所有的人体实例,对每个人体再使用关键点检测,这个做法是将人体检测和关键点检测分离开

一种常见的方法是采用人检测器并对每个检测执行单人姿态估计。这些自上而下的方法直接将现有方法用于单人姿态估计的技术,suffer from early commitment:如果人体检测器发生故障(如在人们接近时容易发生),则无法恢复。 此外,它们的运行时间与图像中的人数成比例,对于每个人检测,运行一个单人姿态估计器。 相反,自下而上的方法很有吸引力,因为它们为早期承诺提供了鲁棒性,并且有潜力使运行时复杂度与图像中的人数解耦。 但是,自下而上的方法并不直接使用来自其他身体部位和其他人的全局上下文提示。 最初的自下而上的方法没有保留效率方面的收益,因为最终解析需要昂贵的全局推断,每个图像需要花费几分钟。
suffer from early commitment
过早承诺、因过早承诺而苦不堪言、遭受及早承诺的痛苦
suffer
v. 经受 / 使遭受 / 患病 / 遭受

commitment
n. 献身 / 义务 / 承诺,保证 / 委托
在本文中,我们提出了一种有效的多人姿态估计方法,该方法在多个公共基准上具有竞争表现。 我们通过PAFs展示了关联评分的第一个自下而上(bottom-up )表示形式,PAF是一组二维向量场,可对肢体在图像域(mage domain)上的位置和方向进行编码。 关联编码为贪婪解析编码了足够的全局上下文,从而以很少的计算成本实现了高质量的结果。

limb
n. 肢体 / 翼 / 枝干

What is image domain?
https://www.quora.com/What-is-image-domain

fraction
n. 分数 / 部分 / 小部分 / 稍微
这个手稿的早期版本出现在旧版[3]中,这个版本有几个新的贡献。
首先,我们证明了PAF精化是最大限度提高准确率的关键,而身体部位预测精化并不那么重要。我们增加了网络深度,但删除了身体部位优化阶段(3.1节和3.2节)。这种改进的网络将速度和准确率分别提高了大约200%和7%(第5.2和5.3节)。
其次,我们提出了一个带有15K个人类足部实例的带标注的脚部数据集1,该数据集已经公开发布(第4.2节),并且我们展示了具有躯干和脚部关键点的组合模型可以在保持仅躯干模型的速度的同时保持其准确性(第5.5节)。
第三,通过将该方法应用于车辆关键点估计任务(第5.6节),展示了该方法的通用性。
最后,这项工作记录了OpenPose的发布[4]。这个开源库是第一个可用于多人2D姿态检测的实时系统,包括身体、脚、手和面部关键点(第4节)。我们还包括与Mask R-CNN和Alpha-Pose的运行时比较,显示了我们自下而上方法的计算优势(第5.3节)。
[3]Realtime multi-person 2d pose estimation using part affinity fields (2017),我们当前的是2019版
[4]OpenPose library https://github.com/CMU-Perceptual-Computing-Lab/openpose

2、相关工作(Related Work)

单人位姿估计

传统的关节式人体位姿估计方法是对人体各部位的局部观测值及其之间的空间相关性进行推理。
关节姿态的空间模型或者基于树形结构的图形模型,其参数化地编码跟随运动链的相邻部分之间的空间关系,或者基于非树模型,该非树形模型利用附加的边来增强树结构以捕获遮挡、对称和远距离关系。

为了获得可靠的局部身体部位观测,卷积神经网络(Convolutional Neural Networks, CNNs)得到了广泛的应用,Tompson等人极大地提高了身体姿态估计的准确性。Pfister等人的进一步使用CNNs通过设计具有较大感受野(receptive field)的网络来隐式地捕获全局空间依赖关系。Wei等人提出的卷积位姿机器结构采用了基于序列预测框架的多级结构;

迭代合并全局上下文以改进关键点置信度图(confidence map),并保留来自先前迭代的多模态不确定性。在每个阶段结束时执行中间监督(intermediate supervision),以解决训练过程中梯度消失的问题。Newell 等人还表明,在堆叠沙漏架构(stacked hourglass architecture)中,中间监督是有益的。然而,所有这些方法都假设一个人,其中给出了感兴趣的人的位置和比例。

注解

Stacked Hourglass Networks,提出于ECCV2016,主要用于人体姿态检测(human pose
estimation),结构形似堆叠起来的沙漏

intermediate supervision 不同的翻译 中间层监督,中间约束、中继监督、中间监督
如果直接对整个网络进行梯度下降,输出层的误差经过多层反向传播会大幅减小,即发生vanishing
gradients现象。为解决此问题,在每个阶段的输出上都计算损失。这种方法可以保证底层参数正常更新。类似于GoogleNet的auxiliary classfier,用来解决网络随着深度加深而梯度消失的问题。

多人姿态估计

对于多人姿态估计,大多数方法都使用了自上而下的策略,即该策略首先检测人,然后在每个检测到的区域上独立地估计每个人的姿态。虽然该策略使得针对单个人情况开发的技术直接适用,但它不仅存在对人检测的早期承诺,而且还不能捕获需要全局推断的不同人之间的空间依赖关系。
一些方法已经开始考虑人与人之间的依赖关系。Eichner等人[45]扩展的图片结构考虑了一组相互作用的人和深度排序,但仍然需要人检测器来初始化检测假设。
Pishchlin等人提出了一种自下而上的方法,该方法联合标记关键点检测候选对象(part detection candidate),并将它们与单个人相关联,并根据检测到的关键点空间偏移量回归成成对的分数。这种方法不依赖于人的检测,但是在完全连通图(fully connected graph)上求解所提出的整数线性规划是一个NP-hard问题,因此,单个图像的平均处理时间约为几个小时。

Insafutdinov等人在文献[1]的基础上,基于ResNet和基于图像的成对分数构建了更强大的关键点检测器(part detectors),并通过增量优化方法极大地提高了运行时间,但该方法仍然需要每幅图像几分钟的时间,最多只能有150个关键点(part)建议。文献[2]中使用的成对表示是每对身体部位之间的偏移向量,很难精确回归,因此需要单独的逻辑回归来将成对特征(pairwise feature)转换成概率分数(probability score)。
在早期的工作[3]中,我们提出了(PAFs),这是一种由一组流场(flow field)组成的表示,这些流场flow field编码了可变数量的人的身体关键点之间的非结构化成对关系。
与[1]和[2]相反,我们可以有效地从PAF中获得成对分数,而不需要额外的训练步骤。这些分数足以让贪婪的解析获得高质量的结果,并具有多人估计的实时性能。在这项工作的同时,Insafutdinov等人[47]进一步简化了他们的身体-部位关系图,以便在单帧模型中进行更快的推理,并将关节式人体跟踪表示为零件提案的时空分组。

后来,Newell等人 [48]提出了关联嵌入,可以将其视为代表每个关键点组的标签。 他们将具有类似标签的关键点归为个人。 Papandreou等[49]提出检测单个关键点并预测它们的相对位移,允许贪婪的解码过程将关键点分组为人物实例。 Kocabas等 [50]提出了一种姿态残差网络,该网络接收关键点和人检测,然后将关键点分配给检测到的人边界框。 Nie等 [51]提出使用从关键点候选到图像中人的质心的密集回归对所有关键点检测进行划分。

在这项工作中,我们对以前的工作做了几个扩展[3]。我们证明了PAF精化(PAF refinement )是高精度的关键和充分条件,在增加网络深度的同时去除了身体部位的置信图精化。这将导致更快、更准确的模型。我们还提供了第一个组合的身体和脚部关键点检测器,它是从将公开发布的带标注的脚部数据集创建的。证明了这两种检测方法相比较单独运行不仅减少了推理时间,而且保持了各自的准确性,最后给出了第一个用于实时身体、脚、手和面部关键点检测的开源类库OpenPose。

注解

贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。
完全图 (Complete graph)
连通图(Connected Graph)
NP-problem
(nondeterministic polynomial time) NP是指非确定性多项式(non-deterministic
polynomial,缩写NP)。所谓的非确定性是指,可用一定数量的运算去解决多项式时间内可解决的问题。

都是前人的工作,迭代改进
[45]We are family: Joint pose estimation of multiple persons
[47]Arttrack: Articulated multi-person tracking in the wild
[48] Associative embedding: End-to-end learning for joint detection and grouping
[49]Personlab: Person pose estimation and instance segmentation with a bottom-up, part-based, geometric embedding model
[50]MultiPoseNet: Fast multi-person pose estimation using pose residual network
[51]Pose partition networks for multi-person pose estimation

3、方法(Method)

图1
顶部图:多人姿态估计。属于同一个人的身体关键点被连接起来。
左下图:PAFs对应于连接右肘和手腕的肢体。颜色箭头表示编码方向,不同方向用不同颜色编码
右下图:PAFs预测的结果放大之后的图像。PAFs对应于连接右肘和手腕的肢体。颜色箭头表示编码方向,不同方向用不同颜色编码

图2展示了全部流水线
我们的方法将整张图像作为CNN的输入,预测身体关键点检测(body part detection)的置信图和 身体关键点关联(part association)的PAFs
我们最后会在图像中将关键点组成所有人的身体姿态

(A)我们的方法将整个图像作为CNN的输入,以联合预测
预测两个对象,一个是(B)用于身体关键点检测的置信图和另一个是©用于关键点关联的PAF。
(D)解析步骤执行一组二分匹配以关联身体关键点候选。
(E)我们最终为图像中的所有人组成身体姿态

图2说明了我们方法的总体流水线 ,该系统的输入一个w∗hw*hwh大小的彩色图像(图2a)
结果生成图像中的每个人生成解剖关键点的2D位置(图2e)。
首先,前馈网络(feedforward network)预测身体关键点位置和PAFs ,该身体关键点位置是2D置信图(confidence map)S (图2b), PAFs的2D向量场L
S是一个集合 一组,L也是一个集合,其编码了关键点之间的关联度(图2c)

集合S=(S1,S2,...Sj)S=(S_1,S_2,...S_j)S=(S1,S2,...Sj)有J个置信图,每个关键点一个,其中S∈Rw×h,j∈{1...J}S \in R^{w \times h},j \in \{1...J\}SRw×h,j{1...J}
集合L=(L1,L2,...,Lc)L=(L_1,L_2,...,L_c)L=(L1,L2,...,Lc)有C个向量场,每个肢体(limb)一个,LC∈Rw×h×2,c∈{1...C}L_C \in R^{w \times h \times 2},c \in \{1...C\}LCRw×h×2,c{1...C}
为清楚起见,我们将 关键点对(part pairs) 称为 肢体(limb),但有些关键点对(part pairs)不是人的四肢(例如,脸)。
LcL_cLc中每个图像位置编码为一个二维向量(图1)。
最后置信度图和PAFs
并且通过贪婪解析推理(图2d)输出图像中所有人的2D关键点。

pipeline
n. 管道 / 大浪的空心部分 / 输油管 / 传递途径
v. 用管道运输 / <计算机>运用流水线技术设计

overall
adj. 总的 / 包括一切的 / 全部的 / 全体的
adv. 总的来说 / 全部地 / 总的说来

illustrate
v. 给插图 / 举例说明 / 以图表说明 / 为…的例证

anatomical
adj. 身体结构的 / 解剖的 / 解剖学的 / 结构上的

3.1、网络结构(Network Architecture)


我们在图3中展示了网络结构, 迭代预测将关键点到关键点之间编码的仿射场 (affinity fields),用蓝色表示。检测置信图,用米色表示。迭代的预测体系架构做法是按照论文《Convolutional pose machines》做的。
通过连续阶段 t∈1,...,Tt ∈ {1, . . . , T }t1,...,T,并在每一个阶段使用(intermediate supervision) 改善预测
网络深度相对于《Realtime multi-person2d pose estimation using part affinity fields,” in CVPR, 2017.》(文本所描述论文之前的版本)增加。在最初的方法中,网络体系结构包括几个7x7卷积层。在我们目前的模型中,通过用3个连续的3x33x33x3核代替每个7x77x77x7卷积核,在减少计算量的同时保留了 感受野(receptive field)。前者的运算次数为2×72−1=972×7^2−1=972×721=97,而后者仅为51次。
此外,按照类似于DenseNet[52]的方法,3个卷积核中的每一个的输出是级联的。非线性层数增加了两倍,网络既能保持较低层次的特征,又能保持较高层次的特征。第5.2节和第5.3节分别分析了精度和运行时速度的改进。

successive
adj. 连续的 / 接连的 / 继承的 / 依次的

refine
v. 精炼 / 精制 / 深化 / 改善

with respect to
释义关于, (至于)谈到;

consecutive
adj. 连续的 / 按逻辑顺序的 / <语法>结果的

beige
n. 米色,淡棕色
adj. 米色的,淡棕色的

respectively
adv. 分别地;各自地,独自地

3.2、同时检测和关联(Simultaneous Detection and Association)

图像由CNN(VGG-19的前10层初始化并微调)分析,生成一组特征图(feature map)F作为输入的第一阶段。在此阶段,网络生成一组(PAFs)。
L1=ϕ1(F)L^1=\phi^1(F)L1=ϕ1(F),其中ϕ1\phi^1ϕ1指的是用于在阶段1进行推理的CNN。在每个后续阶段中来自前一阶段的预测和原始图像特征F连接并用于产生精细化预测,

Lt=ϕt(F,Lt−1),∀2≤t≤TP\mathbf{L}^{t}=\phi^{t}\left(\mathbf{F}, \mathbf{L}^{t-1}\right), \forall 2 \leq t \leq T_{P} Lt=ϕt(F,Lt1),2tTP

ϕt\phi^{t}ϕt指在阶段t用于推理的CNN
TPT_PTP 总的PAF阶段数

经过TPT_PTP次迭代,从最新的PAF预测开始,重复置信图检测过程
STP=ρt(F,LTP),∀t=TPSt=ρt(F,LTP,St−1),∀TP<t≤TP+TC\begin{aligned} \mathbf{S}^{T_{P}} &=\rho^{t}\left(\mathbf{F}, \mathbf{L}^{T_{P}}\right), \quad \forall t=T_{P} \\ \mathbf{S}^{t} &=\rho^{t}\left(\mathbf{F}, \mathbf{L}^{T_{P}}, \mathbf{S}^{t-1}\right), \forall T_{P}<t \leq T_{P}+T_{C} \end{aligned} STPSt=ρt(F,LTP),t=TP=ρt(F,LTP,St1),TP<tTP+TC
ρt\rho^{t}ρt指在阶段t用于推理的CNN
TCT_CTC 总的置信图(confidence map)阶段数。

这种方法与旧版不同,后者在每个阶段都细化了PAF和置信度图分支(confidence map branch)。因此,每个阶段计算量减少一半。我们在第5.2节中经验地观察到,改进的affinity field 改善了置信图结果,而相反的情况并不成立。直观地说,如果我们查看PAF通道输出,就可以猜测身体部位的位置,但是,如果我们看到一堆没有其他信息的身体关键点,就不能将它们解析成不同的人。


图4显示了跨阶段的affinity field的细化。置信图结果是在最新和最精确的PAF预测之上预测的,从而导致各置信图阶段之间的差异几乎不明显
为了指导网络迭代地预测第一个分支中身体关键点(body part)的PAF和第二个分支中的置信图(confidence map),我们在每个阶段的末尾应用了一个损失函数。
我们使用估计预测( estimated prediction)与groundtruth图和场之间的L2损失.。这里,我们对损失函数进行空间加权,以解决一些数据集不能完全标注所有人的实际问题。具体地,阶段tit_iti的PAF分支的损失函数和阶段tkt_ktk的置信度分支的损失函数为:

fLti=∑c=1C∑pW(p)⋅∥Lcti(p)−Lc∗(p)∥22fStk=∑j=1J∑pW(p)⋅∥Sjtk(p)−Sj∗(p)∥22\begin{aligned} &f_{\mathbf{L}}^{t_{i}}=\sum_{c=1}^{C} \sum_{\mathbf{p}} \mathbf{W}(\mathbf{p}) \cdot\left\|\mathbf{L}_{c}^{t_{i}}(\mathbf{p})-\mathbf{L}_{c}^{*}(\mathbf{p})\right\|_{2}^{2}\\ &f_{\mathbf{S}}^{t_{k}}=\sum_{j=1}^{J} \sum_{\mathbf{p}} \mathbf{W}(\mathbf{p}) \cdot\left\|\mathbf{S}_{j}^{t_{k}}(\mathbf{p})-\mathbf{S}_{j}^{*}(\mathbf{p})\right\|_{2}^{2} \end{aligned} fLti=c=1CpW(p)Lcti(p)Lc(p)22fStk=j=1JpW(p)Sjtk(p)Sj(p)22
Lc∗{L}_{c}^{*}Lc是groundtruth PAF

Sj∗{S}_{j}^{*}Sjgroundtruth 关键点置信图(part confidence map)

当标注在像素p处缺失时,W是具有W§=0的二进制掩码。掩码是用来避免在训练期间惩罚 true positive的预测的。每个阶段的intermediate supervision 通过周期性地补充梯度来解决消失梯度问题[20]。总体目标是
公式6
f=∑t=1TPfLt+∑t=TP+1TP+TCfStf=\sum_{t=1}^{T_{P}} f_{\mathbf{L}}^{t}+\sum_{t=T_{P}+1}^{T_{P}+T_{C}} f_{\mathbf{S}}^{t} f=t=1TPfLt+t=TP+1TP+TCfSt

3.3、用于关键点检测的置信图(Confidence Maps for Part Detection)

在训练过程中求公式6中 的fSf_SfS的值,我们从标注的二维关键点生成groundtruth信度图S∗S^∗S 。每个置信图都是信念的2D表示,即特定身体部位可以位于任何给定像素中。理想情况下,如果图像中出现一个人,则在每个置信度图中,如果相应关键点可见,则应存在一个峰值(peak); 如果图像中有多个人,则每一个人kkk的每个可见关键点jjj都应有一个峰值(peak)

我们首先为每个人kkk,生成个人置信图Sj,k∗\mathbf{S}_{j, k}^{*}Sj,k
xj,k∈R2\mathbf{x}_{j, k} \in \mathbb{R}^{2}xj,kR2是图像中每个人KKK的身体关键点jjj的groundtruth位置,
位置的值p∈R2\mathbf{p} \in \mathbb{R}^{2}pR2 in Sj,k∗\mathbf{S}_{j, k}^{*}Sj,k定义是

Sj,k∗(p)=exp⁡(−∥p−xj,k∥22σ2)\mathbf{S}_{j, k}^{*}(\mathbf{p})=\exp \left(-\frac{\left\|\mathbf{p}-\mathbf{x}_{j, k}\right\|_{2}^{2}}{\sigma^{2}}\right) Sj,k(p)=exp(σ2pxj,k22)

其中σ\sigmaσ控制峰值的扩散。网络预测的groundtruth置信图是通过最大运算符的单个置信图的聚集(aggregation)
Sj∗(p)=max⁡kSj,k∗(p)\mathbf{S}_{j}^{*}(\mathbf{p})=\max _{k} \mathbf{S}_{j, k}^{*}(\mathbf{p}) Sj(p)=kmaxSj,k(p)

我们取置信图中的最大值而不是平均值,以便附近峰值的精度保持明显.在测试时,我们预测置信度图,并通过执行非最大值抑制来获得身体关键点候选。

peak
n. 山峰 / 巅 / 尖顶 / 最高点
v. 达到最大值 / 达到高峰 / 使达到最高点 / 使竖起
adj. 最好的 / 最大值的 / 高峰的 / 最高的

individual
adj. 单个的 / 个人的 / 独特的 / 个性的
n. 个人 / 个体 / 与众不同的人 / 有独创性的人

distinct
adj. 可辨别的 / 有区别的 / 分开的 / 独特的

3.4、用于关键点关联的PAFs(Part Affinity Fields for Part Association)

(a)两种身体关键点类型(例如脖子和肩膀)的身体关键点检测候选对象(红点和蓝点)以及所有连接候选对象(灰线)。
(b)连接结果使用中点(黄点)的表示:正确连接(黑线)以及错误连接(绿线),绿线也满足关联约束(incidence constraint)。
(c)使用PAFs的结果(黄色箭头)。通过肢体的支持,对位置和方向进行编码,PAFs消除了错误关联。

给定一组检测到的身体关键点(在图5a中显示为红色和蓝色点),我们如何组装它们以形成未知人数的全身姿势? 我们需要对每对身体部位检测都具有关联性的置信度,即它们属于同一个人。 一种测量关联的可能方法是检测每对零件之间的附加中点
如图5b所示,检查肢体并检查其在候选部位检测之间的发生率。然而,当人们挤在一起时-就像他们倾向于做的那样-这些中点。
可能支持错误关联(图5b中用绿线表示)。这种错误的关联是由表示中的两个限制引起的:
(1)它只编码每个肢体的位置,而不编码每个肢体的方向;
(2)它将肢体的支撑区域减少到单个点。

PAFs解决了这些限制。它们保留肢体支撑区的位置和方向信息(如图5c所示)。每个PAF是每个肢体的二维向量场,也如图1d所示。对于属于特定肢体的区域中的每个像素,二维向量编码从肢体的一个部分指向另一个部分的方向。每种类型的肢体都有一个相应的PAF,将其两个相关的身体部位连接起来。

form
n. 形状 / 种类 / 方式 / 表格
v. 构成 / 创立 / 使成形 / 逐渐出现

incidence
n. 发生率 / 税务负担 / 影响 / 影响范围


  考虑一个的简单肢体,设Xj1,k\mathbf{X}_{j_{1},k}Xj1,kXj2,k\mathbf{X}_{j_{2},k}Xj2,k是图像中人k的肢体c的身体关键点j1j_1j1j2j_2j2的groundtruth位置。如果一个点ppp落在肢体上,则Lc,k∗(p)\mathbf{L}_{c, k}^{*}(\mathbf{p})Lc,k(p)的值是一个从j1j_1j1指向j2j_2j2的单位向量;对于其它点,向量的值为0。
  为了在训练中计算公式6中的 fLf_LfL的值,我们定义groundtruth PAF,Lc,k∗\mathbf{L}_{c, k}^{*}Lc,k 在图像上的ppp点,可以表示为

Lc,k∗(p)={vif pon limb⁡c,k0otherwise \mathbf{L}_{c, k}^{*}(\mathbf{p})=\left\{\begin{array}{ll} {\mathbf{v}} & {\text { if } \mathbf{p} \text { on } \operatorname{limb} c, k} \\ {0} & {\text { otherwise }} \end{array}\right. Lc,k(p)={v0ifponlimbc,kotherwise

这里是
v=(xj2,k−xj1,k)/∥xj2,k−xj1,k∥2\mathbf{v}=\left(\mathbf{x}_{j_{2}, k}-\mathbf{x}_{j_{1}, k}\right) /\left\|\mathbf{x}_{j_{2}, k}-\mathbf{x}_{j_{1}, k}\right\|_{2} v=(xj2,kxj1,k)/xj2,kxj1,k2 在肢体方向上的单位向量。

肢体上的点集被定义为线段距离阈值内的点,即
0≤v⋅(p−xj1,k)≤lc,kand ∣v⊥⋅(p−xj1,k)∣≤σl0 \leq \mathbf{v} \cdot\left(\mathbf{p}-\mathbf{x}_{j_{1}, k}\right) \leq l_{c, k} \text { and }\left|\mathbf{v}_{\perp} \cdot\left(\mathbf{p}-\mathbf{x}_{j_{1}, k}\right)\right| \leq \sigma_{l} 0v(pxj1,k)lc,kandv(pxj1,k)σl

肢体的宽度σl\sigma_{l}σl是像素距离(以像素为单位的距离),
肢体的长度是lc,k=∥xj2,k−xj1,k∥2l_{c, k}=\left\|\mathbf{x}_{j_{2}, k}-\mathbf{x}_{j_{1}, k}\right\|_{2}lc,k=xj2,kxj1,k2
v⊥\mathbf{v}_{\perp}v是与v垂直的向量。

groundtruth PAF 平均图像中所有人的affinity field
Lc∗(p)=1nc(p)∑kLc,k∗(p)\mathbf{L}_{c}^{*}(\mathbf{p})=\frac{1}{n_{c}(\mathbf{p})} \sum_{k} \mathbf{L}_{c, k}^{*}(\mathbf{p}) Lc(p)=nc(p)1kLc,k(p)
average 理解为 动词的平均
ppp是所有kkk个人在ppp点的非零向量的数目。
  在测试期间,我们通过计算沿连接候选关键点位置的线段的相应PAF上的线积分来测量候选关键点检测之间的关联。 换句话说,我们测量预测的PAF与候选肢体的对齐方式,该肢体将通过连接检测到的身体关键点而形成。 具体来说,对于两个候选关键点位置dj1\mathbf{d}_{j_{1}}dj1dj2\mathbf{d}_{j_{2}}dj2,我们沿线段对预测PAF ,LcL_cLc进行采样,以测量对其关联的置信度:

E=∫u=0u=1Lc(p(u))⋅dj2−dj1∥dj2−dj1∥2duE=\int_{u=0}^{u=1} \mathbf{L}_{c}(\mathbf{p}(u)) \cdot \frac{\mathbf{d}_{j_{2}}-\mathbf{d}_{j_{1}}}{\left\|\mathbf{d}_{j_{2}}-\mathbf{d}_{j_{1}}\right\|_{2}} d u E=u=0u=1Lc(p(u))dj2dj12dj2dj1du

其中p(u)p(u)p(u)插补两个身体部位的位置dj1\mathbf{d}_{j_{1}}dj1dj2\mathbf{d}_{j_{2}}dj2
p(u)=(1−u)dj1+udj2\mathbf{p}(u)=(1-u) \mathbf{d}_{j_{1}}+u \mathbf{d}_{j_{2}} p(u)=(1u)dj1+udj2

实际上,我们通过对uuu的等距值进行采样和求和来近似积分

3.5、基于PAF的多人解析(Multi-Person Parsing using PAFs)

我们对检测置信度图(confidence map)执行非最大值抑制,以获得关键点候选位置的离散集合。对于每个部分,由于图像中有多个人或误报(false positive),我们可能有几个候选者(图6b)。这些候选关键点定义了一大组可能的肢体。我们使用公式11中定义的PAF上的线积分计算对每个候选肢体进行评分。寻找最优解析的问题对应于已知的NP-hard的K维匹配问题(图6C)。在这篇文章中,我们提出了一种贪婪放松(greedy relaxation),它能持续地产生高质量的匹配。我们推测其原因是由于PAF网络的大感受野,成对关联分数隐含地编码了全局上下文(global context).

在形式上,我们首先获取了多人的一组身体关键点检测候选(body part detection candidate)DJ\mathcal{D}_{\mathcal{J}}DJ
其中DJ={djm:forj∈{1…J},m∈{1…Nj}}\mathcal{D}_{\mathcal{J}}=\left\{\mathbf{d}_{j}^{m}:\right. for \left.j \in\{1 \ldots J\}, m \in\left\{1 \ldots N_{j}\right\}\right\}DJ={djm:forj{1J},m{1Nj}}
其中 NjN_{j}Nj是候选关键点jjj的数量
djm∈R2\mathbf{d}_{j}^{m} \in \mathbb{R}^{2}djmR2是身体关键点jjj的第mmm个检测候选的位置

这些关键点检测候选对象仍然需要与来自同一个人的其他关键点相关联-换句话说,我们需要找到实际上是连接的肢体的关键点检测对。

我们定义一个变量zj1j2mn∈{0,1}z_{j_{1} j_{2}}^{m n} \in\{0,1\}zj1j2mn{0,1}
指示两个检测候选dj1m\mathbf{d}_{j_{1}}^{m}dj1mdj2n\mathbf{d}_{j_{2}}^{n}dj2n是否是连接的

目标是在所有可能连接的集合中找到最优分配
Z={zj1j2mn:forj1,j2∈{1…J},m∈{1…Nj1},n∈{1…Nj2}}\mathcal{Z}=\left\{z_{j_{1} j_{2}}^{m n}:\right.for \left.j_{1}, j_{2} \in\{1 \ldots J\}, m \in\left\{1 \ldots N_{j_{1}}\right\}, n \in\left\{1 \ldots N_{j_{2}}\right\}\right\}Z={zj1j2mn:forj1,j2{1J},m{1Nj1},n{1Nj2}}

如果我们考虑用于第ccc个肢体的单个关键点j1j_1j1j2j_2j2对(例如,颈部和右臀部),则寻找最佳关联简化为最大权重二分图匹配问题。这个案例如图5b所示。在该图匹配问题中,图的节点是身体关键点检测候选Dj1D_{j1}Dj1Dj2D_{j2}Dj2,而边都是检测候选对之间的可能连接。此外,每条边都按公式11加权(part affinity aggregate)。二分图中的匹配是以这样一种方式选择的边的子集,即没有两条边共享一个节点。我们的目标是为选定的边找到权重最大的匹配,
下面的公式依次是 公式13,公式14,公式15
max⁡ZcEc=max⁡Zc∑m∈Dj1∑n∈Dj2Emn⋅zj1j2mns.t. ∀m∈Dj1,∑n∈Dj2zj1j2mn≤1∀n∈Dj2,∑m∈Dj1zj1j2mn≤1\begin{aligned} \max _{\mathcal{Z}_{c}} E_{c}=\max _{\mathcal{Z}_{c}} & \sum_{m \in \mathcal{D}_{j_{1}}} \sum_{n \in \mathcal{D}_{j_{2}}} E_{m n} \cdot z_{j_{1} j_{2}}^{m n} \\ \text { s.t. } & \forall m \in \mathcal{D}_{j_{1}}, \sum_{n \in \mathcal{D}_{j_{2}}} z_{j_{1} j_{2}}^{m n} \leq 1 \\ & \forall n \in \mathcal{D}_{j_{2}}, \sum_{m \in \mathcal{D}_{j_{1}}} z_{j_{1} j_{2}}^{m n} \leq 1 \end{aligned} ZcmaxEc=Zcmaxs.t.mDj1nDj2Emnzj1j2mnmDj1,nDj2zj1j2mn1nDj2,mDj1zj1j2mn1

其中,EcE_cEc是来自肢体类型ccc的匹配的总权重
ZcZ_cZc是肢体类型ccc的Z的子集
EmnE_{mn}Emn是公式11中关键点dj1m\mathbf{d}_{j_{1}}^{m}dj1mdj2n\mathbf{d}_{j_{2}}^{n}dj2n之间的part affinity

公式14和公式15强制没有两条边共享节点,即没有相同类型的两条肢体(例如,左前臂)共享部件。我们可以使用匈牙利算法来获得最佳匹配。

当涉及到寻找多个人的全身姿势时,确定Z是一个K维匹配问题。这个问题是NP-hard,并且存在许多松弛(relaxation)。在这项工作中,我们在优化中增加了两个松弛(relaxation),专门针对我们的领域。首先,我们选择最少数量的边来获得生成树骨架。而不是使用完整的图形,如图6C所示。其次,我们将匹配问题进一步分解为一组二分匹配子问题。并且独立地确定相邻树节点中的匹配,如图6d所示。我们在5.1节中给出了详细的比较结果,它说明了最低限度的。贪婪推理以计算成本的一小部分很好地逼近全局解。这是因为相邻树节点之间的关系是由PAF显式建模的,而在内部,不相邻树节点之间的关系是由CNN隐式建模的。这一特性的出现是因为CNN是用大的感受野进行训练的,并且来自非相邻树节点的PAF也会影响预测的PAF。

有了这两个松弛(relaxation),优化就可以简单地分解为
公式16
max⁡ZE=∑c=1Cmax⁡ZcEc\max _{\mathcal{Z}} E=\sum_{c=1}^{C} \max _{\mathcal{Z}_{c}} E_{c} ZmaxE=c=1CZcmaxEc

因此,我们使用公式13、14、15、独立地获得每种肢体类型的肢体连接候选( limb connection candidate)。对于所有肢体连接候选,我们可以将共享相同关键点检测候选的连接组装成多个人的全身姿势。我们在树形结构上的优化方案比在完全连通图[1]、[2]上的优化快几个数量级。


我们目前的模型还结合了冗余的PAF连接(例如,耳朵和肩膀之间、手腕和肩膀之间等)。这种冗余特别提高了拥挤图像中的准确性,如图7所示。为了处理这些冗余连接,我们稍微修改了多人解析算法。虽然最初的方法从根组件开始,但我们的算法根据它们的PAF分数对所有可能的成对连接进行排序。如果连接尝试连接已分配给不同人的2个身体关键点,则算法会识别出这将与置信度更高的PAF连接相冲突,并且随后会忽略当前连接。

incorporate
v. 纳入 / 使组成公司
adj. 合并的 / 文>具体化的 / 一体化的 / 组成公司的

4、OpenPose


越来越多的计算机视觉和机器学习应用需要将二维人体姿势估计作为其系统的输入。为了帮助研究社区提高他们的工作效率,我们公开发布了第一个实时多人系统OpenPose,它可以在单个图像上联合检测人体、脚、手和面部关键点(总共135个关键点)。整个系统的示例见图8。

4.1、系统(System)

可用的2D身体姿态估计库,例如Mask R-CNN或Alpha-Ppose,需要它们的用户实现pipeline的大部分、他们自己的读帧(例如,视频、图像或相机流)、用于可视化结果的显示、与结果一起生成的输出文件(例如,JSON或XML文件)等。此外,现有的面部和身体关键点检测器没有结合,对于每个目的需要不同的库。OpenPose克服了所有这些问题。它可以在不同的平台上运行,包括Ubuntu、Windows、MacOSX和嵌入式系统(例如,NVIDIA Tegra TX2)。它还提供对不同硬件的支持,例如CUDA GPU、OpenCL GPU和仅CPU设备。用户可以在图像、视频、网络摄像机和IP摄像机流之间选择输入。他还可以选择是显示结果还是将其保存在磁盘上,启用或禁用每个检测器(身体、脚、脸和手),启用像素坐标归一化,控制要使用的GPU数量,跳过帧以进行更快的处理,等等。
  OpenPose的推理时间超过了所有最先进的方法,同时保持了高质量的结果。它能够在配备NVIDIA GTX 1080 Ti的机器上以大约22 FPS的速度运行,同时保持高精度(第5.3节)。OpenPose已经被研究社区用于许多视觉和机器人主题,例如。人重新识别[56]、人脸和身体的基于GAN的视频重定目标[57]和身体[58]、人机交互[59]、3D姿态估计[60]和3D人体网格模型生成[61]。此外,OpenCV库在其深度神经网络(DNN)模块中包含了OpenPose和我们基于PAF的网络架构。

4.2 扩展脚部关键点检测(Extended Foot Keypoint Detection)

5、数据集和评估(Datasets And Evaluations)


我们在多人姿态估计的三个benchmark上评估了我们的方法:

(1)MPII人类多人数据集,由3844个训练组和1758个测试组组成,这些组由具有14个身体关键点的高度关节姿势的多个相互作用的个体组成;(2D human pose estimation: new benchmark and state of the art analysis)

(2)COCO关键点挑战数据集,需要同时检测人并定位每个人的17个关键点(身体部位)(包括12个人体关键点和5个面部关键点);(Microsoft COCO: common objects in context)

(3)我们的Foot数据集,它是COCO KeyPoint数据集中15K标注的子集。这些数据集收集不同场景中的图像,这些场景包含许多真实世界的挑战,例如拥挤、比例变化、遮挡和接触。我们的方法在首届COCO 2016 KeyPoints挑战赛上名列前茅,并大大超过了之前MPII多人基准的最先进结果。我们还与Mask、R-CNN和Alpha-pose进行了运行时分析比较,量化了系统的效率,并分析了主要的故障案例。

5.1、在MPII多人数据集上的结果(Results on the MPII Multi-Person Dataset)


为了在MPII数据集上进行比较,我们使用工具包[1]测量遵循[66]中的“PCKh”度量的所有身体关键点的mAP(mean Average Precision)。表1比较了我们的方法和其他方法在官方MPII测试集上的mAP(mean Average Precision)性能。我们还比较了每个图像的平均推理/优化时间(以秒为单位)。对于288幅图像子集,我们的方法比以前最先进的自下而上方法[2]提高了8.5%的mAP。值得注意的是,我们的推理时间减少了6个数量级。我们在5.3节中报告了更详细的运行时分析。对于整个MPII测试集,我们的方法在没有尺度搜索的情况下已经大大超过了以前最先进的方法,即在mAP上绝对增加了13%。使用3个尺度搜索(×0.7、×1和×1.3)进一步将mAP的性能提高到75.6%。mAP与以前自下而上的方法的比较表明,我们的新特征表示PAF在关联身体关键点方面是有效的。基于树结构,我们的贪婪解析方法比基于全连通图结构的图割优化公式获得了更好的精度[1]、[2]。
【1】Deepcut: Joint subset partition and labeling for multi person pose estimation
【2】Deepercut: A deeper, stronger, and faster multi-person pose estimation model
【66】2D human pose estimation: new benchmark and state of the art analysis


图6b:通过整数线性规划近似求解)和最小树边
图6c:通过整数线性规划近似求解
图6d:通过本文提出的贪婪算法求解
表2中,我们显示了图6中所示不同骨架结构的比较结果。我们从原始MPII训练集中创建了一个由343张图像组成的自定义验证集。我们基于完全连通图训练我们的模型,并通过选择所有边(图6b)和最小树边(图6c,图6d)。这两种方法产生的结果相似,说明使用最小边就足够了。我们训练最终的模型只学习最小的边来充分利用网络容量,如图6d(sep)所示。这种方法在保持效率的同时优于图6c甚至图6b。所需的较少数量的关键点关联channel树的13条边与图的91条边)有助于训练收敛。

facilitate
美 [ fə’sɪlɪteɪt ]
英 [ fə’sɪlɪteɪt ]
v. 使更容易 / 推动 / 便于 / 促进


图11a显示了我们在验证集上的ablation analysis,对于PCKh-0.5[66]的阈值,我们的PAF方法的精度比一个中点高2.9%,比两个中间点高2.3%,总体上优于中点表示法。PAF同时编码了人体肢体的位置和姿态信息,能够更好地区分常见的交叉情况,例如重叠的手臂。使用未标记的人的mask进行训练可以进一步提高2.3%的性能,因为它避免了在训练期间的损失中惩罚真正的正预测。如果我们使用地道的关键点。
使用我们的解析算法,我们可以得到88.3%的地图。在图11A中,由于没有定位误差,使用我们的解析和GT检测获得的mAP在不同的PCKh阈值上是恒定的。将GT连接与关键点检测结合使用,可获得81.6%的mAP。值得注意的是,我们的基于PAF的解析算法获得了与基于GT连接的相似的映射(79.4%比81.6%),这表明基于PAF的解析在关联正确的关键点检测方面是相当健壮的。图11b显示了各阶段的性能比较。映射随迭代细化框架单调增加。图4显示了预测在各个阶段的质量改进。

5.2、在COCO关键点挑战赛上的结果(Results on the COCO Keypoints Challenge)

COCO训练集由100多万个关键点标记的10万多个Person实例组成。测试集包含“test-challenge”和“test-dev”子集,每个子集大约有20K个图像。COCO评估定义对象关键点相似度(OKS、object keypoint similarity),并使用超过10 OKS阈值的mAP作为主要竞争度量[70]。OKS在目标检测中起到与IOU相同的作用。它是根据人的比例(scale)以及预测点和GT点之间的距离计算出来的。


表3显示了挑战中顶尖团队的结果。值得注意的是,当只考虑较高比例(scale)的人时,我们的方法有较高的精确度下降。
noteworthy
adj. 重要的 / 不寻常的 / 值得注意的 / 显著的


在表4中,我们报告了COCO验证集的自我比较。如果我们使用GT bounding box和单人CPM[20],使用CPM可以达到自上而下方法的上限,即62.7%的AP.如果我们使用最先进的对象检测器SSD( Single Shot MultiBox Detector )[74],性能下降了10%。这种比较表明,自上而下方法的性能在很大程度上依赖于人检测器。相比之下,我们最初的自下而上方法达到了58.4%的AP。如果我们通过将单人CPM应用于由我们的方法解析的估计人的每个重新缩放的区域来改进结果,我们得到2.6%的总体AP增加。我们只更新两种方法大致一致的预测的估计,从而提高精确度(precision)和召回率(recall)。新的体系结构在没有CPM精化(refinement)的情况下,在提高速度×2的同时,精确度比原来的方法提高了大约7%。


我们在表5中分析了PAF精化对置信度图估计的影响。我们将计算限定为最多6个阶段,在PAF和置信度图分支上不同地分布。我们可以从这个实验中提炼出三个结论。首先,PAF需要更多的阶段才能收敛,并且从优化阶段获益更多。其次,增加PAF通道的数量主要是提高(true positive)的数量,即使它们可能不太准确(较高的AP 50)。然而,增加置信度映射信道的数量进一步提高定位精度(更高的AP 75)。第三,我们证明了当使用PAF作为先验时,关键点置信度图的精确度大大提高,而当使用PAF作为先验时,关键点置信度图的绝对精确度降低了4%。即使只有4个阶段(3PAF-1 CM)的模型也比首先预测置信度图的计算成本更高的6阶段模型(3 CM-3PAF)更准确。其他一些进一步提高了新模型相对于原始工作的精度的补充是RELU层上的PReLU和Adam优化,而不是带动量(momentum)的SGD。与[3]不同的是,我们没有用CPM[20]来改进当前的方法,以避免损害速度。

【3】Realtime multi-person 2d pose estimation using part affinity fields
【20】Convolutional pose machines
OpenPose(2019)4

5.3、推理运行时分析(Inference Runtime Analysis)


在此基础上,我们比较了3种最先进、维护良好、应用广泛的多人位姿估计库OpenPose、Mask R-CNN和Alpha-Ppose,分析了图12中3种方法的推理运行时性能。Megvii(Face++)和MSRA[44]GitHub库不包含它们使用的人检测器,并且只提供GitHub库不包含它们使用的人检测器进行了比较,并且只给出了给定的被裁剪的人的位姿估计结果。因此,我们无法知道它们的确切运行时性能,因此被排除在此分析之外。MASK给定的被裁剪的人的位姿估计结果。在此基础上,我们对Megvii(Face++)和MSRA[44] R-CNN仅与NVIDIA显卡兼容,因此我们在使用NVIDIA 1080Ti的系统上进行分析。随着自上而下的临近,Mask R-CNN、Alpha-Pose、Megvii和MSRA的推理时间大致与图像中的人数成正比。更准确地说,它们与他们的个人探测器提取的建议数量成正比。相反,我们的自下而上方法的推理时间与图像中的人数是不变的。
OpenPose的运行时间主要由两部分组成:
(1)CNN处理时间,其复杂度为O(1)O(1)O(1),随人数的变化而不变;
(2)多人解析时间,其复杂度为O(N2)O(N^2)O(N2),其中n表示人数。然而,解析时间比CNN处理时间少两个数量级。例如,999个人的解析需要0.58ms0.58ms0.58ms,而CNN需要36ms36ms36ms
roughly
adv. 粗暴地 / 凶暴地 / 粗糙地 / 大体上

【44】Simple baselines for human pose estimation and tracking

在表6中,我们分析了OpenPose发布的模型,即[3]中的MPII和COCO模型与新的身体+脚模型在推理时间上的差异。
我们新的组合模型不仅精确度更高,而且在使用GPU版本时比原来的模型快2倍。有趣的是,与原始型号相比,CPU版本的运行时间要慢5倍。新的体系结构由更多的层组成,这需要更高的内存量,而操作的数量要少得多。显卡似乎更多地受益于操作次数的减少,而CPU版本似乎由于内存要求较高而明显变慢。OpenCL和CUDA的性能不能直接比较,因为它们需要不同的硬件,特别是不同的GPU品牌。
【3】Realtime multi-person 2d pose estimation using part affinity fields

5.4、速度和准确性之间的权衡(Trade-off between Speed and Accuracy)

在目标检测领域,Huang 等表明区域提出的方法(例如,Faster-rcnn)实现了更高的精度,而single-shot方法(例如,YOLO,SSD提供了更高的运行时间性能。类似地,在人体姿态估计中,我们观察到自上而下的方法也比自下而上的方法具有更高的精度,但速度更慢,特别是对于多人的图像。自下而上方法精度较低的主要原因是分辨率有限。虽然自上而下的方法单独裁剪每个被检测到的人并将其送入他们的网络,但自下而上的方法必须一次送入整个图像,导致每人的分辨率较低。例如,Moon等人显示了对我们在[3]中原始工作的改进(通过应用更大的裁剪图像补丁)导致比其他自上而下方法的改进更高的精确度。随着硬件变得更快并增加内存,具有更高分辨率的自底向上方法可能能够缩小相对于自上而下方法的精度差距。

此外,当前的人体姿态性能度量纯粹基于关键点精度,而忽略了速度。为了提供更完整的比较,我们在图13中显示了COCO挑战赛前几名的速度和准确度。考虑到这些结果,应该选择单尺度OpenPose以获得最大速度,选择AlphaPose以获得最大精度,并选择METU在两者之间进行权衡。其余的方法都比这3种方法中的至少一种更慢,精度也更低。总体而言,自上而下的方法(例如,AlphaPose)为人数较少的图像提供了更好的效果,但对于人数较多的图像,其速度会显著下降。我们还观察到精确度度量可能是误导的。在第5.2节中,我们看到PersonLab[49]比我们的方法实现了更高的准确性。然而,我们的多尺度方法同时提供了比它们报告运行时结果的版本更高的速度和准确性。请注意,在[49]中没有为他们最准确(但速度较慢)的模型提供运行时结果。
【49】Personlab: Person pose estimation and instance segmentation with a bottom-up, part-based, geometric embedding model
【50】 METU MultiPoseNet: Fast multi-person pose estimation using pose residual network
considerably
adv. 非常;很;相当多地

5.5、在脚关键点数据集上的结果(Results on the Foot Keypoint Dataset)

5.6、车辆姿态估计(Vehicle Pose Estimation)

5.7、故障案例分析(Failure Case Analysis)


我们分析了当前方法在MPII、COCO和COCO+foot验证集中失败的主要情况。图15示出了主要的身体故障情况的概述,而图16示出了主要的脚故障情况图15a指的是非典型姿势和倒立示例,其中预测通常失败。在视觉上增加旋转增强似乎部分解决了这些问题,但是COCO验证集的全局精度降低了约5%。另一种选择是使用不同的旋转来运行网络,并保持姿势具有更高的置信度。身体遮挡也会导致false negative和 high localization误差。此问题继承自数据集标注,其中不包括被遮挡的关键点。在人重叠的高度拥挤的图像中,由于重叠的PAFs使得贪婪的多人解析失败,该方法倾向于合并来自不同人的标注,而忽略其他人的标注。动物和雕像也经常导致 false positive错误。这个问题可以通过在训练中添加更多的负面例子来缓解,以帮助网络区分人类和其他类人图形。

humanoid
n.
仿真机器人;类人动物
adj.
有人的特点的;人形机

6、结论 (conclusion)

实时多人2D位姿估计是使机器能够直观地理解和解释人类及其交互的关键组件。在这篇文章中,
我们提出了一个显式的非参数(explicit nonparametric )表示的关键点关联,它同时编码了人类肢体的位置和方向。
其次,我们设计了一个联合(jointly)学习关键点检测和关联的体系结构。
第三,我们证明了贪婪的解析算法足以产生高质量的身体姿态解析,并且在不考虑人数的情况下保持了效率。
第四,我们证明了PAF精化(refinement)比结合PAF和身体部位的精化要重要得多,从而大大提高了运行时的性能和准确率。
第五,我们证明了将身体和脚部估计结合到单个模型中,可以单独提高每个组件的精度,并减少顺序运行它们的推理时间。我们已经创建了一个由15K Foot KeyPoint实例组成的Foot KeyPoint数据集,我们将公开发布该数据集。
最后,我们将这项工作开源为OpenPose,这是第一个用于身体、脚、手和面部关键点检测的实时系统。今天,该库被广泛用于许多涉及人类分析的研究课题,如人类重新识别(human re-identification)、重新定位(retargeting)和人机交互。此外,OpenPose已包含在OpenCV库中。

OpenPose 2019版总结相关推荐

  1. datatable 汇总_【2019 版】中国石油大学(北京)计算机考研信息、资料汇总

    院校简介 中国石油大学(北京)(China University ofPetroleum,Beijing)简称中石大(CUP),创建于1953年,由中华人民共和国教育部直属,位列国家首批"2 ...

  2. 《工业大数据白皮书》2019版正式发布

    来源:悟空智能科技 近日,由中国电子技术标准化研究院.全国信息技术标准化技术委员会大数据标准工作组主编,工业大数据产业应用联盟联合主编,联想集团等多家联盟成员企业参编的<工业大数据白皮书(201 ...

  3. 中文课程!台大李宏毅机器学习公开课2019版上线

    授权转载自机器之心, 未经许可禁止二次转载 台大教授李宏毅的机器学习课程经常被认为是中文开放课程中的首选.李教授的授课风格风趣幽默,通俗易懂,其课程内容中不仅有机器学习.深度学习的基础知识,也会介绍 ...

  4. 基于python的modbus协议编程_IM5D.6B利用(2.4G)无线模块实现远程控制(基于智能编程任务赛,2019版)...

    点击「蓝色微信名」关注更多比赛信息 引  言 在<中国儿童青少年威盛中国芯计算机表演赛>从第十七届活动开始,搭建了一个全新的互联网技术支持平台,实现了网络在线比赛,在全国建立了三十个省级赛 ...

  5. 04737 c++ 自学考试2019版 第六章课后练习 程序设计题 1

    /* * 04737 c++ 自学考试2019版 第六章课后练习 * 程序设计题 1 * 需求:将第五章习题中设计的交通工具...... */#include<iostream> #inc ...

  6. 04737 c++ 自学考试2019版 第五章程序设计题 1

    /* * 04737 c++ 自学考试2019版 第五章课后练习 * 程序设计题 1 * 需求:交通工具包含汽车,汽车又包含..... */#include<iostream> #incl ...

  7. 04737 c++ 自学考试2019版 第四章课后练习 程序设计题 2

    /* * 04737 c++ 自学考试2019版 第四章课后练习 * 程序设计题 2 * 需求:为第二章习题设计中的二维坐标系下的类point,重载<< >> */ //标准流 ...

  8. 04737 c++ 自学考试2019版 第四章课后程序设计题1

    /** * 04737 c++ 自学考试2019版 * 第四章程序设计题1 * 为程序4-2中的类myComplex重载乘法运算符 */ #include <iostream>//标准流 ...

  9. 04737 c++ 自学考试2019版 第二章课后程序设计题 3

    /* * 04737 c++ 自学考试2019版 第二章课后练习 * 程序设计题 3 * 需求:设计并实现一个类MyLine */ //标准流 #include<iostream> //科 ...

最新文章

  1. soundex mysql_MySQL SOUNDEX()用法及代码示例
  2. string.format大全
  3. selenium得到一个动态页面
  4. logStash收集日志并存储到Elasticsearch
  5. 牛客练习赛15A-吉姆的运算式(Python正则表达式瞎搞)
  6. mysql force_MySQL force Index 强制索引概述
  7. 积分上下限无穷_数分笔记——5种广义积分敛散性的基本方法
  8. wifi密码破解软件,谨慎使用!
  9. c语言青蛙跳答案是多少啊,青蛙跳台阶问题(示例代码)
  10. matlab的fft点数,MATLAB快速傅里叶变换(fft)函数详解
  11. Android SDK接口封装自动化测试
  12. shell脚本之IP计算器
  13. 外贸询盘、对话、常用话术英语(上)
  14. SAP云上自适应跨可用区高可用方案
  15. Anddroid IM来电铃声通过耳机播放
  16. 鹰软件测试简历自我,276关于老鹰的老炮儿片头的练习测试
  17. Linux服务器取证研究,linux系统取证
  18. 51job爬虫-xpath
  19. 网站被黑有什么影响?为什么网站被黑了?如何防止网站被黑?
  20. 用Python分割九宫格图片发朋友圈

热门文章

  1. 白帽子讲WEB安全读书笔记(慢慢更新)
  2. Stable_baselines3 tensorboard可视化
  3. arduino-esp32:LVGL项目(二)初始化以及控制模块
  4. C# Spire简单实现导出word(去水印)
  5. 国内首次!完成4K超高清电视5G网络传输测试
  6. [乐意黎原创] 地铁和轻轨的区别, 中国目前有几个城市有地铁
  7. 192.168.49.1登录_192.168.1.1登陆页面
  8. matlab频谱校正方法,离散频谱的比值校正法
  9. H3C网络搭建入门(H3C、Oracle、CRT三种软件的关联,以便于模拟实际)
  10. Python matplotlib常见问题