美文网首页
Hourglass Network

Hourglass Network

作者: 酸菜霉霉 | 来源:发表于2019-02-18 09:56 被阅读0次

    论文:Stacked Hourglass Networks for Human Pose Estimation

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

    一. 简介

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


    图1

    1. 基本块

    使用Residual Module 作为基本的网络单元,1x1 的卷积降维256->128 ,3x3 的卷积,1x1的卷积升维128->256。


    图2

    2. 单个沙漏网络的拓扑结构是对称的

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


    图3

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

    3.中继监督

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


    图4

    二. 模块详细解读

    1. Residual模块

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

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

    2. Hourglass网络

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

    图6
    上下两个半路都包含若干Residual模块(浅绿),逐步提取更深层次特征。但上半路在原尺度进行,下半路经历了先降采样(红色/2)再升采样(红色*2)的过程。
    降采样使用max pooling,升采样使用最近邻插值。
    注:另一种进行升采样的方法是反卷积层(Deconv)

    二阶Hourglass
    把一阶模块的灰框内部分替换成一个一阶Hourglass(输入通道256,输出通道N),得到二阶Hourglass:

    图7
    两个层次的下半路组成了一条两次降采样,再两次升采样的过程。两个层次的下半路则分别在原始尺寸(OriSize)和1/2原始尺寸,辅助升采样。

    四阶Hourglass
    本文使用的是四阶Hourglass:

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

    三. 完整网络结构

    1. 一级网络

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


    图9

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

    2. 二级网络

    本文使用的完整网络包含两个Hourglass:


    图10

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

    • 第一个Hourglass的输入数据
    • 第一个Hourglass的输出数据
    • 第一级预测结果

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

    总结

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

    • 使用模块进行网络设计
    • 先降采样,再升采样的全卷积结构
    • 跳级结构辅助升采样
    • 中继监督训练

    整个hourglass不改变特征的尺度,只改变特征的深度。

    转自:https://blog.csdn.net/u013841196/article/details/81048237

    相关文章

      网友评论

          本文标题:Hourglass Network

          本文链接:https://www.haomeiwen.com/subject/zcwpeqtx.html