CrowdPose: Efficient Crowded Scenes Pose Estimation and A New Benchmark论文阅读笔记

CrowdPose:有效的拥挤场景姿态估计和新基准

论文链接:https://arxiv.org/abs/1812.00324

摘要: 多人姿态估计是许多计算机视觉任务的基础,近年来取得了重大进展。先前的方法很少研究具有挑战性且不可避免的拥挤场景中的姿态估计,并且目前的基准无法对这种情况进行适当的评估。本文中提出了一种新颖有效的方法来解决拥挤场景中的姿势估计问题,并提出了一种新的数据集来更好地评估算法。本模型由两个关键部分组成:关节候选单人姿态估计(joint-candidate single person pose estimation: SPPE)和全局最大关节关联(global maximum joints association)。通过使用图模型对每个关节进行多峰值预测和全局关联,我们的方法对拥挤场景中不可避免的干扰具有鲁棒性,且推理效率很高。本论文提出的方法在 CrowdPose 数据集上超越 sota 方法 5.2 mAP 并且MSCOCO数据集上的结果也证明了该方法的泛化性。



1. Introduction

图像中的多人姿态估计在计算机视觉领域有着重要作用,它在活动理解(activity understanding )、人类重识别(human re-identification)、人体解析(human parsing)等方面的广泛应用引起了人们极大的兴趣。目前,大多数方法大致可分为两类:i)Top-down法:先检测每个人,然后执行单人姿态估计;ii)Bottom-up 法:先检测关节,然后将其关联为一个完整的人。
为了评估多人姿态估计算法的性能,研究者建立了几个公共基准,如MSCOCO、MPII 和 AI Challenger。但这些基准的图像大都从拥挤场景出现频率较低的日常生活中收集的,所以这些基准中的大多数人体之间几乎没有相互遮挡,例如 MSCOCO数据集(persons subset)中,67.01%的图像没有重叠的人。目前的方法在这些数据集上取得了较好的性能。
然而,尽管当前方法在先前的基准上取得了良好的性能,但在拥挤的情况下,它们的性能明显下降。如图1所示,top-down 和 bottom-up 的sota方法的性能随着拥挤程度的增加而急剧下降(如图3所示)。以前很少有方法能解决拥挤场景中的姿态估计问题,也没有建立相关公共基准,而拥挤在许多场景下是不可避免的。
在这里插入图片描述
图1:拥挤场景中,Mask R-CNN和CrowdPose方法的定性比较。 在公共基准测试中取得良好性能的方法在拥挤的情况会失败。主要有两种错误类型:i)将错误的关节组装成一个姿态;ii)在拥挤场景下预测了冗余姿态。


在这里插入图片描述
图3:MSCOCO数据集上 sota 方法的评估结果。x轴是我们定义的用于测量图像拥挤程度的 crowd index。与非拥挤场景相比,accuracy(mAP@0.5:0。95)在拥挤的情况下 sota 方法的性能降低了约 20 mAP。

本文提出了一种新的方法来解决人群中的姿态估计问题,使用全局视图( global view)来解决干扰问题。 我们的方法遵循 top-down 框架,先检测人,然后执行单人姿态估计(SPPE)。我们提出了一种关节候选单人姿态估计(joint-candidate SPPE)和一种全局最大关节关联算法(global maximum joints association algorithm)。与以往仅预测输入的 human proposals 的目标关节方法不同:①首先,关节候选 SPPE 为每个关节输出一个候选位置列表,候选关节位置列表包括目标关节和干扰关节;② 然后,关联算法利用这些候选对象构建 person-joint 连接图;③ 最后,利用全局最大关节关联算法解决该图模型中的关节关联问题。此外,我们的图优化算法的计算复杂度与传统的NMS算法相同。
为更好评估拥挤场景中的人体姿态估计算法来促进这一领域的发展,我们收集了一个拥挤场景下的人体姿态数据集。我们定义了一个 Crowd Index 来衡量图像的拥挤程度。我们数据集中的图像在[0,1]之间具有均匀的Crowd Index 分布,这意味着只有在非拥挤和拥挤场景中都表现良好的算法才能在我们的数据集中获得高分。
综上所述,本文的主要贡献如下:1)提出了一种新的方法来解决姿态估计中的拥挤问题;2)收集了一个新的拥挤人体姿态数据集,以便更好地评估拥挤场景中的算法。
我们对我们提出的方法进行了实验,当同时使用 ResNet-101 作为网络backbone 时,我们的方法在 CrowdPose 数据集上比 sota 方法高出 5.2 mAP。此外,我们用我们的模块替换了 sota 方法中的SPPE和后处理步骤,在MSCOCO数据集上得到了 0.8 mAP 的提升,也就是说,我们的方法也可以在非拥挤场景中发挥作用。

