U-Net

article/2025/8/24 3:16:42

(1)使用全卷积神经网络。(全卷积神经网络就是卷积取代了全连接层,全连接层必须固定图像大小而卷积不用,所以这个策略使得,你可以输入任意尺寸的图片,而且输出也是图片,所以这是一个端到端的网络。

 整个网络有23层卷积层。网络的左边是收缩网络,右边是扩张网络。

收缩网络由多组卷积神经网络组成,每组由两层3x3 unpadded卷积层组成,每个卷积层后使用ReLU。每组之间使用size=2,stride=2的maxpooling进行下采样。每组第一次卷积时,将特征图通道数增加一倍。

扩张网络的也是由多组卷积层组成,每组先使用2x2的up-convolution(转置卷积)将分辨率翻倍、通道数减半,然后与收缩网络中对应的层的输出特征图concatenation。但是因为U-net全部使用unpadded卷积的缘故,对应的收缩网络的特征图的分辨率更高,因为使用Overlap-tile策略,因此可以直接将收缩网络对应的特征图四周裁剪后再拼接到扩张网络特征图中。拼接后接两个unpadde的3x3卷积层,每个卷积后接ReLU。扩张网络的最后一层是1x1卷积层,将通道数由64转换为类别数。
 

ReLU函数

ReLU函数实际上就是神经元的一种激活函数,简单来说,激活函数,并不是去激活什么,而是指把“激活的神经元的特征”通过某个函数把特征保留并映射到对应的分类标签上,即负责将神经元的输入映射到输出端。

ReLU函数的表达式:

f(x) = max(0,x)

 从表达式可以看到ReLU函数实际上是一个取最大值的函数,从图像上则能看出该函数的作用是把大于0的数据都保留,而小于0的数据直接清零。这种“清零”实际上能够保证神经元的稀疏性,而这种“稀疏性”的好处则是能够降低计算量,并且能够防止过拟合,能够更好地挖掘图像特征。

选用ReLU函数作为激活函数的好处有以下几个:

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

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

③实际收敛速度较快,比 Sigmoid/tanh 等激活函数快很多。

而缺点则是,当学习率过大的时候,可能造成大部分神经元清零死亡,即该神经元不会对任何数据有激活反应了。


2)图像的卷积和反卷积(上采样)

      图像的卷积实际上是利用卷积核来对图像进行特征提取的一个过程。卷积核是一个矩阵,通过设计这个矩阵(如矩阵的大小、矩阵中的数值),就可以把相对应的图像特征提取出来,如图像的边缘特征、纹理特征等等。

下图展示的是一个3×3卷积核对图片的卷积过程:

滑动卷积核

       图1中每一张图中间的3×3小正方形就是一个卷积核,左边是原始图像,而右边则是通过卷积后的结果,可以直观看到卷积的过程实际上就是把左边原图选定的3×3领域,与3×3的卷积核逐个数字对应相乘,最后把9个相乘后的结果相加,就是最终的卷积结果。

       从上图可以看到,原图经过卷积后,结果图像比原图小了一圈,这是因为卷积核本身也有大小,导致原图的边缘信息没法完全卷积到所造成的。为了避免这种现象,在对图像进行卷积时,一般会先对原图进行扩大(一般是在图像周围加一圈0),以保证在卷积后的图像大小和原始图像相同,如图2所示:

在这里插入图片描述

 从图2可以看到,在5×5原图(蓝色)的外面扩大一圈(白色)后,通过3×3卷积核卷积的结果图(绿色)能够同样保持5×5大小。

那如果把原图再往外扩大几圈呢?如图3所示:

在这里插入图片描述

从图3可以看出,把2×2原图扩大了两圈,再通过3×3的卷积核,卷积结果图像被增大为4×4的大小。 

①卷积后,结果图像比原图小:称之为valid卷积

②卷积后,结果图像与原图大小相同:称之为same卷积

