Tensorflow入门教程(三十八)——V2-Net

2020-06-29 14:56:06 浏览数 (2)

今天将分享Unet的改进模型U2-Net,改进模型来自2020年的论文《U2-Net: Going Deeper with Nested U-Structure for Salient Object Detection》,通过理解该模型思想,在VNet基础上可以做同样的改进。

一、U2-Net的优点

1、U2-Net是简单但强大的深度学习网络结构,用于显著物体检测。它由两个密连接的U结构组成的。该设计有如下优势(1)、残差U结构(RSU)中混合了不同大小的感受野,因此能够从不同尺度上捕获更多上下文信息。(2)、由于这些RSU模块中使用了池化操作,因此可以在不显著增加计算成本的情况下增加整个网络的深度。

2、针对两个问题来提出U2-Net网络,(1)、是否可以设计一个新的网络从头开始训练,最后的结果或模型性能比现有的与预训练模型结果好?(2)、随着网络的深入是否可以维持高分辨率特征图,同时保持低的内存和计算消耗。

二、U2-Net网络结构

1、残差U模块

如下图所示是常见的卷积模块,但是a到c只能获取局部特征,由于卷积核大小太小,无法捕获全局特征。为了获取高分辨率特征图的全局信息,最直接的想法就是扩大感受野,如图d所示,采用孔洞卷积扩大感受野来提取局部和非局部特征,但这需要更多的计算力和内存消耗。根据Unet的思想,提出了残差U模块,由三个部分组成:a、输入卷积层,这是常规卷积层用来提取局部特征,b、类似于Unet结构的编码-解码结构网络,输入是常规卷积层的输出,其可以用来提取和编码多尺度上下文信息,L表示层级深度,值越大,感受野范围也越大,就会有更丰富的局部和全局特征。从输入特征图中逐渐池化降采样并卷积提取到多尺度特征,然后通过不断逐步上采样,拼接和卷积将其编码为高分辨率特征图,c、残差连接是将局部特征和多尺度特征进行融合。

该设计思想是直接在每个残差模块中提取多尺度特征,由于U结构很小,大多数操作都在降采样操作上,计算效率很高。

2、U2-Net结构

U2-Net是由11个层次结构组成的类似U结构的网络。每一个层次结构都是个性化配置的残差U结构模块(RSU)。因此嵌套U结构可以更有效地提取层次内多尺度特征,聚合层次间的多尺度特征。U2-Net由三个部分组成,a、六个层次的编码器模块,采用的是残差U模块结构,其中L根据输入特征图的分辨率大小来决定的,这六个层次中前四个是采用池化层版本的RSU,而后面两个层次是采用孔洞卷积版本的RSU,由于越往后分辨率越低,采用池化层会丢失信息。b、五个层次的解码器模块,与对应的编码器模块是一样的结构,每个模块输入是前一个模块输出经过上采样后的结果与对应同层级编码器的输出结果进行拼接而成的。c、编码器模块的输出特征概率图融合模块,六个特征概率图经过3x3卷积和sigmoid函数来产生,然后将这六个特征概率图缩放到原始图像大小,并进行拼接操作,再经过1x1卷积和sigmoid函数来产生融合后的概率图。

三、实验细节及结果

1、评价指标:PR曲线,最大F测量,绝对值平均误差,加权F测量,结构测量,边界相关F测量。

2、训练过程,原始图像首先统一缩放到320x320大小,然后随机翻转并裁切288x288大小。所有的卷积层权重初始化采用Xavier。采用深监督模式来训练模型,对每个解码器输出结果和最后融合输出结果与金标准结果采用交叉熵的方式,并赋予不同权重来作为损失函数,论文中作者设置所有loss权重都是1,采用Adam优化器并采用默认参数。图像采用双线性插值来完成图像缩放的。

3、结果比较

U2-Net与20种方法比较,在六个数据集上,在定性和定量测量上都是最好的结果。

0 人点赞