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

1.前言

这篇文章是ECCV2016的论文,Jia Deng组的工作,是top-down算法,非常经典,当时也是在各种公开数据集上霸榜。在FLIC和MPII上都是第一名(在当时),是sota算法。现在很多关于姿态估计的论文都有参考SHN或者会拿他作对比,可以说是比较典型的姿态估计算法。

 

2. 网络结构

SHN网络名字起的很不错,级联的沙漏网络,顾名思义,沙漏网络就表示该网络具有高度对称性,多个沙漏网络进行级联,其实不级联也是可以检测的,只是检测效果会差一些,作者认为人体关节点之间有较强的相关性,前面沙漏检测出的关键点对后面的检测有帮助,所以前面的输出可以作为后面的输入的一部分,见下图的虚线部分,这个后面再讨论。

级联的沙漏网络

 

2.1单个沙漏网络

单个沙漏网络如上图所示,这是一个4阶版本的沙漏网络,表示有四次下采样和四次下采样。方块大小表示feature maps大小,方块变小方式下采样,方块变大是上采样,加号表示按元素相加。其他全部都是残差模块,上方的连线方式也是一些残差模块,但是没有改变feature maps的大小,只是改变通道数,变成与下面相同,然后才可以按元素相加。

看一下更加具体的版本

该图来自https://blog.csdn.net/shenxiaolu1984/article/details/51428392。浅绿色部分是一些残差模块。看上去很明朗,就是一些残差模块,先下采样然后上采样,这样的网络结构提取特征很充分,在不同的分辨率有进行卷积,然后还有特征融合。但是也有一些弊端,不能使用pretrained model,因为它不像cpn那样,GlobalNet是resnet50或者resnet101,可以直接使用在ImageNet上预训练的模型进行初始化。没有预训练模型用来初始化,一般需要训练更久然后效果会更差一些,但是没有预训练的情况下,当数据很充分,训练也很充分,合理使用BN或者GN,炼丹能力较好的情况下,是可以达到预训练的效果(Kaiming He的最新论文的结论,Rethinking)。

2.2看一下Pytorch版本实现

class HourglassNet(nn.Module):
    '''Hourglass model from Newell et al ECCV 2016'''
    def __init__(self, block, num_stacks=2, num_blocks=4, num_classes=16):
        """
        参数解释
        :param block: hg块元素
        :param num_stacks: 有几个hg
        :param num_blocks: 在两个hg之间有几个block块
        :param num_classes: keypoint个数,也就是最后的heatmap个数
        """
        super(HourglassNet, self).__init__()

        self.inplanes = 64
        self.num_feats = 128
        self.num_stacks = num_stacks
        self.conv1 = nn.Conv2d(3, self.inplanes, kernel_size=7, stride=2, padding=3,
                               bias=True)   # 第一次下采样
        self.bn1 = nn.BatchNorm2d(self.inplanes) 
        self.relu = 
  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
### 回答1: 堆叠沙漏网络Stacked Hourglass Networks)是一种用于人体姿态估计的深度学习模型。它由多个沙漏模块(Hourglass Module)堆叠而成,每个沙漏模块都包含了卷积神经网络和池化层,用于提取特征。堆叠沙漏网络的优点是可以对不同尺度的特征进行处理,从而提高了姿态估计的准确性。 ### 回答2: Stacked Hourglass NetworksSHN)是一种用于图像分割和人体姿势估计的神经网络结构,由卡内基梅隆大学和康奈尔大学的研究人员于2016年提出。SHN通过多层级的堆叠半监督网络,在对输入图像进行多尺度特征提取的同时实现了高分辨率的姿态估计SHN主要由两部分构成:堆叠的小型Hourglass网络和批量标准化(BN)。Hourglass网络是指由多层卷积层和上采样层、下采样层构成的一个可编程的Block,用于具体化姿态估计的操作。堆叠在一起的小型Hourglass网络在不同的分辨率和空间上进行特征提取,以共同实现最终的分割和姿态估计结果。批量标准化是一种用于规范化网络输入和加速网络收敛的技术。 SHN对于图像分割和人体姿势估计具有较高的准确率和鲁棒性。采用上述网络结构进行人体姿势估计,可优化难度较大的人体部位之间的相互作用和相互影响,使得姿态估计的精度和稳定性得到了显著提高,在肢体遮挡、图像噪声和背景复杂等困难情况下也可以取得良好的表现。 总之,作为一种多层级、半监督的神经网络结构,SHN在图像分割和人体姿势估计中发挥着越来越重要的作用,也为相关领域的研究和应用提供了一个重要的思路和工具。 ### 回答3: Stacked Hourglass Networks是一个先进的计算视觉网络,用于实现人类关键点检测和姿势估计。与其他现有的方法相比,它具有更准确,更可重复和更快速的输出。该模型通过串联8个Hourglass模块构建,Hourglass模块是特殊的卷积神经网络,可以对图像进行多次分辨率下采样和上采样以提高输出精度。这些模块也具有回归和分类头,能够同时预测关键点的位置和姿势。Stacked Hourglass Networks 模型已经在许多场景中取得成功,如动态手势识别、行人关键点检测和3D姿态估计等。 Stacked Hourglass Networks的核心思想基于卷积神经网络和图像金字塔技术。在处理人体关键点检测时,由于人的姿势会因为动态变化和视角变换而导致关键点位置的不稳定性。因此,处理这个任务的模型需要在不同的尺度下检测关键点和姿势。Stacked Hourglass Networks通过多个Hourglass模块的串联,每个模块将输入图像分别经过多次下采样和上采样,产生一系列不同尺度的特征图。这些特征图经过回归和分类头进行训练和预测,最后合成出整个图像输入的关键点和姿势输出。 Stacked Hourglass Networks模型具有许多优点,如精度高,稳健,具有可解释性等。在实际应用中已经取得了很好的效果。未来,Stacked Hourglass Networks模型仍然有很大的研究空间,可以通过各种改进和方法来提高性能,同时可以将其用于更多的视觉任务中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值