论文题目:U-Net: Convolutional Networks for Biomedical Image Segmentation
论文地址:https://arxiv.org/pdf/1505.04597v1.pdf
医学图像处理方向,U-Net可以说是一个更加炙手可热的网络,基本上所有的分割问题,都可以尝试用U-net看看效果,这在阿里天池比赛中,经常被用到。
论文通过数据增强使得有限且宝贵的的训练集利用的更加充分。
U型结构使定位准确,解决了医学图片的定位,而不是简单的二分类。
U-Net整体的流程是编码和解码(encoder-decoder),而这个过程早在2006年就被Hinton大神提出来发表在了nature上。当时这个结构提出的主要作用并不是分割,而是压缩图像和去噪声。这个思路也可以用在原图像去噪,做法就是在训练的阶段在原图人为的加上噪声,然后放到这个编码解码器中,目标是可以还原得到原图。
问题1:降采样和上采样有什么用?
它可以增加对输入图像的一些小扰动的鲁棒性,比如图像平移,旋转等,减少过拟合的风险,降低运算量,和增加感受野的大小。升采样的最大的作用其实就是把抽象的特征再还原解码到原图的尺寸,最终得到分割结果。
问题2:复制+剪切特征图的作用?
浅层网络会保留明显的内容信息,网络层越深,内容会减少,特征会增多,为了在深层网络添加内容的信息,故有此操作。
问题3:u-net存在卷积层但是没有全连接层?
利用卷积层提取特征,获取每个像素点的信息,通过重叠结果,可以完美对任意大小图分隔,也可以通过镜像图片,对图片的边界上的元素进行预测。
问题4:训练的相关参数?
Caffe框架,采用SGD传播,每个batch一张图片,动量选0.99,采用交叉熵损失+softmax,函数形式:
ak(x)表示每一像素点(x)对应特征通道(k)的得分
K是类的数量 ,pk(x)是类k的对像素点x的分类结果 ,使得最有可能的结果最大化,同时抑制其他类别的概率。
带权重惩罚:
l是每个像素点的真实标签
w 是权重图,区分每个像素点的权重。
为了补偿某一类别的不同像素点的频次差异,用GT样例对w权重图进行预先计算。让网络学习区分更小的边界。
问题5:权重具体怎么算呢?
公式如下:
ωc:Ω→R是用来平衡 某一类 频率的权重图
d1:Ω→R表示到背景的某个像素点到最近细胞边界的距离
d2:Ω→R表示到背景的某个像素点到第二近的细胞边界的距离
设置ω0=10,σ≈5个像素
距离越远,w0exp(-)越小,几乎为0,所以你看到的远离细胞的地方,基本上权值都是一样的,接近于Wc。离细胞越远,权重就越小,相反,边界上的像素点的权重就越大,容易区分相邻细胞且相同细胞的边界。
使用高斯分布初始化权重,标准差为,其中N表示一个神经元的输入节点是的数量,如,对于一个3x3的卷积,前一层有64个feature channel,那么N=9∗64=576
问题6:图片增强操作?
作者做了 平移、旋转、形变、灰度处理,尤其是随机形变起到了重要作用。
使用随机位移矢量在粗糙的3×3网格上生成平滑变形。位移矢量是从标准差为10的高斯分布中采样的。然后使用双三次方插值计算每个像素位移。contracting path最后的dropout也起到了数据增强的作用。
实验对比结果: