OpenPose: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields 翻译

4 篇文章 0 订阅
3 篇文章 0 订阅

OpenPose: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields

OpenPose:使用部件亲和场的实时多人二维姿态评估算法

论文原文地址:https://arxiv.org/pdf/1812.08008.pdf

本论文代码网址:https://github.com/CMU-Perceptual-Computing-Lab/openpose

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

1 引言

在本文中,我们考虑了对图像和视频中的人进行详细了解的一个核心组成部分:人类2D姿势估计-或定位解剖学关键点或“部分”的问题。 人体姿态估计主要集中在寻找个体的身体部位。 推断图像中多个人的姿势提出了一系列独特的挑战。【实现人体姿态估计时常遇到的3大挑战(1),每个图像可能包含未知数量的人,这些人可以在任何位置或任何比例出现。(2),由于人体活动和人与人之间的运动,会出现人与人之间的遮挡、身体躺卧等情况; (3),运行时间往往随着映像中人数的增加而增加,即图像中的人越多检测时间越长。

常见的方法一般是先采用人员检测器检测到人然后对每个检测到的人执行单人姿势估计。 这些自上而下的方法直接利用了现有技术来进行单人姿势估计,但会遭受早期承诺(即如果检测器未检测到画面上的人,也就没有下一步的姿态估计了,过度依赖人员检测器):如果人员检测器发生故障(如在人们附近时容易发生这种情况),将导致无法进行姿态估计。 此外,它们的运行时间与图像中的人数成正比,对于每个人检测,运行一个单人姿势估计器。 相比之下,自下而上的方法很有吸引力,因为它们为早期承诺提供了鲁棒性,并且有可能使运行时复杂性与图像中的人数脱钩。 但是,自下而上的方法并不直接使用来自其他身体部位和其他人的全局上下文提示。 最初的自下而上的方法([1],[2])没有保留效率方面的收益,因为最终解析需要昂贵的全局推断,每个图像需要花费几分钟。

解析: (1) 常用的姿态估计的方法:行人检测 + 姿态估计(自上而下的方法),缺点: 姿态估计受到行人检测的影响,运行时间和人数成比例;
(2) 最初的自下而上的方法在前期的鲁棒性更稳健,还可能将运行时复杂性和图像中的人数进行分离;缺点: 没有保留效率方面的收益,因为最终解析需要昂贵的全局推断,每个图像需要花费几分钟。

在本文中,提出了一种有效的多人姿势估计方法,该方法在多个公共基准上具有良好表现。 我们展示了第一个通过部分亲和力场(PAF)来关联评分的自下而上的系统,部分亲和力场是一组二维矢量场,它们在图像域上编码肢体的位置和方向。 我们证明,同时推断出这些检测和关联的自下而上的表示形式,可以为贪婪的解析编码足够的全局上下文,从而以较高的计算成本实现高质量的结果。
解析: (1) 本文提出多人姿态估计方法:通过PAFs来表征第一个自下而上的特征表示,PAFs是2D适量场用于编码肢体在图像域的位置和方向;即对最初的自下而上方法进行了改进。
(2) 本文证明同时计算自下而上的检测和关联编码,能够为后续的解析过程提供足够的全局上下文,同时做到小部分计算成本和高质量结果。

该论文的早期版本出现在[3]中。这个新版本做出了一些新的贡献。首先,我们证明了PAF细化对于最大程度地提高准确性至关重要,而身体部位预测细化并不那么重要。我们增加了网络深度,但删除了身体部位的细化阶段(第3.1和3.2节)。这种完善的网络将速度和准确性分别提高了约200%和7%(第5.2和5.3节)。其次,我们展示了一个已公开发布的带有脚注的15K人脚实例的脚数据集(第4.2节),并且我们展示了可以训练具有身体和脚关键点的组合模型,从而在保持其仅身体模型的速度的同时保持准确性(第5.5节)。第三,我们通过将其应用于车辆关键点估计任务来证明我们方法的一般性(第5.6节)。最后,这项工作记录了OpenPose [4]的发布。这个开源库是第一个可用的实时系统,用于多人2D姿势检测,包括身体,脚,手和面部关键点(第4节)。我们还包括了对Mask R-CNN [5]和Alpha-Pose [6]的运行时比较,显示了自下而上方法的计算优势(第5.3节)。

