【Unet系列】Unet Unet++

article/2025/8/24 5:34:36

在这里插入图片描述

文章目录

  • U-net
    • 概述
    • 细节部分
      • 1、结构的解析
      • 2、一些小点
    • result
  • Unet++
    • 概述
    • 细节部分
    • result
    • summary

U-net

U-Net是一篇基本结构非常好的论文,主要是针对生物医学图片的分割,而且,在今后的许多对医学图像的分割网络中,很大一部分会采取U-Net作为网络的主干。

概述

博客都将用一个概述对论文进行一个很简介的概述:

  • 解决什么问题?
    • 医学图像的分割
  • 使用的方法?
    • 继承FCN的思想,继续进行改进。但是相对于FCN,有几个改变的地方,U-Net是完全对称的,且对解码器(应该自Hinton提出编码器、解码器的概念来,即将图像->高语义feature map的过程看成编码器,高语义->像素级别的分类score map的过程看作解码器)进行了加卷积加深处理,FCN只是单纯的进行了上采样。
    • Skip connection:两者都用了这样的结构,虽然在现在看来这样的做法比较常见,但是对于当时,这样的结构所带来的明显好处是有目共睹的,因为可以联合高层语义和低层的细粒度表层信息,就很好的符合了分割对这两方面信息的需求。
    • 联合:在FCN中,Skip connection的联合是通过对应像素的求和,而U-Net则是对其的channel的concat过程。
  • Innovation:
    • overlap-tile策略
    • 随机弹性变形进行数据增强
    • 使用了加权loss
  • result
    • 相对于当年的,在EM segmentation challenge at ISBI 2012上做到比当时的best更好。而且速度也非常的快。其有一个很好的优点,就是在小数据集上也是能做得比较好的。就比如EM 2012这个数据集就只是30个果蝇第一龄幼虫腹侧神经所索的连续部分透射电子显微镜图。
  • 还存在的问题
    • 这个得看其后面的论文,要说的话,可以将其网络的深度到底取多深的问题作为一个点。

细节部分

以下是整体的结构图(对于这两篇论文,我比较关注的是他们的结构,同样论文也是把他们的结构作为卖点,论文中其余的很多细节都没有很详细的说明):
在这里插入图片描述

1、结构的解析

整体结构就是先编码(下采样), 再解码(上采样),回归到跟原始图像一样大小的像素点的分类。

  • 首先是输入图像的大小,这个是根据再高层的大小来进行反推的,最后取的一个比较合适的方便计算的输入大小。
  • 下采样是通过max pool 2x2来进行1/2下采样的,下采样之间是两个conv卷积层,这里的卷积是使用valid卷积。所以在卷积过程中图像的大小是会减小的。这会造成一个问题,就是造成了在skip connection部分concat时候大小不一致,因为在上面有一个copy & crop操作,crop就是为了将大小进行裁剪的操作。
  • 虽然上面有说到crop操作,但若是在卷积的时候使用的是same,就无需这个操作,至于这其中的影响,我觉得应该是不会造成太大的影响的,而且还会方便计算操作。这是same的代码。
  • 上采样,相对于FCN的转置卷积进行上采样,这里是一个up-conv 2x2,具体对应的操作是:对行列进行2倍翻倍。

2、一些小点

  • Overlap-tile策略:在这里插入图片描述
  • 其中的loss,交叉熵的损失,且图中的a是raw image,b是ground truth segmentation,c是产生的分割,对前景和背景进行的分割,d是增加了像素级的loss权重后,让网络对边界像素进行了更好的学习的效果。
    在这里插入图片描述

result

1、
在这里插入图片描述
2、
在这里插入图片描述


Unet++

Unet++是2018年的论文,这篇论文主要是针对生物医学图像的分割,在以下四个分割任务做了实验:

  • 1、胸部低剂量CT扫描中的结节分割
  • 2、显微镜图像中的细胞核分割
  • 3、腹部CT扫描中的肝脏分割
  • 4、结肠镜检查中的息肉分割

概述

对以前的论文做了一个简短的总结:对于分割任务,都会有一个共识,就是skip connection。目前对自然图像的分割效果蛮好,对生物医学图像的分割一般。(自我理解)主要的原因可能还是(1)数据集的量(2)生物医学图像相较于自然图像来说,本身分割难度大,体现在生物图像中分割目标边界模糊、变形一类的复杂情况。

  • 解决的问题?
    • 对生物医学图像的分割,具体的已经在上面列出来了。
  • 使用的方法?
    • Unet的增强版,灵感来源于DenseNet。但实际上,在此之前有一个思想是一样的工作,可以说是Unet的工作与其如出一辙,根据任务进行了调整而已。
    • 深度监督
  • result
    • 想对于UNet和wide UNet(wide IOU是相对与UNet的参数增加,使其与Unet++在参数上相差无几,减少相互对比中的不一样的条件)各自有3.9和3.4的平均IOU的提升。
  • More
    • 文中提到可以将Unet++作为Mask rcnn的backbone architecture。但是文中没有给出具体做法
    • 加中间的Dense block所基于的一个假设:让received encoder feature maps和the corresponding decoder feature maps are semantically similar,这样会使优化器更好的优化。

