三、图像分割的模型
7.U-Net
这是2015年,与FCN同一年提出的网络模型,U-Net主要解决的是医学领域的图像分割问题,由于其网络结构为一个U型,故名为U-Net。
这是一个对称的生成模型,左边部分下采样进行特征提取,右边部分上采样,将浓缩的特征还原为图像。
从这个网络中可以看到,输入是一个572x572的,输出却是388x388的,输出比输入要小,这主要是因为医学领域分割的需要,这样做精度更高。
其模型继承FCN的思想改进而来,但是相较于FCN其有许多改进:
- U-Net是完全对称的,且对解码器进行了加卷积加深处理,FCN只是单纯的进行了上采样,decoder部分相对简单。
- 上采样的时候,使用了邻近插值,没有使用转置卷积。原因:转置卷积会使输出图像不均匀,出现象棋格子一样的黑白相间的效果(生成类模型使用该方法效果不好,尤其是卷积核为奇数的时候,转置卷积时,如果卷积核大小不能被步长整除,就会有棋盘格子的现象,如果步长和卷积核大小一致,就是完全均匀的)
- 跳跃连接使用了concat操作,将特征在channel维度拼接在一起,形成更厚的特征,将全局特征和局部特征进行结合,而不是简单的相加。
- 全程使用valid进行卷积(包括pooling),这样的话可以保证分割的结果都是基于没有缺失的上下文特征得到的,因此输入输出的图像尺寸不太一样。
这里有一些问题需要注意:
跳跃连接大小不一样如何拼接?
一般有3种思路:
- padding:将小图进行padding再拼接(这样直接填0进行padding没有什么用处)
- resize:将小图resize扩大或者大图resize缩小(这样位置信息改变了,像素会发生偏移,影响精度)
- crop:将大图裁小 ,这样会丢失一些局部的信息,不过每关系,因为它只是对全局的补充,为位置上矫正的辅助。
这里采用的是第3中crop的方法。
为什么输出会比输入更小?
因为这个模型是专为医学图像而生,有两点原因:
- 从卷积上来看,由于卷积核边缘信息提取不够,为了减少误差,提高可信度,所以直接把外层信息裁剪掉了
- Overlap-tile策略:像是下图,由于医学图像一般都很大,进行分割的时候不可能把原图输入网络,所以需要进行裁剪,把大图变成一张张的小图,而为了使图片拼接的部分分割得更加准确,从而采用了Overlap-tile策略,也就是有重叠的裁剪,具体可以看图中的解释,U-Net网络从输入到输出,需要overlap部分提供更多特征信息,将大图分割成小图的影响降到最低,最后标签也就是输出这么大,所以两者可以做损失,蓝色框就相当于这么大的一个卷积核。
损失:
使用交叉熵损失,但是作者提出了weighted loss,也就是赋予相互接触的两个细胞之间的background标签更高的权重,从而对边界像素有更好的学习效果,使得相同类别且互相接触的细胞得以分开。
为什么说它很适合医学领域分割?
- 因为医学图像的边界模糊、梯度复杂,需要较多的高分辨率信息,用于精准分割。
- 人体内部结构相对固定,分割目标在人体图像中的分布很具有规律,语义简单明确,低分辨率信息能够提供这一信息,用于目标物体的识别。
- 医学图像数据相对较少,而U-Net模型较小,参数量少,不容易过拟合。
- 医学图像具有多模态的性质,这个模型结构可以较好的提取不同模态的特征。
简而言之,因为医学图像的特殊性,既需要高层次特征,也需要低层次特征。
归根结底还是因为U型结构与多次的跳跃连接 concat(同一stage尺度上的)。</