[论文解读] U-Net: Convolutional Networks for Biomedical Image Segmentation (用于生物医学图像分割的卷积网络)

Unet论文:http://www.arxiv.org/pdf/1505.04597.pdf
Unet源代码:https://github.com/jakeret/tf_unet
发表于:2015年的MICCAIgit

1、基本介绍
1.1历史背景
卷积神经网络(CNN)不只对图像识别有所帮助,也对语义分割领域的发展起到巨大的促进做用。 2014 年,加州大学伯克利分校的 Long 等人提出全卷积网络(FCN),这使得卷积神经网络无需全链接层便可进行密集的像素预测,CNN 从而获得普及。使用这种方法可生成任意大小的图像分割图,且该方法比图像块分类法要快上许多。以后,语义分割领域几乎全部先进方法都采用了该模型。github

1.2 FCN(全卷积网络)
file
网络的总体结构分为:全卷积部分和反卷积部分。
全卷积部分:借用了一些经典的CNN网络并把最后的全链接层换成卷积,用于提取特征,造成热点图;
反卷积部分:将小尺寸的热点图上采样获得原尺寸的语义分割图像。
总的来讲:FCN对图像进行像素级的分类,从而解决了语义级别的图像分割问题。与经典的CNN在卷积层以后使用全链接层获得固定长度的特征向量进行分类(全联接层+softmax输出)不一样,FCN能够接受任意尺寸的输入图像,采用反卷积层对最后一个卷积层的feature map进行上采样, 使它恢复到输入图像相同的尺寸,从而能够对每一个像素都产生了一个预测, 同时保留了原始输入图像中的空间信息, 最后在上采样的特征图上进行逐像素分类。
具体可参考:https://zhuanlan.zhihu.com/p/30195134
https://www.jianshu.com/p/14641b79a672算法

1.3提出的背景
虽然卷积网络已经存在很长时间了,可是因为可用训练集的大小和网络结构的大小,它们的成功受到限制。在许多视觉任务中,特别是在生物医学图像处理中,指望的输出应包括位置,因此应该给每一个像素都进行标注。然而在生物医学任务中一般没法得到数千个训练图像。所以,提出了一种数据加强方法来有效利用标注数据,提出一种U型的网络结构能够同时获取上下文信息和位置信息网络

2、网络结构
2.1 网络组件
①U型结构
②编码器-解码器结构
编码和解码,早在2006年就发表在了Nature上。当时这个结构提出的主要做用并非分割,而是压缩图像和去噪声。后来把这个思路被用在了图像分割的问题上,也就是如今咱们看到的FCN或者U-Net结构,在它被提出的三年中,有不少不少的论文去讲如何改进U-Net或者FCN,不过这个分割网络的本质的结构是没有改动的, 即下采样、上采样和跳跃链接。
编码器逐渐减小池化层的空间维度,解码器逐步修复物体的细节和空间维度。编码器和解码器之间一般存在快捷链接,所以能帮助解码器更好地修复目标的细节。U-Net 是这种方法中最经常使用的结构。
③skip-connection架构

2.2结构详解
file
①U-net前半部分做用是特征提取,后半部分是上采样。每个蓝色块表示一个多通道特征图,特征图的通道数标记在顶部,X-Y尺寸设置在块的左下边缘。不一样颜色的箭头表明不一样的操做。
②蓝色箭头表明3x3的卷积操做,channel的大小乘2,stride是1,padding为0,所以,每一个该操做之后, feature map的大小会减2。输入是572x572的,可是输出变成了388x388,是由于灰色箭头表示复制和剪切操做,在同一层左边的最后一层要比右边的第一层要大一些,这就致使了,想要利用浅层的feature,就要进行一些剪切,也致使了最终的输出是输入的中心某个区域。
③红色箭头表明2x2的max pooling操做,须要注意的是,若是pooling以前feature map的大小是奇数,那么就会损失一些信息。
④绿色箭头表明2x2的反卷积操做,操做会将feature map的大小乘2,channel的大小除以2。
⑤输出的最后一层,使用了1x1的卷积层作了分类,把64个特征向量分红了2类(细胞类、背景类)。ide

