UNet Pytorch实现

news/2024/10/18 3:28:56/

用于图像分割的不同种类的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.ppmy.cn/news/653146.html

相关文章

将当前conda环境导出为yaml文件

conda环境的转移和复制 conda导出已有环境,环境会被保存在environment.yaml文件中。 conda env export > environment.yaml 当我们想再次创建该环境,或根据别人提供的.yaml文件复现环境时,就可以通过下面的命令来复现安装环境了。 conda …

用Docker部署Nginx

部署步骤: 1.拉取镜像 docker pull nginx 2.创建并进入容器 docker run -d --name nginx01 -p 3344:80 nginx #注意nginx01是起的名字,3344是公网访问的端口,80是Nginx的默认端口 3.启动Nginx curl localhost:3344 4.在我的windows系统访…

如何获取对方精确位置

1.使用qq和对方视频,通过whireshark软件抓包,分析是可以得出对方IP地址的。 2.或者通过给对方发送一个网页跳转的功能,获取对方IP地址。 3.获取对方IP地址后,定位对方IP step1:打开www.ipplus360.com step2:输入IP地址。获取到…

python查询手机号

通过阿里云API查询手机号信息 import reimport requests# 通过淘宝接口查询手机号号码学习 def find_phone_info_by_tao_bao(mobile):try:url " http://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel%s" % mobiler requests.get(url)r.raise_for_status()r…

QQ查询信息php,查询QQ信息

# :-: 介绍 * 目前只能查询的有:QQ昵称、QQ头像、QQ邮箱。 * 接口有时会不稳定,但一旦出现问题,我们技术人员会第一时间进行维修! # :-: 代码说明 * 本接口采用GET和POST方式提交,JSON返回方式返回信息。 * 提交地址:`https://api.berfen.com/api/qqcx.php` ## :-: 在线测…

Java项目开发心得(一):利用Java技术实现查询手机号码归属地

鉴于最近项目涉及到查询归属地的问题,今天在此做一下技术分享,如果有更好的建议,还请读者大神指出。 回归正题,关于手机号码归属地,想要查询的无非是运行商、省份、市之类的信息,那么就会涉及到Http请求以及…

怎样知道android的手机号码,如何查询自己的手机号码?看完这三种方法,再也不用担心了...

原标题:如何查询自己的手机号码?看完这三种方法,再也不用担心了 导语:现在智能手机如此盛行的时代,相信很多人有不止一部手机,这样就会出现自己的手机号码记不住的情况,身边经常有朋友遇到过自己…