U-Net学习总结


title: U-Net学习总结
abbrlink: e2db89d8
date: 2023-05-05 19:52:14
tags:

  • 人工智能
  • 深度学习
  • 语义分割
    categories: 深度学习

U-Net简介

一 概述

在这里插入图片描述

上图为自动驾驶中的移动分割任务的分割结果,从这张图片中可以有效的识别出汽车(深蓝色),行人(红色),红绿灯(黄色),道路(浅紫色)等。

  • 语义分割:语义分割是图像处理和机器视觉的一个重要分支。与分类任务不同,语义分需要判断图像每个像素点的类别,进行精确分割。语义分割目前在自动驾驶、自动抠图、医疗影像等领域有着比较广泛的应用。

  • U-Net:是一个用于医学图像分割的全卷积神经网络,通过该网络,可以对图片的像素进行定位,对图像中的每一个像素点进行分类,最后根据输出根据像素点的类别而分割好的图像。

在这里插入图片描述

二 U-Net为什么会出现

1.存在的问题

  • 卷积网络的典型应用是分类,其中图像的输出是单个标签,在许多视觉任务中,特别是在生物医学图像领域,需要对图像的每个像素分配标签

  • 在生物医学任务中,很难获得大量的训练图像

2.前人的尝试

Ciresan等人,在滑动窗口设置中训练了一个网络,通过以像素周围的局部区域(补丁)作为出入来预测每个像素的类标签。

存在的缺点:

  • 速度很慢:网络必须为每个补丁单独运行,由于重叠补丁而存在大量冗余

  • 定位精度和上下文使用间需要权衡:补丁越多,最大池化层越多,定位精度越低;补丁越小,网络看到的上下文越少

3.U-Net的提出

  • 主要思想:
    通过连续层来补充通常的收缩网络,其中池化算子被上采样算子取代。因此,这些层提高了输出的分辨率。为了进行定位,收缩路径中的高分辨率特征与上采样输出相结合。然后,连续的卷积层可以学习根据此信息组装更精确的输出。

  • 图片的输入:
    输入的分割图像需要对在原图像的四周的边界区域对称地添加像素,以便实现图像的连续分割。这种策论我们称之为Overlap-tile,通过这种策略我们可以对图像进行完全分割。这种策略对大图像地处理十分重要,否则分辨率将受到GPU内存地限制。

  • 数据增强:
    通过对可用地训练图像进行弹性变换,我们可以增加训练图像。

三 U-Net网络

1.激活函数

  • ReLU函数是神经元的一种激活函数,其作用是把激活的神经元的特征通过函数把特征保留并映射到对应的分类标签上,即负责将神经元的输入映射到输出端。

  • 函数表达式: f ( x ) = m a x ( 0 , x ) f(x) = max(0,x) f(x)=max(0,x)

  • 函数图像:

在这里插入图片描述

  • ReLU函数的优点:

    • 没有饱和区,不存在梯度消失问题

    • 没有复杂的指数运算,计算简单、效率提高

    • 实际收敛速度较快,比sigmoid等函数快很多

    • 比sigmoid函数更符合生物学神经激活机制

  • ReLU函数的缺点:

    • 当学习率过大时,可能造成部分神经元清零死亡,神经元将不会对数据有激活反应

2.图像的卷积与反卷积

  • 图像的卷积:图像的卷积是利用卷积核来对图像进行特征提取的一个过程。

  • 卷积核:卷积核是一个矩阵,通过设计这个矩阵(设计矩阵的大小、矩阵的数值),可以把相对应的图像特征提取出来,如图像的边缘特征、纹理特征等。

  • 一个3 * 3 卷积核对图片的卷积过程
    在这里插入图片描述

如图,左边是一个5 * 5的原始图片,中间是一个3 * 3 的卷积核,右边是图片的3 * 3 的卷积结果。具体过程是,在原始图片上划定一个3 * 3的区域,与卷积核上对应位置的数进行相乘,这几次相乘的和就是一个卷积结果。

卷积核就是一个具有特定权重的矩阵,通过设定卷积核,我们可以从原始图像中提取到对应的图像特征。类比刚才的神经元,卷积核就是神经元里的权重。

  • 图像的反卷积——图像的上采样:通过卷积,来将原图进行扩大,以此增大原图的分辨率,也称之为“上采样”。图像的反卷积本质上也是卷积。

如图所示,我们将一个2 * 2的原始图像进行扩充(再图像外围补充数,一般补充0),得到一个6 * 6的图像,然后用3 * 3 的卷积核对其进行卷积,得到了一个4 * 4 的结果图像,这个结果图像比原是图像大。

在这里插入图片描述

  • 卷积与反卷积不可逆:尽管从效果上看,卷积把图像缩小了,反卷积把图像放大了,但是本质上,卷积与反卷积都是卷积,都是对权重相乘的结果,因此,图像经过卷积后,再进行反卷积不能得到原来的图像。可以参考下图:

在这里插入图片描述

  • 卷积的三种结果

    • valid卷积:卷积后,结果图像比原来小

    • same卷积:卷积后,结果图像和原来一样

    • full卷积:卷积后,结果图像比原来大

  • 我们知道了,卷积核是通过特定的权重设定来的得到原始图像的一种特征,因此,用同一个卷积核对原始图像的不同通道进行卷积,得到也是一种特征,只不过每个通道表现出来的特征不同。综上,一个卷积核只能够提取一种特征,要想提取n中特征,我们就需要n个不同的卷积核

