【深度学习】Unet的基础介绍

U-Net是一种用于图像分割的深度学习模型,特别适合医学影像和其他需要分割细节的任务。如图:
在这里插入图片描述

Unet论文原文

为什么叫U-Net?

U-Net的结构像字母“U”,所以得名。它的结构由两个主要部分组成:

下采样(编码器):图像逐渐被缩小并且提取特征。
上采样(解码器):逐渐恢复图像的尺寸,并通过“跳跃连接”将高分辨率的特征与低分辨率的特征结合,以保持细节。

网络结构

U-Net通常包括以下几部分:

(1)下采样(编码器)
这一部分通过卷积操作逐步降低图像的分辨率,同时提取越来越抽象的特征。每个卷积层后面跟着一个池化层(比如最大池化),池化层会减少图像的尺寸,帮助网络捕捉全局信息。
(2)瓶颈层
当图像经过几次下采样后,网络会到达最小尺寸的图像,这一部分的特征信息会被压缩成最具代表性的特征。
(3)上采样(解码器)
上采样过程会将图像逐渐恢复到原始大小,通过转置卷积(反卷积)或者插值操作来扩大图像的尺寸。
(4)跳跃连接
这里的“跳跃连接”是U-Net的一大特点。在上采样阶段,网络会将下采样阶段的特征图直接传递到解码器中,这样可以帮助网络更好地恢复图像的细节,防止图像中的细微特征丢失。

Unet的特点

  1. UNet也是一个编解码模型,它将各级分辨率的卷积特征图和反卷积特征图进行了融合。
  2. Unet输入和输出大小是同样的维度。
  3. 如图在这里插入图片描述
    网络的右侧虚线框部分叫作扩展路径(expansive path)。
    它同样由4个网络块组成,每个网络块开始之前通过反卷积将特征图的尺寸乘2,同时将其通道数减半(最后一层略有不同)​,然后和左侧对称的压缩路径的特征图合并。由于左侧压缩路径和右侧扩展路径的特征图的尺寸不一样,U-Net是通过将压缩路径的特征图裁剪到和扩展路径的特征图相同尺寸进行归一化的。
    扩展路径的卷积操作依旧使用的是有效卷积操作,最终得到的特征图的尺寸是388×388。由于该任务是一个二分类任务,因此网络有两个输出特征图。

在U-Net的网络结构中通过裁剪的方式将左侧的特征图调整到和右侧特征图相同的大小(图左侧部分中的虚线部分)

U-Net论文中没有全连接层(Linear层),且全程使用valid来进行卷积,这样可以保证分割的结果都是基于没有缺失的上下文特征得到的,因此输入输出的图像尺寸不一样。

需要注意的是,论文中的输入图像的尺寸为 572 像素×572 像素,而输出图像的尺寸是388 像素×388像素大小,输入与输出并不一致;整个网络在很多情况下,输出比输入宽高减少了 2,这主要是因为卷积层采用了“valid”的边缘填充(padding)方式,其中 stride=1,因此,输出的特征图会逐渐减小。

评价指标

Dice Loss是由Dice系数而得名的,Dice系数是一种用于评估两个样本相似性的度量函数,其值越大意味着这两个样本越相似,Dice系数的数学表达式如下:
在这里插入图片描述
式中,X表示真实分割图像的像素标签,Y表示模型预测分割图像的像素类别,|X∩Y|为预测图像的像素与真实标签图像的像素之间的点乘,并将点乘结果相加,|X|和|Y|分别为它们各自对应图像中的像素相加。

代码举例

class UNet(nn.Module):
    def __init__(self, in_channels, num_classes):
        super(UNet, self).__init__()
        self.inc = InConv(in_channels, 64)
        self.down1 = downsample_block(64, 128)
        self.down2 = downsample_block(128, 256)
        self.down3 = downsample_block(256, 512)
        self.down4 = downsample_block(512, 512)
        self.up1 = upsample_block(1024, 256)
        self.up2 = upsample_block(512, 128)
        self.up3 = upsample_block(256, 64)
        self.up4 = upsample_block(128, 64)
        self.outc = OutConv(64, num_classes)
    def forward(self, x):
        x1 = self.inc(x)
        x2 = self.down1(x1)
        x3 = self.down2(x2)
        x4 = self.down3(x3)
        x5 = self.down4(x4)
        x = self.up1(x5, x4)
        x = self.up2(x, x3)
        x = self.up3(x, x2)
        x = self.up4(x, x1)
        x = self.outc(x)
        return x

