【图像分割】【深度学习】Windows10下UNet代码Pytorch实现与源码讲解

【图像分割】【深度学习】Windows10下UNet代码Pytorch实现与源码讲解

提示:最近开始在【医学图像分割】方面进行研究,记录相关知识点,分享学习中遇到的问题已经解决的方法。


文章目录


前言

UNet是由德国弗赖堡大学的Olaf Ronneberger等人在《U-Net: Convolutional Networks for Biomedical Image Segmentation【MICCAI-2015】》【论文地址】一文中提出的U型编码和解码模型,即一个用于捕获上下文的收缩路径(编码器,下采样)和一个支持精确定位的对称扩展路径(解码器,上采样),并通过跳跃连接操作更好的融合浅层的位置信息和深层的语义信息。

在详细解析PFNet网络之前,首要任务是搭建UNet【Pytorch-demo地址】所需的运行环境,并完成模型训练和测试工作,展开后续工作才有意义。

数据预处理模块解析


UNet模型运行环境搭建

  • 查看主机支持的cuda版本(最高)

    bash 复制代码
    # 打开cmd,执行下面的指令查看CUDA版本号
    nvidia-smi
  • 安装GPU版本的torch【官网

    博主的cuda版本是12.2,但这里cuda版本最高也是12.1,博主选的11.8也没问题。

    其他cuda版本的torch在【以前版本】找对应的安装命令。

  • 博主安装环境参考

    bash 复制代码
    # 创建虚拟环境
    conda create -n UNet python=3.9
    # 查看新环境是否安装成功
    conda env list
    # 激活环境
    activate UNet
    # 分别安装pytorch和torchvision
    pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
    # 查看所有安装的包
    pip list
    conda list

UNet模型运行

数据集与模型权重下载

名称 下载地址 说明
DRIVE数据集 官网】【百度网盘:8no8】 用于眼科图像处理研究的公共数据集,用于血管分割任务
模型权重 百度网盘: p50a 使用U-Net在DRIVE数据集上训练得到的权重,仅供测试使用

将下载好的训练集解压并拷贝到当前工程目录下(建议)

将下载好的预训练权重(训练好的)best_model.pth拷贝到save_weights目录下(建议)。

PFNet训练与测试

  1. 训练:可以直接运行train.py,也可以根据硬件条件修改代码中部分训练参数epochs和batch-size修改训练次数和训练的batchsize等,详细的代码内容将在后续博文中介绍。

    正在训练,训练权重保存在save_weights目录下:

  2. 测试:可以直接运行predict.py,也可以根据任务需求修改代码中部分变量img_path和roi_mask_path等,选择测试的图片。

    对于DRIVE数据集img_path和roi_mask_path必须同时给定且一一对应,其他数据集以及个人数据集的训练和测试,博主会在后续的内容中给出修改后的代码。

    测试结果保存为当前工程目录下的test_result.png,可以对比查看效果:


总结

尽可能简单、详细的介绍了UNet的安装流程以及UNet的使用方法。后续会根据自己学到的知识结合个人理解讲解UNet的原理和代码。

相关推荐
刘大大Leo4 分钟前
GPT-5.3-Codex 炸了:第一个「自己造自己」的 AI 编程模型,到底意味着什么?
人工智能·gpt
小镇敲码人7 分钟前
剖析CANN框架中Samples仓库:从示例到实战的AI开发指南
c++·人工智能·python·华为·acl·cann
摘星编程14 分钟前
CANN ops-nn Pooling算子解读:CNN模型下采样与特征提取的核心
人工智能·神经网络·cnn
程序员清洒29 分钟前
CANN模型安全:从对抗防御到隐私保护的全栈安全实战
人工智能·深度学习·安全
island131433 分钟前
CANN ops-nn 算子库深度解析:神经网络计算引擎的底层架构、硬件映射与融合优化机制
人工智能·神经网络·架构
小白|36 分钟前
CANN与实时音视频AI:构建低延迟智能通信系统的全栈实践
人工智能·实时音视频
Kiyra37 分钟前
作为后端开发你不得不知的 AI 知识——Prompt(提示词)
人工智能·prompt
艾莉丝努力练剑40 分钟前
实时视频流处理:利用ops-cv构建高性能CV应用
人工智能·cann
程序猿追40 分钟前
深度解析CANN ops-nn仓库 神经网络算子的性能优化与实践
人工智能·神经网络·性能优化
User_芊芊君子43 分钟前
CANN_PTO_ISA虚拟指令集全解析打造跨平台高性能计算的抽象层
人工智能·深度学习·神经网络