多人姿态估计的挑战:
1.人数、位置和尺寸的大小未知
2.人体之间的相互接触、遮挡造成干扰
3.复杂度随着实时人数的增加而提升
姿态估计方法:
1.top-down approaches(自顶向下)
借助现有的用于单人姿势判断的技术,先检测人,然后对每一个人进行姿态估计,但是当人离得比较近的时候,检测人体的方法无效;并且人数越多,计算成本越大。
2.bottom-up approaches(自底向上)
标记出候选的部分检测并且将它们和每个个体关联起来,然后根据部件组队的得分高低判断组合方式,所用到的成对的公式使用线性回归结果不准确,需要额外的逻辑回归方法。且最终的划分需要巨大的全局推算成本。
本文提出:
Part Affinity Fields(PAF)是一个2D向量集合,每一个2D向量集合都会编码一个肢体的位置和方向,这些二维矢量场和关节的置信图一起经过CNN进行联合学习和预测。
输入一幅图像,分别使用 CNN提取Part Confidence Maps和Part Affinity Fields ,得到这两个信息后,我们使用图论中的Bipartite Matching 将同一个人的关节点连接起来,输出一张2维的带有每个人人体关键点位置的图像。
先进行一个卷积神经网络(利用VGG19的前十层和微调),得到一些特征图F,然后分为两路结构,一路是上面的卷积层,用来获得置信图;一路是下面的卷积层,用来获得PAFs。
为了指导网络能够反复的预测第一分支身体部位的置信图和第二分支的PAFs,我们在每个阶段的结尾处均应用了两个损失函数,其中每个分支一个损失函数。最终的目标函数是将各个stage的loss求和:
图像区域中每个点都有一个confidence值,构成confidence map 。如果图像中出现单个人,其相应部分j可见,则每个置信图中应存在单个峰值;如果有多人出现,应该有一个与每个人k及它的可见部分j对应的峰值。每点的值与真值位置的距离有关,离得越近confidence 越高。
如用高斯分布来描述,confidence峰值就是真值位置。在test阶段,在预测的confidence maps上进行非极大值抑制来获得身体部位候选者(body part candidates) 。
PAF是每个肢体的2D矢量场:对于属于特定肢体的区域中的每个像素,2D矢量编码从肢体的一部分指向另一部分的方向。 每种类型的肢体都有一个对应的亲和区域(affinity field ),用于连接两个相关的身体部位。
在测试期间,我们通过计算相应PAFs上的线积分,沿着连接候选部分位置的线段,来测量候选部分检测之间的关联。
我们使用PAF上的线积分计算来对每个候选肢体来进行评分。当需要寻找多人的全身姿势时,寻找最佳解析的问题对应于已知为NP-Hard的K维匹配问题。增加两个松弛( relaxation ):首先,我们选择一个最小边数来获得人体姿态的生成树骨架,而不是使用完整的图形,如图6c所示。 其次,我们进一步将匹配问题分解为一组偶匹配子问题,并分别确定相邻树节点的匹配(图6d)。
二分图中的匹配是以这样的方式选择的边的子集,即没有两个边共享节点。 我们的目标是找到所选边的最大权重的匹配,我们可以用 Hungarian 算法来获得最优匹配。
在两个数据集上进行测试:
(1)MPII human 多人数据集 (2)COCO 2016关键点挑战数据集