前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >论文阅读理解 - Learning Feature Pyramids for Human Pose Estimation

论文阅读理解 - Learning Feature Pyramids for Human Pose Estimation

作者头像
AIHGF
修改2020-06-12 15:16:38
9650
修改2020-06-12 15:16:38
举报
文章被收录于专栏:AIUAIAIUAI

Learning Feature Pyramids for Human Pose Estimation

[Paper]

[Code-Torch]

在 Inference 时,Pyramids 类方法被广泛用于处理 scale 变化.

  • 提出 Pyramid Residual Module(PRMs) —— 金字塔残差模块,来增强 DCNNs 的尺度不变性(invariance in scales);
  • Hourglass 网络,conv-deconv 结构;
  • 提出新的权重初始化方法,对 multi-branch 网络权重进行初始化.
  • 目标: 增强 DCNNs 对于尺度变化的鲁棒性;
  • 方法: PRMs,学习卷积 filter,建立特征金字塔; 给定输入 features,PRMs 采用 multi-branch 网络基于不同采样率进行下采样,以获得不同尺度的特征; 然后,对不同尺度的特征学习卷积 filters; 再对 filtered 特征 下采样到相同分辨率,并相加不同尺度特征.

1. Stacked Hourglass Network

Hourglass 网络以 feed-forward 方式学习每个 scale 的信息.

首先,对 feature maps 下采样,bottom-up 处理;

然后,对 feature maps 上采样, top-down 处理;并结合 bottom layers 的更高分辨率特征;如 Figure 2(b).

重复多次 bottom-up 和 top-down,构建 stacked hourglass 网络,在每个 stack 的末尾添加中间监督.

这里写图片描述
这里写图片描述

Figure 1. single “hourglass” 模块例示. 每一个 box 对应一个 residual 模块.

Residual Unit:

这里写图片描述
这里写图片描述

采用 residual unit 来构建 hourglass 网络 block. 但其只能捕捉一个尺度的视觉特征和语义.

Stacked Hourglass Network 训练的中间监督处理:

这里写图片描述
这里写图片描述

Figure 1.1 中间监督处理. 网络输出 heatmaps(蓝色框) ,其后添加训练 loss. 采用 1×11×11×1 卷积将 heatmaps 来匹配 intermediate 特征的 channels 数.

2 Pyramid Residual Modules(PRMs)

这里写图片描述
这里写图片描述

Figure 2. 框架. (a) 网络结构,有 nnn 个 stacks hourglass 网络. (b) 每个 hourglass stack 的细节. 每个 hourglass 的末尾产生 joint 位置的 scoremaps,并使用 squared-error loss.

PRM 学习输入 features 的不同分辨率的 filters.

这里写图片描述
这里写图片描述

Figure 3. PRMs 结构. 虚线表示恒等映射(identity mapping). (a) PRM-A, 将输入 feature maps 从不同金字塔层独立分离;(b) PRM-B,对于所有的金字塔层采用共享输入;PRM-C 采用 concatenation 取代 addition 来组合从金字塔层得到的特征,类似于 inception 模型;(c) PRM-D,利用 dilated 卷积,类似于 ASPP-net,而不是采用 pooling 来构建金字塔. 虚线梯形表示跳过下采样和上采样.

2.1 生成输入特征的金字塔

DCNNs一般应用 max-pooling 和 average-pooling 来降低 feature maps 的分辨率,编码其平移不变性.

但,pooling 采用至少为 2 的整数因子,会导致 feature maps 的分辨率降低很快,很粗糙;不能很好的生成金字塔.

因此,这里采用 fractional max-pooling 来逼近传统图像金字塔的平滑和下采样处理,以得到不同分辨率 feature maps.

2.2 讨论

  • PRM 可以用于 CNN 结构的基础模块,如 stacked hourglass networks-姿态估计, Wide Residual Nets-图像分类,ResNeXt-图像分类.
  • Pyramid 结构的变形: 如 Figure 3(a-b),采用 max-pooling,convolution 和 upsampling 学习特征金字塔; 如 Figure 3(c),PRM-D,采用 dilated convolution 来计算特征金字塔; 如 Figure 3(b),PRM-C,金字塔不同层次特征除了采用相加(summation)处理,还可以采用 concatenation; Figure 3(b),PRM-B 具有相当的表现,但参数相对较少,计算复杂度较低. 【提供的[Code-Torch] 应该是基于 PRM-B 模型.】
  • 复杂度 stacked hourglass network 的 residual unit 的输入和输出是 256-d,在residual unit 降低到 128-d. 这里采用该 residual unit 对原始尺度分支处理. 由于小分辨率的特征包含相对较少的信息,故这里对小尺度分支采用小的特征 channel. 例如,给定 PRM,有 5 个分支,对于小尺度分支有 28 个 feature channel. 参数和 GFLOPs 的复杂度大约只增加了 10%.

3 网络训练和推断

3.3 网络初始化方法

主要是提出 multi-branch 网络初始化方法.

对于深度网络的训练,初始化很重要,尤其是像素级的 dense prediction. 在 dense prediction 中,由于全卷积网络需要较多的显存消耗,只能采用小 minibatch.

3.4 Output Variance Accumulation 输出方差的累积问题

  • 恒等映射 Identity mapping 会导致随着网络的加深,响应的变化逐渐增加,使得优化难度增大.
这里写图片描述
这里写图片描述
  • 当两个 residual units 的输出相加时,这里采用 batch_normalization 和 ReLU 后接 1×11×11×1 的卷积来代替恒等映射. 如 Figure 6.
这里写图片描述
这里写图片描述

4 实现和结果

4.1 实现细节

  • 输入图片根据标注的人体位置和 scale ,从 resized 图片中裁剪尺寸 256×256256×256256×256.
  • LSP test 集: 直接采用图像中心作为人体位置,根据图片尺寸估计人体 scale;
  • 训练数据增广: scaling,rotation,flipping,color noise等;
  • 采用 Torch 训练
  • 网络优化方法为 RMSProp,4 Titan X GPUs,mini-batch size 为 16,每张 GPU 4 张图片,200 epoches.
  • Testing 对 6-scale 图像 Pyramids 并 flipping 进行.

4.2 Results

网络初始化方法对比:

这里写图片描述
这里写图片描述

MPII 和 LSP 数据集上不同方法对比:

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017年12月16日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Learning Feature Pyramids for Human Pose Estimation
    • 1. Stacked Hourglass Network
      • 2 Pyramid Residual Modules(PRMs)
        • 2.1 生成输入特征的金字塔
        • 2.2 讨论
      • 3 网络训练和推断
        • 3.3 网络初始化方法
        • 3.4 Output Variance Accumulation 输出方差的累积问题
      • 4 实现和结果
        • 4.1 实现细节
        • 4.2 Results
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档