Paper Reading - HRNet 系列

更多可关注 

计算机视觉-Paper&Code - 知乎

先更新HRNet系列第一篇,留坑,炼丹的人命名都很奇怪,HRNet还以为是人力总监发的呢,OCRNet跟OCR文字识别又扯不上边,欢迎大家一起讨论学习

Deep high-resolution representation learning for human pose estimation

Deep high-resolution representation learning for visual recognition

High-resolution representations for labeling pixels and regions

Lite-HRNet: A Lightweight High-Resolution Network

Abstract

  • HRNet由微软亚洲研究院和中科大提出,已发表于CVPR2019
  • 王井东 IEEE fellow 目前已经加入百度AIGroup作为CV首席架构师,主要研究领域为姿态估计、分割检测工业学术大牛。HRNet目前作为学术工业双开花的Backbone实属难得,后续的再出Segformer系列,transfomer is all u need

  • 一般对于分类网络来说,语义信息是更重要的,因此一般采用卷积来获得低分辨表征用于分类。
  • 但在语义分割、姿态识别、目标检测中。高分辨率表示的细节信息对于位置敏感的任务是至关重要的。

Related Work

paper主要对于不同的表征学习做了总结,主要分为三类

  • 学习低分辨表征,最典型的方法就是FCN,通过移除分类网络的fc层,得到了的低分辨率表示来获得粗略估计图,通过结合低分辨层表征来达到相对精细的分割。之后的改进包括deeplab和pspnet。
  • 恢复高分辨表征,先使用进行下采样降低分辨率获取语义信息,再通过上采样增加分辨率获得空间细节信息,然后通过skip-connect恢复下采样中的信息。代表的有FPN、U-Net、SegNet
  • 保持高分辨表征,维持一组高分辨率卷积不变,然后添加低分辨率的卷积分支最后进行不同分辨率的融合,该方法本文主要专注使用的方法,代表的有FRRN、GridNet、Interlinked CNNs、Convolutional neural fabrics

Motivation

目前工作不足

  • 作者认为之前方法那样均采用了串行连接,在进行下采样过程中,不可避免的会损失信息。且在从低分辨恢复到高分辨的过程中,会导致高分辨位置信息丢失,因此对预测性能会下降 。
  • 在保持高分辨表征的方法中,16年的Convolutional neural fabrics忽略了不同分支之间的信息交互,并且没有使用bn与残差连接;近期GridNet中提出的网格流结构模型中也有类似结构,但在第一个stage中,网络只是单向的将高分辨表征传递给低分分辨,后一个stage则相反。因此两种方法在分割任务上表现效果都不太满意,paper相当于各取所长,设计了新的HRNet的结构。

新网络特点与改进方法

  • 保留高特征图在同一branch中不进行下采样操作 ------ 高分辨率和低分辨率并行连接向前。
  • 不同stage中通过构建不同分辨率的特征图,用于branch之间信息交互融合 ------ 高低分辨率表征之间在四个stage间通过卷积操作不断交换信息进行多分辨率融合

Algorithm

Paper Reading - HRNet 系列_第1张图片

整体语义分割的网络结构

  • 首先使用两个stride为2的3*3卷积核对原图进行处理,将分辨率降为原图的1/4
  • 上图所示进行的平行卷积操作,通过卷积下2倍生成新分支,不同branch的分辨率分别为1,1/2,4/1,1/8
  • stage4后使用1*1的卷积对多分辨率的特征图进行融合得到1+2+4+8=15C的特征图
  • 使用得到的特征同进行4次上双线性插值法的上采样得到输入尺寸大小分割结果

Paper Reading - HRNet 系列_第2张图片

最后对于输出的1、2、4、8C流文中也给出了三种不同的的版本的representation head

  • a:只输出从高分辨率卷积流计算的高分辨率表示会丢失掉低分辨的表征。
  • b:结合了所有从高到底分辨率的并行流的表示,通过双线性插值将低分辨上采样到8C然后concat到一起,在进行4倍上采样得到输入尺寸大小分割结果。
  • c:从b的高分辨率输出中构建特征金字塔表示用于目标检测。

