RMPE 论文读书笔记

2018-03-08 Xie Jingyi 更多博文 » 博客 » GitHub »

RMPE Machine Learning

原文链接 https://hsfzxjy.github.io/2018-03-08-RMPE-Notes/
注:以下为加速网络访问所做的原文缓存,经过重新格式化,可能存在格式方面的问题,或偶有遗漏信息,请以原文为准。


论文地址:https://arxiv.org/pdf/1612.00137

<!--more-->

现有的 Pose Estimation 解决方案

Single Person Pose Estimation (SPPE)

只尝试估计一个人的姿势。早期曾使用诸如随机森林等机器学习方法,近几年采用深度学习方案,大致有如下几种:

  • 基于 DNN 的
  • 基于 CNN 的(如 RMPE 使用的 Hourglass)
  • 其他架构,如 DeepPose

局限:

要求人能被精准定位,对人的位置十分敏感。

Multi Person Pose Estimation (MPPE)

可以估计多人的姿势,不同架构的框架对噪音(如 人的重叠、人的鲜有姿态)有不同的敏感度。

part-based MPPE

将人看做若干 part 的组合,先对特定的 part 进行识别,再组合起来得到人的完整姿态。

局限:

检测 part 时只考虑了局部的小区域,在某些情况下表现不好。

two-step MPPE

先检测每个人的 bounding box,再在每个 box 中独立地估计姿势。由于 bounding box 中仅有一人(而且可以做到占据 box 的一大部分),估计姿势可以采用现成的 SPPE 方案。但 SPPE 普遍对人的位置依赖较高,因此 two-step MPPE 对 bounding box 的性能有较高的要求。

RMPE 基于此

RMPE

思想

尽可能精确地识别出每个人的 bounding box,并做适当变换使其便于被 SPPE 处理;再交给 SPPE 进行估计姿势。为了增强 RMPE 的鲁棒性,应该用一些手段从有限的训练集中生成尽量多的样本。

Pipeline

两条分支:

(Object Detector) -> (STN) -> (Proposals Generator) -> (master SPPE) -> (SDTN, STN 的逆操作) -> Pose NMS -> Output

(Object Detector) -> (STN) -> (Parallel SPPE)

细节

  1. 有别于传统的 Object Detector,RMPE 在其后增加了 STN 作为图像正规化手段。这是因为 SPPE 对人的位置非常敏感,倘若能固定住人的位置(如居中),则可最大化 SPPE 的性能。
  2. RMPE 中有两条 SPPE 分支,其中的 parallel SPPE 的参数是固定的,它将 STN 后的图像直接与正规化后的 label (即将原 label 做适当变换使人处于正中)比较得到误差并由此进行训练。训练的结果可使 STN 正确地将人变换至中间位置,从而最优化 master SPPE。
  3. 考虑到对于一个人,Object Detector 只能产生一个 bounding box,RMPE 在 STN 后面又安插了 Proposals Generator 用于生成更多的样本。Proposals Generator 会对 Object Detector 产生的 bounding box 做一定的偏移,再传入 master SPPE。
  4. 考虑到 Proposals Generator 会对一个人生成多个 bounding box,而对于不同的 bounding box,master SPPE 会做出不同的姿态估计,RMPE 引入 Pose NMS(Pose Non-Maximum Suppression)对这些姿态进行合并。Pose NMS 综合考虑了姿态的位置与置信度因素。

实现(测试期)

在 Pipeline 中,有两个组件 Object Detector 和 SPPE 是被泛化,可以使用任何解决方案。在测试时,作者使用了 VGG-based SSD-512 作为 Object Detector,及 Stacked Hourglass Model 作为 SPPE 的实现,以达到最大的性能。

新组件的必要性

较于传统的架构,RMPE 引入了 STN (及附属的 Parallel SPPE)、Proposals Generator 及 Pose NMS 这三个新组件。在作者分别移除了它们后,RMPE 的性能显著下降。可见这些组件引入的必要性。

相关组件

Spatial Transformer Network (STN)

原始论文:https://arxiv.org/abs/1506.02025

由 Localization Net、Grid Generator、Sampler 三部分组成,其中 Localization Net 为一个传统的 CNN。STN 可以被嵌入在具体任务的 CNN 中以增强其性能。STN 不需要额外的监督学习,随着原来的网络一起训练即可。

Stacked Hourglass Network

原始论文:https://arxiv.org/abs/1603.06937

Hourglass 是一个基于 CNN 的 SPPE。采用若干“沙漏状”模块(先自上而下降低分辨率,再自下而上采样)堆叠,相比其他 CNN 有更好的性能。

相关数据集

MPII Human Pose Dataset: http://human-pose.mpi-inf.mpg.de/