Stacked Hourglass Networks简析

引言

Stacked Hourglass Networks,提出于ECCV2016,主要用于人体姿态检测(human pose estimation)。

在数据集MPII Human Pose上,以PCKh-0.5为指标,Stacked Hourglass Networks大约排名第7,其变种Stacked Hourglass + Inception-resnet排名第5。

相关的官方资料链接如下:

  • 论文地址

  • 官方训练代码

  • 官方demo

  • 预训练模型

结构框图

Stacked Hourglass Networks,得名于结构形似堆叠起来的沙漏,如下图所示:

核心思想

Top-down与Bottom-up结合

多人姿态估计分为Bottom-Up方法和top-down方法两个方向。

Bottom-Up方法:先检测图像中人体部件,然后将图像中多人人体的部件分别分配到不同的人体实例上,因此这类方法在测试推断的时候往往更快速,模型Size更小,但因为没能更细致的对人体关键点建模,所以往往准确度稍低。

Top-Down方法:将人体检测和关键点检测分离,在图像上首先运行一个人体检测器,找到所有的人体实例,对每个人体子图再使用关键点检测,这类方法往往极其慢,但姿态估计准确度较高。

Stacked Hourglass Networks:Hourglass模块是对称结构,bottom-up过程将图片从高分辨率降到低分辨率,top-down过程将图片从低分辨率升到高分辨率,这种网络结构包含了许多pooling和upsampling的步骤,pooling用于提取特征减少冗余,upsampling可以结合多个分辨率的特征。

降采样使用max pooling,升采样使用最近邻插值。

网络基本模块

Residual Module

Residual模块提取了较高层次的特征(卷积路),同时保留了原有层次的信息(跳级路)。不改变数据尺寸,只改变数据深度。可以把它看做一个保尺寸的高级“卷积”层。

一阶Hourglass Module

Hourglass Module由Residual Module组成,由于它是一个递归的结构,定义一个阶数来表示递归的层数,一阶的Hourglass Module如图所示:

上下两个半路都包含若干Residual模块(蓝色),逐步提取更深层次特征。但上半路在原尺度进行,下半路经历了先降采样(绿色)再升采样(红色)的过程。

四阶Hourglass Module

将一阶Hourglass Module中的虚线框替换为下一级Hourglass Module,就可以递归实现高阶Hourglass Module。论文中使用的是四阶Hourglass Module。

单个四阶Hourglass Module计算过程中的特征图大小变化如下:

完整的一级Hourglass Networks

以一个Hourglass(深绿色)为中心,可以从彩色图像预测K个人体部件的响应图:

原始图像经过一次降采样(橙色),输入到Hourglass子网络中。Hourglass的输出结果经过两个线性模块(灰色),得到最终响应图。期间使用Residual模块(浅绿)和卷积层(白色)逐步提取特征。

中继监督**(Intermediate Supervision**)

作者在整个网络结构中堆叠了许多hourglass模块,从而使得网络能够不断重复自底向上和自顶向下的过程,作者提到采用这种结构的关键是要使用中间监督来对每一个hourglass模块进行预测,即对中间的heatmaps计算损失。

关于中继监督的位置,作者在文中也进行了讨论。大多数高阶特征仅在较低的分辨率下出现,除非在上采样最后。如果在网络进行上采样后进行监督,则无法在更大的全局上下文中重新评估这些特征;如果我们希望网络能够进行最佳的预测,那么这些预测就不应该在一个局部范围内进行。

由于hourglass模块整合了局部和全局的信息,若想要网络在早期进行预测,则需要它对图片有一个高层次的理解,即使只是整个网络的一部分。最终,作者将中间监督设计在如下图所示位置:

二级Hourglass Networks

由于引入了中继监督思想,Hourglass Networks可以进行级联,二级的Hourglass Networks示意如下:

八级Hourglass Networks

在整个网络中,作者共使用了8个hourglass模块,这些hourglass模块的权重不是共享的,并且所有的模块都基于相同的ground truth添加了损失函数。

对于不同的Hourglass Module,中继loss是单独计算的,这样使得后面的Hourglass Module能够更好地再评估。

逻辑关系

模块从底层到顶层的关系式:

Residual Module -> 一阶Hourglass Module -> 高阶Hourglass Module -> 单级Hourglass Networks -> Stacked Hourglass Networks

模型亮点

  • 使用模块式网络设计
  • 采用先降采样,再升采样的结构
  • 借鉴resnet思想,使用跳级链接(skip connection)辅助升采样
  • 中继监督训练(intermediate supervision)

与Resnet/Densenet的联系与区别

Resnet

相同点

这篇文章借鉴了Resnet的跳级连接思想,这有助于训练过程中计算梯度的反向传播,使得网络深度可以大大提高。

跳级连接(skip connection)思想主要体现在:

  • 单个Residual Module的实现与Resnet类似
  • 一阶Hourglass Module分为两个支路,一路采用沙漏型结构,一路采用单个Residual Module
  • 中继监督也体现了跳级连接的思想

不同点

Stacked Hourglass Networks采用了先降采样再升采样的方式,提取不同层次的特征,并利用跳级连接和中继监督重用特征。Resnet中没有利用前级网络帮助升采样,结合不同分辨率特征的思想。

Densenet