3.图像的池化——下采样

  • 池化:一种减少参数的计算方法。一般分为最大池化和平均池化,我们常用最大池化。

在这里插入图片描述

  • 池化层:专门用于降低参数的处理层。

  • 池化核:类似于卷积核,是一个具有权重的矩阵,通过设定一个权重,可以实现对原始图像的去参。

4.U-Net结构

在这里插入图片描述

由于U-Net的操作过程为“U”形,所以称之为"U"型神经网络——U-Net。

U-Net根据上采样和下采样进行了4次,分为四层。

其中,箭头的表示作用如下:

  • 深蓝色箭头:用3 * 3的卷积核对图像进行卷积,再通过激活函数输出特征图像

  • 红色箭头:通过最大池化对卷积后的特征图像进行下采样,池化核为大小为3 * 3

  • 绿色箭头:通过3 * 3的卷积核的反卷积对图像进行上采样,再通过激活函数输出特征图像

  • 灰色箭头:对左边下采样过程中的图像进行裁剪复制

  • 青色箭头:通过1 * 1的卷积核对图片进行卷积

具体过程如下:

  • 两次卷积:

    • 输入:572 * 572 * 1图片(实际上,原图像的像素是512 * 512,只不过对其进行了填充,得到了较大的分割图

    • 一次卷积:572 * 572 * 1 ->3 * 3 * 64卷积核->570 * 570 * 64

    • 二次卷积:570 * 570 * 64->3 * 3 * 64卷积核->568 * 568 * 64

    • 输出:568 * 568 * 64特征通道

  • 下采样:

    • 输入:568 * 568 * 64特征通道

    • 第一次下采样

      • 输入:568 * 568 * 64特征通道

      • 最大池化:568 * 568 * 64->2 * 2池化核->284 * 284 * 64

      • 一次卷积:284 * 284 * 64->3 * 3 * 128卷积核->282 * 282 * 128

      • 二次卷积:282 * 282 * 128->3 * 3 * 128卷积核-> 280 * 280 * 128

      • 输出:280 * 280 * 128特征通道

    • 第二次下采样

    • 第三次下采样

    • 第四次下采样

    • 每次下采样,会进行一次池化,两次卷积,池化使特征图片缩小一半,卷积核增加一倍,特征通道增加一倍。

    • 输出:28 * 28 * 1024特征通道

  • 上采样:

    • 输入:28 * 28 * 1024特征通道

    • 第一次上采样:

      • 反卷积:28 * 28 * 1024->2 * 2 * 512卷积核->56 * 56 * 512

      • 拼接:左边下采样图片56 * 56 * 512 + 反卷积56 * 56 * 512->56 * 56 * 1024(由于反卷积只能扩大图片而不能还原图片,为了减少数据丢失,采取把左边降采样时的图片裁剪成相同大小后直接拼过来的方法增加特征层

      • 一次卷积:56 * 56 * 1024->3 * 3 * 512卷积核->54 * 54 * 512

      • 二次卷积:54 * 54 * 512 ->3 * 3 * 512卷积核->52 * 52 * 512

      • 输出:52 * 52 * 512特征通道

    • 第二次上采样

    • 第三次上采样

    • 第四次上采样

    • 每次上采样,会进行一次反卷积,一次拼接,两次卷积,图片大小扩大一倍,卷积核缩小一倍,特征通道减小一倍。

    • 输出:388 * 388 * 64特征通道

  • 一次卷积:

    • 388 * 388 * 64 -> 1 * 1 * 2卷积核 ->388 * 388 * 2特征图片

    • 实际上就是一个二分类操作,把图片变成背景和目标两个类别。

  • 下采样使图片缩小,特征通道增加;上采样使图片扩大,特征通道减小。

5.损失函数

U-Net中使用交叉熵损失函数,其表达式为

在这里插入图片描述

其中:

在这里插入图片描述

在这里插入图片描述

6.优点与不足

优点:

  • 1.U-Net网络支持少量的训练模型:在医学方向我们所能够训练的数据相对较小而同时需要进行检测的数据/目标又较大。所以我们在U-Net网络中使用到了数据增强的处理。

  • 2.可以对每个像素点进行分割,获得更高的分割准确率。像素级的图像分割是U-Net网络的自身结构特性,由他的网络结构导致。

  • 3.在训练的过程中使用高梯度下降(high Momentum),这里的high Momentum = 0.99,high momentum的使用可以使训练模型的学习率处在一个自我调节的过程。

  • 4.权重划分。为了是某些像素点更加具有特征/代表性,则对像素点进行一个权重的划分,来补偿每个图像中像素点出现概率不同的问题

  • 5.引入图像镜像操作,更好的对数据进行训练。因为本身的训练数据较少,所以对图像进行镜像操作,防止数据的丢失

缺点:

  • 1.有效卷积增加了模型设计的难度和普适性

  • 2.U-Net网络采用Valid卷积,Valid卷积操作从输入图像中提取特征,为U-Net网络跳跃连接合并特征图的裁边操作增加了难度,并且导致分割前后的图像大小不一致。

四 总结

u-net网络在不同的生物医学图像分割中有很好的表现。数据增强使得只需很少的带标注数据,只需训练十小时。我们确信u-net网络可以很容易的应用到更多的任务。U-Net是比较早的使用多尺度特征进行语义分割任务的算法之一,其U形结构也启发了后面很多算法。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值