paper title: stacked hourglass network for human pose estimation
paper link: https://arxiv.org/abs/1603.06937
oral or demo video:-
project: -
github:https://github.com/princeton-vl/pose-hg-train
conf & anthor: ECCV 16,Alejandro Newell et al (UMich)
arXiv submit v1: 2016.03 google citation: 969(2019.07.12)
相关链接:
- DeepPose - human pose estimation via deep nerual networks
- Efficient Object Localization Using Convolutional Networks
- Convolutional Pose Machines
- Human Pose Estimation with Iterative Error Feedback
- Hourglass Network - stacked hourglass network for human pose estimation
- OpenPose - Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields
主要内容:
这篇文章主要提出了一个“stacked hourglass”的卷积网络架构来完成单人人体姿态估计问题。文章提出了一种称为"hourglass"的模块,如其名,"hourglass"模块中的特征处理过程是一个"bottom-up -> top-down"的形式。在"bottom-up"过程中通过Maxpooling 操作feature map的尺寸不断减小,而接着的"top-down"过程中,通过上采样feature map的尺寸不断增大,恢复至输入的尺寸;在这个过程中,融合了不同分辨率的特征。最后通过多个"hourglass"的stack构成构成网络的整体结构。
网络结构:
(1)"hourglass"模块的基本结构
"hourglass"模块的基本结构如下图所示,图中的每一个方块都表示一个残差模块。
根据论文的代码,残差模块的具体形式如下:
(2)"stacked hourglass network"的整体结构
"hourglass network"的整体结构如下图所示,输入的图像首先经过卷积和pooling操作后,尺寸缩小四倍(256x256->64x64),然后接多个"hourglass"模块。在中间的每一个"hourglass"模块后都会输出一个中间结果heatmaps,参与损失函数计算,并会将这个heatmaps通过1x1的卷积“remap”回去,与原来的feature map相加到一起。具体详细的结构可以参见下图。
损失函数:
损失函数采用的是MSE:
L
m
o
d
u
l
e
=
1
T
1
W
∗
H
∑
t
=
1
T
∑
i
=
1
W
∗
H
(
c
i
t
−
c
^
i
t
)
2
L_{module}=\frac{1}{T}\frac{1}{W*H}\sum_{t=1}^{T}\sum_{i=1}^{W*H}(c_i^t-\hat{c}_i^t)^2
Lmodule=T1W∗H1t=1∑Ti=1∑W∗H(cit−c^it)2
其中:
- t表示关节点的编号,T=16;
- 上面公式表示的是一个"hourglass"模块的损失,计算loss的时候所有模块的损失都会计算。
论文结果:
MPII数据集上PCKh@0.5平均为90.9;具体如下: