Unet++: A Nested U-Net Architecture for Medical Image Segmentation
Unet++ 论文地址
这里仅进行简要介绍,可供读者熟悉其结构与特点,若想更为深入的了解,可以阅读原论文和参考文献。
在计算机视觉领域,全卷积网络(FCN)是比较有名的图像分割网络,在医学图像处理方向,U-net更是一个炙手可热的网络,基本上所有的分割问题,我们都会拿U-Net先看一下基本的结果,然后进行修改。和FCN相比,U-Net的第一个特点是完全对称,也就是左边和右边是很类似的,而FCN的decoder相对简单,只用了一个deconvolution的操作,之后并没有跟上卷积结构。第二个区别就是skip connection,FCN用的是加操作(summation),U-Net用的是叠操作(concatenation)。它们的结构总最为经典的思路就是都使用了编码和解码(encoder-decoder)。
U-net中最为重要的三个部分就是 1. 下采样 2. 上采样 3. skip connection,其结构图如下:
该网络结构中使用下采样的理论意义是:它可以增加对输入图像的一些小扰动的鲁棒性,比如图像平移,旋转等,减少过拟合的风险,降低运算量,和增加感受野的大小。上采样的作用是:把抽象的特征再还原解码到原图的尺寸,最终得到分割结果。
简言之就是:浅层结构可以抓取图像的一些简单的特征,比如边界,颜色;而深层结构因为感受野大了,而且经过的卷积操作多了,能抓取到图像的一些更为高层的抽象特征。
而Unet++在原生的Unet基础上进行一些改进,主要针对了原结构中的skip connection部分。先放一张Unet++的结构图
相对于原来的Unet网络,Unet++把1~4层的U-Net全给连一起了。这个结构的好处就是我不管你哪个深度的特征有效,我干脆都给你用上,让网络自己去学习不同深度的特征的重要性。第二个好处是它共享了一个特征提取器,也就是你不需要训练一堆U-Net,而是只训练一个encoder,它的不同层次的特征由不同的decoder路径来还原。这个encoder依旧可以灵活的用各种不同的backbone来代替。
Unet++主要改进就是将原来空心的U-Net填满了,优势是可以抓取不同层次的特征,将它们通过特征叠加的方式整合,不同层次的特征,或者说不同大小的感受野,对于大小不一的目标对象的敏感度是不同的,比如,感受野大的特征,可以很容易的识别出大物体的,但是在实际分割中,大物体边缘信息和小物体本身是很容易被深层网络一次次的降采样和一次次升采样给弄丢的,这个时候就可能需要感受野小的特征来帮助。
除了skip connection做出的改变之外,为了能够让中间部分收到传递过来的梯度,Unet++使用了深监督(deep supervision)的方案。具体的操作就是将结构的(x^{0,1}, x^{0,2}和x^{0,3})也直接连接到最后的输出。
参考文献