评论
提出了一个精妙的结构,包括一下几步:
- 提出了一个能够用来表示人体部位之间关联(包括位置和方向)的概念,并成功提高了预测部位位置,以及部位之间关系的准确度。
- 提出了一个联合训练部位位置+部位之间关联的串联结构。
- 将一个NP-hard的问题简化成了多个简单的二分图问题,简化了连接部位的算法复杂度。
本篇论文主要关注多人、实时的人体姿态估计,并取得了很好的效果。
摘要
提出了一个高效的实时2D多人姿态估计方法。提出了一个非参数的表示方法:Part Affinity Fields(PAFs),以学习身体部位之间的关系。架构还引用了一个贪婪的,自底向上的分析方法,将整体context考虑进来。此架构通过2个相同的分支,用以共同的学习部位位置,以及它们之间的关系。
介绍
常见的研究,关注于单人的部位问题,这和多人姿态检测是很不同的问题。(1)每张图片里会有不定数量的人数;(2)人之间的关联,包括接触,遮挡,四肢的关节,增加了复杂性。
一个常用的方法是,先进行单人检测,再在检测出的每个单人图像里处理。这些自顶向下的方法直接使用了现有的单人检测技术,问题在于,如果单人检测失败了,没有其他补救措施。而且,这些方法的运算速度和人数正相关。而自下而上的方法在初步的步骤中有鲁棒性,而且运算速度与人数无关。然而,自底向上的方法没有直接使用其他人、其他部位提供的整体contextual线索。比如,有一种连接方法,实际上是一种NP-hard问题,导致速度非常慢,需要好几个小时的时间。(NP-hard,多项式时间)
方法
首先,一个CNN网络同步的预测人体部位的confidence map S,每一个部位一张;以及一组向量区域L,将部位之间的关联性(affinity)encode起来。Lc的每一个位置都encode了一个2D向量。最后,confidence map和affinity fields通过贪婪推理方法进行解析,得到图片中所有人的2D的关键点图。
- 同步的Detection和association
同步的预测confidence maps和affinity fields。每一级里有两个分支:第一个分支预测confidence map,第二个分支预测PAFs。预测出来的结果一起放入下一级的两个分支里,再次做预测。中间都是有监督的预测。
使用VGG19模型。
图片先是通过VGG网络得到feature maps(F),然后将F输入两个branch中进行预测。在每个stage,用L2 loss。
- part detection的confidence map
也用了高斯分布来判断detection预测的准确性。用高斯分布生成confidence map。对于多个body part,取max值,以保证peak之间保持独立性。
在test的时候,通过非极大值抑制得到body part的候选区域。
- PAFs在part association时的作用
如何判断两个身体部位之间的关系呢?需要对两个部位之间的“关联性”做一个评分。
一个可能的方法:中点判断法,选取一个中点,然后判断其与两个部位之间的关联性。问题:(1)只encode了每一个limb的位置,而非方向;(2)将一个limb原来的区域简化为一个单独的点。所以容易失败。
为了避免上面的问题,提出了一个新的feature:PAFs(part affinity fields),同时包含位置信息和方向信息。对于从j1到j2的每一个point P,都有一个单位向量,指向从j1到j2。limb的具体位置:从j1到j2,宽度为一个阈值sigma;对于可能的重叠区域,则取向量的平均值。
在test阶段,通过对两个部位之间的limb的所有PAFs进行积分,以计算两个部位之间的关联性。
- 图论领域的知识
通过greedy relaxation(???)方法,得到高质量的连接。
选择的目标:使得总体的PAFs值总和最大。对于两个部位之间的选择,用匈牙利算法得到最优解(二分图)。
而对于整个人体部位,问题变成了K维匹配问题,这是一个NP hard问题,有许多relaxations(???)。
在这块的工作中,增加了两个relaxations。1,选择最少量的edges,而不是整个graph。第二,将匹配问题分解成一组二分匹配问题。这样,就把问题简化为多个二分图子问题。
因此问题被分解为多个二分匹配问题的最大值。
最终的结果显示,效果很好。
结果
在2个数据集上进行测试:MPII,和COCO。
运算速度:368*654图片,大约在0.1s,也就是每秒钟能计算10帧。