解决什么样的问题

这篇文章主要是关于利用深度卷积网络解决生物医学图像分割的问题。我们回到作者提出Unet的那个年代来看看这篇论文提出的背景,AlexNet在ImageNet大赛上优越的表现使得深度学习再次受到研究人员的重视,在此后的几年里在视觉识别的许多领域里采用类似的深度卷积网络都取得了非常不错的成果特别是图像分类任务,但是这些领域基本都有一个前提就是拥有大规模的标记数据集,这样才能保证大规模的深度网络能够被训练起来。然而在医学图像分割任务上,一方面很难拥有大规模的图像数据集,常常就几百张而已,用传统的方法基本上是训练不起来的。另一方面,图像分割任务不再是一张图片对应一个类别而是对一张图像上的每个像素都进行类别预测。大体上作者当时就是要解决这样两个核心问题。

解决问题的思路

  • 首先是借鉴了FCN(全卷积神经网络的)的思路,FCN应该算是最先将深度学习应用在图像分割,它可以实现端到端的分割,但是它分割细节不够精确。在FCN中为了获得更全面的上下文信息是将下采样中第三第四以及最后的特征图上采样的统一大小进行融合。而作者为了获得更丰富的上下文信息选择直接将低层信息直接拼接到高层信息上来,在上采样(反卷积)过程中保留了特征通道,于是就形成了下图这样对称的U型结构

  • 然后因为医学图像通常比较大且图像大小也不完全统一,为了处理任意大的图像,作者采用了overlap-tile的策略
  • 针对数据集小的问题,作者考虑到医学领域细胞器官往往变化变异比较多,于是对现有数据集通过随机弹性变化进行数据增广,让模型从中学到弹性变化中的不变性。

核心的知识点

  • overlap-file:这个策略主要是用来无缝分割任意大的图像,要预测黄色区域的部分,就需要将蓝色区域的图像数据作为输入,对于边缘区域外部不存在的部分就采用镜像复制进行填充。
  • 加权损失,U-Net主要是通过加权的交叉熵评估损失进行SGD的优化,这个权值是通过预先计算图中每个像素的权值从而使得网络更加注重对相互接触的细胞边缘进行学习,下图中d就是预先计算的图像像素权重示意图

这里稍微解释一下这个预先计算权重的方法,因为是针对细胞接触类型的图所以并不适用所有类型的图像处理,但很有借鉴意义。通过预先计算权重图的来获得每一个像素在损失函数中的权值,这种方法补偿了训练数据每类像素的不同频率,并且使网络更注重学习相互接触的细胞间的边缘。关于权重的预先计算采用的如下公式:w(x)=wc(x)+w0exp((d1(x)+d2(x))22σ2)w(x)=w_c(x)+w_0\cdot exp\left ( -\frac{(d_1(x)+d_2(x))^2}{2\sigma ^2} \right ),其中wcw_c是用来平衡类别频率的权重,d1(x)d_1(x)是像素x到最近细胞边界的距离,d2(x)d_2(x)是像素x到第二近细胞边界的距离

还存在什么样的问题

U-net贡献总结

先总结一下U-Net中的主要贡献

  • 提出了U-net网络结构,拥有捕获上下文信息提取特征能力的收缩路径,更有着能够精确定位的对称扩展路径。
  • 采用overlap-tile策略使得网络能够对任意大的图像进行分块处理,更能捕捉到较为全面的上下文信息
  • 采用了随机弹性形变进行数据增广,适用于细胞电子显微图像并不具有普适性
  • 采用加权损失,预先计算权重图,让网络能够充分学习到想要关注的内容

存在的问题

关于存在的问题,从文中可以看到作者关于为什么选择总层数23层或者说收缩和扩展四次并没有给出任何解释,后来的U-net++ 就是从这个角度入手给出了更为精确的分割模型