当前位置 : 主页 > 编程语言 > java >

Tensorflow入门教程(四十三)——DoubleU-Net

来源:互联网 收集:自由互联 发布时间:2022-07-22
今天将分享Unet的改进模型DoubleU-Net,改进模型来自2020年的论文《A Deep Convolutional Neural Network for Medical Image Segmentation》,简单明了给大家分析理解该模型思想。 1、DoubleU-Net网络优点 ​

今天将分享Unet的改进模型DoubleU-Net,改进模型来自2020年的论文《A Deep Convolutional Neural Network for Medical Image Segmentation》,简单明了给大家分析理解该模型思想。

1、DoubleU-Net网络优点

不同的医学应用中设计强大的鲁棒性和泛化能力的网络结构是很重要的。论文提出的结构是使用修改的Unet和VGG-19,VGG-19只用在网络编码部分。使用VGG-19的原因是(1)、相比于其它预训练模型其是轻量级模型,(2)、VGG-19与Unet结构很相似,很容易与Unet进行拼接,(3)、允许更深的网络来产生更好的分割结果。

主要贡献点:

(1)、提出的DoubleUNet结构来语义分割,所提出的结构依次使用两个U-Net结构,也就是两个编码器和两个解码器。网络中第一个编码器是预训练的VGG-19,它在ImageNet上训练。另外,使用空洞空间金字塔池化(ASPP)。结构的其余部分是从头开始构建的。

(2)、在多个数据集上进行实验,结果显示了所提出算法的强于其他算法。在四个不同的医学影像数据集上进行了实验,两个不同结肠镜检查数据,皮肤镜检查和显微镜数据。在MICCAI 2015挑战数据集,CVC-ClinicDB数据集,病变边界分割ISIC-2018和2018 Data Science Bowl的挑战数据集上,与基准算法相比,DoubleU-Net显示更好的分割性能。

(3)、与U-Net相比,DoubleU-Net对四个数据集的广泛评估显示了其显着性能提高。因此,DoubleU-Net可以成为医学图像分割任务的基准。

2、DoubleUnet结构

DoubleU-Net首先由VGG-19做为子网络的编码器,后面紧接着编码器子网络。网络1结构与原始Unet的不同之处在于VGG-19,ASPP和编码模块。在网络1中的编码器,解码器和网络2中的解码器中使用了squeeze-and-excite模块。网络2的输入是网络1的输出与输入图像元素相乘。网络2结构与Unet的不同之处在于使用了ASPP和squeeze-and-excite模块。其它与Unet都是一样的。输入图像经过网络1产生预测模板1,然后与输入图像元素相乘输入到网络2中,然后产生预测模板2,最后将预测模板1与预测模板2进行拼接,可以定量看到预测模板1和预测模板2的差异。论文假设用两个Unet网络可以产生更好的分割结果。squeeze-and-excite模块是减少冗余信息,传输最相关的信息。ASPP一直是现在分割结构的流行选择,因为它有助于提取高分辨率特征图,从而带来卓越的性能。

2.1、编码器网络

DoubleU-Net中的第一个编码器是使用了预训练的VGG-19,第二个编码器是从头搭建的,每个编码器都尝试对输入图像进行信息编码。编码器2中的每个编码器块执行两次3x3卷积运算,然后进行BN。BN可以减少内部协变偏移,并正则化模型,使用整流线性单元(ReLU)激活函数,从而将非线性引入模型。然后是squeeze-and-excite模块,其增强特征图的质量。之后,执行步长为2的2x2最大池化层来减少特征图的空间尺寸。

2.2、解码器网络

在整个网络中使用两个解码器,与原始U-Net解码器相比,做了一些小的修改。解码器中的每个块对输入要素执行2x2双线性上采样,这会使输入特征图的尺寸加倍。拼接适当的跳跃连接特征图,从编码器到输出特征图。在第一个解码器中,只使用第一个编码器的跳跃连接,但是在第二个解码器中,使用两个编码器,不仅保持空间分辨率而且增强输出特征图的质量。拼接后,再次执行两个3x3卷积运算,然后是BN和ReLU激活函数。之后,我们使squeeze-and-excite模块。最后,应用具有sigmoid激活函数的卷积层,用于产生分割模板结果。

Tensorflow入门教程(四十三)——DoubleU-Net_数据

3、实验设置与结果对比

3.1、数据集

采用了四个公开数据集:MICCAI2015分割挑战赛数据集CVC-ClinicDB数据集,ISIC2018挑战赛数据集,2018Data Science Bowl挑战赛数据集。

3.2、评价指标

Dice系数,平均IoU,精度和召回率。

3.3、实验配置

代码已开源:​​https://github.com/DebeshJha/2020-CBMS-DoubleU-Net​​

采用GPUVolta100,80%数据用来训练,10%数据用来验证,10%数据用来测试,采用二值交叉熵做为损失函数,优化器采用Nadam并采用默认参数,批次大小是16,学习率为1e-5。数据增强采用中心裁剪,随机旋转,弹性变换,颠倒等,一张图产生25个不同图像。

3.4、结果比较

与常规分割算法相比,DoubleU-Net在各项指标上都是最好的。

Tensorflow入门教程(四十三)——DoubleU-Net_数据_02

网友评论