解析: 新版本的姿态所做的一些改进 (1) 证明了PAF细化对于最大程度地提高准确性至关重要,而身体部位预测细化并不那么重要。增加网络深度,但移除身体部位的细化阶段,其网络模型将速度和准确性分别提高了约200%和7%。
(2) 本文证明,可以训练具有身体和脚部关键点的组合模型,从而在保持模型准确性的同时保留和身体模型一样的速度。
(3) 发布了第一个可用的实时系统OpenPose,用于多人2D姿势检测,包括身体,脚,手和面部关键点。

2相关工作

铰接式人体姿势估计的传统方法是对身体部位的局部观测结果以及它们之间的空间依赖性进行推理。关节姿势的空间模型是基于树状结构的图形模型[7],[8],[9],[10],[11],[12],[13],这些模型参数化了之间的空间关系运动链之后的相邻零件,或非树模型[14],[15],[16],[17],[18],它们通过附加边来增强树结构以捕获遮挡,对称性和长距离关系。为了获得对身体部位的可靠局部观察,卷积神经网络(CNN)已被广泛使用,并且大大提高了人体姿势估计的准确性[19],[20],[21],[22],[23] ],[24],[25],[26],[27],[28],[29],[30],[31],[32]。汤普森等。 [23]使用了带有图形模型的深度架构,该图形模型的参数是与网络一起学习的。 Pfister等。 [33]进一步使用CNN通过设计具有大接收域的网络来隐式捕获全局空间依赖性。卷积姿态机的结构由Wei等人提出。 [20]使用了基于顺序预测框架[34]的多级架构。迭代地合并全局上下文以完善零件置信度图,并保留先前迭代中的多峰不确定性。在每个阶段的末期都将执行中级监督,以解决训练过程中梯度消失的问题[35],[36],[37]。 Newell等。 [19]还表明,中间监督在堆叠的沙漏架构中是有益的。但是,所有这些方法都假设一个人,并给出了感兴趣的人的位置和规模。

对于多人姿势估计,大多数方法[5],[6],[38],[39],[40],[41],[42],[43],[44]使用自上而下的方法该策略首先检测人,然后在每个检测到的区域上独立估计每个人的姿势。尽管这种策略使针对单人案例开发的技术可直接应用,但它不仅遭受对人的检测的早期承诺,而且无法捕获需要全局推断的不同人员之间的空间依赖性。一些方法已经开始考虑人际依赖性。 Eichner等。 [45]扩展了图像结构,以考虑到一组交互的人和深度顺序,但仍然需要人检测器来初始化检测假设。 Pishchulin等。 [1]提出了一种自下而上的方法,该方法联合标记零件检测候选对象并将其与各个人相关联,并从检测到的零件的空间偏移中得出成对分数。该方法不依赖于人的检测,但是,在完全连接的图上求解建议的整数线性规划是一个NP难题,因此单个图像的平均处理时间约为数小时。 Insafutdinov等。 [2]建立在[1]之上,具有基于ResNet [46]和图像相关的成对分数的更强大的部分检测器,并通过增量优化方法极大地改善了运行时间,但是该方法仍然需要为每张图像花费几分钟,但有一个限制最多150个部分提案中。 [2]中使用的成对表示是每对身体部位之间的偏移向量,很难精确回归,因此需要单独的逻辑回归将成对特征转换为概率分数。

在较早的工作[3]中,我们提出了部分亲和场(PAF),它是由一组流场组成的,该流场对可变数量的人的身体部位之间的非结构化成对关系进行编码。与[1]和[2]相反,我们可以从PAF高效地获得成对分数,而无需额外的训练步骤。这些分数足以使贪婪的分析获得具有实时性能的高质量结果,以进行多人估计。与这项工作同时进行的是Insafutdinov等。 [47]进一步简化了他们的身体-部位关系图,以便在单帧模型中更快地进行推理,并将明确表达的人体跟踪公式化为零件建议的时空分组。后来,Newell等人。 [48]提出了关联嵌入,可以将其视为代表每个关键点组的标签。他们将具有类似标签的关键点归为个人。 Papandreou等。 [49]提出检测单个关键点并预测它们的相对位移,允许贪婪的解码过程将关键点分组为人物实例。 Kocabas等。 [50]提出了一个姿态残差网络,该网络接收关键点和人员检测,然后将关键点分配给检测到的人员边界框。 Nie等。 [51]提出使用从关键点候选到图像中人的质心的密集回归对所有关键点检测进行划分。

