这是来自上海交通大学的最新一篇(CVPR2019)姿态估计论文,基于AlphaPose的思路进一步提升了在拥挤状态下的人体姿态识别水平,同时提供了拥挤状态下的姿势数据集。
Abstract
多人姿势估计是许多计算机视觉任务的基础,并且近年来取得了重大进展。然而很少有先前的方法探讨拥挤场景中的姿势估计问题,尽管在许多情况下它仍然具有挑战性和不可避免。与此同时,当前的基准无法对此类情况进行适当的评估。在本文中,我们提出了一种新颖有效的方法来解决人群中的姿势估计问题,并提出了一个新的数据集来更好地评估算法。我们的模型由两个关键部分组成:候选点的单人姿势估计(SPPE)和全局最大节点关联算法。通过使用图形模型对每个联合和全局关联进行多峰预测,我们的方法对于在拥挤场景中不可避免的干扰具有鲁棒性,并且推理效率很高。所提出的方法比CrowdPose数据集的最新方法高5.2 mAP,而MSCOCO数据集的结果证明了该方法的泛化能力。源代码和数据集可在 https://github.com/Jeff-sjtu/CrowdPose 获得。
Introduction
估计图像中的多人姿势在计算机视觉领域起着重要作用。它在动作理解、人机交互识别、human parsing等方面的广泛前景已经引起研究人员极大关注和关注。也有一些工作关注三维人体姿态估计。当前,大多数二维方法可大致分为两类:i)自上而下的方法,该方法首先检测每个人,然后执行单人姿势估计;ii)自下而上的方法,先检测每个关键点,然后将其组合为一个完整的人。
为了评估多人姿势估计算法的性能,研究人员建立了一些公共基准库,例如MSCOCO,MPII和AI Challenger。在这些基准中,图像通常是从日常生活中收集的,那里拥挤的场景出现的频率较低。因此这些基准标记中的大多数图像在人类之间几乎没有相互遮挡。 例如,在MSCOCO数据集(人员子集)中,67.01%的图像没有重叠的人员。当前的方法在这些数据集上获得了令人鼓舞的成功。
但是,尽管当前方法在以前的基准上已经取得了良好的性能,但我们发现在拥挤的情况下它们的性能明显下降。 如图1所示,对于自下而上和自上而下方法的当前最先进方法[40、27、23、26],其性能会随着人群水平的提高而急剧下降(如图3)。很少有旨在解决拥挤场景中姿势估计问题的方法,并且尚未为此目的建立公共基准库。同时,在许多情况下拥挤的场景是不可避免的。
在本文中,我们提出了一种新颖的方法来解决人群中的姿势估计问题,使用全局视图来解决干扰问题。我们的方法遵循自顶向下框架,该框架首先检测单个人,然后执行单人姿势估计(SPPE)。我们提出了一个节点候选SPPE和一个全局最大节点关联算法。与以前仅预测输入人体区域的目标节点的方法不同,我们的联合候选SPPE输出每个节点的候选位置列表。候选列表包括目标节点和干涉节点。然后我们的关联算法利用这些候选集建立人与人之间的联系图。最后,我们使用全局最大节点关联算法解决了该图模型中的节点关联问题。此外,我们的图优化算法的计算复杂度与常规NMS算法相同。
为了更好地评估拥挤场景中的人体姿态估计算法并促进该领域的发展,我们收集了拥挤人体姿势的数据集。 我们定义了一个拥挤索引来衡量图像的密集水平。我们数据集中的图像在拥挤索引中具有[0,1]均匀分布,这意味着只有在不拥挤和拥挤的场景中都能表现出色的算法才能在我们的数据集中获得高分。
综上所述,本文的主要工作如下:i)提出了一种解决拥挤的姿态估计问题的新方法。ii)我们收集了一个新的拥挤人体姿势数据集,以更好地评估拥挤场景中的算法。我们对提出的方法进行实验。当使用相同的基于ResNet-101的网络骨干网时,我们的方法在数据集上比所有最新技术都高5.2mAP。此外,我们使用模块将SPPE和后处理步骤替换为最新方法,并在MSCOCO数据集上带来了0.8mAP的改进。也就是说,我们的方法可以在不拥挤的场景中正常使用。
Related Work
3 Our Method
我们提出的方法的流程如图2所示。人体检测器获得的人体边界框提议被送入联合候选(JC)单人姿势估计器(SPPE)。 JC SPPE在热力图上找到具有不同响应分数的联合候选者(第3.1节)。然后,我们的联合关联算法将获得这些结果,并建立人-节点连接图(第3.2节)。最后,我们解决了图匹配问题,以全局最大节点关联算法找到最佳的关节关联结果(第3.3节)。
3.1 Joint-Candidates SPPE
JC SPPE接收人体建议图像并输出一组热图以指示人体联合位置。尽管人体区域应该表明只有一个人类实例,但在拥挤的场景中,我们不可避免地需要处理来自其他人体实例的大量节点。 以前的工作使用SPPE来抑制干扰节点。但是,SPPE在拥挤的场景中失败了,因为它们的接受域受到输入的人体提议的限制。为了解决这个问题,我们提出有着依据更全局视野设计新损失函数的JC SPPE。
3.1.1 Loss Design
对于第i个人体区域Ri,热力图Pi,其中有两种节点,一种叫target joints 即属于此人体的节点,另一种叫 interference joints 干扰节点,即属于其他人体的节点。
我们在损失模块中采用了热力图,该模块由于其像素级监督和完全卷积结构而在许多领域[29,28]中得到了广泛使用。我们的目标是增强target joints的响应并抑制干扰节点。但是,我们不会直接抑制它们,因为在当前区域的干扰节点可以被视为其他区域的target joints。因此,我们可以在干扰节点中以全局方式估计人体姿势和其他人体提议。因此,为了利用这两种候选节点,我们以不同的强度输出它们。
Heatmap Loss
3.1.2 Discussion
常规的SPPE取决于高质量的人为检测结果。它的任务是根据给定的人工提议来定位和识别目标节点。如果SPPE误将干扰节点用作目标节点,则将是无法恢复的错误。丢失的节点无法在诸如pose-NMS的后处理步骤中恢复。
我们提出的候选节点损失旨在解决此缺陷。此损失函数鼓励JC SPPE网络预测多峰热图,并将所有可能的节点设置为候选。在拥挤的场景中,尽管传统的SPPE很难识别目标关节,但JC SPPE仍然可以预测出候选关节列表并保证高召回率。我们将关联问题留给下一个过程,在那个过程中,我们可以从其他JC SPPE(根据其他人体建议)获得更多全局信息来解决该问题。
3.2 Person-Joint Graph
由于我们的候选节点机制和人体检测器的冗余人体提议,候选节点在数值上比实际联合号大得多。为了减少多余的节点,我们构建了一个人节点图,并应用最大人体节点匹配算法来构造最终的人体姿势。
3.2.1 Joint Node Building (合并同一节点的分身)
由于高度重叠的人体区域往往会预测出相同的实际节点(如图4所示),因此我们首先将这些可以组合的对象归为一组,它们代表与一个节点相同的实际节点。
由于高质量的关节预测,指示同一节点的候选节点始终彼此靠近。因此,我们可以使
用以下规则对它们进行聚类:对于第k个节点(身体各部位节点编号为1…k),给定两个位于p1和p2的候选关节,及控制偏差δ,如果p1-p2欧氏距离 ≤ min{u1, u2}δ,我们将它们标记为同一组。其中u1和u2是热力图上两个节点的高斯响应大小,由高斯响应偏差确定。δ是控制第k个关节偏差的参数,我们直接采用MSCOCO关键点数据集中的参数[15]。使用min{u1,u2}而不是恒定阈值的原因是为了确保只有在p1和p2同时落入彼此的控制域(半径分别为u1δ,u2δ)时,我们才将它们组合在一起。一个Node表示一组按上述标准聚集在一起的节点。
现在,通过将一个节点组合为一个Node,我们有了Node集 J={vkj:k∈{1…K},j∈{1…Nk}} ,其中Nk是身体部位k的关节节点数,vkj是身体部位k的第j个节点。J中的节点总数为∑Nk。
3.2.2 Person Node Building
person nodes代表人体检测器检测到的人体区域。我们将person nodes表示为H={hi:∀i∈{1…M}},其中hi是第i个人节点,M是检测到的人体区域的数量。理想情况下,高质量人体区域会紧贴人类实例。但是,在拥挤的场景中,这种条件并不总是令人满意。人体检测器将产生许多多余的建议,包括截断和不紧凑的边界框。 在Sec 3.3中进行全局人关节匹配时,我们将消除这些低质量的人体区域。
3.2.3 Person-Joint Edge
在获得node和person nodes之后,我们将它们连接起来以构建我们的人节点图。对于每个人的节点hi,JC-SPPE将预测节点的多个候选结果。如果这些候选结果之一对node vkj有所贡献,我们将在它们之间建立一个边缘ekij。ekij的权重是该双参关节的反应评分,记为wkij。这样我们可以构造边缘集E={ekij:∀i,j,k}。
人关节图可以写成:G=((H,J), E)
3.3 Globally Optimizing Association
从现在开始,我们估计人群中人体姿势的目标已转变为求解上述人节点图并最大化总边缘权重。我们的目标函数如下图,d表示是否保留边,Eq.5和6约束每个人体区域只能匹配1-K的节点各一个。
如方程式10所示,求解人节点图G中的全局分配问题在数学上等效于分别求解其子图Gk。Gk是由人体子集和第k个节点子集组成的二部图。 对于每个子图,应用更新的Kuhn-Munkres算法[1]以获得优化结果。通过分别求每个Gk,我们获得最终结果集R。
给定图匹配结果,如果dkij=1,则vkj的加权中心被分配给第i个人体提案的第k个节点。在此,加权中心表示vkj中的候选节点坐标的线性组合,权重是他们的热力图响应分数。以这种方式,可以构造每个人体区域的姿势。无法匹配任何节点的人员区域将被删除。
Computational Complexity
姿势估计的推理速度在许多应用中至关重要。我们证明了我们的全局节点算法与普通的贪婪NMS算法效率相同。
3.4 Discussion
我们的方法采用基于图的方法,以全局最佳方式将节点与人体区域相关联。人体区域相互竞争节点。通过这种方式,没有主导人体实例的不合格人体区域将不会被分配任何节点,因为由于缺少主导人体实例,它们的节点响应分数都相对较低,将许多糟糕的人体区域拒绝。与我们的方法相比,常规NMS是一种基于贪婪和基于实例的算法,效率较低。尽管[10,17,27]提出了姿势-NMS来利用姿势信息,但是他们的算法是基于实例的,无法解决节点缺失和装配错误的问题。我们的全局优化关联方法可以很好地处理此类情况。