2. Related Work

2.1. 2D Pose Estimation Dataset

基于 RGB 图像的 2D人体姿态估计数据集的先驱工作涉及:LSP、FashionPose、PASCAL Person Layout、J-HMDB等。这些数据集促进了人体姿态估计的进展,然而,它们仅评估单人姿态估计。随着算法的改进,越来越多的研究人员关注多人姿态估计问题,并建立了多个数据集,例如:MPII, MSCOCO, AI Challenger。 尽管这些数据集很普遍,但它们存在低密度问题,导致当前的模型过拟合于非拥挤场景。随着人数的增加,sota 方法的性能会下降。

2.2. Multi-Person Pose Estimation

Part-Based Framework(基于部位的框架 bottom-up): 下面回顾基于部位的框架的代表性工作。基于部位的框架检测关节并将其关联为一个完整的人。现有的基于部位的 sota 方法主要在关联方法上有所不同。Cao 等人使用部位亲和域(part affinity field: PAF)和贪婪算法关联关节。Papandreou等人检测单个关节并预测关联的相对位移。Kocabaset 等人提出了一个多任务模型,并通过姿态残差网络将关节分配给被检测的人。基于部位方法中的关节检测器只考虑较小的局部区域并输出较小的 response 热图,因此它们相对较弱。

Two-Step Framework(两阶段框架 top-down): 我们的工作遵循两步法,两步法先检测 human proposals ,然后执行单人姿态估计。两步法 的sota 方法的性能明显高于基于部位法。 然而,两步法高度依赖于人体检测结果,并且在拥挤的场景中失败。当人群中的人彼此靠得很近时,不可能裁剪出只包含一个人的边界框。 一些工作针对人群中的人体跟踪,作为补充,我们提出了一种新颖有效的方法,可以显著提高拥挤场景中的姿态估计性能,对人体检测结果具有鲁棒性。

3. Our Method

如图2所示为我们方法的 pipeline,由人体检测器获得的 human bounding box proposals 被输入到关节候选(joint-candidate:JC)单人姿态估计器(single person pose estimator: SPPE)中,JC SPEE 利用热图上不同的 response scores 定位 joint candidates(第3.1节)。然后,我们的联合关联算法获取这些结果,并构建一个 person-joint 连接图(第3.2节)。最后,我们使用全局最大关节关联算法解决图匹配问题,以找到最佳的关节关联结果(第3.3节)。
在这里插入图片描述
图2:我们提出的方法的pipeline。 JC SPPE 在训练阶段使用关节候选损失函数。在推理阶段,JC SPPE接收 human proposals 并生成关节候选。然后,我们利用 human proposals 和关节候选来构建一个 person-joint 图。最后,通过解决图模型中的分配问题将关节与 human proposals 关联起来

3.1. Joint-Candidates SPPE

Joint-candidates SPPE 接收一副 human proposal 图像,并输出一组热图来指示人体关节位置。虽然一个human proposal 应该只指示一个人体实例,但在拥挤的场景中,不可避免地需要处理来自其他人体实例的大量关节。 之前的工作使用 SPPE 抑制干扰关节,但由于SPPE的感受野会被输入的 human proposal 限制,所以SPPE在拥挤的场景中失败。为解决此问题,我们提出了 joint-candidate SPPE,并从更全局的角度设计一个新的 loss。

3.1.1 Loss Design

i t h i^{th} ith human proposal,将他的 region: R i R_i Ri 输入到我们的 SPPE 网络中,并输出热图 P i P_i Pi R i R_i Ri 有两类关节:① 属于 i t h i^{th} ith 人的关节:目标关节(target joints)② 其他人的关节(不属于 i t h i^{th} ith 人):干扰关节(interference joints)。
我们的目标是增强目标关节响应并抑制干扰关节响应,但我们不能直接抑制,因为当前 proposal 的干扰关节可以视为其他 proposal 的目标关节,所以我们利用干扰关节以全局方式估计其他 human proposal 的人体姿态。 为了利用这两种关节候选,我们以不同的强度输出它们。

