Stacked Hourglass Networks for Human Pose Estimation
论文地址:https://arxiv.org/abs/1603.06937
代码:http://www-personal.umich.edu/~alnewell/pose/
(关于这篇论文,作者发布了v1和v2的两种版本,其中内容稍有不同,笔者重点看了v2版本,同时也参照了v1版本,但仍有部分细节不甚清楚,并且在研读过程中,感觉似乎v1和v2版本在某些细节上的介绍相互冲突。如有机会,研读代码后再继续完善本篇博客。以下内容主要参照v2版本论文)
CVPR2016年的一篇单人姿态估计论文,其精度在CPM(Convolutional Pose Machines)之上,采用串行网络结构,主要由Residual Module和Hourglass两个子模块融合组成,网络结构高度对称,整体网络结构如下:
上图中每一个沙漏模型代表一个Hourglass子网络,整体网络由多个Hourglass子网络串联而成,输入先经过一个7*7的stride为2的convolutional layer,然后经由一个Residual Module和max pooling,再送入Hourglass子网络。
对于每个Hourglass子网络,主要由Residual Module和max pooling组成。如下图:
每个box代表一个Residual Module。Residual Module结构如下左图:
如上右图,每个Hourglass的输出,通过两个1*1的convolutional layer转换维度,其中,第一个1*1的convolutional layer转换维度后使得输出的heatmaps的channels与intermediate features的channels相匹配,然后计算一个loss。最后,两者和Hourglass的输入加到一起作为下一个Hourglass的输入。
整体的网络思想就是downsample、upsample和stack,同时引入intermediate supervision,这点和CPM的思想是一样的。
最后再介绍一下单个Hourglass的组成,虽然Figure 3中已经给出,但具体细节光看图可能无法理解。根据作者论文的细节,结合Figure 3,笔者大致画出了如下一阶Hourglass网络结构(不包含loss):
其中,将红色框用整体替换,则可以得到二阶、三阶等等Hourglass网络。
个人笔记,水平有限,欢迎指正。