3、方法亮点
3.1同时具有捕捉上下文信息的收缩路径和容许精肯定位的对称扩展路径,而且与FCN相比,U-net的上采样过程依然有大量的通道,这使得网络将上下文信息向更高层分辨率传播。
收缩路径遵循卷积网络的典型架构。每一次下采样后都把特征通道的数量加倍。扩展路径中的每一步都首先使用反卷积,每次使用反卷积都将特征通道数量减半,特征图大小加倍。反卷积事后,将反卷积的结果与收缩路径中对应步骤的特征图拼接起来。函数

3.2 Overlap-tile 策略,这种方法用于补全输入图像的上下信息,能够解决因为现存不足形成的图像输入的问题。
file
为了预测图像边界区域中的像素,经过镜像输入图像来推断缺失的上下文。 这种平铺策略对于将网络应用于大图像很是重要,由于分辨率会受到GPU内存的限制。
该策略的思想是:对图像的某一块像素点(黄框内部分)进行预测时,须要该图像块周围的像素点(蓝色框内)提供上下文信息,以得到更准确的预测。简单地说,就是在预处理中,对输入图像进行padding,经过padding扩大输入图像的尺寸,使得最后输出的结果正好是原始图像的尺寸, 同时, 输入图像块(黄框)的边界也得到了上下文信息从而提升预测的精度。工具

3.3使用随机弹性变形进行数据加强。
做者采用了弹性变形的图像增广,以此让网络学习更稳定的图像特征。由于数据集是细胞组织的图像,细胞组织的边界每时每刻都会发生不规则的畸变,因此这种弹性变形的增广是很是有效的。
file
若是 σ值很大,则结果值很小,由于随机值平均为0;若是σ很小,则归一化后该字段看起来像一个彻底随机的字段。
对于中间σ值,位移场看起来像弹性变形,其中σ是弹性系数。而后将位移场乘以控制变形强度的比例因子 α。 将通过高斯卷积的位移场乘以控制变形强度的比例因子 α,获得一个弹性形变的位移场,最后将这个位移场做用在仿射变换以后的图像上,获得最终弹性形变加强的数据。做用的过程至关于在仿射图像上插值的过程,最后返回插值以后的结果。性能

3.4使用加权损失。(分离同一类别的接触物体)
file
(a)原始图像
(b)标注图像实况分割 不一样的颜色表示HeLa细胞的不一样状况
(c)生成分割蒙版(白色:前景,黑色:背景)
(d)以像素为单位的权重映射,迫使网络学习边界像素
方法:预先计算权重图,一方面补偿了训练数据每类像素的不一样频率,另外一方面是网络更注重学习相互接触的细胞间边缘。学习

所以,使用加权损失,其中接触细胞之间的分离背景标签在损失函数中得到大的权重。预先计算每一个真实分割的权重图,以补偿训练数据集中某一类像素的不一样频率,并迫使网络学习,在触摸细胞之间引入的小分离边界(见图c和d)。
使用形态运算来计算分离边界。权重图计算以下:
file

4、网络模型主要应用及结果
4.1在电子显微镜记录中分割神经元结构,在下图中演示了数据集中的一个例子和咱们的分割结果。咱们提供了所有结果做为补充材料。数据集是EM分割挑战提供的,这个挑战是从 ISBI 2012开始的,如今依旧开放。训练数据是一组来自果蝇幼虫腹侧腹侧神经索(VNC)的连续切片透射电镜的30张图像(512x512像素)。每一个图像都带有一个对应的标注分割图,细胞(白色)和膜(黑色)。测试集是公开可用的,但对应的标注图是保密的,能够经过将预测的膜几率图发送给组织者来得到评估。经过在10个不一样级别对结果进行阈值化和计算“warping error”, “Rand error”还有“pixel error”(预测的label和实际的label)。u-net(输入数据的7个旋转版本的平均值)无需进行任何进一步的预处理或后处理便可得到0.0003529的warping error和0.0382的Rand error。
file

4.2 ISBI细胞追踪挑战的结果
file
(a)" PHc-U373 "数据集输入图像的一部分。(b)分割结果(青色mask)与人工真实(黄色边框)(c)“DIC-HeLa”数据集的输入图像。(d)分割结果(随机彩色mask)与人工真实(黄色边框)。