Paper Reading - HRNet 系列_第3张图片

作者额外也介绍了用于图像分类的head(留坑再分析,先关注分割部分)

Experiment

作者在cityscapes、pascal、LIP、目标检测、人脸关键点任务上都取得了非常好的效果,毋庸置疑那个男人来了 - SOTA

训练配置

  • 数据:随机裁剪(from 1024×2048 to 512 × 1024),随机缩放(from 0.5 to 2),随机翻转。
  • 优化器:SGD,初始学习率0.01,momentum 0.9,weight decay 0.0005, use poly lr policy power0.9;
  • iter 120000 ,batch size12,syncBN 4GPUs.

Paper Reading - HRNet 系列_第4张图片

以HRNet为Backbone的模型复杂度也处于较优数值

Paper Reading - HRNet 系列_第5张图片

总结:通过实验比对总的来说使用高分辨率、多尺度特征融合、更宽更多channel能够提升模型性能;

Coding

  • 除了第一个stage为Bottleneck其他stage都为BasicBlock
  • Bottleneck中为1*1conv+3*3conv_1*1conv,BasicBolck中都为3*3卷积
  • 一共用4个stage,stage中比较重要的是fuse和transition的构建,第一个stage采用bottleneck能够减少参数量,减少计算量。且在降维之后对于特征提取更准确

Paper Reading - HRNet 系列_第6张图片

网络结构主要类HighResolutionNet,以及对应的私有函数

  • _make_fuse_layers 该函数进行低分辨率和高分辨率的融合。主要有三种情况
    • 如果为同一分支则fuse_layer添加None,
    • 上采样采用1*1卷积调整通道数,进行分支信息交互,后接一个最近上采样
    • 下采样采用多个strided=2的3*3卷积,单次输出channel扩大2倍,且最后一次卷积后不接relu

  • _make_transition_layer 该函数TransitionLayer用于生成新的下采样两倍分支的输入,跟fuse下采样操作一样后接relu

一些想法与问题

  • 文中对最后输出为什么采用双线性插值上采样并没有进行讨论。且在fuse_layer中使用了效果不是很好的nearest neighbor,考虑在不考虑算力的情况下可以采用其他方法的插值或者反卷积
  • 模型参数量大,难于部署,刚想到就发现作者2021发了Lite-HRNet
  • 代码中有部分细节跟原论文不对应,还需要再深看确认。比如transition_layer中第四层应该需要前三次下采后融合,但是代码中直接从第三层下采得到了。再有就是没有看到代码中对于fuse中上采样的操作只有卷积
  • 文章类似的在FRRN、BiSeNet采用两条处理分支/流将全分辨率细节流与语义流相结合异曲同工之妙,不过文章没有提及。
  • 关于一些参数设置,
    • 线性插值时ALIGN_CORNERS为true
    • inplace设为true节约内存
    • 1646pxconv后接bn就不需要设置bias了,同上
    • BN_MOMENTUM设为0.1

Paper Reading - HRNet 系列_第7张图片

Paper Reading - HRNet 系列_第8张图片

留坑Paper

BASE

Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour

Rethinking ImageNet Pre-training

Rethinking Pre-training and Self-training

Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift

An overview of gradient descent optimization algorithms

ObjectDetection

Bag of Freebies for Training Object Detection Neural Networks

Segmentation

Dice LovaszSoftmax Loss

BackBone

Revisiting ResNets: Improved Training and Scaling Strategies

Deep Residual Learning for Image Recognition

Other

Decoupling Representation and Classifier for Long-tailed Recognition

Self-Supervised Learning

Moco

SimCLR

你可能感兴趣的:(计算机视觉,人工智能,深度学习)