in_channels 是输入图像的通道数,num_classes 是输出类别数(通常为1)

U-Net的前向传播过程
编码器路径:
输入图像首先通过 InConv 模块,生成64通道的特征图 x1
然后依次通过四个下采样模块 down1、down2、down3、down4,分别生成128、256、512、512通道的特征图 x2、x3、x4、x5。

解码器路径:
解码器路径从 x5 开始,通过 up1 模块与 x4 进行拼接,生成256通道的特征图。

然后依次通过 up2、up3、up4 模块,分别与 x3、x2、x1 进行拼接,生成128、64、64通道的特征图。

最后通过 OutConv 模块生成最终的分割结果。

其中,函数定义如下:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/975500.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

医疗AI领域中GPU集群训练的关键技术与实践经验探究(上)

医疗AI领域中GPU集群训练的关键技术与实践经验探究(上) 一、引言 1.1 研究背景与意义 在科技飞速发展的当下,医疗 AI 作为人工智能技术与医疗领域深度融合的产物,正引领着医疗行业的深刻变革。近年来,医疗 AI 在疾病诊断、药物研发、健康管理等诸多方面取得了显著进展,…

使用matplotlib绘制柱状图并在下面使用表格显示数值

使用matplotlib绘制柱状图并在下面使用表格显示数值 1、效果 2、流程 1、数据准备 2. 创建可视化布局 3.、绘制柱状图 4、创建表格 5、设置字体大小、标题、图例 6、显示图表3、代码 import matplotlib.pyplot as plt from matplotlib.gridspec import GridSpec import nump…

Windows11安装GPU版本Pytorch2.6教程

1: 准备工作 针对已经安装好的Windows11系统,先检查Nvidia驱动和使用的CUDA版本情况。先打开Windows PowerShell,通过nvidia-smi命令查看GPU的情况,结果如下图1所示,从结果中可知使用的CUDA版本为12.8。 图1:检测安装…

《Spring实战》(第6版) 第3章 使用数据

第3章 使用数据 使用Spring的JdbcTemplate;创建Spring Data JDBC存储库;使用Spring Data声明JPA存储库; 本章对Taco Cloud应用添加对数据库持久化的支持,关注JDBC和JPA。 3.1 使用JDBC读取和写入数据 Spring对JDBC的支持要归功…

设计模式 - Singleton pattern 单例模式

文章目录 定义单例模式的实现构成构成UML图 单例模式的六种实现懒汉式-线程不安全懒汉式-线程安全饿汉式-线程安全双重校验锁-线程安全静态内部类实现枚举实现 总结其他设计模式文章:最后 定义 单例模式是一种创建型设计模式,它用来保证一个类只有一个实…

出行项目案例

spark和kafka主要通过Scala实现,Hadoop和HBase主要基于java实现。 通过该项目,主要达到以下目的: (1)通用的数据处理流程,入门大数据领域 (2)真实体验大数据开发工程师的工作 &a…

从零开始制作一个漂亮的悬浮按钮

0.1血版 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </head> &l…

安全面试2

文章目录 简单描述一下什么是水平越权&#xff0c;什么是垂直越权&#xff0c;我要发现这两类漏洞&#xff0c;那我代码审计要注意什么地方水平越权&#xff1a;垂直越权&#xff1a;水平越权漏洞的审计重点垂直越权漏洞的审计重点 解释一下ssrf漏洞原理攻击场景修复方法 横向移…

数字电子技术基础(二十一)——双极型三极管的开关特性

目录 1 半导体三极管的开关特性 1.1 双极性三极管的开关特性 1.2 双极型三极管的基本开关电路 1.3 三极管的开关等效电路 1.4 双极型三极管的动态开关特性 TTL门电路是一种基于双极型晶体管的数字逻辑电路&#xff0c;在20世纪60年代到80年代之间&#xff0c;TTL门电路是应…

足疗店会员管理系统,足疗养生全方位会员管理解决方案,佳易王试用版养生会所足疗店推拿按摩会员管理系统操作教程

一、概述 本实例以佳易王试用版养生会所足疗店推拿按摩会员管理系统17.1版本为例说明&#xff0c;其他版本可参考本实例。试用版软件资源可到文章最后了解&#xff0c;下载的文件为压缩包文件&#xff0c;请使用免费版的解压工具解压即可试用。 软件特点&#xff1a; 1、功能…

【HarmonyOS Next】拒绝权限二次申请授权处理

【HarmonyOS Next】拒绝权限二次申请授权处理 一、问题背景&#xff1a; 在鸿蒙系统中&#xff0c;对于用户权限的申请&#xff0c;会有三种用户选择方式&#xff1a; 1.单次使用允许 2.使用应用期间&#xff08;长时&#xff09;允许 3.不允许 当用户选择不允许后&#xff0…

论文笔记(七十二)Reward Centering(四)

Reward Centering&#xff08;四&#xff09; 文章概括摘要附录A 伪代码 文章概括 引用&#xff1a; article{naik2024reward,title{Reward Centering},author{Naik, Abhishek and Wan, Yi and Tomar, Manan and Sutton, Richard S},journal{arXiv preprint arXiv:2405.09999…

数据结构之二叉树的定义及实现

1. 树的概念 主要的定义&#xff1a; 节点的度&#xff1a;一个节点含有的子树的个数称为该节点的度&#xff1b;如上图&#xff1a;A的为6 叶节点或终端节点&#xff1a;度为0的节点称为叶节点&#xff1b;如上图&#xff1a;B&#xff0c;C&#xff0c;H&#xff0c;I等节点…

Deepseek 与 ChatGPT:AI 浪潮中的双子星较量

引言 在人工智能飞速发展的当下&#xff0c;AI 语言模型成为了人们关注的焦点。Deepseek 与 ChatGPT 作为其中的佼佼者&#xff0c;各自展现出独特的魅力&#xff0c;引领着 AI 技术的发展潮流。今天&#xff0c;就让我们深入探讨这两款模型&#xff0c;看看它们在 AI 领域中是…

网络运维学习笔记 019 HCIA-Datacom综合实验03

文章目录 综合实验3实验需求一&#xff1a;A公司网络规划二&#xff1a;B公司网络规划 配置一、ip、vlan、vlanif&#xff0c;stp、eth-trunkSW1SW2SW3R1 二、ospfSW1R1 三、NATR1ISP 四、拒绝ping允许httpSW1 五、右半部分vlan、dhcp、ospf、NATSW4R2 综合实验3 实验需求 一&…

【时时三省】(C语言基础)结构化程序设计方法

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ----CSDN 时时三省 结构化程序设计方法 结构化程序设计强调程序设计风格和程序结构的规范化&#xff0c;提倡清晰的结构。怎样才能得到一个结构化的程序呢?如果面临一个复杂的问题&#xff0c;是难以一下子写…

“国补”带火手机换新,出售旧手机应如何保护个人信息安全

在“国补”政策的推动下,手机换新热潮正席卷而来。“国补”以其诱人的补贴力度,成功激发了消费者更换手机的热情。无论是渴望体验最新技术的科技爱好者,还是对旧手机性能不满的普通用户,都纷纷投身到这场手机换新的浪潮之中。 随着大量消费者参与手机换新,二手手机市场迎来…

Flash-01

1-初始登录页面 2-【文件】-【新建】 3-【ActionScript3.0】 4-常用功能介绍【关闭/开启】 4-1-【关闭开始页】 勾选【不再提示】 4-2-【开启开始页】 【编辑】-【首选参数】-【常规】-【重置所有警告对话框】 5-恢复初始页面 【窗口】-【工作区】-【重置】 6-常用快捷键 …

Golang | 每日一练 (3)

&#x1f4a2;欢迎来到张胤尘的技术站 &#x1f4a5;技术如江河&#xff0c;汇聚众志成。代码似星辰&#xff0c;照亮行征程。开源精神长&#xff0c;传承永不忘。携手共前行&#xff0c;未来更辉煌&#x1f4a5; 文章目录 Golang | 每日一练 (3)题目参考答案map 实现原理hmapb…

DeepSeek掘金——基于DeepSeek-R1构建文档问答机器人

DeepSeek掘金——基于DeepSeek-R1构建文档问答机器人 在这个项目中,我们将结合本地 AI 的隐私与 Deepseek R1 的智能,创建一个完全本地化、推理驱动的问答机器人。 在人工智能 (AI) 日益融入我们日常生活的时代,一个问题仍然处于最前沿:隐私。尽管基于云的 AI 系统功能强大…