论文阅读笔记之——《FishNet: A Versatile Backbone for Image, Region, and Pixel Level Prediction》

 

本文是对欧阳老师的paper的阅读笔记

先给出论文的地址http://papers.nips.cc/paper/7356-fishnet-a-versatile-backbone-for-image-region-and-pixel-level-prediction.pdf

论文代码https://github.com/kevin-ssy/FishNet

论文讨论的问题就是:对于区域或者pixel方面的任务,高分辨率是有效的。而对于image level的网络(比如object detection或者分类网络或者是由这些网络来pertrain的),却会随着网络深度的增加,分辨率变低,进而使得这样的网络不适用于区域或pixel level的任务。而本文要解决的,就是让这种image level的网络也可以保留高分辨率的信息,进而用于region和piexel level上

 

abstract

设计用于预测不同级别(例如image-level图像级,region-level区域级和pixellevel像素级)上的目标的卷积神经网络(CNN)结构的基本原理是不同的。通常,专门用于图像分类的网络结构直接用作检测和分割等其他任务的默认骨干结构,但是考虑统一为像素级或区域级预测任务设计的情况下设计的骨干结构很少,这可能需要具有高分辨率的非常深的特征。为实现这一目标,作者设计了一个名为FishNet的网络。在FishNet中,所有分辨率的信息都会保留并针对最终任务进行细化。此外,作者观察到现有的工作仍然不能直接将梯度信息从深层传播到浅层(existing works still cannot directly propagate the gradient information from deep layers to shallow layers)。该设计可以更好地解决这个问题。已经进行了大量实验来证明FishNet的卓越性能。特别是在ImageNet-1k上,FishNet的精度能够以更少的参数超越DenseNet和ResNet的性能。FishNet被用作COCO Detection 2018挑战赛获奖作品中的一个模块。

 

introduction

Networks for image classification use consecutive down-sampling to obtain deep features of low resolution. However, the features with low resolution are not suitable for pixel-level or even region-level tasks(低分辨率的feature不适用于pixel级别于区域级别的任务).

Direct use of high-resolution shallow features for region and pixel-level tasks however, does not work well.(直接使用高分辨率浅层的特征来作为区域与pixel任务效果也不好)

In order to obtain deeper features with high resolution, the well-known network structures for pixel-level tasks use U-Net or hourglass-like networks。也有采用up sample获取深层高分辨率的特征

motivated by 在region 层面和pixel层面上的任务,成功利用高分辨率的特征,作者提出了fishNet,使高分辨率的部分能够包含高级语义信息。

本文结构主要由以下的三个优势:

1、这是第一个统一为像素级、区域级、图像级任务设计的骨干网络。相较于纯粹为图像分类任务设计的网络,FishNet对于像素级和区域级任务而言更为有效。

2、它能够将梯度从非常深的层直接传播到较浅的层,这在文章中称为直接BP(direct BP)。最近的工作表明,有两种设计可以实现直接BP,residual block残余块和concatenation串联的恒等映射。然而,不言而喻的事实(unfold fact)是现有的网络设计,例如,ResNet和DenseNet等仍然不能够直接BP。此问题是由不同分辨率特征之间的卷积层引起的。如图1所示,ResNet利用skip connection上的带步幅的卷积层来处理输入和输出通道数量或分辨率的不一致,这使得恒等映射不适用。没有恒等映射或连接的卷积会降低从输出到浅层的梯度。

文章的设计通过将不同深度的特征concatenating(级联)到最终输出来更好地解决了这个问题。作者还仔细设计网络中的组件以确保直接BP。通过这些的设计,特征的语义信息也在整个网络中得以保留(更多信息的保留才能让信息更有效的被利用?上图注意看channel数目的变化。channel要一致才可以相加)。

3、来自不同深度的特征被保留,并且用来互相精炼refining。不同深度的特征有着对于图像内容的不同抽象程度,应该保留所有这些以改善特征的多样性。由于它们的互补性,它们可以用于相互细化(从而使得特征更加有效地被利用)。因此,文章设计了一种特征的保留和细化机制来实现这一目标。(Features with different depth have different levels of abstraction of the image. All of them should be kept to improve the diversity of features. Because of their complementarity, they can be used for refining each other.)

文章设计的一个可能违反直觉的效果是它在参数数量和图像分类精度之间的权衡中比传统的卷积网络表现更好。原因如下:

1、保留和细化的特征相互补充,比设计宽度或深度更大的网络更有用;

2、利用了(促进了)直接BP。实验结果表明,紧凑型FishNet-150,其参数数量接近ResNet-50:能够超越ImageNet-1k上的ResNet-101和DenseNet-161(k = 48)的精度。对于区域和像素级任务,如对象检测和实例分割,我们的模型作为Mask R-CNN的主干,与基线ResNet50相比,MS COCO上的绝对AP分别提高了2.8%和2.3%。

 

related work

Identity Mappings in Deep Residual Networks and Isolated Convolution

ResNet中的基础单元,residual block,可以用下式表示:

We consider the stack of all residual blocks for the same resolution as a stage(文中,把相同分辨率的所有剩余块的堆栈作为一个stage).

Gradient propagation problem from Isolated convolution (I-conv)

(孤立卷积的梯度传播问题)

所谓的孤立卷积就是公式3那样的,没有标识映射或级联(without identity mapping or concatenation)。it is desirable to have the gradients from a deep layer directly transmitted to shallow layers. Residual blocks with identity mapping和dense block with concatenation有助于这种直接梯度传播。如果存在孤立卷积,深层的梯度是不可以直接传到浅层的,

 

FishNet

上图为fishnet的结构,整个网络分为了三个部分,tail,body,head

  • tail是现有的CNN,例如ResNet,随着网络的深入,特征分辨率逐渐减小。with the resolution of features becoming smaller as the CNN goes deeper.
  • body则是有着数个上采样和细化块(refining blocks)的结构,主要用来细化来自tail和body的特征。The fish body has several up-sampling and refining blocks for refining features from the tail and the body.
  • head则是有着数个下采样和细化块的结构,用来保留和细化来自tail,body和head的特征。最后一个卷积层的细化特征被用来应对最终的任务。The fish head has several down-sampling and refining blocks for preserving and refining features from the tail, body and head. The refined features at the last convolutional layer of the head are used for the final task.

本文中的”阶段“(stage)是指由具有相同分辨率的特征馈送的一堆卷积块。根据输出特征的分辨率,FishNet中的每个部分可以分为几个阶段。随着分辨率变小,阶段ID变得更高

本文中的”阶段“(stage)是指由具有相同分辨率的特征馈送的一堆卷积块。根据输出特征的分辨率,FishNet中的每个部分可以分为几个阶段。随着分辨率变小,阶段ID变得更高。例如,输出分辨率为56x56和28x28的块分别位于FishNet的所有三个部分的第1和第2阶段。因此,在鱼尾和头部,阶段ID在前向传播时变得更高,而在身体部分中ID越来越小。

图3显示了两个阶段特征的尾部,身体和头部之间的相互作用。

  1. 图3a中的tail可被视为残差网络。tail的特征经历(undergo)几个残余块并且还通过水平箭头传递到body。
  2. 图3a中的body通过concatenation保留了来自尾部的特征和body前一stage的特征。然后,这些连接的特征将被上采样并细化,细节如b中所示。细化的特征会用作head以及下一个body的stage
  3. 对于head会保存以及细化来自body以及之前head的stage的所有特征。head中的信息传递方式可见c。
  4. 在tail,body,head的水平连接表示之间的传递块。在图3a中,使用残差块作为传输块。

Feature refinement(特征细化)

在fishNet中,有两种blocks for 上/下采用以及特征细化:Up-sampling & Refinement block (UR-block) and Down-sampling & Refinement block (DR-block).

The UR-block

该模块主要存在于body部分,所以其输入也就是来自于tail和body的特征。其表达式可以写成:

分别代表tail和body在阶段(stage)s的的第一层的输出特征。Nt和Nb代表tail和body部分的阶段数。特征级联通过来表示。代表residual block从tail到body传输的特征代表从上一阶段的fish body细化的特征。下一阶段的输出会从中细化,如下所示

其中,代表上采样函数。作为总结,UR-block级联特征通过公式7,并且在公式6中细化,然后再在公式5中上采样,来获取。公式6的代表从特征中提取信息。通过卷积层来实现。类似于下式的residual操作。通过bottlenek residual 单元(3个CONV)

式6中的信道约简函数可以写作:

这里的image.png表示有着cin通道的输入特征图,hatx表示有着cout通道的输出特征图,且有这关系cin/cout=k,所以等式中x(k*n+j)表示按照输入与输出的比例关系对输入的特征进行了一个分组,每个输出的通道只和其中的一组k个输入有关,是其中一组的加和。

DR-Block

而该模块主要用在head部分,相似于UR-block。只有两处不同:

  1. 使用2x2最大池化来下采样。
  2. 不使用通道缩减函数,以至于当前阶段的梯度可以直接被传送到先前的阶段。

 

特征保留和细化的设计不仅有助于处理直接梯度传播的问题,而且对像素级和区域级任务也很友好。

 

With the body and head designed in the FishNet, the features from all stages at the tail and body are concatenated at the head.

 

 

参考材料

https://swift.ctolib.com/kevin-ssy-FishNet.html

https://blog.csdn.net/P_LarT/article/details/89917706

https://www.yuque.com/lart/papers/fish

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值