《Stacked Hourglass Networks for Human Pose Estimation》
  • ECCV2016,密歇根大学的研究团队,Hourglass。
    后续的很多人体姿态估计方法都借鉴了hourglass网络结构,并进行了改进,可以说hourglass的网络结构算是受到了业界的认可。

简介:

本文使用全卷积神经网络,对给定的单张RGB图像,输出人体关键点的精确像素位置,使用多尺度特征,捕捉人体各关节点的空间位置信息。网络结构形似沙漏状,重复使用top-down到bottom-up来推断人体的关节点位置。每一个top-down到bottom-up的结构都是一个stacked hourglass模块。

1.基本块
使用Residual Module 作为基本的网络单元

1x1 的卷积降维256->128 ,3x3 的卷积,1x1的卷积升维128->256

2.单个沙漏网络的拓扑结构是对称的
最终一共使用了8个沙漏网络。每个沙漏网络的输入都为 64x64。
输入图片大小为256x256,一开始经过一次7x7 stride2 的conv ,紧接着跟随一个residual module和 max pooling将像素值从156下降到64(较少hourglass内部计算量)。其中所有的残差模块输出256个特征图。

3.如上图,在每次pooling之后都会有1个basic building block 加到之后 upsampling中相同大小的map中。(这里可以看出每个pooling前的feature map都是256 channel的,up sampling的时候也是256 channel的)

4.中继监督
Hourglass网络输出heatmap的集合(蓝色),将这与ground truth进行误差计算,其中使用1x1的卷积层进行处理是为了保证通道数相同,这是一种保证通道数相同很常见的方法,对每一个hourglass网络都添加loss,这就相当于是8个loss一起监督。

模块化详细解读:

Residual模块
本文使用的初级模块称为Residual Module,旁路相加结构。

第一行为卷积路,由三个核尺度不同的卷积层(白色)串联而成,间插有Batch Normalization(浅蓝)和ReLU(浅紫);
第二行为跳级路,只包含一个核尺度为1的卷积层;如果跳级路的输入输出通道数相同,则这一路为单位映射。
所有卷积层的步长为1,pading为1,不改变数据尺寸,只对数据深度(channel)进行变更。
Residual Module由两个参数控制:输入深度M和输出深度N。可以对任意尺寸图像操作。
设计原则:channel大的卷积,kernel要小;kernel大的卷积,channel要小;模块化思想。
作用:Residual模块提取了较高层次的特征(卷积路),同时保留了原有层次的信息(跳级路)。不改变数据尺寸,只改变数据深度。可以把它看做一个保尺寸的高级“卷积”层。

Hourglass子网络
Hourglass是本文的核心部件,由Residual模块组成。根据阶数不同,有不同的复杂程度。
一阶Hourglass:

上下两个半路都包含若干Residual模块(浅绿),逐步提取更深层次特征。但上半路在原尺度进行,下半路经历了先降采样(红色/2)再升采样(红色*2)的过程。
降采样使用max pooling,升采样使用最近邻插值。
注:另一种进行升采样的方法是反卷积层(Deconv)
二阶Hourglass:
把一阶模块的灰框内部分替换成一个一阶Hourglass(输入通道256,输出通道N),得到二阶Hourglass:

两个层次的下半路组成了一条两次降采样,再两次升采样的过程。两个层次的下半路则分别在原始尺寸(OriSize)和1/2原始尺寸,辅助升采样。
四阶Hourglass:
本文使用的是四阶Hourglass:

每次降采样之前,分出上半路保留原尺度信息;
每次升采样之后,和上一个尺度的数据相加;
两次降采样之间,使用三个Residual模块提取特征;
两次相加之间,使用一个Residual模块提取特征。
由于考虑了各个尺度的特征,本文不需要像CPM3方法一样独立地在图像金字塔上多次运行,速度更快。
作用:n阶Hourglass子网络提取了从原始尺度到尺度1/2n1/2^{n}1/2n的特征。不改变数据尺寸,只改变数据深度。

完整网络结构:

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

原始图像经过一次降采样(橙色),输入到Hourglass子网络中。Hourglass的输出结果经过两个线性模块(灰色),得到最终响应图。期间使用Residual模块(浅绿)和卷积层(白色)逐步提取特征。
更正:两个Linear应该是卷积操作,输出应该是H/4W/4K。
二级网络:
本文使用的完整网络包含两个Hourglass:

对比上图,二级网络重复了一级网络的后半结构。第二个Hourglass的输入包含三路:

  • 第一个Hourglass的输入数据
  • 第一个Hourglass的输出数据
  • 第一级预测结果
    这三路数据通过串接(concat)和相加进行融合,它们的尺度不同,体现了当下流行的跳级结构思想。
    对于H×W×3的输入图像,每一个hourglass级都会生成一个H/4×W/4×K的响应图。对于每个响应图,都比较其与真值的误差作为代价。体现了中继监督(intermediate supervision)的思想。

总结

本文的设计基于模块到子网络再到完整网络的思想。一阶hourglass网络就是一个最简单的旁路相加,上半路在原尺度进行,下半路先经历下采样再进行上采样。对于二阶hourglass网络,就是在一阶的基础上将一阶网络嵌套进来。至于之后的高阶hourglass就是一层一层嵌套,从本质上说子模块都是一样的。
特点:

  • 使用模块进行网络设计
  • 先降采样,再升采样的全卷积结构
  • 跳级结构辅助升采样
  • 中继监督训练
    整个hourglass不改变特征的尺度,只改变特征的深度。