在这项工作中,我们对先前的工作进行了几处扩展[3]。 我们证明,PAF细化对于实现高精度至关重要且足够,在增加网络深度的同时消除了对身体部位的置信度图的细化。 这将导致更快,更准确的模型。 我们还将展示第一个组合的身体和脚关键点检测器,该检测器是由带注释的脚数据集创建的,并将公开发布。 我们证明,结合两种检测方法,与独立运行相比,不仅减少了推理时间,而且还保持了其各自的准确性。 最后,我们介绍OpenPose,这是第一个用于实时检测身体,脚,手和面部关键点的开源库。

解析:就是前人做的一些工作存在的缺点,而自己的算法可以克服

3 算法

论文核心内容
图2说明了我们方法的总体流程。 该系统将大小为w×h的彩色图像作为输入(图2a),并为图像中的每个人生成解剖学关键点的二维位置(图2e)。 首先,前馈网络预测身体部位位置的一组2D置信度图S(图2b)和部件亲和场(PAF)的一组2D矢量场L,它们对各个部位之间的关联度进行编码(图2b、 2c); 集合 S = ( S 1 , S 2 , . . . , S J ) S =(S_1,S_2,...,S_J) S=S1S2...SJ具有J个置信度图,每个部分一个,其中 S j ∈ R w × h S_j∈R^{w×h} SjRw×hj∈{1 … J}。 集合 L = ( L 1 , L 2 , . . . , L C ) L =(L_1,L_2,...,L_C) L=L1L2...LC具有C矢量场,每肢一个,其中 L c ∈ R w × h × 2 L_c∈R^{w×h×2} LcRw×h×2c∈{1 … C}。 为了清楚起见,我们将每对部件称为四肢,但有些部件对不是人的四肢(例如面部)。 L c L_c Lc中的每个图像位置都编码一个2D向量(图1)。 最后,通过贪婪推断来解析置信度图和PAF(图2d),以输出图像中所有人的2D关键点。
在这里插入图片描述
解析: 这里讲解了openpose系统进行人体姿态检测的总体流程,首先将彩色图像作为输入,传递到前馈网络中,这里使用的是vgg-19的前10层并进行了微调,其会输出一个特征图F;然后将F作为第一阶段的输入,输入到后面的网络结构中获得PFA和置信度图,最后通过贪婪推断来解析置信度图和PAF,以输出图像中所有人的2D关键点。
具体流程可参考3.2节

3.1网络架构

我们的体系结构(如图3所示)可迭代地预测人体关键点亲和场,该人体关键点亲和场用于编码部件之间的关联(以蓝色显示)和检测置信度图(以米色显示)。 继[20]之后的迭代预测体系结构完善了连续阶段 **t ∈ {1, . . . , T}**的预测,并在每个阶段进行中间监督。
在这里插入图片描述

相对于[3],网络深度增加了。在原始方法中,网络体系结构包括几个7x7卷积层。 在我们当前的模型中,通过用3个连续的3x3内核替换每个7x7卷积内核,保留了接收场,同时减少了计算量。 前者的运算数为97,而后者的运算数仅为51。此外,按照类似于DenseNet [52]的方法,将3个卷积内核中的每一个的输出进行级联。 非线性层的数量增加了两倍,并且网络可以同时保留图像的较低维度特征和较高维度特征。 5.2和5.3节分别分析了准确性和运行时速度的提高。

解析: 对网络结构进行了优化,使用了3x3的卷积核替换7x7的卷积核,减少了计算量,提升了网络运行速度,同时使用了类似残差网络的结构,提升了网络准确度。

3.2同时检测和关联

图像由CNN分析(由VGG-19的前10层初始化[53]并进行微调),生成一组特征图F作为第一阶段的输入。 在此阶段,网络生成一组部件亲和场(PAF) L 1 = φ 1 ( F ) L_1 =φ_1(F) L1=φ1F,其中 φ 1 φ_1 φ1指的是在阶段1进行推理的CNN。在每个后续阶段中,将前一阶段的预测与原始图像特征F合并在一起,并用于生成精确的预测,
L t = φ t ( F , L t − 1 ) , ∀ 2 ≤ t ≤ T P , ( 1 ) L_t = φ_t(F,L_{t-1}), ∀2 ≤ t ≤ TP ,(1) Lt=φt(F,Lt1),2tTP,(1)