细节部分

1、一张结构图 & 解释:
在这里插入图片描述

  • 其中的蓝色和绿色部分就是Unet++相对UNet添加的部分。在右侧有L1, L2等,这些是Unet++对网络不同深度的设置。其中绿色的箭头表示上采样,同UNet,黑色的下箭头表示下采样,同UNet。
  • 蓝色箭头则表示skip connection,每一个水平层就是非常标准的DenseNet的结构。每个原型单元代表了卷积+激活函数一系列的操作。
  • 对其中的等式进行解释:在这里插入图片描述
  • 上图的第一个水平层的每一个 X 0 , j ( j ! = 0 ) X^{0,j(j!=0)} X0,j(j!=0)都可以作为单独的分割任务的输出了。

2、loss:binary cross-entropy和dice coefficient两部分的组合。以下的loss应用到每一个不同层次的输出。
在这里插入图片描述
在这里插入图片描述
3、深度监督

  • 上述的每个 X 0 , j ( j ! = 0 ) X^{0,j(j!=0)} X0,j(j!=0)的loss其实就是深度监督的做法,其实就在最后一个 X 0 , ? X^{0, ?} X0,?做loss也可以,深度监督可以说是一种小trick。
  • 文中对深度监督的描述:使用深度监督是为了可以让模型可以在两种方式下有选择的进行操作:(1)Accurate mode:做上述的所有分割分支做一个平均再得到最后输出结果(2)Fast mode:从其中的所有的分支输出选择一个作为输出。
  • Another:Deep supervised enables model pruning and improves or in the worst case achieves comparable performance to using only one loss layer.

result

1、几个数据集的信息
在这里插入图片描述

2、一些效果图

在这里插入图片描述

3、效果的对比,其中colon polyp(结肠息肉)是最难有好效果。而且表明对于不同的数据集,不同深度的网络对其能做到的程度时不一样的。再cell nuclei和colon polyp中加上了深度监督反而没有没有加深度监督的效果好,文中也给出了解释:This is because polyps and liver appear at varying scales in video frames and CT slices。
在这里插入图片描述


summary

找找图
有一个简单的思路。


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

相关文章

图像分割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)不管哪个深度的特征有效&#…

深度学习零基础学习之路——第四章 UNet-Family中Unet、Unet++和Unet3+的简介

Python深度学习入门 第一章 Python深度学习入门之环境软件配置 第二章 Python深度学习入门之数据处理Dataset的使用 第三章 数据可视化TensorBoard和TochVision的使用 第四章 UNet-Family中Unet、Unet和Unet3的简介 第五章 个人数据集的制作 Unet-Family的学习 Python深度学习…

憨批的语义分割重制版6——Pytorch 搭建自己的Unet语义分割平台

憨批的语义分割重制版6——Pytorch 搭建自己的Unet语义分割平台 注意事项学习前言什么是Unet模型代码下载Unet实现思路一、预测部分1、主干网络介绍2、加强特征提取结构3、利用特征获得预测结果 二、训练部分1、训练文件详解2、LOSS解析 训练自己的Unet模型一、数据集的准备二、…

UNet详解(附图文和代码实现)

卷积神经网络被大规模的应用在分类任务中,输出的结果是整个图像的类标签。但是UNet是像素级分类,输出的则是每个像素点的类别,且不同类别的像素会显示不同颜色,UNet常常用在生物医学图像上,而该任务中图片数据往往较少…

条纹进度条

最开始学习qml的时候,想实现一个条纹进度条,当时还不熟悉动画,做不出来,只做了个静止的。qml学习和使用了快1年之际,把这个遗憾弥补下。 先上效果图,颜色取自Bootflat。 以下是源码,先上Stripe…

数据批量插入与逐条插入分析

简述 今天抽空做了一下使用Jdbc对数据操作的实际性能。在平时开发过程中我们经常会使用Hibernate来操作数据库,所以我们很少会去使用批量插入数据。一般都是通过hibernate的insert、addSave等方法来一条条地插入数据。所以很少去考虑这个问题。下面是针对Jdbc进行的…

css滚动条

此部分针对webkit内核的浏览器,使用伪类来改变滚动条的默认样式,详情如下: 滚动条组成部分 1. ::-webkit-scrollbar 滚动条整体部分2. ::-webkit-scrollbar-thumb 滚动条里面的小方块,能向上向下移动(或向左向右移动…

计算机组成原理(五)-一条指令是怎么被执行的

什么是指令: 程序代码的本质就是一条一条的指令,我们需要通过编码的方式让CPU知道我们需要它干什么,最后由译码器翻译成一条条的机器指令。机器指令主要有两部分组成:操作码、地址码。地址码直接给出操作数和操作数的地址&#x…

CSS 斜条纹进度条动画

这是第一版进度条 ,用css写的.但是后续因为数据不同,要显示不同的颜色和数据,所以又改了一版,直接用的el-progress.自定义的样式.对于新手小白来说比较友好.先上这一版代码. <div class"state"><span>开机时间</span><!-- 进度条 --><div…

Acrobat DC 更改背景颜色会有一条条白色横纹

解决方法如下&#xff1a; 编辑->首选项->页面显示->取消 使用2D图形加速