赞
踩
论文参考:
UNet++: A Nested U-Net Architecture for Medical Image Segmentation
Net++:Redesigning Skip Connections to Exploit Multiscale (多尺度)Features in Image Segmentation
评估指标:DICe loss,二元交叉熵,Iou
第二三个已经很熟悉了,那第一个是什么呢
优点
首先,U-Net++它在其体系结构中嵌入了不同深度的u型网。在这个网络里面都可以找到1~4层的U-Net,它们全部都连在了一起. 这个结构的好处就是不管哪个深度的特征有效,干脆都给用上,让网络自己去学习不同深度的特征的重要性。并且所有这些u-nets部分共享一个编码器,也就是你不需要训练一堆U-Net,而是只训练一个encoder,而它们的解码器则交织在一起。通过在深度监督下训练U-Net++,所有组成的U-Net同时被训练,同时受益于共享的图像表示。
该设计不仅提高了整体分割性能,而且还可以在推理期间进行模型剪枝。其次,U-Net++不受不必要的限制性跳跃连接的限制,在这些连接中,只有来自编码器和解码器的相同尺度的特征映射可以被融合(U-net)。在U-Net++中引入的重新设计的跳跃连接在解码器节点上呈现了不同尺度的特征图,它的优势是可以抓取不同层次的特征,将它们通过特征叠加的方式整合,并且允许聚合层决定沿着跳跃连接携带的各种特征图应该如何与解码器特征图融合。
文章结构
摘要概述了unet++创新和结构以及它在各种医学图像分割任务中相对于U-Net和wide U-Net的性能提升。(其中 U-Net 为 benchmark, wide U-Net 是加宽后的U-Net结构, 用于单纯增加网络参数量,便于控制变量进行对比;)
UNet++架构本质上是一个深度监督的编码器-解码器网络,其中编码器和解码器子网络通过一系列嵌套的密集跳跃路径连接。重新设计的跳跃路径旨在缩小编码器和解码器特征图之间的语义差距,使得优化器面临一个可能更简单的优化问题
简介先说明了skip connections作用好处(它将来自解码器子网络的深层、语义化、粗粒度的特征图与来自编码器子网络的浅层、低级、细粒度的特征图相结合。跳跃连接被证明在恢复目标对象的细粒度细节方面是有效的輻即使在复杂背景下也能生成具有精细细节的分割掩码。)
,再引出医学图像分割的难点和高要求。
最后介绍unet++基本假设,与unet普通skip connections(直接将高分辨率特征图从编码器快速转发到解码器网络,从而融合语义不相似的特征图。)的区别
Unet++架构背后的基本假设是假设当来自编码器网络的高分辨率特征图在与来自解码器网络的相应语义丰富的特征图融合之前逐渐丰富时,该模型可以更有效地捕获前景对象的细粒度细节
相关工作:
FCN的跳跃连接是通过元素级的相加来实现的,而UNet的跳跃连接是通过通道的拼接来实现的。尽管这些模型取得了成功,但它们有两个局限性:(1)的最优深度是先验未知的,需要广泛的架构搜索或不同深度模型集成;(2)跳跃连接施加了不必要的限制性融合方案,只能在编码器和解码器子网络的相同尺度特征图上聚合。
提及了FCN和U-Net两种基于encoder-decoder架构的图像分割模型,并讨论了它们的核心思想:跳过连接。 参考了其他相关的研究,如DenseNet inspired的H-denseunet,以及GridNet和Mask-RCNN等模型。并指出它们在特征融合上可能存在的问题。(FCN,U-Net,DenseNet,H-denseunet等不同网络用到了skip connections 但都倾向于融合来自编码器和解码器子网络的语义不同的feature maps,可能降低了分割性能。)
UNet++可以被容易地部署为Mask-RCNN的骨干结构,通过将简单的跳跃连接替换为建议的嵌套密集跳跃路径。
unet++改进
UNet++的作者认为,不管是浅层、深层还是中层,所有层次的特征对于最后的分割都是重要的。有的数据分割任务简单,图像信息单一,可能浅层网络就足以达到很好的效果,而有的数据任务复杂,图像信息丰富,可能需要更深层的网络结构才能达到不错的效果,之前的UNet结构设计很难同时照顾到这种普适性。而UNet++通过设计不同深度的嵌套UNet子网络来实现这种普适性
UNet网络并不是越深越好,不同数据集的最优深度是不一样的。给定一个新的数据集,并不知道多深的网络是最优的,因此,需要设计一个网络使得它能够学习不同深度特征。如下图所示,可以在这个网络里面找到1~4层的U-Net,这样做的好处是不管哪个深度的特征有效,全部包含在网络中,让网络自己去学习不同深度的特征的重要性。同时,该网络共享了特征提取器,不需要训练大量的UNet,而是只训练一个encoder,它的不同层次的特征由不同的decoder路径来还原。
提出了既包含长连接又包含短连接的网络结构。将原来空心的UNet填满,抓取不同层次的特征,将它们通过特征叠加的方式整合。这与U-Net中常用的普通跳过连接形成对比,后者直接将高分辨率特征图从编码器快速推进到解码器网络,从而导致语义上不同的特征图融合。这种Redesign改变了编码和解码子网络的连接性。密集的卷积块使编码器的feature map和解码器的feature map在语义级别相似。假设当接收到的编码器的feature map和相应的解码器的feature map在语义上相似时,优化器将更容易进行优化。
2.Deep supervision
deep supervision
监督每个分支的U-Net的输出,这样可以解决中间部分无法训练的问题,具体如下:
(1)在图中 X(0,1)、X(0,2)、X(0,3)、X(0,4) 后面加一个1x1的卷积核,将 feature map 的channel 数量变换到与 output_channel 数量一致,以 Dice + Cross Entropy 作为损失函数,来进行训练;
(2)实际训练中,对于不同的loss分支,作者的给出的权重为1:1:1:1;
(3)两种模式
精确模式:将输出的所有分割分支进行平均,得到最终分割结果;
快速模型:将得到的4个分割图,只选择其中一个分支,这个选择决定了模型修剪的程度和速度增益。
模型剪枝
UNet++可以在推断时进行模型剪枝,从而减少推断时间,但准确度略有降低。
作者是在测试阶段,在测试集上进行剪枝的;作者解释在测试阶段,由于输入的图像只会前向传播,扔掉这部分对前面的输出完全没有的;而在训练阶段,因为既有前向,又有后向传播,被剪掉的部分是会帮助其他部分做权重更新的。因此测试时,剪掉部分对剩余结构不做影响,训练时,剪掉的分对剩余部分有影响。
论文中给出了对于不同的数据集,剪枝结果,不同程度的剪枝可减小不同程度的参数量,剪枝越多则参数量越少,但模型性能会退化,具体剪枝情况由不同数据集而异;此处图中,肺结节在L2就有较好的结果了;(Fig. 3:)
为什么剪枝???
在深监督过程中,每个子网络的输出均是图像的分割结果,所以如果小的子网络的输出结果已经足够好了,便可以剪掉网络多余的部分。因为在深监督的过程中,每个子网络的输出都其实已经是图像的分割结果了,所以如果小的子网络的输出结果已经足够好了,我们可以随意的剪掉那些多余的部分了。
在测试阶段,由于输入的图像只会前向传播,剪枝之后对前面的输出无任何影响,而在训练阶段,因为既有前向传播又有反向传播,被剪掉的部分可以帮助其他部分更新权重,如果直接拿L1,L2,L3训练,就相当于只训练了不同深度的U-Net,最后的结果会很差。即在测试阶段剪掉的部分对剩余结构不做影响,在训练阶段,剪掉的部分对剩余部分有影响。因此,可以在测试的时候剪枝,根据验证集的结果觉得剪枝多少。
实验部分
四个医学成像数据集
u-net ,wide u-net unet++(确保性能提升不仅仅是由于参数数量的增加) 与unet++做对比
监测dice coefficient和交并比iou,验证集使用early-stop机制,使用学习率lr为3e-4的Adam优化器
结果
论文已有中展示
总结
UNet++结构是为了提高医学图像分割的准确性而提出的。通过重新设计的跳跃路径和深度监督,UNet++试图减少编码器和解码器子网络特征图之间的语义差距,从而为优化器提供一个可能更简单的优化问题。
综上所述,UNet++的设计目标是缩小编码器和解码器特征图之间的语义差距,使得优化器面临一个可能更简单的优化问题。这得益于其在跳跃路径上增强的卷积、密集连接和深度监督等设计。这些改进结构使得UNet++在多个医学图像分割任务上都展现出了超越传统U-Net的性能。
文章的五个贡献:
① UNet++内嵌了不同深度的UNet,提高了不同大小对象的分割性能,从而不再是固定的深度结构;
② 更加灵活的skip connection结构,使解码器能够灵活的特征融合——这是对U-Net中限制性跳跃连接的改进,不再是仅融合同一尺度的特征;
③ 设计了一个剪枝操作加快推理速度;
④ 同时训练内嵌的不同深度的UNet引发了UNet之间的协同训练,带来了更好的性能;
⑤ 展现了可扩展性
我们设计了一个方案来修剪一个训练过的U-Net++,加速其推理速度,同时保持其性能(见第IV-C节)。我们发现,同时训练嵌入在U-Net++体系结构中的多深度U-Nets刺激组成U-Net之间的协作学习,比单独训练相同架构的孤立U-网获得更好的性能(见IV-D节和V-C节)。
我们展示了U-Net++对多个主干编码器的可扩展性,并进一步将其适用于各种医学成像模式,包括CT、MRI和电子显微镜(见IV-A节和IV-B节)。
UNet++与传统的U-Net在结构设计上有几个主要的区别:
1. 增强的跳跃连接:在U-Net中,跳跃连接是为了将编码器的浅层特征图与解码器的深层特征图结合。而在UNet++中,不仅有这样的跳跃连接,还增加了在跳跃路径上的卷积层(绿色部分),目的是在合并前缩小编码器和解码器特征图之间的语义差距。
2. 密集的跳跃连接:UNet++在跳跃路径上增加了密集的跳跃连接(蓝色部分),有助于提高梯度流,进而有助于网络训练。
3. 深度监督:UNet++引入了深度监督(红色部分),这使得模型可以在推理时进行剪枝,从而提高效率。而且深度监督也有助于模型性能的提升。如果只使用一个损失层,UNet++的性能要么得到提升,要么与U-Net持平。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。