③卷积后,结果图像比原图大:称之为full卷积

       其中,full卷积其实就是反卷积的过程。到这里应该可以意识到,反卷积实际上也是一种特殊的卷积方式,它可以通过full卷积将原图扩大,增大原图的分辨率,所以对图像进行反卷积也称为对图像进行“上采样”。因此,也可以很直接地理解到,图像的卷积和反卷积并不是一个简单的变换、还原过程,也就是先把图片进行卷积,再用同样的卷积核进行反卷积,是不能还原成原图的,因为反卷积后只是单纯地对图片进行扩大处。

 

      通过反卷积并不能还原卷积之前的矩阵,只能从大小上进行还原,因为反卷积的本质还是卷积。如果想要还原成原图像,只能通过专门设计不同的卷积核来实现。

选用了6个不同的卷积核,提取了图像中的6种特征,得到了右边的6个通道结果,每个特征通道的大小都为28×28×1。因此,需要提取多少个图像特征,就需要设计多少个不同的卷积核,这就是通常所说的卷积层。

损失函数

损失函数Loss Function是用来估量模型的预测值与真实值的不一致程度,它是一个非负实值函数,损失函数越小,模型的训练效果越好,鲁棒性越强。这是神经网络在通过梯度下降等方法调整参数,使得训练结果不断逼近真实值时必须使用到的一个函数。U-net中使用的损失函数为带权重的交叉熵损失函数

softmax回归模型

softmax回归跟线性回归一样将输入特征与权重做线性叠加。与线性回归的一个主要不同在于,softmax回归的输出值个数等于标签里的类别数。

由于每个输出o1,o2,o3o1,o2,o3的计算都要依赖于所有的输入x1,x2,x3,x4x1,x2,x3,x4,softmax回归的输出层也是一个全连接层。

 softmax运算

它通过下式将输出值变换成值为正且和为1的概率分布:

在这里插入图片描述

 

 

 

 归一化

交叉熵损失函数

衡量两个概率分布差异的测量函数 

softmax回归是一个多类分类模型

使用softmax操作得到每个类的置信度

使用交叉熵来衡量预测和标号的区别

二、U-net入门

 ①深蓝色箭头:利用3×3的卷积核对图片进行卷积后,通过ReLU激活函数输出特征通道;

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

③红色箭头:通过最大池化对图片进行下采样,池化核大小为2×2;

④绿色箭头:反卷积,对图像进行上采样,卷积核大小为2×2;

⑤青色箭头:使用1×1的卷积核对图片进行卷积。

U-net网络一共有四层,分别对图片进行了4次下采样和4次上采样。

从最左边开始,输入的是一张527×527×1的图片,然后经过64个3×3的卷积核进行卷积,再通过ReLU函数后得到64个570×570×1的特征通道。然后把这570×570×64的结果再经过64个3×3的卷积核进行卷积,同样通过ReLU函数后得到64个568×568×1的特征提取结果,这就是第一层的处理结果。

第一层的处理结果是568×568×64的特征图片,通过2×2的池化核,对图片下采样为原来大小的一半:284×284×64,然后通过128个卷积核进一步提取图片特征。后面的下采样过程也是以此类推,每一层都会经过两次卷积来提取图像特征每下采样一层,都会把图片减小一半卷积核数目增加一倍。最终下采样部分的结果是28×28×1024,也就是一共有1024个特征层,每一层的特征大小为28×28

右边部分从下往上则是4次上采样过程。从最右下角开始,把28×28×1024的特征矩阵经过512个2×2的卷积核进行反卷积,把矩阵扩大为56×56×512(注意不是1024个卷积核,结果仅仅是右半边蓝色部分的512个特征通道,不包含左边白色的),由于反卷积只能扩大图片而不能还原图片,为了减少数据丢失,采取把左边降采样时的图片裁剪成相同大小后直接拼过来的方法增加特征层(这里才是左半边白色部分的512个特征通道),再进行卷积来提取特征。由于每一次valid卷积都会使得结果变小一圈,因此每次拼接之前都需要先把左边下采样过程中的图片进行裁剪。矩阵进行拼接后,整个新的特征矩阵就变成56×56×1024,然后经过512个卷积核,进行两次卷积后得到52×52×512的特征矩阵,再一次进行上采样,重复上述过程。每一层都会进行两次卷积来提取特征,每上采样一层,都会把图片扩大一倍,卷积核数目减少一半。最后上采样的结果是388×388×64,也就是一共有64个特征层,每一层的特征大小为388×388。

