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

article/2025/8/24 4:51:44

1、FCN

https://blog.csdn.net/bestrivern/article/details/89523329

《Fully Convolutional Networks for Semantic Segmentation》https://arxiv.org/abs/1411.4038
FCN是不含全连接层的全卷积网络,对图像进行像素级的分类,解决了图像的语义分割问题,可以接受任意尺寸的图像大小,采用反卷积对最后一个特征图(feature map)进行处理,使其恢复到输入图像的尺寸,对每个像素产生一个预测, 同时保留了原始输入图像中的空间信息, 最后在上采样的特征图上进行逐像素分类。(反卷积和卷积类似,都是相乘相加的运算。只不过后者是多对一,前者是一对多),最后逐个像素计算softmax分类的损失, 相当于每一个像素对应一个训练样本。下图是Longjon用于语义分割所采用的全卷积网络(FCN)的结构示意图:
在这里插入图片描述在这里插入图片描述
在这里插入图片描述跳级(strip)结构:对第5层的输出执行32倍的反卷积得到原图,得到的结果不是很精确,论文中同时执行了第4层和第3层输出的反卷积操作(分别需要16倍和8倍的上采样),再把这3个反卷积的结果图像融合,提升了结果的精确度。

FCN有几个版本,FCN-32s、FCN-16s、FCN-8s,分别对应反卷积的步长stride。FCN32s在第五个下采样之后直接经过一个反卷积上采样为输入图像大小。FCN16s做了两次反卷积,把第四个下采样的结果也做一次反卷积融合起来,第二次反卷积的步长为16。FCN8s做了三次反卷积,进一步融合了第三个下采样的预测结果,第三次反卷积的步长为8,而FCN8s效果最好,说明了较浅层的预测结果包含更多细节特征。在这里插入图片描述

2、Unet

https://zhuanlan.zhihu.com/p/79204199

《U-Net: Convolutional Networks for Biomedical Image Segmentation》
https://arxiv.org/pdf/1505.04597.pdf
Unet的结构是先编码(下采用)再解码(上采样)的U形结构,保持输入和输出大小一样。在FCN中,Skip connection的联合是通过对应像素的求和,而U-Net则是对其的channel的concat过程。在这里插入图片描述

3、Unet++

UNet++: A Nested U-Net Architecture for Medical Image Segmentation
https://arxiv.org/pdf/1807.10165.pdf
Unet++借鉴了DenceNet的密集连接,对Unet改进的点主要是skip connection,下图所示,其中黑色部分代表的就是原始Unet结构,绿色代表添加的卷积层,蓝色代表改进的skip connection,每一个水平层就是非常标准的DenseNet的结构。
在这里插入图片描述
还引入了deep supervision深度监督的思路。网络的loss函数是由不同层得到的分割图的loss的平均,每层的loss函数为DICE LOSS和Binary cross-entropy LOSS之和,引入DSN(deep supervision net)后,通过model pruning(模型剪枝)能够实现模型的两种模式:高精度模式和高速模式。

4、SegNet

《A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation》 https://arxiv.org/abs/1511.00561
Segnet和Unet有点像,它采用的是编码-解码的结构,这样的对称结构有种自编码器的感觉在里面,先编码再解码。这样的结构主要使用了反卷积和上池化。解码器通过池化索引来实现非线性的上采样,这个池化索引是由与解码器相对应的编码器进行最大池化操作计算得到的。
在这里插入图片描述在SegNet中的Pooling比其他Pooling多了一个Pooling Index功能,也就是每次Pooling,都会保存通过max选出的权值在2x2 filter中的相对位置。Upsamping就是Pooling的逆过程(index在Upsampling过程中发挥作用),Upsamping使得图片变大2倍。我们清楚的知道Pooling之后,每个filter会丢失了3个权重,这些权重是无法复原的,但是在Upsamping层中可以得到在Pooling中相对Pooling filter的位置。SegNet在Unpooling时用index信息,直接将数据放回对应位置,后面再接Conv训练学习。

5、RefineNet

《Multi-Path Refinement Networks for High-Resolution Semantic Segmentation》https://arxiv.org/abs/1611.06612
U-Net在上采样后直接和encoder的feature map进行级联,而RefineNet模型通过ResNet进行下采样,之后经过4个RefineNet module进行上采样,得到原来大小的特征图。把encoder产生的feature和上一阶段decoder的输出同时作为RefineNet module的输入,在RefineNet module中进行一系列卷积,融合,池化,使得多尺度特征的融合更加深入。
另一创新点就是RefineNet模块中的链式残余池化,使用不同尺寸的窗口池化,并且使用残余连接和可学习的权重把他们融合起来。
在这里插入图片描述下图是单独一个refineNet的结构
在这里插入图片描述每个RefineNet module包含4个部分
1-Residual convolution unit :对ResNet block进行2层的卷积操作。注意这里有多个ResNet block作为输入。
2-Multi-resolution fusion:将1中得到的feature map进行加和融合。
3-Chained residual pooling :该模块用于从一个大图像区域中捕捉背景上下文。注意:pooling的stride为1。
4-Output convolutions:1个RCUs构成。
RefineNet还有一些变体,分别为仅使用1个RefineNet模块,2个RefineNet模块级联,4个RefineNet模块级联且使用两种尺度输入。
在这里插入图片描述给大家一个多个分割网络的pytorch实现,如:Deeplabv3, Deeplabv3_plus, PSPNet, UNet, UNet_AutoEncoder, UNet_nested, R2AttUNet, AttentionUNet, RecurrentUNet, SEGNet, CENet, DsenseASPP, RefineNet, RDFNet。链接:

https://github.com/Minerva-J/Pytorch-Segmentation-multi-models


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

相关文章

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

深度学习零基础学习之路——第四章 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…