参考代码:U-2-Net
1. 概述
导读:这篇文章针对图片显著性目标检测(分割或许更为妥当)提出一种新的网络结构U^2-Net,该网络结构从整体上看由两层的U型结构组成,即是由U型的子模块(ReSidual U-blocks,RSU-L)构建一个更大的U型网络。文章指出这样做可以带来两点好处:1)可以极大提升网络在不同scale上获取上下文信息的能力,这是靠网络混合不同特征图尺寸下感受野得到的;2)由于在RSU中引入了池化操作因而可以加深网络,而不会带来巨大的计算开销。此外,文章还从具体任务出发提出不需要ImageNet预训练模型,直接从头开始训练,从而节省了预训练的开销,而且效果从文章效果来说也是不错的。文章提出的U^2大模型(176.3Mb)在1080Ti上为30FPS(320*320大小输入),小模型(4.7MB)为40FPS。
对于在ImageNet上训练得到的预训练模型其往往 更加注意的是提取输入图片的语义信息,从而更好完成分类任务,但是对于显著性目标检测来说局部细节和全局对比度信息更为重要。 这篇文章直接提出定义好适应显著性目标检测的网络之后直接从头开始训练,其最后的结果也显示该方式能获取性能近似的结果,省去了预训练过程。
为了能够获得更好的性能,对于显著性目标检测其需要更多尺度的特征图,以及在不同尺度下更好地特征图抽取方式(网络结构),对此文章提出了由RSU模块构建的U型结构,使得其在花费相对来说较小计算量的情况下获得更佳的性能表现,文章的大小模型相对于其它方法,其性能比较见下图所示:
2. 方法设计
2.1 RSU-L模块
现在的网络结构都是采用模块堆叠的形式构建的,根据其结构设计文章将其与RSU模块进行对比,见下图所示:
文章的RSU-L ( C i n , M , C o u t ) (C_{in},M,C_{out}) (Cin,M,Cout),其中的三个参数分别代表输入的channel/中间层的channel/输出的channel。其运算流程大体可以分为3个过程:
- 1)通过一个 3 ∗ 3 3*3 3∗3的卷积生成一个与输出channel( C o u t C_{out} Cout)一致的特征图,其过程描述为 F 1 ( x ) F_1(x) F1(x);
- 2)使用其定义的参数 L L L表示进行层级采样的次数,从而实现在block内部多层次的特征图提取,也使得网络变深,获取跟大的感受野和更丰富的局部及全局特征。这部分计算过程描述为 U ( F 1 ( x ) ) \mathcal{U}(F_1(x)) U(F1(x));
- 3)使用残差网络将其与之前的特征图相加,从而融合局部与多尺度信息, F 1 ( x ) + U ( F 1 ( x )