参考:
1.https://blog.csdn.net/shenxiaolu1984/article/details/51428392
2.https://blog.csdn.net/qq_36165459/article/details/78321529


注:博众家之所长,集群英之荟萃。

卷积神经网络的网络结构——Hourglass相关推荐

  1. 卷积神经网络的网络结构——以LeNet-5为例

    卷积神经网络的网络结构--以LeNet-5为例 2016-03-29  天狼舰  文章来源  阅 497  转 9 转藏到我的图书馆 微信 分享: QQ空间 QQ好友 新浪微博 腾讯微博 推荐给朋友 ...

  2. 深度学习(7): 卷积神经网络2——网络结构

    文章目录 1 卷积神经网络的结构 1.1 输入层 1.2 卷积层 1.3 Pooling层 1.4 全连接层 1.5 输出层 2 卷积操作 2.1 Padding操作 2.2 滑动窗口卷积操作 2.3 ...

  3. 卷积神经网络的网络结构——VGGNet

    ######<Very Deep Convolutional Networks for Large-scale Image Recognition> 2014,牛津大学计算机视觉组(Vis ...

  4. 卷积神经网络的网络结构——ResNet

    <Deep Residual Learning for Image Recognition> 2015,kaiming He et al,ResNet. ResNet由微软研究院的kaim ...

  5. CNN卷积神经网络的网络结构和学习原理

    卷积神经网络,主要是对图片进行处理.假如需要对一个1000*1000的图片进行分类,如果用传统的机器学习或者DNN,如要输入1000000个特征,当然也可以提前用一些方法进行降维,但是处理还是不方便. ...

  6. RegNet——颠覆常规神经网络认知的卷积神经网络(网络结构详解+详细注释代码+核心思想讲解)——pytorch实现

            RegNet的博客的准备我可谓是话费了很多的时间,参考了诸多大佬的资料,主要是网上对于这个网络的讲解有点少,毕竟这个网络很新.网上可以参考的资料太少,耗费了相当多的时间,不过一切都是值 ...

  7. 卷积神经网络——Alexnet8网络结构及python实现

    简介: 上一节介绍了比较简单的LeNet-5网络结构,随着GPU的发展,电脑运算速度也越来越快,这就会让人去挖掘更复杂更深层次的卷积结构,于是有了双GPU运行的Alexnet8网络结构,包含了五个卷积 ...

  8. 卷积神经网络(CNN)综述

    目录 1. 卷积神经网络概念 2. 卷积神经网络的特点 2.1 局部区域连接 2.2 权值共享 2.3 降采样 3. 卷积神经网络的结构 3.1 卷积层 3.2 池化层 4. 卷积神经网络的研究进展 ...

  9. 深度学习之七:卷积神经网络

     9.5.Convolutional Neural Networks卷积神经网络 卷积神经网络是人工神经网络的一种,已成为当前语音分析和图像识别领域的研究热点.它的权值共享网络结构使之更类似于生物 ...

  10. 吴恩达深度学习笔记10-Course4-Week1【卷积神经网络】

    卷积神经网络(Convolutional Neural Networks) 一.计算机视觉(Computer Vision) 计算机视觉处理的输入都是图片.当图片尺寸比较小时,可以采用深度神经网络的结 ...

最新文章

  1. linux下inotify的使用
  2. Java程序员从笨鸟到菜鸟之(十)枚举,泛型详解
  3. 最新版Xshell 6安装教程详解
  4. Github【网站打不开 / 创建仓库 / 创建文件】
  5. ssm 异常捕获 统一处理_统一异常处理介绍及实战,看这篇就对了
  6. ZOJ - 3593 One Person Game(扩展欧几里得)
  7. 熊猫数据集_处理熊猫数据框中的列表值
  8. 位置模拟服务器超时,调用别人提供的服务的时候没有设置超时程序被卡住了怎么办?,如何模拟超时的情况?...
  9. jzxx1000~1010题分析
  10. 戴尔DELL——G3-3590笔记本BIOS设置u盘启动
  11. java uint,Java如何在java中解析uint8?
  12. 【转】Power System 中基于 VIOS 的虚拟以太网实现
  13. 【云计算的1024种玩法】搭建个人博客
  14. 织梦后台模块管理空白不显示的解决方法
  15. 流行的软件测试工具介绍
  16. 2022第二届中国ESG与可持续发展国际峰会将于11月17日-18日在上海举行
  17. MC 1.18.2 FORGE 开服教程及自动备份
  18. 加油站涉税数据管理云平台
  19. 云计算——网络布线(1)
  20. 怎么恢复丢失安卓手机数据文件呢

热门文章

  1. Ubuntu14.04显示隐藏文件
  2. sudoku_solver :数独解题器
  3. vmware linux虚拟机中添加硬盘
  4. nuc虚拟机服务器,玩出新花样NUC虚拟机OP+Roon妈妈再也不用担心听音乐卡了
  5. JS封装小写字母转大写
  6. kafka auto.offset.reset / latest / earliest 详解
  7. 17岁少年攻击航司系统获刑,网络攻击猖獗如何破?
  8. 联想用u盘重装系统步骤_用u盘给联想笔记本装系统
  9. 我一直在维护的石墨文档开源了
  10. 美规Homekit插座