深度学习小白笔记:U-Net

在看了分类网络后,稍稍打算研究一波分割,就从U-Net开始啦。
15年的文章《U-Net: Convolutional Networks for Biomedical Image Segmentation》提出基于少量数据进行的训练的网络模型,不仅网络运行速度很快,也取得了不错的分割精度。在GPU上,512x512图像的分割只需要不到一秒钟的时间。同时该网络在2015年ISBI细胞跟踪挑战赛中以较大优势胜出。

摆上一张网络构架大家来欣赏一下吧。

深度学习小白笔记:U-Net_第1张图片
是不是网络命名的原因呼之欲出,没错就是因为网络构建图想一个U型,所以叫U-Net(如此简单粗暴)

首先讲讲U-Net分割方式和传统的滑动窗口分割方式的区别和优点吧。
基于滑动窗的神经网络:以像素为单位对图片进行分类。[a patch —> net —> a pixel for pixels in an image]。
缺点:
1.需要对每个patch各训练一次,计算量大,冗余性高。
2.周围像素提供信息不确定性高。(以像素为单位,对于窗体选择有较大的不确定性。size过大,反而会导致局部细节的丢失,并需要用到更多的池化层去显现环境信息,却降低了精度。size较小,只允许网络看到少量context。)

所以U-Net的不同就体现出来啦,相较于传统思路,U-Net以图片整体进行图片分类分割,通过下采样和上采样的网络结构,用下采样展现环境信息,上采样结合下采样的信息和上采样的输入信息还原细节,逐步还原图像精度。

U-Net的网络构架:

卷积层共23层

网络由两部分构成,contracting path(收缩路径) 和 expanding path(扩展路径)

contracting path(收缩路径):
卷积层:3 * 3 的卷积层(2个)+ relu + max pooling( 2 * 2 )
每一次下采样增加一倍通道数(double the number of feature channel)

contracting path(收缩路径):
卷积层:2 * 2的卷积层+relu+3 * 3的卷积层(2个)
每步上采样操作同时会加入来自相应下采样的feature(裁剪后shape相同)

网络最后用1 * 1的 卷积层,将64通道的特征向量转化为所需的数量。

网络特点及细节:

  • 构建了全卷积网络,通过连续的层来补充收缩网络,池操作用上采样操作替代,从而提高图像的分辨率。为了实现局部优化,将收缩路径的高分辨率feature与上采样结合输出。
  • 重叠切片策略:预测黄色方块的分割需要蓝色方框中的图像作为数据输入,缺失的数据由镜像推断。

深度学习小白笔记:U-Net_第2张图片
好处:允许对任意大的图像进行无缝分割,能很好解决分辨率受GPU限制的问题。(没仔细想为啥,后续查查资料)

  • DIC 微分干涉(differentialinterference contrast)

DIC显微镜记录的HeLa细胞深度学习小白笔记:U-Net_第3张图片
上图中a为原始图像;b为带真实标记的分割数据叠加,不同颜色表示HeLa细胞的不同实例;c为生成的分割掩模,其中白色区域表示前景,黑色表示背景;d是用于网络学习边缘像素的加权损失像素图。

训练:

优化器:SGD,0.99动量系数
loss:cross entropy loss function
图像增强:放射变换
权重初始化:高斯(0,sigma=sqrt(2/N))

能量函数(the energy function)是通过与交叉熵损失函数相结合的最终特征图,并利用像素级的soft-max函数来计算的。

soft-max函数:
在这里插入图片描述
a k (x)表示在第x像素点上第k个特征通道的激活函数。K为类别数,p k (x)为近视最大函数(the approximated maximum-function)。

加权交叉熵:
在这里插入图片描述
l={1,…,K}表示每个像素正确的标签,权重函数w

权重函数:
在这里插入图片描述
w c 表示平衡类别频率的权重图,d 1 表示到最近细胞边界的距离,d 2 表示到第二近细胞边界的距离。基于经验,将w 0 设为10,σ约为5像素。

总结:
u-net网络基于少量数据进行的训练的网络模型,用连续的层来补充通常的收缩网络,其中池操作符替换为上采样操作符。 在不同的生物医学图像分割中有很好的表现。

参考文献:
《U-Net: Convolutional Networks for Biomedical Image Segmentation》

你可能感兴趣的:(深度学习小白笔记:U-Net)