【SPM】:ICCV2019,依图提出的首个one-stage多人姿态估计网络

ICCV 2019 | Single-Stage Multi-Person Pose Machines
3rdParty:tensorflow

0.多人姿态估计

多人姿态估计是一个具有挑战的问题,现有的方法大多是基于two-stage的,而two-stage主要有两种:(1)自上而下的策略,第一阶段先检测人体框,第二阶段对每个人体框进行单人姿态估计,从而实现多人姿态估计。(2)自底而上的策略,第一阶段先对全图作所有人体的关键点检测,第二阶段将所有的关键点分配到对应的人体上,实现多人姿态估计。

1.SPR:结构化姿态表征

在two-stage多人姿态估计算法中,之所以需要两个阶段,是因为网络得到的人体实例的位置信息和其人体关键点是分离无联系的,需要第二个阶段来建立这个联系。本文的核心策略为:SPR(Structured Pose Representation),该模块就是想把人体位置信息和其对应的关键点位置信息联系起来,SPR模块利用一个root点来表征每个人体在图像中的位置信息,并且通过当前root点位置进行编码得到对应人体的所有关键点位置。
(1)传统的人体关键点建模方式如下:

(2)基于SPR的人体关键点建模方式如下:


在基于SPR的建模过程中,将人体中心点定义为root点,因为人体中心点的鲁棒性较好,如下图所示多人图像中利用SPR得到的人体关键点模型。

(3)基于分层SPR的人体关键点建模方式如下:


在人体大幅度的姿态变形的情况下,会涉及到关键点和root点之间的长距离偏移。为了应对可能存在的大幅度姿态变形,本文提出分层SPR模型。该模型将长距离偏移分解为短距离的偏移的累积。本文根据关节运动学的自由度和变形程度将这个累计过程分为四个层次。
第一层:root点
第二层:颈部,肩部,臀部
第三层:头部,肘部,膝盖
第四层:手腕,脚踝
然后我们可以通过相邻层结构中的关节之间的较短距离位移来识别关键点位置。举例来说,第四层的手腕位置可以通过第三层的肘部位置进行偏移编码。对短距离位移建模可以减轻从图像表示映射到矢量域表示的学习难度,能够更好的利用人体肢体的外观线索。

2.SPM:单阶段多人姿态机

正如目标检测领域由two-stage,发展到后来的one-stage。多人姿态估计领域也迎来了第一个one-stage算法。得益于本文提出的SPR建模策略,本文首次提出了one-stage的多人姿态估计网络,利用单阶段多人姿态机(Single-stage multi-person Pose Machine, SPM),对root点和相对偏移量进行回归。

由于root点和相对偏移量的空间维度不一致,因此本文中的SPM网络单独回归学习这两个量。
(1)root点的回归
如下图所示,对root点进行回归时,我们都知道只回归一个点是很困难的,因此和其他关键点网络类似,我们回归的是基于root点的高斯模糊后的置信度图。其中越靠近中心点,置信度值越高。

(2)相对偏移量的回归

如下图所示,对于全图中的所有人的每一种关键点都会生成一个密度偏移图。下图展示的是SPR模型,分层SPR模型与之类似。就以头部关键点举例,从中心root点得到高斯分布后(如上图),对root点的高斯模糊后的区域内的每个点与对应关键点位置做差,形成密度偏移图。用于后续回归。

(3)SPM网络结构
SPM利用了8阶段的Hourglass沙漏网络作为基础网络,下图为其中的一个阶段的示意图。在最初的设计中,沙漏网络利用一个分支来预测人体关节置信度图,用于单人姿态估计。在本文中,SPM利用沙漏网络的置信回归分支来回归root节点的置信图。此外,SPM通过添加位移回归分支扩展了沙漏网络,以估计人体关节位移密度图。通过这种方式,SPM可以在单次向前传递中生成SPR模型结果。最终通过SPR模型,就可以进行多人姿态估计。

3.网络在数据集上的表现

如下图所示,本文提出的SPM网络在coco数据集上的表现达到了66.9map。并且速度相较于openpose提升了一个数量级。本文虽然把人体位置和人体关键点整合到一个网络中了,但是仅仅表征了人体中心点位置,并没有得到人体区域。相信这种one-stage系列算法在未来会有更大的突破,结合将人体区域和关键点信息整合到一起肯定也是趋势。下一篇文章,我就想讲下,现在已经有类似的检测网络的出现,我们要做到就是简单的整合而已~

发布了233 篇原创文章 · 获赞 187 · 访问量 40万+

猜你喜欢

转载自blog.csdn.net/qiu931110/article/details/100178522