在最后一步中,选择了2个1×1的卷积核把64个特征通道变成2个,也就是最后的388×388×2,其实这里就是一个二分类的操作,把图片分成背景和目标两个类别
 

U-net的输入是什么?

由于在不断valid卷积过程中,会使得图片越来越小,为了避免数据丢失,在图像输入前都需要进行镜像扩大,如图9所示:

 可以看到图像在输入前,四个边都进行了镜像扩大操作,以保证在通过一系列的valid卷积操作之后的结果能够与原图大小相一致。把大图进行分块输入的训练方式(如图9中的黄色框),最后将结果一块块拼起来。为了避免在拼接过程中边缘部分出现不连接等问题,在训练前,每一小块都会选择镜像扩大而不是直接补0扩大(如图9中的蓝色框),以保留更多边缘附近的信息。 

(3)数据增强

       当训练样本过少时,容易使得训练效果不佳。解决该问题的方法是数据增强,数据增强可以在训练样本较少时,也能够让神经网络学习到更多的数据特征,不同的训练任务,数据增强的方法也不尽相同。由于U-net文章中的任务是分割Hela细胞,作者选择了弹性变换的方式进行数据增强,如图10所示:

 图10的弹性变换其实就是把原图进行不同的弹性扭曲,形成新的图片,扩大样本量,由于这种弹性变化在细胞中是十分常见的,人为增加这种数据量能够让U-net学习到这种形变的不变性,当遇到新的图像时候可以进行更好地分割。 


http://chatgpt.dhexx.cn/article/Y7nRgGeA.shtml

相关文章

Pytorch实战系列(一)——CNN之UNet代码解析

目录 1.UNet整体结构理解 1.1 UNet结构拆解 1.1.1 卷积层主体:两次卷积操作 1.1.2 左部分每一层:下采样卷积层 1.1.3 右部分每一层:上采样中部分跳跃连接卷积层 1.1.4 输入层和输出层 1.2 UNet结构融合 2.UNet Pytorch代码理解 2.1 …

快速理解Unet的网络结构

Unet 前言FCNUnet 前言 U-Net和FCN非常的相似,U-Net比FCN稍晚提出来,但都发表在2015年,和FCN相比,U-Net的第一个特点是完全对称,也就是左边和右边是很类似的,而FCN的decoder相对简单,只用了一个…

Unet网络解析

1 Unet网络概述 论文名称:U-Net: Convolutional Networks for Biomedical Image Segmentation 发表会议及时间 :MICCA ( 国际医学图像计算和 计算机辅 助干预会 议 ) 2 0 1 5 Unet提出的初衷是为了解决医学图像分割的问题。 Unet网络非常的简单&…

分割网络模型(FCN、Unet、Unet++、SegNet、RefineNet)

1、FCN https://blog.csdn.net/bestrivern/article/details/89523329《Fully Convolutional Networks for Semantic Segmentation》https://arxiv.org/abs/1411.4038 FCN是不含全连接层的全卷积网络,对图像进行像素级的分类,解决了图像的语义分割问题&a…

UNet网络解读

UNet解读 UNet论文UNet的简介代码解读DoubleConv模块Down模块Up模块OutConv模块 整个UNet参考资料 UNet论文 UNet论文地址 UNet的简介 UNet是一个对称的网络结构,左侧为下采样,右侧为上采样;下采样为encoder,上采样为decoder;四…

UNet网络

UNet 本博客主要对UNet网络进行讲解,以下为文章目录: UNet 原论文讲解网络结构数据集介绍评价指标损失计算代码 本文参考资料如下: UNet原论文 https://arxiv.org/pdf/1505.04597.pdfU-Net网络结构讲解(语义分割) https://www.bilibili.c…

U-Net网络详解

U-Net: Convolutional Networks for Biomedical Image Segmentation 原文地址:https://zhuanlan.zhihu.com/p/43927696 前言 U-Net是比较早的使用全卷积网络进行语义分割的算法之一,论文中使用包含压缩路径和扩展路径的对称U形结构在当时非常具有创新…

U-Net网络

U-Net普遍应用在生物医学影像领域,其在架构设计和其他利用卷积神经网络基于像素的图像分割方面更成功,它甚至对有限数据集的图像更有效。U-Net的命名源自它的结构,它的网络结构可视化的结果很像一个字母U。 U-NET网络性能机制 U-Net 融合了 …

