1、为什么好?
我们可以看到,它能够结合图像的全局与局部细节方面的特征,进行综合的考虑。每经过几次卷积后,便会concatenate到后面的几层,直接传递到同高度decoder上进行信息融合。在刚开始卷积时,图像的feature map保留的是图像高分辨率的细节信息(病灶的具体形态,条状还是点状,边缘平滑亦或是粗糙等等),它能帮助最终我们的图像提供精细分割;而经过一次一次卷积池化后,最后在U-Net的最下层,此时的feature map中包含的是整幅图像的全局信息(病灶的总体位置、分布等),它能提供分割目标在整个图像中上下文语义信息,反应目标和周围环境之间的关系。
最后再经过一层一层上采样,将不同层级的信息一步一步融合,便可融合多尺度的信息,得到最终我们的判别分割结果。
2、什么情况下好?
用过U-Net的童鞋应该都知道,其很好的应用于少样本的医学图像。
首先医学图像等样本,问题空间是很小的,例如,细胞核分割、细胞膜分割、视网膜血管分割等等。变来变去都是这几种样式,而且我们还能用多种方式进行数据的扩增,由几十张图片扩增到数十万张训练集图片。所以小样本的医学图像就能够表现得非常出色了。而对于一般生活中的图片,则比较难处理,其问题空间非常大(风景、建筑、人物等等),U-Net这么小的一个结构难以完全刻画其中的关系。
另外,针对一般的医学图像,边界模糊、梯度复杂,需要较多的高分辨率信息用于精准分割。同时一般的医学分割目标在人体图像中的分布很具有规律,低分辨率信息能够提供这一信息,用于目标物体的识别。两者结合,正好是U-Net完美适用的场景。
底层(深层)信息:经过多次下采样后的低分辨率信息。能够提供分割目标在整个图像中上下文语义信息,可理解为反应目标和它的环境之间关系的特征。这个特征有助于物体的类别判断(所以分类问题通常只需要低分辨率/深层信息,不涉及多尺度融合)
高层(浅层)信息:经过concatenate操作从encoder直接传递到同高度decoder上的高分辨率信息。能够为分割提供更加精细的特征,如梯度等。
为什么适用于医学图像?
(1)因为医学图像边界模糊、梯度复杂,需要较多的高分辨率信息。高分辨率用于精准分割。
(2)人体内部结构相对固定,分割目标在人体图像中的分布很具有规律,语义简单明确,低分辨率信息能够提供这一信息,用于目标物体的识别。
UNet结合了低分辨率信息(提供物体类别识别依据)和高分辨率信息(提供精准分割定位依据),完美适用于医学图像分割。
同时结合高分辨率的局部信息,和低分辨率更大面积的信息
3、为什么U-net在别的分割任务中也好
U-net的结构都了解,实际上就是一个编码-解码的过程:
编码:
底层的特征(如Layer1,2,3的输出)更偏向于组成图像的基本单元,如点,线,边缘轮廓,
而在高层抽象的特征(如Layer4,5)就更抽象,更近似于表示的是图像的语义信息,更像是一个区域了。
解码:
解码仅仅是将抽象特征恢复到模板的过程。那么就有问题了,解码在将下采样数据恢复的时候,特征scale会发生变化,必然会有信息的丢失,
U-net
skip connention的作用就凸显出来了,skip connention起到了补充信息的作用,在高层补充了语义的信息,在底层细化了分割的轮廓等,所以,想像一下我们从特征中已经大致恢复了区域的分割信息,再加上原始特征的修正,
题外话:
[ 来源:知乎 https://www.zhihu.com/question/269914775/answer/700308162]
从传统分割算法里面想想,传统的方法中有基于边缘的分割方法,有基于区域的分割方法等等,而编码的过程恰恰不就是将两种方法的特征整合了吗,所以说在U-Net系列的语义分割网络中编码的好坏会影响最终的分割效果,也是为什么好多论文改进的地方主要集中在编码过程的原因。
它有up-conv的操作,这说明是个auto encoder的架构,有点像全连接自变码器可以添加或去除噪音。这个cnn的自变码器学了局部特征然后压缩,再解压缩,最后获得边界识别能力
它先全局观察,大致判断目标区域在哪里,然后把更细节的信息一起考虑进去,把分割做得更精确。
网友评论