4.3 ISBI细胞追踪挑战赛2015的分割结果(IOU)
file
将u-net应用于光显微图像中的细胞分割任务。这项分离任务是2014年和2015年ISBI细胞追踪挑战的一部分。第一个数据集“PHc-U373”包含Glioblastoma-astrocytoma(胶质母细胞瘤-星形细胞瘤)细胞在聚丙烯酰亚胺基底上,经过相差显微镜记录。它包含35个部分注释的训练图像。实现了92%的平均IOU,这明显优于83%的第二好算法。第二个数据集“DIC-HeLa”是平板玻璃上的HeLa细胞,经过微分干涉对比显微镜记录。它包含20个部分注释的训练图像。在这里,实现了77.5%的平均IOU,这明显优于第二好的算法46%。

5、网络缺陷和不足
5.1 不足之处
感兴趣的目标尺寸很是小,对于尺寸极小的目标,U-Net分割性能可能会很差,分割效果也很差。

5.2研习Unet
①FCN与Unet的区别
U-Net和FCN很是的类似,U-Net比FCN稍晚提出来,但都发表在2015年,和FCN相比,U-Net的第一个特色是彻底对称,也就是左边和右边是很相似的,而FCN的decoder相对简单,只用了一个deconvolution的操做,以后并无跟上卷积结构。第二个区别就是skip connection,FCN用的是加操做(summation),U-Net用的是叠操做(concatenation)。这些都是细节,重点是它们的结构用了一个比较经典的思路,也就是编码和解码(encoder-decoder)结构。
②U型结构到底多深,是否是越深越好?
关于到底要多深这个问题,还有一个引伸的问题就是,降采样对于分割网络究竟是不是必须的?问这个问题的缘由就是,既然输入和输出都是相同大小的图,为何要折腾去降采样一下再升采样呢?
比较直接的回答固然是降采样的理论意义,我简单朗读一下,它能够增长对输入图像的一些小扰动的鲁棒性,好比图像平移,旋转等,减小过拟合的风险,下降运算量,和增长感觉野的大小。升采样的最大的做用其实就是把抽象的特征再还原解码到原图的尺寸,最终获得分割结果。
参考https://zhuanlan.zhihu.com/p/44958351

6、我的思考总结
从2015年这篇文章发表以来,Unet被引用数千次。成为大多作医疗影像语义分割任务的baseline,也启发了大量研究者去思考U型语义分割网络。
新颖的特征融合,对图像特征多尺度识别,skip connection,到如今依旧值得咱们学习借鉴。

附录:
①Unet-family:https://github.com/ShawnBIT/UNet-family

②医学图像特色:
(1)图像语义较为简单、结构较为固定。作脑部图像的,就用脑CT和脑MRI,作胸片的只用胸片CT,作眼底的只用眼底OCT,都是一个固定的器官的成像,而不是全身的。因为器官自己结构固定和语义信息没有特别丰富,因此高级语义信息和低级特征都显得很重要。

(2)数据量少。医学影像的数据获取相对难一些,不少比赛只提供不到100例数据。因此咱们设计的模型不宜多大,参数过多,很容易致使过拟合。(原始UNet的参数量在28M左右(上采样带转置卷积的UNet参数量在31M左右),而若是把channel数成倍缩小,模型能够更小。缩小两倍后,UNet参数量在7.75M。缩小四倍,能够把模型参数量缩小至2M之内)很是轻量。我的尝试过使用Deeplab v3+和DRN等天然图像语义分割的SOTA网络在本身的项目上,发现效果和UNet差很少,可是参数量会大不少。

(3)多模态。相比天然影像,医疗影像是具备多种模态的。以ISLES脑梗竞赛为例,其官方提供了CBF,MTT,CBV,TMAX,CTP等多种模态的数据。好比CBF是脑血流量,CBV用于检测巨细胞病毒的。

(4)可解释性重要。因为医疗影像最终是辅助医生的临床诊断,因此网络告诉医生一个3D的CT有没有病是远远不够的,医生还要进一步的想知道,病在哪一层,在哪一层的哪一个位置,分割出来了吗,能不能求体积。

参考文章:https://blog.csdn.net/haoji007/article/details/78442088?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-2&spm=1001.2101.3001.4242
https://blog.csdn.net/qian99/article/details/85084686

本文由博客群发一文多发等运营工具平台 OpenWrite 发布

相关文章
相关标签/搜索