UNet Pytorch实现

news2024/11/24 13:55:52

用于图像分割的不同种类的Unet模型的实现

  1. UNet - U-Net: 用于生物医学图像分割的卷积网络 https://arxiv.org/abs/1505.04597
  2. RCNN-UNet - 基于U-Net的递归残差卷积神经网络(R2U-Net)用于医学图像分割 https://arxiv.org/abs/1802.06955
  3. Attention Unet - Attention U-Net: 学习寻找胰腺的位置https://arxiv.org/abs/1804.03999
  4. RCNN-Attention Unet-Attention R2U-Net:只是整合了两个最近的先进工作(R2U-Net + Attention U-Net)。
  5. Nested UNet - UNet++: 用于医学图像分割的嵌套式U-Net架构https://arxiv.org/abs/1807.10165

带层可视化

开始

克隆仓库:

git clone https://github.com/bigmb/Unet-Segmentation-Pytorch-Nest-of-Unets.git

依赖

python>=3.6
torch>=0.4.0
torchvision
torchsummary
tensorboardx
natsort
numpy
pillow
scipy
scikit-image
sklearn

安装依赖代码:

pip install -r requirements.txt

修改文件

将你所有的文件夹添加到这一行 106-113

t_data = '' # 输入数据
l_data = '' # 输入标签
test_image = '' # 训练时要预测的图像
test_label = '' # 预测图像的标签
test_folderP = '' # 测试文件夹图像
test_folderL = '' # 用于计算得分的测试文件夹标签

Unet类型

Unet

在这里插入图片描述

RCNN Unet

在这里插入图片描述

Attention Unet

在这里插入图片描述

Attention-RCNN Unet

在这里插入图片描述

Nested Unet

在这里插入图片描述

可视化

要绘制损失,需要Visdom。代码已经写好了,只需取消必要的部分。梯度流也可以使用。摘自(https://discuss.pytorch.org/t/check-gradient-flow-in-network/15063/10)

创建一个模型文件夹,所有的数据都存储在里面。最后一层将被保存在模型文件夹中。如果需要任何特定的层,请在第361行中提到它。

层可视化

在这里插入图片描述

过滤器可视化

在这里插入图片描述

TensorboardX 仍然需要调整一些参数来获得可视化。在试图让pytorch 1.1.0直接与tensorboard一起工作时,已经把事情搞砸了(后来才知道目前除了线性图之外,它不支持任何东西)。
在这里插入图片描述

用于检查的输入图像可视化

a) Original Image

在这里插入图片描述

b) CenterCrop Image

在这里插入图片描述

结果

ADNI-LONI数据集的海马体分割的Dice系数

Dice Score(Dice系数)是一种常用于评估图像分割结果的指标,特别在医学图像分割任务中广泛应用。它衡量了分割结果和真实标签之间的相似度。
Dice Score基于集合论中的F1 Score(F1指标)进行计算,其计算方式如下:
Dice Score = (2 * Intersection) / (Prediction + Ground Truth)
其中,Intersection表示预测结果和真实标签的交集(两者同时被预测为正类的像素数量),Prediction表示预测结果中的正类像素数量,Ground Truth表示真实标签中的正类像素数量。
Dice Score的取值范围为0到1,其中0表示预测结果与真实标签完全不相符,1表示完全一致的预测结果。
Dice Score是一种广泛使用的评估指标,因为它对于不平衡类别的图像分割任务具有鲁棒性。在医学图像中,常常存在正类和负类像素数量差异很大的情况,Dice Score能够在这种情况下提供更准确的评估。
除了Dice Score,其他常见的图像分割评估指标还包括IoU(Intersection over Union)和精确率(Precision)、召回率(Recall)等,它们都可以用来衡量图像分割算法的性能。具体选择哪种指标应根据任务需求和具体情况来决定。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ROS学习总结(一)

渐渐开始接触项目了,准备把以前学习的ros做一些总结,以致孰能生巧。 ros分布框架学习 vscode使用ros节点和包 vscode使用 下载:https://code.visualstudio.com/ 安装:sudo dpkg -i code(tap补全) code 能快捷启动。 插件安装&am…

django.db.utils.OperationalError: no such table: onlyoffice_customuser

我写了个类 Curstomuser 重新运行命令: >python manage.py makemigrations就报错了: 我以为是自己设计的类有问题,结果发现是因为我在其它 py 文件中进行了数据库查询。 而 Django 架构让我忽略了代码运行的前后关系。。。 先注释掉其它…

【STM32】keil MDK-Arm 5.38 功能详解

一、基本概念二、软件安装三、软件介绍3.1 Intro3.2 keil菜单栏3.21 file选项3.22 Edit 选项3.23 View选项3.24 Project选项3.25 Flash选项3.26 Debug选项3.27 Peripherals选项3.28 Tools选项3.29 SVCS选项3.2.10 Window选项3.2.11 Help选项 3.3 keil工具栏 四、设置与项目设置…

七牛云下载文件(显示在浏览器上)

最近在做关于如何将七牛云的文件下载下来,且在浏览器页面展示下载文件。 首先,我们需要注册七牛云账号 七牛云官网。 选择个人账户即可,若是需要企业账户,则可以选择企业账户。 注册成功绑定邮箱后,我们可以创建存储…

NIO三大组件和ByteBuffer

目录 一、NIO三大组件 1、Channel 2、Buffer 3、Selector 二、ByteBuffer 1、基本使用 2、内部结构 3、常用方法 allocate方法 读取方法 字符串与ByteBuffer互转 Scattering Reads 4、念包、半包问题 三、文件编程 1、FileChannel 2、两个Channel传输数据 3、…