Heatmap Loss: 对于 i t h i^{th} ith 人中的 k t h k^{th} kth 关节, T i k T_i^k Tik 表示目标关键点热图,由一个以目标关节位置 P i k P^k_i Pik 为中心,标准偏差为 σ 的 2D 高斯 G ( P i k ∣ σ ) G(P^k_i | σ) G(Pikσ) 构成。
干扰关节表示为一个集合: Ω i k Ω_i^k ik,高斯混合分布: ∑ p ∈ Ω i k G ( P ∣ σ ) \sum_{p∈Ω_i^k}G(P | σ) pikG(Pσ) 组成干扰关节的热图: C i k C^k_i Cik
我们提出的损失定义为:
在这里插入图片描述
其中,µ是一个范围为[0,1]的衰减因子。如上所述,干扰关节有助于指示其他人体实例的关节,因此,我们应该通过交叉验证从全局的角度来考虑它。最后得到 µ=0.5,这符合我们的直觉:干扰关节应该衰减而非过度抑制。 传统的热图损失函数可以视为 µ=0 的本文提出的损失的特例。

3.1.2 Discussion

传统的 SPPE 取决于高质量的人体检测结果,其任务是根据给定的 human proposal 定位和识别目标关节,若 SPPE 将干扰关节误认为是目标关节,则会出错,且无法通过 pose-NMS 之类的后处理步骤恢复丢失的关节。
我们提出的候选关节损失旨在解决这一限制,该损失函数鼓励 JC SPPE 网络预测多峰值热图,并将所有可能的关节设置为候选关节。在拥挤的场景中,传统的SPPE很难识别目标关节,但 JC SPPE 仍可以预测候选关节列表并保证较高的召回率。我们将关联问题留给下一过程,在下一过程中,我们可以从其他 JC SPPEs(on other human proposals)中获得更多全局信息来解决它。

3.2. Person-Joint Graph

由于我们的关节候选机制和来自人体检测器的冗余 human proposals,候选关节的数量远大于实际的关节数量。为了减少冗余关节,我们构建了一个 person-joint 关节图,并应用 maximum person-joint 匹配算法来构造最终的人体姿态。

3.2.1 Joint Node Building 构建关节节点

由于高度重叠的 human proposal 往往预测相同的实际关节(如图4所示),我们先将表示同一实际关节(例如,都为右膝)的候选关节分组为同一个 joint node。
在这里插入图片描述
图4:拥挤的场景中,human proposal 高度重叠。 重叠的 human proposal 往往预测相同的实际关节。在本例中,若直接连接最高响应构建最终姿态,则两个 human proposal 将定位相同的右膝和右腿。我们提出的关联算法通过全局最佳匹配来解决这个问题。

