U-Net语义分割系列(一):
SS-Model【5】:U-Net
U-Net语义分割系列(二):
SS-Model【6】:U2-Net
U2Net 是基于 Unet 提出的一种新的网络结构,同样基于 encode-decode,作者参考 FPN 和 UNet,在此基础之上提出了一种新模块 RSU(ReSidual U-blocks)。 经过测试,对于分割物体前、背景取得了惊人的效果。同样具有较好的实时性,经过测试在 P100 上前向时间仅为18ms(56fps)。
原论文链接:
U2-Net: Going Deeper with Nested U-Structure for Salient Object Detection
在本文中,作者设计了一个简单而强大的深度网络架构 -- U-Net,用于显著性物体检测(SOD)。我们的 U-Net 的结构是一个两级嵌套的 U 型结构。该设计有以下优点:
ReSidual U-block(RSU)
中不同大小的感受野的混合,它能够从不同的尺度捕捉更多的上下文信息;这种架构使我们能够从头开始训练一个深度网络,而不使用来自图像分类任务的 backbone
。
显著性目标检测(SOD)指的是将图像中最显著的物体进行分割,广泛用于视觉追踪和图像分割任务中。
显著性目标检测任务与语义分割任务非常相似,只不过显著性目标检测任务是二分类任务
,它的任务是将图片中最吸引人的目标或区域分割出来(偏主观),故只有前景和背景两类。
下图是从 DUTS-TR 数据集中随便挑的几张图片,第一行是原图,第二行是对应的GT,其中白色区域对应前景(最吸引人的目标或区域)黑色区域对应背景:
目前现状:
大多数的 SOD
网络有一个共性,就是注重利用现有的主干提取深层特征,比如 Alexnet
、VGG
、ResNet
、ResNeXt
、DenseNet
等。这些主干最终都是为图像分类任务而设计的,他们提取的特征代表语义,而不是局部细节和全局对比信息,但这对显著性检测至关重要。
他们需要在 ImageNet 数据集上进行预训练,如果目标数据与 ImageNet 具有不同的分布,则会比较低效。
SOD
模型中存在的问题:
U2Net
网络的解决方法:
RSU
,能够在不降低特征映射分辨率的情况下提取级内多尺度特征U-Net
的结构,每一 stage
由一个 RSU
块填充对于显著目标检测和其他分割任务来说,局部和全局上下文信息都非常重要。在现代 CNN 设计中,如 VGG
、ResNet
、DenseNet
等,1×1
或 3×3
的小型卷积滤波器是最常用的特征提取元件,因为它们需要较少的存储空间并且计算效率高。
1x1
或 3x3
滤波器的感受野太小而无法捕捉全局信息,因此底层的输出特征图只包含局部特征。为了在高分辨率浅层特征图上获取更多的全局信息,最直接的想法是扩大感受野。inception like block
,试图通过使用空洞卷积来扩大感受野以提取局部特征和非局部特征。然而,在原始分辨率的输入特征图上进行多次扩展卷积(尤其是初始阶段)需要大量的计算和内存资源受 U-Net
的启发,提出了一种新的 RSU
来捕捉阶段内多尺度特征。下图显示了 RSU-L(Cin, M, Cout)
结构, 其中 L
是编码器层数,$C_{in}$
,$C_{out}$
表示输入和输出通道,M
表示 RSU
内部层中的通道数。
标出每个输出特征图的 shape 以及 concat 的位置后的重绘结构图如下所示:
RSU
主要由三个部分组成:
与上述 RSU-L
结构不同的是,在 RSU-4F
中并没有进行下采样或上采样,而是将采样层全部替换成了膨胀卷积。作者解释说,到 En_5
时,特征图的分辨率已经很低了,如果接着下采样会丢失很多上下文信息,所以在 RSU-4F
中就不再进行下采样了。这意味着 RSU-4F
的所有中间特征图都与其输入的特征图具有相同的分辨率
上图中带参数 d
的卷积层全部是膨胀卷积,d
为膨胀系数
上图表示残差块
与 RSU
对比,主要设计区别在于:
RSU
用 U-Net
代替了普通的单流卷积,并用一个权重层构成的局部特征代替了原始特征
作者提出了一种嵌套的 UNet
结构,即在一个大的 UNet
当中,嵌套了一堆小的 UNet
。理论上,可以将指数 n
设为任意正整数,实现单级或多级嵌套 U 型结构。但是,嵌套层太多的体系结构过于复杂,无法在实际中实现和应用。
本文所讲解的模型,就是指数为 2 时的一个 2 层嵌套结构,如下图所示。它的顶层是一个由11 stages
(图中的立方体)组成的大 U 型结构,每一个 stage 由一个配置良好的 RSU
填充。因此,嵌套的U
结构可以更有效的提取 stage 内的多尺度特征和聚集阶段的多层次特征。
在 Encoder 阶段,每通过一个 block 后都会下采样 2 倍(maxpool),在 Decoder 阶段,每通过一个 block 前都会上采样 2 倍(bilinear)
如上图所示,U2-Net网络由三部分构成:
En_1
、En_2
、En_3
和 En_4
阶段中,使用的是 2.1.2 小节中讲解的 RSU-L
结构,分别为 RSU-7
、RSU-6
、RSU-5
和 RSU-4
En_5
、En_6
阶段中,使用的是 2.1.2 小节中讲解的 RSU-4F
结构saliency map
进行融合并得到最终预测概率图U2-Net
网络首先通过大小为 KaTeX parse error: Undefined control sequence: \tiems at position 3: 3 \̲t̲i̲e̲m̲s̲ ̲3、kernel = 1 的卷积(输出的特征层的 channel 为 1)和 Sigmoid
函数从 En_6
,De_5
,De_4
,De_3
,De_2
和 De_1
生成 6 个输出显著概率图 S s i d e ( 6 ) S_{side}^{(6)} Sside(6), S s i d e ( 5 ) S_{side}^{(5)} Sside(5), S s i d e ( 4 ) S_{side}^{(4)} Sside(4), S s i d e ( 3 ) S_{side}^{(3)} Sside(3), S s i d e ( 2 ) S_{side}^{(2)} Sside(2), S s i d e ( 1 ) S_{side}^{(1)} Sside(1)concat
)相融合,然后通过 1 × 1 1 \times 1 1×1 卷积层和一个 Sigmoid 函数,以生成最终的显著性概率映射图 S f u s e S_{fuse} Sfuse在 U2Net 中损失计算公式如下所示:
L = ∑ m = l M w s i d e ( m ) l s i d e ( m ) + w f u s e l f u s e L = \displaystyle\sum_{m=l}^M w_{side}^{(m)}l_{side}^{(m)} + w_{fuse}l_{fuse} L=m=l∑Mwside(m)lside(m)+wfuselfuse
参数含义:
l
代表二值交叉熵损失w
代表每个损失的权重该损失函数可以看成两部分:
Sup1
、Sup2
、Sup3
、Sup4
、Sup5
和 Sup6
与 GT
之间的损失
Sup1
、Sup2
、Sup3
、Sup4
、Sup5
和 Sup6
通过Sigmoid
激活函数得到对应的概率图)GT
之间的损失标准二进制交叉熵计算公式如下所示:
l = − ∑ ( r , c ) ( H , W ) [ P G ( r , c ) l o g P S ( r , c ) + ( 1 − P G ( r , c ) ) l o g ( 1 − P S ( r , c ) ) ] l = - \displaystyle\sum_{(r, c)}^{(H, W)}[P_{G(r, c)}logP_{S(r, c)} + (1 - P_{G(r, c)})log(1 - P_{S(r, c)})] l=−(r,c)∑(H,W)[PG(r,c)logPS(r,c)+(1−PG(r,c))log(1−PS(r,c))]
参数含义:
(r, c)
为像素坐标(H, W)
为图像大小训练过程试图最小化整个损失。测试过程中,我们选择最后融合结果 l f u s e l_{fuse} lfuse
作为最终的显著性图
precision
即为预测为正确的数据中,真实值为正确的比例recall
即为在所有的真实值为正确的数据中,有多少能预测正确DUTS 数据集包含了 10553 张训练图片,5019 张测试图片。其中所有的训练图片采集自ImageNet DET 训练 / 验证集,而所有的测试图片采集自 ImageNet DET 测试集以及 SUN 数据集
数据集结构如下所示:
├── DUTS-TR
│ ├── DUTS-TR-Image: 该文件夹存放所有训练集的图片
│ └── DUTS-TR-Mask: 该文件夹存放对应训练图片的GT标签(Mask蒙板形式)
│
└── DUTS-TE
├── DUTS-TE-Image: 该文件夹存放所有测试(验证)集的图片
└── DUTS-TE-Mask: 该文件夹存放对应测试(验证)图片的GT标签(Mask蒙板形式)
U2-Net
网络的设计允许具有丰富多尺度特性和相对较低的计算和内存成本de1深层架构。该结构只建立在 RSU
块上,没有使用任何特性分类的预训练主干网络,因此是灵活的,可适应不同的工作环境,性能损失很小。
本文中,使用不同的滤波器配置提供两种情况下的U2-Net
博文参考
视频资料