深度学习_图像分割_U-Net
U-Net
U-Net论文
卷积网络被大规模应用在分类任务中,输出的结果是整个图像的类标签。然而,在许多视觉任务,尤其是生物医学图像处理领域,目标输出应该包括目标类别的位置,并且每个像素都应该有类标签。另外,在生物医学图像往往缺少训练图片。所以,Ciresan等人训练了一个卷积神经网络,用滑动窗口提供像素的周围区域(patch) 作为输入来预测每个像素的类标签。
这个网络有两个优点:
- 输出结果可以定位出目标类别的位置。
- 由于输入的训练数据是patches,这样就相当于进行了数据增广,解决了生物医学图像数量少的问题。
但是,这方法也有两个很明显的缺点:
- 首先,他很慢,因为这个网路必须训练每个patch,并且因为patch间的重叠有很多的冗余(冗余会造成什么影响呢?卷积核里面的W,就是提取特征的权重,两个块如果重叠的部分太多,这个权重会被同一些特征训练两次,造成资源的浪费,减慢训练时间和效率,虽说会有一些冗余,训练集大了,准确率不就高了吗?可是这些都是相同的图片,重叠的东西都是相同的,举个例子,我们用一张相同的图片训练20次,按照这个意思也是增大了训练集,但是会出现过拟合的现象。)
- 定位准确性和获取上下文信息不可兼得。大的patches需要更多的max-pooling层,这样减小了定位准确性(因为我们是对这个像素为中心的点进行分类,如果patches太大,最后经过全连接层的前一层大小肯定是不变的,所以patch大就需要更多的pooling达到这个大小,而pooling层越多,丢失的信息也越多;但是小的patches智能看到很小的局部信息,包含的背景信息不够。)
U-Net这篇论文建立了一个更好的全卷积方法。我们定义和扩展了上述方法使得它使用更少的训练图片但产生更精确的分割。
- 使用全卷积神经网络。(全卷积神经网络就是卷积取代了全连接层,全连接层必须固定图像大小而卷积不用,所以这个策略使得,我们可以输入任何尺寸的图片,而且输出也是图片,所以这个一个end-to-end网络。)
- 左边的网络是收缩路径:使用卷积和max-pooling。
- 右边的网络是扩张路径:使用上采样产生的特征图与左侧收缩路径对应层产生的特征图进行concatenate操作。(pooling层会丢失图像信息和降低图像分辨率且是不可逆的操作,对图像分割任务有一定影响,对图像分类任务的影响不大。为什么要进行上采样:因为上采样可以补足一些图片的信息,但是信息补充的肯定不完全,所有还需要与左边的分辨率比较高的图片相连接起来(直接复制过来再裁减到与上采样图片一样大小),这就相当于在高分辨率和更抽象特征当中做一个折中,因为随着卷积次数增多,提取的特征也更加有效,更加抽象,上采样的图片是经历多次卷积后的图片,肯定是比较高效和抽象的图片,然后把它与左边不怎么抽象但更高分辨率的特征图进行连接)。
- 最后再经过两次反卷积操作,生成特征图,再用两个1 * 1的卷积做分类得到最后的两张heatmap,例如第一张表示的是第一类的得分,第二张表示第二类的得分heatmap,然后作为softmax函数的输入,酸楚概率比较大的softmax类,选择它作为输入给交叉熵进行反向传播训练。