其中 φ t φ_t φt表示在阶段 t t t 进行推理的CNN,TP表示总的PAF阶段数。 TP迭代之后,从最新的PAF预测开始,重复进行置信度图检测的过程,
S T P = ρ t ( F , L T P ) , ∀ t = T P , ( 2 ) S_{TP} = ρ_t(F,L_{TP} ), ∀t = TP , (2) STP=ρt(F,LTP),t=TP,(2)
S t = ρ t ( F , L T P , S t − 1 ) , ∀ T P < t ≤ T P + T C , ( 3 ) S_t = ρ_t(F,L_{TP} , S_{t-1}), ∀TP < t ≤ TP + TC , (3) St=ρt(F,LTP,St1),TP<tTP+TC,(3)

其中 ρ t ρ_t ρt 是指在阶段 t t t 进行推理的CNN,而TC是指总置信度图阶段的数量。

这种方法与[3]不同,在[3]中,每个阶段都优化了PAF和置信度图分支。 因此,每个阶段的计算量减少了一半。 我们在5.2节中通过经验观察到,改进的部件亲和场预测可以改善置信度图结果,而相反情况却不成立。 直观地,如果我们查看PAF通道输出,则可以推测出身体部位的位置。 但是,如果我们看到一堆没有其他信息的身体部位,就无法将它们解析为不同的人。
在这里插入图片描述
图4显示了跨阶段人体关键点亲和场的优化。置信图结果是在最新和最精确的PAF预测基础上进行预测的,因此在置信图阶段之间几乎没有明显的差异。 为了引导网络迭代地预测第一分支中身体部位的PAF和第二分支中的置信度图,我们在每个阶段的末尾应用损失函数。 我们在估计的预测与groundtruth之间使用L2损失。 在这里,我们对损失函数进行空间加权,以解决一个实际问题,即某些数据集不能完全标记所有人。 具体而言,在阶段 t i t_i ti 的PAF分支的损失函数和在阶段 t k t_k tk 的置信度图分支的损失函数为:

其中 L c ∗ L^∗_c Lcgroundtruth PAF S j ∗ S^∗_j Sjgroundtruth置信度图, W W W 是当像素 p p p 缺少注释时 W ( p ) = 0 W(p)= 0 W(p)=0 的二进制掩码。 该掩码用于在训练过程中避免惩罚true positive的预测(意思是指避免对正确的预测进行抑制); 每个阶段的中间监督通过定期补充梯度来解决梯度消失的问题[20]。 总体目标是
在这里插入图片描述

3.3 部件检测的置信度图

为了在训练阶段评估 f s f_s fs ,根据标注了2D的关键点的图生成GT置信图,每一个置信图表示身体的一个特定的部位在图像上某点发生的可能性;如果图像只有一个人每个置信图理论上只有一个峰值;当图像中有多人时,对应每一个人 k k k 都对应一个可见的身体部位 j j j 的峰值;
解析:由前面可知,一幅图上共有J个置信度图,J表示了人体部件的数量,即每一个人体部件都存在一幅置信度图,而每一幅置信度图表示一个身体部件,那么如果图上只有一个人,则一个人身体部件只有一个,所以每一幅置信度图上只会存在一个峰值;比如预测一个人左手腕的置信度图,该部件可能出现在该图的任何位置,但只有在正确位置上的可能性最大,故只有一个峰值,其他地方的可能性很低;

我们首先为每个人k生成个人的所有置信度图 S j , k ∗ S^ ∗_{j,k} Sj,k; 设 x j , k ∈ R 2 x_{j,k}∈R^2 xj,kR2为图像中第k人第j个身体部件的GT位置。 S j , k ∗ S^ ∗_{j,k} Sj,k p ∈ R 2 p∈R^2 pR2处的值定义为

在这里插入图片描述

其中σ控制峰的扩展。网络在位置 P P P的预测值对应的GT值计算是如下图所示是取最大值
S j ∗ ( p ) = m a x k S j , k ∗ ( p ) , ( 8 ) S^∗_j (p) = max_k S^∗_{j,k}(p), (8) Sj(p)=maxkSj,k(p)(8)
在这里插入图片描述
如上图所示,我们采用置信度图的最大值而不是平均值,以使附近峰的精度保持明显。 在测试时,我们预测置信度图,并通过执行非最大抑制来获得身体部位候选者。