解决 pyecharts 地图不显示的问题

总结 在 pyecharts 中如果修改了 online host,会导致绘制的地图显示不全,需要将 host 改回默认的 https://assets.pyecharts.org/assets/ 细节 最近需要使用 pyecharts 绘制中国地图,按官网的示例代码https://github.com/pyecharts/pyecha…

LLM - ChatGLM-6B (General Language Model) 的工程配置

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://blog.csdn.net/caroline_wendy/article/details/131104546 Paper:GLM: General Language Model Pretraining with Autoregressive Blank Infilling ChatGLM是通用的预训练语…

Tower 10:Mac平台Git客户端软件

Tower是一款Mac OS X系统上的Git客户端软件,它提供了丰富的功能和工具,帮助用户更加方便地管理和使用Git版本控制系统。 以下是Tower的一些特点: 1. 界面友好:Tower的界面友好,使用户能够轻松地掌握软件的使用方法。 …

数据库表结构设计---多表

这里写目录标题 多表设计一对多简介物理外键需求分析sql语句添加物理外键idea图形化工具设置外键 一对一多对多二级目录二级目录 多表设计 一对多 简介 一个表的某个字段,对应一个表 父表 子表 物理外键 需求分析 sql语句添加物理外键 设置物理外键的sql语句 为…

【强化学习】常用算法之一 “SAC”

作者主页:爱笑的男孩。的博客_CSDN博客-深度学习,活动,python领域博主爱笑的男孩。擅长深度学习,活动,python,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?typeblog个…

Ameya360:广和通发布新一代5G FWA解决方案

为满足日益增长的5G宽带连接需求,提升FWA部署的经济效益和技术可行性,广和通在MWCS 2023期间发布了基于新一代5G模组FG190&FG180的5G FWA整体解决方案,为FWA等移动终端提供了灵活、便捷、高效、可靠的联网方案,促进FWA快速迭代…

SC2161旋变数字转换器可pin对pin兼容AD2S1210

SC2161 是一款 10 位至 16 位分辨率旋变数字转换器,集成片上可编程正弦波振荡器,为旋变器提供正弦波激励。可pin对pin兼容AD2S1210。 转换器的正弦和余弦输入端允许输入 3.15 Vp−p 27%、频率为 2 kHz 至 20 kHz 范围内的信号。Type II 伺服环路用于跟踪…

基于51单片机的智能照明系统

目录 基于51单片机的智能照明系统一、原理图二、部分代码三、视频演示 基于51单片机的智能照明系统 功能: 1.通过LCD屏幕显示实时时间、光强和物体等 2.通过DS1302获取实时时间 3.通过按键调整灯的开关时间和手自动设置手动模式下手动开灯 4.蜂鸣器报警功能 5.上位…

“因构建 而可见”,亚马逊云科技中国峰会助力企业数字化转型升级

过去十年,数字化转型的浪潮携带着机遇和挑战席卷而来,几乎每个企业都在做数字化转型,开始向大数据、人工智能等新技术寻求生产力的突破。但随着数字化转型深入,很多企业开始感受到数字化投入的成本压力,加之新技术正带…

ML算法——Support Vector Machine随笔【机器学习】

文章目录 4、Support Vector Machine (SVM)4.1、理论部分4.1.1、更优的决策边界4.1.2、解决低维不可分问题 4.2、sklearn 实现4.2.1、SVM 分类(SVC)4.2.2、SVM回归(SVR)4.2.3、网格调参 4.3、案例 4、Support Vector Machine (SVM…

用Java编写Groovy脚本,然后用命令行执行该脚本

1、Groovy 语言简介 Groovy 是 Apache 旗下的一门基于 JVM 平台的动态/敏捷编程语言Groovy 可以与 Java 语言无缝对接,在写 Groovy 的时候如果忘记了语法可以直接按Java的语法继续写,也可以在 Java 中调用 Groovy 脚本,都可以很好的工作Groo…

Pytorch常用的函数(三)深度学习中常见的卷积操作详细总结

Pytorch常用的函数(三)深度学习中常见的卷积操作 1、标准卷积(Standard Convolution) 1.1 标准卷积的理解 我们直接来看二维卷积,这在实际应用中是最常见的。 上图中Conv 2D其实就是卷积核,也叫做滤波器。滤波器的值决定了输出的情况,模型…

【Java】Java核心 86:Git 教程(9)GIT远程仓库操作

文章目录 14.GIT远程仓库操作-关联、拉取、推送、克隆目标内容小结 Git提供了一系列命令来进行远程仓库的操作。 下面是一些常用的Git远程仓库操作&#xff1a; 克隆远程仓库到本地&#xff1a; git clone <远程仓库URL>查看远程仓库信息&#xff1a; git remote -v添…

功能键F4在Microsoft Excel中有什么用

的确,许多 Excel 用户发现使用键盘快捷键对他们来说更有效。事实上,键盘快捷键可能是使用鼠标的最佳选择,因为使用 Excel 时使用触摸屏可能不是视力障碍者的最佳选择。 使用功能键,如 Excel 中的 F4 以及 F2 可能是非常必要的。在这篇文章中,我们将研究功能键 F4 及其在 …

【Java】Java核心 85:Git 教程(8)GIT远程仓库介绍与码云仓库注册创建

文章目录 13.GIT远程仓库介绍与码云仓库注册创建目标小结 Git是一个分布式版本控制系统&#xff0c;它允许多个开发者协同工作并管理代码的版本。远程仓库是存放在网络上的Git仓库&#xff0c;可以用于团队成员之间的代码共享和协作。 常见的远程仓库托管服务提供商有GitHub、…