由于高质量的关节预测,指示相同关节的候选关节始终彼此接近。因此,我们可以使用以下准则对其进行分组:给定位于 p 1 k p_1^k p1k p 2 k p_2^k p2k 且控制偏差为 δ k δ^k δk 的两个候选关节,如果满足 Eq. 2,则将其标记为同一组也就是同一 joint node,
在这里插入图片描述
其中, u 1 u_1 u1 u 2 u_2 u2 是热图上两个关节的高斯响应大小,由高斯响应偏差确定, δ ( k ) δ^{(k)} δ(k) 是控制第 k 个关节偏差的参数,直接从 MSCOCO 关键点数据集中获取。我们使用 min{u1,u2} 而不是常数阈值的原因是为了保证:只有当 p 1 p1 p1 p 2 p2 p2 同时落入彼此的控制域(半径为 u 1 k δ k , u 2 k δ k u_1^kδ^k,u_2^kδ^k u1kδku2kδk)时,才将它们分组在一起。一个 node 表示根据上述准则聚集在一起的一组关节。
现在,通过将一个关节组构建为一个 node 得到关节 node 集: J = { v j k : f o r   k ∈ { 1 , . . . , K } , j ∈ { 1 , . . . , N k } J=\{v_j^k: for\, k∈ \{1, . . . , K\}, j∈ \{1, . . . , N_k\} J={vjk:fork{1,...,K},j{1,...,Nk} ,其中, N k N_k Nk 是 身体部位 k 的 joint node 的数量, v j k v_j^k vjk 是身体部位 k 的第 j 个节点。在 J J J 中,joint node 的总数为: ∑ k N k \sum_kN_k kNk

3.2.2 Person Node Building 构建person节点

person node 表示 human 检测器检测到的 human proposals。将 person node 集表示为 H = { h i : ∀ i ∈ { 1... M } } H=\{h_i:∀i∈\{1. . . M\}\} H={hi:i{1...M}},其中 h i h_i hi 是第 i 个 person node,M是检测到的 human proposal 数量。
理想情况下,一个合格的human proposal 会紧密绑定一个人体实例,但在拥挤的场景中,这一条件并不总被满足。人体检测器将产生许多冗余的 proposal ,包括截断和松散的 bounding box。我们将在 Sec.3.3 中的全局person-joint 匹配过程中消除这些低质量的 person node。

3.2.3 Person-Joint Edge

获得 joint node 和 person node 后,将它们连接起来,构建成 person-joint 图。若一个关节节点 v j k v_j^k vjk 包含来自 person 节点 h i h_i hi 的候选关节,则在它们之间构建一条边 e i , j k e^k_{i,j} ei,jk e i , j k e^k_{i,j} ei,jk 的权重 w i , j k w^k_{i,j} wi,jk 是该候选关节的响应分数。这样,就可以构造边集: ε = { e i , j k : ∀ i , j , k } \varepsilon=\{e^k_{i,j}:∀i, j, k\} ε={ei,jk:i,j,k}
person-joints 图可记作:
在这里插入图片描述

3.3. Globally Optimizing Association 全局优化关联

现在的目标是估计人群中的人体姿态,并将其转化为求解上述 person-joints 图和最大化 total edge weights。目标函数为:
在这里插入图片描述
其中 d i , j ( k ) d_{i,j}^{(k)} di,j(k) 表示是否在最终图中保留边 e i , j k e_{i,j}^{k} ei,jk。Eq. 5 和 Eq. 6 的条件约束要求每个 human proposal 最多只能匹配一个 k t h k^{th} kth 关节。
注意,G可以分解为K个子图: G k = ( ( H , J ( k ) ) , ε ( k ) ) G_k= ((H,J^{(k)}),\varepsilon^{(k)}) Gk=((H,J(k)),ε(k)),其中: J k = { v j ( k ) : ∀ j ∈ { 1... N k } } J^k=\{v^{(k)}_j:∀j∈ \{1. . . N_k\}\} Jk={vj(k):j{1...Nk}} ε k = { e i , j ( k ) : ∀ i ∈ { 1... M } , j ∈ { 1... N k } } \varepsilon^k=\{e^{(k)}_{i,j} :∀i∈ \{1. . . M\}, j∈ \{1. . . N_k\}\} εk={ei,j(k):i{1...M},j{1...Nk}}。因此,目标函数可以表示为:
在这里插入图片描述
如 Eq.10 所示,在 person-joint 图G中解决全局分配问题在数学上等价于单独求解其子图 G k G_k Gk G k G_k Gk是由 person 子集和第k个 joint 子集组成的二分图(二分图定义:设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点 i 和 j 分别属于这两个不同的顶点集(i in A, j in B),则称图G为一个二分图。)。对于每个子图,应用更新的 Kuhn-Munkres 算法来获得优化结果。通过分别解决每个 G k G_k Gk 得到最终结果集 R。
给定图匹配结果,若 d i , j ( k ) d_{i,j}^{(k)} di,j(k) =1,则将 v j k v_j^k vjk 的加权中心指定给第 i 个person proposal 作为他的第 k 个关节。这里,加权中心是指 v j k v_j^k vjk 中候选关节坐标的线性组合,权重是它们的热图响应分数。通过这种方式,可以构建每个 person proposal 的姿态,且删除无法匹配任何关节的 person 节点。

Computational Complexity 计算复杂性: 姿态估计的推理速度在许多应用中至关重要。下面证明我们的全局关联算法与常见的贪婪NMS算法一样有效。
正如 White 和 Whiteley 证明的那样:如果非空子图 X 有最多 k ∣ X ∣ − l k|X| −l kXl 条边(|X| 是子图 X 的定点数,且 0 ≤ l < 2 k 0≤ l <2k 0l<2k),那么图 G 是 ( k , l ) − s p a r s e (k, l)−sparse (k,l)sparse
考虑子图 G ( k ) = ( ( H , J ( k ) ) , ε ( k ) ) G^{(k)} = ((H,J^{(k)}),\varepsilon^{(k)}) G(k)=((H,J(k)),ε(k)),它表示 person proposal 和第 k 类关节之间的联系。根据图5 的统计,在拥挤的场景中,每个人体 bounding box 最多覆盖四个人,因此,一个 person node 最多为4个关节构建连接边,换言之,person-joint 子图 G ( k ) 是 ( 4 , 0 ) − s p a r s e G^{(k)} 是 (4,0)−sparse G(k)(4,0)sparse,因为:
在这里插入图片描述
由于 person-joint 图的稀疏性,可以有效地解决关联问题。将 ε k \varepsilon^k εk 转换为邻接矩阵 M e k M_{e^k} Mek(未连接的节点为0),根据Carpanetoet等人的工作,稀疏矩阵的线性分配问题复杂度为 O ( n 2 ) , 即 O ( ( ∣ H ∣ + ∣ J ( k ) ∣ ) 2 ) O(n^2), 即 O((|H|+|J(k)|)^2) O(n2),O((H+J(k))2)。由于已经消除了冗余关节,并且关节和人之间存在一对一的对应关系,因此 ∣ J ( k ) ∣ |J^{(k)}| J(k) 的期望值等于 |H|,因此 O ( ( ∣ H ∣ + ∣ J ( k ) ∣ ) 2 ) = O ( ∣ H ∣ 2 ) O((|H|+|J(k)|)^2) = O(|H|^2) O((H+J(k))2)=O(H2),这种计算复杂度与传统贪心NMS算法的复杂度相同。
在这里插入图片描述
图5: 实例-关节连接分布。 x 轴表示覆盖同一关节的人体 bounding box的数量。该统计结果基于ground truth 标注。

3.4. Discussion

我们的方法采用基于图形的方法,以全局最优的方式关联 person proposal 和关节。human proposal 相互竞争关节节点,这样,没有主要人体实例的不合格 human proposal 将无法分配到任何关节,因为他们缺少主要人体实例,它们的关节响应分数都相对较低。 因此,许多冗余和劣质的 human proposal 会被去除。与我们的方法相比,传统的NMS是一种贪婪的基于实例的算法,效率较低。虽然有些文章提出了 pose-NMS来利用姿态信息,但他们的算法是基于实例的,不能解决缺少关节和错误装配问题。我们的全局优化关联方法可以很好地处理这种情况。

4. CrowdPose Dataset

本节介绍本文的另一个贡献:CrowdPose数据集,包括拥挤场景定义、数据收集过程和数据集统计。

4.1. Crowding Level Definition 拥挤级别定义

为了构建拥挤人体姿势的数据集,需要先定义一个 Crowd Index 来测量给定图像的拥挤程度。
凭直觉,图像中的人数似乎是一个很好的衡量标准,但解决拥挤的主要障碍是由人群的遮挡而非人数决定的。 因此需要一个 Crowd index 来表示拥挤程度。在第 i 个人体实例边界框中,将属于第 i 个人和其他人(非第 i 个人)的关节数分别表示为 N i a 和 N i b N_i^a 和 N_i^b NiaNib N i b N i a \frac{N_i^b}{N_i^a} NiaNib 表示第 i 个人体实例的 crowd ratio,Crowd index 是图像中所有人的 crowd ratio 的平均值:
在这里插入图片描述
其中,n表示图像中的人员总数。
我们评估了三个公共基准的 Crowd index 分布:MSCOCO(person子集)、MPII 和 AI Challenger。如图6所示,无拥挤场景主导了这些基准,导致 sota 方法只关注简单场景,而忽略了拥挤场景。
在这里插入图片描述
图6:当前流行数据集和 CrowdPose 数据集的 crowd index 分布。 三个公共数据集以非拥挤图像为主,我们的CrowdPose数据集具有近乎均匀的分布。

4.2. Data Collection 数据收集

为了建立一个涵盖各种场景并鼓励模型适应不同情况的基准,我们希望我们的基准不仅涵盖拥挤场景,而且也涵盖简单的日常生活场景。为了实现这一目标,我们首先分析了三个公共基准:COCO、MPII、AI Challenger,并根据 Crowd Index(从0到1)将其图像分为20组,不同组之间的步长为0.05。然后,我们从这些组中均匀地采集了30000张图像。

4.3. Image Annotation 图像标注

虽然这些图像已被标注,但它们的标签格式并没有完全对齐。就带标注的关节数量而言,MSCOCO有17个关键点,MPII有16个,AI Challenger有14个关键点。与此同时,人工标注者在拥挤的情况下更容易出错。因此,我们通过以下步骤重新注释这些图像。

  • 我们使用14个关键点定义和标注的关键点以及 30000 幅图像中的 full-body 人体 bounding box。
  • 我们再次使用新标注分析 30000 幅图像的 crowd index,并选择 20000 幅高质量图像。
  • 我们进一步裁剪图像中的每个人,然后在每个bounding box 中标注干扰关键点。

我们使用交叉标注,这意味着至少有两个标注器对每个图像进行标注,若这两个标注有较大偏差,则将其视为错误,并重新标注此图像。最后,取每个关键点位置的平均值,以确保标注质量。

4.4. Dataset Statistics 数据集统计信息

Dataset Size 数据集大小: 总的来说,数据集由20000张图像组成,包含大约80000个人。train、val 和 test 子集按 5:1:4 的比例划分。
Crowd Index Distribution: CrowdPose 的 crowd index 分布如图 6(d) 所示。与其他数据集不同,CrowdPose的拥挤指数分布均匀。请注意,并不是简单地强制CrowdPose达到高 crowd index ,若只在拥挤的场景中训练模型,则由于训练集的偏差,可能会降低其在非拥挤场景中的性能。 均匀分布可以促进模型适应各种场景。
Average IoU: 我们进一步计算人体 bounding box 的平均 IoU,结果表明,CrowdPose的平均 bounding box IoU为 0.27,而MSCOCO、MPII和AI Challenger分别为: 0.06, 0.11 和 0.12 。

5. Experiments

本节先介绍用于评估的数据集和设置,然后报告我们的结果并与sota方法进行比较,最后对我们方法中的组件进行消融研究。

5.1. Datasets

CrowdPose: CrowdPose数据集包含总共20000幅图像和80000个人体实例。其 crowd idex 满足 [0,1] 均匀分布。CrowdPose数据集旨在提高拥挤情况下的性能,并将模型推广到不同的场景。
MSCOCO Keypoints: 我们还在 MSCOCO 关键点数据集上评估了我们的方法。MSCOCO Keypoints 包含150000多个用于训练的实例和80000多个用于测试的实例。与CrowdPose相比,此数据集中的人员重叠频率较低,并且其 crowd idex 集中在接近零的位置。

5.2. Evaluation Metric 评估指标

我们遵循MSCOCO的评估指标,使用平均精确度(AP)和平均召回率(AR)来评估结果。对象关键点相似度(OKS)与 IoU 的作用相同,采用AP/AR进行关键点检测。我们将多个 OKS(0.50:.05:.95)上的平均值mAP作为主要指标。此外,为了更好地评估我们的模型在不同拥挤场景下的性能,我们通过 crowd index 将 CrowdPose 数据集分为三个拥挤级别:easy 简单(0-0.1)、medium 中等(0.1-0.8)和 hard 困难(0.81)。在所有实验中计算 OKS 时,我们使用与 MSCOCO 相同的关键点标准差。

5.3. Implementation Details 实现细节

我们的方法遵循两步框架(top-down)。由于人体检测器和姿态估计网络不是我们关注的重点,我们只采用 AlphaPose 提供的人体检测器(YoloV3)和姿态估计网络,这是一种 sota 两步法。在训练步骤中,采用旋转(±30%)、缩放(±30%)和翻转数据增强。输入分辨率为320×256,输出热图分辨率为80×64。学习率设置为 1 × 1 0 − 4 1×10^{-4} 1×104 ,80个 epoch 后为 1 × 1 0 − 5 1×10^{-5} 1×105,Mini batch size设为64,并使用 RMSprop 优化器。在测试过程中,检测到的人体 bounding box 先沿高度和宽度方向扩展30%,然后通过 Joint-candidate SPPE 进行 forward。从原始图像和翻转输入图像的平均输出热图中获得候选关节的位置。我们在两个Nvidia 1080Ti GPU上进行了实验。我们的整个框架是在PyTorch中实现的。
为了在 CrowdPose 数据集上与当前的 sota 方法进行比较,我们根据作者提供的配置对其进行了再训练。为公平起见,我们使用 ResNet-101作为所有SPPE网络的 backbone,并使用相同的人体检测器(SimpleBaseline)来检测。对于Mask R-CNN,我们还使用基于 FPN 的ResNet-101 backbone。使用相同的 training batch size 进行公平比较。

5.4. Results 结果

CrowdPose: 表1 给出了 CrowdPose test set 的定量结果。我们的方法比sota 方法高出 5.2mAP,表明我们的方法能够有效地解决拥挤场景中的姿态估计问题。

表1:CrowdPose测试集的结果。

在这里插入图片描述
为了进一步评估我们在拥挤场景中的方法,我们在表2中报告了三个拥挤级别的结果,即无拥挤、中等拥挤和极度拥挤。值得注意的是,我们的方法在非拥挤场景实现了4.1 mAP 改进,而在中等拥挤和极度拥挤的场景中分别实现了4.9 mAP 和 6.2 mAP的改进。这一结果表明,我们的方法在拥挤的场景中具有优异的性能。

表2:CrowdPose测试集的结果。测试集分为三部分并分别展示了结果。FPS表示整个测试集的运行速度。

在这里插入图片描述
我们在图7中给出了一些定性结果。更多结果将在补充文件中给出。
在这里插入图片描述

图7:模型预测的定性结果。不同人的姿态以不同的颜色绘制,以实现更好的可视化。

MSCOCO: 我们在MSCOCO数据集上评估我们的方法,以显示我们的方法的泛化能力,结果如表3所示。我们的方法在没有 bells 和 whistles 的情况下 在 COCO test-dev set 上实现了 70.9 mAP。在使用相同的人体检测器和SPPE网络的情况下,较AlphaPose提升了 0.8mAP,证明了我们的方法可以对姿态估计问题进行全面的改进。请注意,对于 Simple baselines ,他们在论文中报告的结果使用了一种非开源的强大人体探测器。为进行公平的比较,我们展示了使用YOLOV3作为人体检测器的结果。

表3:MSCOCO test-dev set 的结果。与具有相同检测 backbone 的sota方法对比。

在这里插入图片描述
Inference Speed 推理速度: 表2 显示了开源方法的运行速度。表中的FPS结果是测试集上推理时间的平均。为了获得最佳性能,我们对 OpenPose使用了最精确的配置,其输入分辨率为1024×736。如表2 所示,我们的方法在测试集上达到10.1 FPS,比AlphaPose稍慢,但比其他方法快。结果表明,在拥挤的情况下,我们的方法准确且高效。

5.5. Ablation Studies 消融研究

如表4所示,我们在CrowdPose测试集上研究不同组件。

表4:CrowdPose测试集的结果。mAP和mAR是多个OKS值(0.50:0.05:0.95)的平均值。“w/o X”:pipeline中无 X 某块。 “Greedy NMS”:基于proposal 分数和IoU的传统NMS方法。

在这里插入图片描述

Joints Candidate Loss: 我们先评估 Joints Candidate Loss 的有效性。本实验将 Joints Candidate Loss 替换为姿态估计 sota 方法中广泛使用的均方损失,实验结果如表4(a)所示,最终的 mAP从 66.0% 降到 61.7%。这证明 Joints Candidate Loss 可以鼓励 SPPE 预测更多可能的关节并抵抗干扰。

Globally Optimizing Association 全局优化关联: 接下来,我们将我们的关联算法与几种NMS算法进行比较,包括 bounding box NMS、pose NMS 和 parametric poseNMS 。实验结果如表4(b)所示,可以看出我们的关联算法大大优于以前的方法。我们注意到,这些NMS算法都是基于实例的,它们消除了实例级别的冗余,基于实例的消除并不是姿态估计问题的最佳解决方案。 由于人体姿态的复杂性,我们需要减少关节层面的冗余度。同时,所有的NMS算法本质上都是贪婪算法,因此,它们的结果可能不是全局最优的。我们的关联算法可以在与以前的NMS算法一样高效的情况下给出全局最优结果。

6. Conclusion

本文提出了一种新的方法来解决姿态估计中的遮挡问题。通过基于 joint candidates SPPE 的输出构建 person-joint 图,我们将姿态估计问题转化为图匹配问题,并以全局方式优化结果。为了更好地评估模型在拥挤场景中的性能,我们建立了一个 crowd index 正态分布的拥挤姿态数据集 CrowdPose。在CrowdPose数据集上,我们提出的方法明显优于 sota 方法。在MSCOCO数据集上的实验结果表明我们的方法可以推广到不同的场景。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值