相同点

与Resnet相比,都进一步重用了特征。

不同点

Densenet利用所有层之间的相互连接来重用特征,而Stacked Hourglass Networks利用前级特征来帮助升采样恢复图像来重用特征。

参考资料

1.Newell, Alejandro, Kaiyu Yang, and Jia Deng. “Stacked hourglass networks for human pose estimation.” arXiv preprint arXiv:1603.06937 (2016).
2. shenxiaolu1984@CSDN.net【人体姿态】Stacked Hourglass算法详解
3. Adia@zhihu.com 论文笔记Stacked Hourglass Networks

Stacked Hourglass Networks简析相关推荐

  1. Stacked Hourglass Networks 人体姿态检测

    本文是人体关键点中非常经典的一篇文章:Stacked Hourglass Networks for Human Pose Estimation 论文地址: https://arxiv.org/abs/ ...

  2. Paperreading之五  Stacked Hourglass Networks(SHN)和源码阅读(PyTorch版本)

    1.前言 这篇文章是ECCV2016的论文,Jia Deng组的工作,是top-down算法,非常经典,当时也是在各种公开数据集上霸榜.在FLIC和MPII上都是第一名(在当时),是sota算法.现在 ...

  3. Paperreading之五 Stacked Hourglass Networks(SHN)和源码阅读(PyTorch版本)

    版权声明:遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/baolinq/article/details/845753 ...

  4. (Stacked Hourglass Networks for Human Pose Estimation)用于人体姿势估计的堆叠沙漏网络

    摘要 This work introduces( 提出) a novel(新奇的) convolutional network architecture for the task of human p ...

  5. Stacked Hourglass Networks for Human Pose Estimation

    介绍 这是一篇2016年做单人姿态估计的文章 实验用的是MPII sigle 和 FLIC ,指标PCKh 通过堆叠沙漏结构的网络进行人体姿态估计 沙漏结构指通过pooling得到低分辨率的特征,然后 ...

  6. 论文阅读 Hourglass:Stacked Hourglass Networks for Human Pose Estimation

    摘要   本文介绍了一种新的卷积网络结构.为了最好的捕捉与身体相关的各种空间关系,所有尺度的特征都被处理和整合.我们展示了重复的自底向上.自顶向下的处理过程与中间监督结构一起使用是如何有效改善网络性能 ...

  7. Stacked autoencoder理论简析

    出处:http://www.fengchang.cc/post/92 上次总结了了PCA的东西,提到PCA的目的主要是降维. stacked autoencoder也可以做类似的事情.然而讲stack ...

  8. 论文分享 Stacked Hourglass Networks for Human Pose Estimation

    Alejandro Newell, Kaiyu Yang, and Jia Deng University of Michigan, Ann Arbor 2016.7 https://github.c ...

  9. 【人体姿态】Stacked Hourglass算法详解

    Newell, Alejandro, Kaiyu Yang, and Jia Deng. "Stacked hourglass networks for human pose estimat ...

  10. Learning with Noisy Correspondence for Cross-modal Matching 文献翻译 代码简析

    Learning with Noisy Correspondence for Cross-modal Matching 基于噪声对应的跨模态匹配学习 Learning with Noisy Corre ...

最新文章

  1. 认识网页:html + css + JavaScript
  2. 怎样使用计算机操作,怎么使用键盘快捷键操作电脑
  3. 小红帽linux操作教程_【免费】Linux从入门到精通教程!
  4. go语言之行--golang核武器goroutine调度原理、channel详解
  5. 48岁的C语言,你知道它背后的历史吗?
  6. oracle tns 代理配置_oracle数据库tns配置方法详解
  7. 周三直播预告丨openGauss和MogDB的优化分享
  8. Pytorch搭建自己的模型
  9. 微信公众平台体验(二)(单词翻译)
  10. 【报告分享】疫情期间抖音、快手带货趋势分析报告.pdf(附下载链接)
  11. hihocoder第237周:三等分带权树
  12. Web开发入门型服务器使用心得
  13. 关于苹果Mac上设置固件密码的方法?
  14. ToolScrip的设置与用法 (C#.NET Winform)
  15. Vue入门之常用指令
  16. Spring Boot实现的开源ERP系统,学习自用均可
  17. Linux rpm命令
  18. 收藏!万字长文盘点美国、德国、日本和韩国数字科技创新战略
  19. win10注册表开机自启
  20. 枫叶HD高清视频转换器 V10.2.2.0 官方安装版

热门文章

  1. 黑苹果Mac OS 12镜像下载 DMG
  2. 结节性硬化症会一直病变吗?结节性硬化最晚多大发病?
  3. 给人工智能初学者看的5本入门书 | 附下载链接
  4. 淘宝/天猫按关键字搜索淘宝商品 API 返回值说明
  5. DASCTF X CBCTF 2022九月挑战赛 dino3d
  6. 【以太网交换安全】---端口安全及MAC地址飘移防止与检测
  7. Tensorflow中 tf.train.exponential_decay() 等实现学习率衰减
  8. 音视频即时通讯—视频客服系统开发
  9. 硬盘分区大学计算机,电脑硬盘容量要怎么选?又要怎么硬盘合理分区?今天我再说一次!...
  10. “科目四”竟是民间杜撰出来的?