3.4 部件关联的部件亲和场

![在这里插入图片描述](https://img-blog.csdnimg.cn/20200814112920132.png#pic_center
给定一组检测到的身体部位(在上图a中显示为红色和蓝色点),我们如何把它们组装成未知人数的全身姿势?我们需要对每对身体部件检测的关联性进行置信度度量,即它们属于同一个人。一种测量关联的可能方法是检测肢体上每对部件之间的附加中点,并在候选部件检测之间检查其发生率,如上图b所示。但是,当人们挤在一起时(人很容易会聚集到一起),这些中点很可能支持错误的关联(上图b中的绿线所示)。这种假联想是由于表示方面的两个局限性引起的:(1)它仅编码每个肢体的位置,而不编码方向; (2)将肢体的支撑区域减少到单个点。
在这里插入图片描述
部件亲和场(PAF)解决了这些限制。它们保留了肢体支撑区域的位置和方向信息(如图c所示)。每个PAF是每个肢体的2D矢量场,也如上图所示。对于属于特定肢体的区域中的每个像素,2D矢量编码从肢体一个部位指向另一部位的方向。每种肢体都有一个对应的PAF,将其两个相关的身体部位连接在一起。
在这里插入图片描述
考虑上图所示的单个肢体。 令 x j 1 , k x_{j_1,k} xj1,k x j 2 , k x_{j_2,k} xj2,k是图像中第k个人从肢体c两个对应的身体部位 j 1 j_1 j1 j 2 j_2 j2的GT位置。 如果点p位于肢体c上,则 L c , k ∗ ( p ) L ^∗_{ c,k}(p) Lc,k(p)的值是从 j 1 j_1 j1指向 j 2 j_2 j2的单位向量; 不在这个肢体上的点值为0;

为了在训练过程中评估式(6)中的 f L f_L fL;定义PAF在点 p p p的GT值为: L c , k ∗ L ^* _{c,k} Lc,k
在这里插入图片描述
在此, v = ( x j 2 , k − x j 1 , k ) / ∣ ∣ x j 2 , k − x j 1 , k ∣ ∣ 2 v =(x_{j_2,k} - x_{j_1,k})/ || x_{j_2,k} - x_{j_1,k} || _2 vxj2,kxj1,k/xj2,kxj1,k2是肢体方向上的单位向量。 肢体上的点集定义为线段距离阈值内的点,即
0 ≤ v ⋅ ( p − x j 1 , k ) ≤ l c , k a n d ∣ v ⊥ ⋅ ( p − x j 1 , k ) ∣ ≤ σ l , 0 ≤ v · (p- x_{j_1,k}) ≤ l_{c,k} and |v_⊥ · (p - x_{j_1,k})| ≤ σ_l, 0v(pxj1,k)lc,kandv(pxj1,k)σl,
其中肢体宽度 σ l σ_l σl是以像素为单位的距离,肢体长度为 l c , k = ∣ ∣ x j 2 , k − x j 1 , k ∣ ∣ 2 , v ⊥ l_{c,k} = || x_{j_2,k} - x_{j_1,k} || _2,v_⊥ lc,k=xj2,kxj1,k2v是垂直于 v v v的向量;在此范围内的点 p p p被定义为在肢体c上。

p p p的部件亲和场GT值为所有人在此点上PAF平均值
在这里插入图片描述
其中 n c ( p ) n_c(p) nc(p)是所有k个人中位于p点的非零向量的数量。

在测试期间,我们通过计算沿连接候选部件位置的线段的相应PAF上的线积分来测量候选部件检测之间的关联。 换句话说,我们测量预测的PAF与候选肢体的对齐方式,该肢体将通过连接检测到的身体部位而形成。 具体来说,对于两个候选部件位置 d j 1 d_{j1} dj1 d j 2 d_{j2} dj2,我们沿着线段对预测的部件亲和场 L c L_c Lc进行采样,以测量两个部分之间的关联置信度
在这里插入图片描述
其中 p ( u ) p(u) p(u)内插两个身体部位 d j 1 d_{j1} dj1 d j 2 d_{j2} dj2的位置,
p ( u ) = ( 1 − u ) d j 1 + u d j 2 ( 12 ) p(u)=(1−u)d_{j1}+ud_{j2} (12) p(u)=(1u)dj1+udj2(12)
实际预测时对u区间进行均匀间隔采样求和来求解近似的积分值;

3.5使用PAF进行多人解析

在这里插入图片描述
对预测的置信度图进行nms操作后可以得到一组离散的候选身体部位,对于每一个部位存在多个候选,因为图像上有多个人或者存在FP的情况,从这些候选部位可以定义一个很大的可能肢体集合,通过上面的积分公式(11)计算每一个候选肢体的分数;找到最佳解析的问题对应于一个K维匹配问题,已知为NP-Hard [54](图6c)。本文提出greedy relaxation方法来产生高质量的匹配,我们推测其原因是,由于PAF网络的接收域很大,因此成对关联分数隐式编码全局上下文。

首先根据预测置信图的得到一组针对多人的离散候选身体部位 D j , D J = d j m : j ∈ 1 … J , m ∈ 1 … N j D_j, D_J={d^m_j:j∈{1…J},m∈{1…N_j }} Dj,DJ=djm:j1J,m1Nj, 其中 N j N_j Nj是身体部件 j j j的候选数, d j m ∈ R 2 d^m_j∈R^2 djmR2代表第 j j j类身体部位的第 m m m个关键点的位置;这些候选身体部件检测仍然需要与同一个人的其他候选身体部件相关联,换句话说,我们需要找到实际上是四肢相连的身体部件检测对。我们的匹配目标是要求候选部位和同一个人的其他候选部位建立连接,定义变量 z j 1 j 2 m n ∈ ( 0 , 1 ) z^{mn}_{j_1j_2}∈{(0,1)} zj1j2mn(0,1)用来表示两个候选部位 d j 1 m d^m_{j_1} dj1m and d j 2 n d^n_{j_2} dj2n​ 之间是否有连接,目的是为所有可能连接的集合找到最佳匹配;所有候选部位的连线集合为
在这里插入图片描述
在这里插入图片描述
如果我们考虑第 c c c肢的一对身体部件 j 1 j_1 j1 j 2 j_2 j2(例如,颈部和右髋),那么寻找 最优相关【optimal association】将简化为一个 最大权重二部图匹配问题【maximum weight bipartite graph matching problem,“二部图”详细可百度】[54]。 这个的例子如图 5b 所示。 在该图匹配问题中,图的节点是身体部位检测候选 D j 1 D_{j_1} Dj1 D j 2 D_{j_2} Dj2,,它的边是探测候选对【detection candidates】之间所有可能的连接。 另外,每条边由式(11) 来确定权重——即部分亲和场的总和。 二分图中的匹配是这样选择的边的子集,即没有两个边共享一个节点。 我们的目标是为所选边找到最大权重的匹配项。找到总亲和值最高的图匹配方式,定义总亲和值为:

E m n E^{mn} Emn 代表 d j 1 m d^m_{j_1} dj1m d j 2 n d^n_{j_2} dj2n 之间的亲和度,注意:同类型的两个肢体没有公共点,匈牙利算法寻找最优匹配

当需要寻找多人的全身姿势时,确定 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】。

通过这两个放宽,优化可以简单地分解为:
在这里插入图片描述
因此,我们使用式( 13-15)独立获得每种肢体类型的肢体连接候选者。对于所有肢体连接候选者,我们可以将共享同一部位检测候选者的连接组装成多个人的全身姿势。我们在树结构上的优化方案比在全连接图[1],[2]上的优化要快几个数量级。

我们当前的模型还包含冗余的PAF连接(例如,在耳朵和肩膀之间,手腕和肩膀之间等)。如图7所示,这种冗余特别提高了拥挤图像的准确性。为处理这些冗余连接,我们稍加修改了多人解析算法。尽管最初的方法是从根组件开始的,但是我们的算法会根据其PAF分数对所有成对的可能连接进行排序。如果某个连接尝试连接已经分配给不同人员的2个身体部位,则算法将认识到这将与PAF连接产生较高的置信度,因此当前连接将被忽略。

4 OPENPOSE

越来越多的计算机视觉和机器学习应用程序需要2D人体姿势估计作为其系统的输入[56],[57],[58],[59],[60],[61],[62]。 为了帮助研究人员提高工作水平,我们公开发布了OpenPose [4],这是第一个实时多人系统,可以在单个图像上联合检测人体,足部,手部和面部关键点(总共135个关键点)。 有关整个系统的示例,请参见图8。
图8

4.1 系统

可用的2D人体姿势估计库,例如Mask R-CNN [5]或Alpha-Pose [6],要求其用户实现大部分管线,自己的帧读取器(例如,视频,图像或摄像机流),显示器以可视化结果,并生成带有结果的输出文件(例如JSON或XML文件)等。此外,现有的面部和身体关键点检测器没有组合在一起,为此需要不同的库。 OpenPose克服了所有这些问题。它可以在包括Ubuntu,Windows,Mac OSX和嵌入式系统(例如Nvidia Tegra TX2)在内的不同平台上运行。它还提供对不同硬件的支持,例如CUDA GPU,OpenCL GPU和仅CPU设备。用户可以在图像,视频,网络摄像头和IP摄像机流之间选择输入。他还可以选择显示结果还是将结果保存在磁盘上,启用或禁用每个检测器(身体,脚,脸和手),启用像素坐标归一化,控制要使用的GPU数量,跳过帧以加快处理速度,等等。

OpenPose由三个不同的块组成:(a)身体+脚检测,(b)手检测[63]和(c)人脸检测。核心模块是组合的身体+脚关键点检测器(第4.2节)。它也可以使用在COCO和MPII数据集上训练的原始纯人体模型[3]。根据身体检测器的输出,可以从某些身体部位(尤其是耳朵,眼睛,鼻子和脖子)大致估算出面部边界框建议。类似地,用手臂关键点生成手边界框建议。这种方法继承了第1节中讨论的自顶向下方法的问题。[63]中进一步详细说明了手部关键点检测器算法,而面部关键点检测器的训练方式与手部关键点检测器相同。该库还包括通过对多个同步摄像机视图的结果进行非线性Levenberg-Marquardt改进[64]进行3D三角测量,从而包括3D关键点姿势检测。

OpenPose的推理时间优于所有最新方法,同时保留了高质量的结果。在配备Nvidia GTX 1080 Ti的计算机中,它能够以约22 FPS的速度运行,同时保持高精度(第5.3节)。 OpenPose已被研究界用于许多视觉和机器人技术主题,例如人的重新识别[56],基于GAN的人脸和身体的视频重定向[57],人机交互[59] ,3D姿势估计[60]和3D人体网格模型生成[61]。另外,OpenCV库[65]在其深度神经网络(DNN)模块中包含了OpenPose和我们基于PAF的网络体系结构。

4.2扩展脚关键点检测

现有的人体姿势数据集([66],[67])包含有限的身体部位类型。 MPII数据集[66]注释了脚踝,膝盖,臀部,肩膀,肘部,手腕,脖子,躯干和头顶,而COCO [67]还包括一些面部关键点。对于这两个数据集,脚注仅限于脚踝位置。但是,图形化应用(例如头像重新定向或3D人体形状重建)[[61],[68])需要脚关键点,例如大脚趾和脚跟。没有脚的信息,这些方法就会遇到诸如糖果包装效果,地板穿透力和滑冰的问题。为了解决这些问题,使用Clickworker平台标记了COCO数据集中脚实例的一小部分[69]。它与来自COCO训练集的14K注释和来自验证集的545注释分开。总共标记了6个脚关键点(请参见图9a)。我们考虑脚关键点的3D坐标,而不是表面位置。例如,对于确切的脚趾位置,我们标记指甲和皮肤之间的连接区域,并通过标记脚趾的中心而不是表面来考虑深度。

使用我们的数据集,我们可以训练脚关键点检测算法。可以通过使用人体关键点检测器生成脚边界框建议,然后在其顶部训练脚检测器来构建简单的脚关键点检测器。但是,此方法存在第1节中所述的自上而下的问题。相反,训练了先前描述的用于身体估计的相同体系结构预测身体和脚的位置。图10显示了三个数据集(COCO,MPII和COCO + foot)的关键点分布。身体+脚模型还结合了臀部之间的内插点,即使在上躯干被遮挡或图像不清晰的情况下,也允许双腿连接。我们发现证据表明,足部关键点检测隐含地帮助网络更准确地预测某些身体关键点,尤其是腿部关键点,例如脚踝位置。图9b显示了一个示例,其中纯身体的网络无法预测脚踝的位置。通过在训练过程中包括脚关键点,同时保持相同的身体注释,该算法可以正确预测图9c中的脚踝位置。我们将在第5.5节中定量分析准确性差异。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值