U-Net 学习笔记
前言
U-Net在医疗图像领域很常用。医疗影像数据量少,分析过程中,高级语义信息和低级特征都很重要。
一、网络结构
整个网络呈现典型的U型结构,左边来源于FCN的结构,主要是从原始图像中卷积、下采样得到高语义的feature-map。有几个地方值得注意。
1.在卷积过程中,由于padding=valid,stride=1,导致feature-map的大小每次会减2;
2. 输入图像大小为572×572,输出图像大小为388×388;
3. 左右的连接中,由于大小也不一致,左边的feature-map需要剪切;
4. U-net采用了完全不同的特征融合方式:拼接,U-net采用将特征在channel维度拼接在一起,形成更厚的特征。而FCN融合时使用的对应点相加,并不形成更厚的特征。
二、创新点
1.overlap-tile策略
为了解决高分辨率图像的分割问题,提出了重叠平铺策略。此策略允许通过重叠平铺策略对任意大图像进行无缝分割。为了预测图像边界区域中的像素,通过镜像输入图像来外推缺失的上下文。此平铺策略对于将网络应用于大图像非常重要,否则分辨率将受到GPU内存的限制。
在平铺图像中,观察黄色方框的左上角,主要是通过镜像对称得到缺失部分的像素,再进行预测。
2.随机弹性变形进行数据增强
采用平移、旋转,灰度变形进行数据增强。而随机弹性形变是训练带有很少注释图像的分割网络的关键。使用随机位移向量在粗略的3x3网格上生成平滑变形。在收缩路径的末端采用dropout也能得到隐式的数据增强。
弹性变换算法(Elastic Distortion)最先是由Patrice等人在2003年的ICDAR上发表的《Best Practices for Convolutional Neural Networks Applied to Visual Document Analysis》提出的,最开始应用在mnist手写体数字识别数据集中,发现对原图像进行弹性变换的操作扩充样本以后,对于手写体数字的识别效果有明显的提升。此后成为一种很普遍的扩充字符样本图像的方式。
弹性变化是对像素点各个维度产生(-1,1)区间的随机标准偏差,并用高斯滤波(0,sigma)对各维度的偏差矩阵进行滤波,最后用放大系数alpha控制偏差范围。因而由A(x,y)得到的A’(x+delta_x,y+delta_y)。A‘的值通过在原图像差值得到,A’的值充当原来A位置上的值。一般来说,alpha越小,sigma越大,产生的偏差越小,和原图越接近。
————————————————
版权声明:本文为CSDN博主「赤兔DD」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/maliang_1993/article/details/82020596
3.使用了加权loss
本文也采用交叉熵损失函数,在上式中,yc要么为0,要么为1. Pc是预测的值。或者说是经过softmax后的值(使得所有预测概率之和为1)。
softmax函数如下:
具体可参考链接 https://www.jianshu.com/p/7e200a487916
本文U-Net的损失函数:
p同样是softmax后的输出值;
l :Ω → {1, . . . , K},是每个像素的真实标签;
w : Ω → R 是在训练过程中添加给每个像素的权重,具体公式如下
w(x)这个公式主要参考正态分布的式子。
wc(x)是预先计算每个地面真值分割,用来补偿训练数据集中每个类别的像素的不同频率;
d1是距离最近细胞边界的距离
d2是距离第二近细胞边界的距离
当d1、d2都等于0时,后面部分有最大值,且d1、d2越小,后面部分越大,即整个权重越大。当d1、当d2越小,意味着越靠近细胞边界,增大细胞边界的权重,可以迫使网络学习。
结果
总结
U-Net为什么采用这个深度?
为什么在第四层开始concate前面的信息?