【Unet系列】Unet Unet++

文章目录 U-net概述细节部分1、结构的解析2、一些小点 result Unet概述细节部分resultsummary U-net U-Net是一篇基本结构非常好的论文,主要是针对生物医学图片的分割,而且,在今后的许多对医学图像的分割网络中,很大一部分会采取…

图像分割UNet系列------UNet详解

图像分割unet系列------UNet详解 1、UNet网络结构2、UNet网络结构高性能的原因分析3、医学图像使用UNet网络结构 UNet最早发表在2015的MICCAI上,到2020年中旬的引用量已经超过了9700多次,估计现在都过万了,从这方面看足以见得其影响力。当然&…

UNet、UNet++、UNet3+系列

一、unet 简介 继承FCN的思想,继续进行改进。但是相对于FCN,有几个改变的地方,U-Net是完全对称的,且对解码器(应该自Hinton提出编码器、解码器的概念来,即将图像->高语义feature map的过程看成编码器&…

unet网络详解

Unet 参考文献:U-Net: Convolutional Networks for Biomedical Image Segmentation作者:Olaf Ronneberger, Philipp Fischer, and Thomas Brox 什么是Unet模型 Unet是一个优秀的语义分割模型,其主要执行过程与其它语义分割模型类似。与CNN…

Unet相关介绍

老师的bloghttps://zhuanlan.zhihu.com/p/370931792。写的比我这个好,233 Unet是在Fcn基础上提出的一种应用于医学影响的分割网络。医学影像的特点是1、数据集小。2、单张图片大。 由于以上医疗影像的特点,我们无法直接用Fcn进行分割学习。一个德国团队…

UNET详解和UNET++介绍(零基础)

一背景介绍 背景介绍: 自2015年以来,在生物医学图像分割领域,U-Net得到了广泛的应用,目前已达到四千多次引用。至今,U-Net已经有了很多变体。目前已有许多新的卷积神经网络设计方式,但很多仍延续了U-Net的核…

UNet - unet网络

目录 1. u-net介绍 2. u-net网络结构 3. u-net 网络搭建 3.1 DoubleConv 3.2 Down 下采样 3.3 Up 上采样 3.4 网络输出 3.5 UNet 网络 UNet 网络 forward 前向传播 3.6 网络的参数 4. 完整代码 1. u-net介绍 Unet网络是医学图像分割领域常用的分割网络&#xff0…

UNet 浅析

文章目录 1. UNet 简介2. UNet 详解3. 代码实例 - 医学图像分割 (ISBI数据集)【参考】 1. UNet 简介 UNet 属于 FCN 的一种变体,它可以说是最常用、最简单的一种分割模型,它简单、高效、易懂、容易构建,且可以从小数据集中训练。2015 年&…

unet 网络结构

unet 是15年提出的用于解决医学图像分割问题。unet有两部分组成。左边部分可以看出是特征提取网络,用于提取图像的抽象特征。右边可以看作是特征融合操作。与传统的FCN相比,unet使用是使用特征拼接实现特征的融合。unet 通过特征融合操作,实现了浅层的低分辨率(越底层的信息…

unet模型及代码解析

什么是unet 一个U型网络结构,2015年在图像分割领域大放异彩,unet被大量应用在分割领域。它是在FCN的基础上构建,它的U型结构解决了FCN无法上下文的信息和位置信息的弊端 Unet网络结构 主干结构解析 左边为特征提取网络(编码器&…

深度学习论文精读[6]:UNet++

UNet的编解码结构一经提出以来,大有统一深度学习图像分割之势,后续基于UNet的改进方案也经久不衰,一些研究者也在从网络结构本身来思考UNet的有效性。比如说编解码网络应该取几层,跳跃连接是否能够有更多的变化以及什么样的结构训…

【Unet系列】(三)Unet++网络

一、UNet整体网络结构 Unet主要是探索encoder和decoder需要多大的问题,以此为基础,提出了融合不同尺寸Unet结构的网络。创新点就是把不同尺寸的Uent结构融入到了一个网络里。 二、结构的好处 (1)不管哪个深度的特征有效&#…