本文提出了一种网络和训练策略,通过数据扩充的强大更好地利用已有数据。这个网络的结构包括一个捕捉上下文的收缩路径(contracting path)和能够精准定位的对称扩展路径(symmetric expanding path) 。
模型
该结构在全卷积网络(FCN)上进行修改,使其能够在很少的数据上得到很高的准确率。全卷积神经网络的主要思想是通过连续的层实现压缩网络(contracting network),pooling层都被替换为上采样层。这些层增大了输出的分辨率。为了定位,来自压缩路径的高分辨率的特征与上采样的输出结合,连续的卷积层就可以学会基于该信息形成更准确的输出。
该结构对FCN很重要的一个改进是,在上采样部分,也有很多特征通道,使得网络可以将情境信息传到更高分辨率的层。那么expansive path或多或少与contracting path保持对称,形成U形结构,如下图所示。每个蓝色框对应一个多通道特征图(map),其中通道数在框顶标,x-y的大小位于框的左下角。白色框表示复制的特征图。箭头表示不同的操作。FCN在上采样时,根据前一池化层h和上采样层的结合实现像素的密集预测。而U-Net也是在上采样部分(扩展路径)结合下采样部分(收缩路径)生成特征向量。(参考:博客1 博客2)
因为本文是针对医学图像的语义分割的,而医学图像一般较大。因此作者采用交叠平铺策略(overlap-tile strategy)对图像进行切块,在预测边界区域的像素点时,缺失的情境信息通过对输入的镜像插值进行补充,这样网络可以不考虑显存问题,对任意大的图像进行操作。
模型结构:
-
contracting path: 2个3x3Conv(不做padding)-ReLU-2x2MaxPooling(stride=2, 下采样)的结构
-
expansive path: 上采样-2x2Conv(特征通道减少一半)-与相对应的裁剪过的contracting path的特征图拼接-2个3x3Conv+ReLU
-
final layer: 1x1Conv,将通道数为64的特征向量映射到需要的类别数
注:
- 因为2x2的max-pooling操作的存在,为了形成无缝拼接的图,输入图像的尺寸在x和y上都应为偶数。
- 由于医学图像训练数据很少,使用弹性变形进行数据扩增,使得网络能够学习到对这种变形的不变性。
- 对于相邻的、边界重叠的同一类别目标的分离,作者使用一个加权损失,相邻目标之间的分界线上的像素将在损失函数中拥有较大权重。
损失函数
energy function:对最后一个特征图进行softmax,并应用交叉熵损失。简单来讲,就是对每个像素应用 Softmax,然后用交叉熵损失函数,这样相当于将每个像素分为一类。(参考:博客3)
文中的softmax定义为:
a
k
(
x
)
a_{k}(x)
ak(x)是特征通道k的x位置上的像素的激活值。K是类别的总数。对于有最大激活值
a
k
(
x
)
a_{k}(x)
ak(x)的k,
p
k
(
x
)
p_{k}(x)
pk(x)约等于1,其他k的
p
k
(
x
)
p_{k}(x)
pk(x)约等于0。
交叉熵惩罚每个像素上
p
l
(
x
)
(
x
)
p_{l(x)}(x)
pl(x)(x)和1的差值。
l
l
l是每个像素的真实标签,
w
w
w是weight map,给予某些像素更高的权值。
weight map补偿训练数据集中某一类像素的不同频率,迫使网络学到相邻目标之间的边界。边界分离通过形态学操作计算。
w
c
(
x
)
w_{c}(x)
wc(x)是用来平衡类别分辨率的权值图,
d
1
d_{1}
d1是与最近的目标的边界之间的距离,
d
2
d_{2}
d2是与第二近的目标的边界之间的距离。