[论文阅读]U^2 -Net: Going Deeper with Nested U-Structure for Salient Object Detection

U^2 Net

Abstruct

优点:

  • 由于不同尺寸的混合感受野,能捕捉更多的上下文信息(作者提出的RSU模块)

  • 使用了池化操作,在增加网络深度的同时没有增加计算量

Introduction

提出了以前的网络的不足:

Alexnet, VGG, ResNet, ResNeXt, DenseNet 这些网络本来都是做图像分类的backbones

现在用来做显著物体检测不合适。

因为他们更倾向与提取语义特征,而在提取局部细节和全局差异度上有所不足。

而且他们需要使用ImageNet上的预训练模型,但其实分布和我们自己的数据不一致

所以作者设计了一个新的backbone

之前的问题:

  • 现有的网络通常都很复杂,因为需要额外的特征聚合模块(比如self attention之类)

  • 现有的backbones为了更深,通常都牺牲了分辨率,而且都在很早的时候就scaled到了很小的分辨率

解决方法:

  • 设计了RSU模块,其能提取多尺度的特征而且不损失分辨率, 而且计算量很小

Proposed Method

Residual U-blocks

现在通常使用1x1和3x3卷积提取局部特征, 但是感受野太小了,不能捕捉到全局信息。

为了从隐藏层的高分辨率特征图中获取更多的全局信息,最直觉的方式就是增大感受野,比如空洞卷积。但是在高分辨率的图像上进行空洞卷积花费的代价太高。

所以采用下采样(PPM), 然后直接concatenate起来或者相加,但是这可能会损失高分辨率的特征。

所以提出了RSU模块

[论文阅读]U^2 -Net: Going Deeper with Nested U-Structure for Salient Object Detection

其中主要由三部分构成

第一部分为一个卷积

第二个部分为U形的encoder-decoder结构

其中第L层的输入为 F l ( x ) F_l(x) Fl(x),对应的解码部分为 U ( F l ( x ) ) U(F_l(x)) U(Fl(x)),输出为 F l ( x ) + U ( F l ( x ) ) F_l(x)+U(F_l(x)) Fl(x)+U(Fl(x))

池化操作越多, 感受野也就越大, 全局信息也就越多。

同时不断地池化操作和残差连结也可以相当于融合多尺度特征

Architechure of U^2-Net

这东西可以嵌套使用成 U n − N e t U^n-Net UnNet

  • 输出

将各个部分的特征图使用3x3的卷积想连结,然后使用sigmoid。然后concatenate到一起通过一个1x1的卷积得到最后得特征图。

同时还使用了深监督

一些其他的观点

先前的方法通常使用瀑布流方法,通过堆叠相同的结构去搭建更有表达力的网络。

其中一个动机就是,相同的结构能够逐渐优化结果并且减少overfitting。

比如CU-Net(连续的UNet),HourglassNet等