[论文阅读]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形的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 Un−Net
- 输出
将各个部分的特征图使用3x3的卷积想连结,然后使用sigmoid。然后concatenate到一起通过一个1x1的卷积得到最后得特征图。
同时还使用了深监督
一些其他的观点
先前的方法通常使用瀑布流方法,通过堆叠相同的结构去搭建更有表达力的网络。
其中一个动机就是,相同的结构能够逐渐优化结果并且减少overfitting。
比如CU-Net(连续的UNet),HourglassNet等