题目: Stacked Hourglass Networks for Human Pose Estimation - 2016 作者: Alejandro Newell, Kaiyu Yang, and Jia Deng 团队: University of Michigan, Ann Arbor

[Projects - Home]
[Train - Code-Torch]
[Demo - Code-Torch]
[PreTrainedModel]

<h2>keywords</h2>

  • 人体姿态估计 Human Pose Estimation 给定单张RGB图像,输出人体某些关键点的精确像素位置.
  • 全卷积网络 Stacked Hourglass Networks
  • 多尺度特征 Features processed across all scales
  • 特征用于捕捉人体的空间关系 Capture spatial relationships associated with body
  • 中间监督 Intermediate supervision


图 - Stacked Hourglass Networks由多个 stacked hourglass 模块组成,通过重复进行bottom-up, top-down推断以估计人体姿态.

<h2>沙漏设计 Hourglass Design</h2>

动机:捕捉不同尺度下图片所包含的信息.

局部信息,对于比如脸部、手部等等特征很有必要,而最终的姿态估计需要对整体人体一致理解. 不同尺度下,可能包含了很多有用信息,比如人体的方位、肢体的动作、相邻关节点的关系等等.

Hourglass设计:

图 - 单个hourglass模块示例. 图中个方框分别对应一个residual模块. 整个hourglass中,特征数是一致的.

hourglass设置:
首先Conv层和Max Pooling层用于将特征缩放到很小的分辨率;

每一个Max Pooling(降采样)处,网络进行分叉,并对原来pre-pooled分辨率的特征进行卷积;

得到最低分辨率特征后,网络开始进行upsampling,并逐渐结合不同尺度的特征信息. 这里对较低分辨率采用的是最近邻上采样(nearest neighbor upsampling)方式,将两个不同的特征集进行逐元素相加.

整个hourglass是对称的,获取低分辨率特征过程中每有一个网络层,则在上采样的过程中相应低就会有一个对应网络层.

得到hourglass网络模块输出后,再采用两个连续的 1×1 Conv层进行处理,得到最终的网络输出.

Stacked Hourglass Networks输出heatmaps的集合,每一个heatmap表征了关节点在每个像素点存在的概率.

<h2>Residual模块 Residual Module</h2>


Hourglass网络中使用的Residual模块.

Residual模块提取较高层次的特征,同时保留原有层次的信息.

  • 未使用大于3×3的Filters
  • 限制每层的参数总数,以减少总的内存消耗

输入256×256尺寸的图片需要较多的GPU显存,hourglass网络的最大分辨率,也就是最终的输出分辨率,为 64×64.

Stacked Hourglass Networks网络开始是步长为2,filters为7×7的Conv层,其后是residual模块和一串Max Pooling层,将分辨率由256降到64. 其后是两个residual和hourglass模块. 整个hourglass中的所有residual模块输出特征数都是256.

<h2>中间监督 Intermediate Supervision</h2>


Hourglass网络输出heatmaps集合(蓝色方框部分),与真值进行误差计算. 其中利用1×1的Conv层对heatmaps进行处理以保证中间特征的通道数一致. 每一个Hourglass网络都添加Loss层.

<h2>训练 Training</h2>

MPII Human Pose Dataset 数据处理:

  • 采用MPII提供的scale和center标注信息,以目标人为中心,裁剪图片
  • Resized to 256x256
  • Rotation (+/- 30 degrees)
  • Scaling (.75-1.25)

    未进行平移处理,因为图像中目标人的位置是很重要的信息.

Training:

  • Torch7
  • rmsprop with a learning rate of 2.5e-4
  • drop the learning rate once by a factor of 5 after validation accuracy plateaus
  • 3 days on a 12GB NVIDIA TitanX GPU
  • Batch normalization
  • Mean Squared Error (MSE) loss 计算估计的heatmap和参考heatmap的误差
  • single forward pass of the network takes 75 ms

Testing:

  • 原始图片和其翻转图片,输入到网络,取输出heatmaps的平均值
  • 最终输出的各heatmap的最大值位置作为关节点位置

<h2>Results</h2>



<h2>Related</h2>

Last modification:October 9th, 2018 at 09:31 am