Paper:UNet++: A Nested U-Net Architecture for Medical Image Segmentation
u-net网络的基本拓扑结构
目前最先进的图像分割模型是各种个同样的 encoder-decoder架构,他们具有一个关键的相似性:skip connections,它可以将编码器子网络的深度、语义、粗粒度的特征映射与来自编码器子网络的浅层、低级、细粒度的特征映射相结合。
在恢复目标对象的细粒度细节方面,skip connections时非常有用的。
U-NET++网络是为了解决医学图像分割的精确性问题,从而提出的一种新的基于嵌套密集跳跃连接的分割体系结构。
上图为U-NET++网络结构的基本模型图
图a 表示U-NET++网络的基本架构,我们可以看出U-Net++网络也是由编码器和解码器组成,与U-NET不同的是U-Net++的由编码器和解码器通过一系列嵌套的密集卷积块连接,也就是图中绿色代表的区域。UNet++背后的主要思想是在融合之前弥合编码器和解码器的特征映射之间的语义鸿沟。例如,(X0,0,X1,3)之间的语义鸿沟是使用一个具有三个卷积层的密集卷积块来桥接的。另外,在图形摘要中,黑色表示原始的U-NET网络,绿色和蓝色表示在跳跃路径上有密集的卷积块,红色表示deep supervision。红色、绿色和蓝色的组件将UNet++与U-Net区分开来。
图b详细分析了UNet++的第一个skip pathway
图C展示了在深度监督情况下U-NET++的剪枝
接下来说一下U-NET++网络中的Re-designed skip pathways,也就是在图a中绿色的区域。它主要用于转换编码器和解码器之间的连通性。在之前的U-NET网络中,编码器和解码器是通过长连接直接进行特种映射的,而在U-NET++中,作者通过一个密集的卷积块将编码器与解码器连接了起来。
形式上,我们可以表示为以下结构,令xi,jx^{i,j}xi,j的输出,其中i为沿编码器向下采样层的索引,j为沿skip pathways的稠密块卷积层的索引。由xi,jx^{i,j}xi,j表示的特征映射的堆栈计算为
其中函数H(·)为激活函数后的卷积运算,U(·)为上采样层,[]为级联层。
具体实例我们可以看图b。
U-NET++在深度监督下能够运行两种模式:
1)精确模式,对所有分割分支的输出求平均值
2)快速模式,最终的分割图只从一个分割分支中选择,其选择决定了模型修剪的程度和速度增益。图1c显示了快速模式下分割分支的选择是如何导致不同复杂度的架构的。
另外,作者给出了一个损失函数公式,如下图:
其中Y^b\widehat{Y}_bYb是预测概率,YbY_bYb是真实数据。 N代表 the batch size。
U-NET++与最初的U-Net在三个方面有所不同:
1)在 skip pathways 上有卷积层(绿色表示),连接编码器和解码器特征图之间的语义鸿沟;
2)在 skip pathways 上有密集的 skip connections (如蓝色所示),提高了梯度流动性;
3)有 deep supervision (红色表示),它支持模型修剪和改进。
效果对比:
上图为 U-Net, wide U-Net and UNet++ with and without deep supervision (DS) UNET++的分割结果(IoU: %)
上图为对剪枝后的UNet++的复杂性、速度和准确性进行的测试结果,其中(a)代表细胞核(b)代表结肠息肉©代表肝脏(d)代表肺结节。
可以看到剪枝过后的网络推演速度变快了,但是准确率会相应的降低。
code :https://github.com/MrGiovanni/UNetPlusPlus