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

news/2024/11/19 0:29:10/

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

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


文章目录

  • 【图像分割】【深度学习】Windows10下PFNet官方代码Pytorch实现与源码讲解
  • 前言
  • PFNet模型运行环境安装
  • PFNet的使用
    • 数据集与模型权重下载
    • PFNet训练与测试
  • 总结


前言

PFNet是由大连理工大学的Haiyang Mei等人在《Camouflaged Object Segmentation with Distraction Mining【CVPR-2021】》【论文地址】一文中提出的模型,它模仿了自然界的捕食过程,PFNet包含两个关键模块,即定位模块(PM)和聚焦模块(FM)。PM旨在模仿捕食中的检测过程,从全局角度定位潜在的目标对象,然后使用FM执行捕食中的识别过程,通过关注模糊区域来逐步细化粗略预测。
在详细解析PFNet网络之前,首要任务是搭建PFNet【Pytorch-demo地址】所需的运行环境,并完成模型训练和测试工作,展开后续工作才有意义。


PFNet模型运行环境安装

代码运行这里提了要求,pytorch大于等于1.0.0,torchvision大于等于0.2.1,CUDA大于等于10.0,cudnn大于等于7.2。

  • 查看主机支持的cuda版本(最高)
    # 打开cmd,执行下面的指令查看CUDA版本号
    nvidia-smi
    
  • 安装GPU版本的torch【官网】
    博主的cuda版本是12.2,但这里cuda版本最高也是12.1,博主选的11.8也没问题。
    其他cuda版本的torch在【以前版本】找对应的安装命令。
  • 博主安装环境参考
    # 创建虚拟环境
    conda create -n PFNet python=3.9
    # 查看新环境是否安装成功
    conda env list
    # 激活环境
    conda activate PFNet 
    # 下载githup源代码到合适文件夹,并cd到代码文件夹内
    git clone https://github.com/Mhaiyang/CVPR2021_PFNet.git
    # 分别安装pytorch和torchvision
    pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
    # 查看所有安装的包
    pip list
    conda list
    

PFNet的使用

数据集与模型权重下载

名称下载地址说明
训练集【谷歌云盘】【百度网盘:djq2】CAMO和COD10K的训练集作为训练集
测试集【谷歌云盘】【百度网盘:z83z】CHAMELEON全部数据集、CAMO的测试集和COD10K的测试集作为测试集
resnet50-19c8e357.pth下载地址预训练权重,用于训练前为自己模型初始化
PFNet.pth谷歌云盘源码作者提供的训练好的网络权重,可以直接用于测试

下载完成后,需要按照一定的目录结构放置数据集和模型权重,查看config.py文件。

import os
# 预训练权重
backbone_path = './backbone/resnet/resnet50-19c8e357.pth'
# 数据集放置目录
datasets_root = './data'
# 训练集目录结构
cod_training_root = os.path.join(datasets_root, 'train')
# 测试集目录结构
chameleon_path = os.path.join(datasets_root, 'test/CHAMELEON')
camo_path = os.path.join(datasets_root, 'test/CAMO')
cod10k_path = os.path.join(datasets_root, 'test/COD10K')
# 没有这个数据集
# nc4k_path = os.path.join(datasets_root, 'test/NC4K')

将下载好的训练集解压并拷贝到data/train目录下,并分别将Imgs和GT重命名为Image和mask。

将下载好的测试集解压并拷贝到data/test/xxx(数据名)目录下,并分别将Imgs重命名为Image,GT并不是必选项目,只是为了方便对比。

将下载好的预训练权重resnet50-19c8e357.pth拷贝到backbone/resnet目录下,将训练好的权重PFNet.pth拷贝到infer.py的同级目录下。

PFNet训练与测试

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

    正在训练,训练权重保存在ckpt/PFNet目录下:
  2. 测试:可以直接运行infer.py,也可以根据任务需求修改代码中部分测试参数OrderedDict的内容,选择性测试想要的数据集,而不是测试所有数据集。

    测试结果保存到results/PFNet/xxx(对应数据集)下,可以对比查看效果:

总结

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


http://www.ppmy.cn/news/1186361.html

相关文章

Spring Security授权架构介绍

授权架构重点在于从 Authentication 中获得该认证所具有的权限 GrantedAuthority,以及对请求或路径设置访问所需权限。 GrantedAuthority 在之前的Spring Security:认证架构中,我们已经介绍了在 Authentication 中存储 GrantedAuthority 的…

复习Animate和木疙瘩学习笔记-动画制作的回家之路

这个融媒体H5制作平台功能比较完善:包含了Flash(现在叫Animate)传统H5网页制作 720全景视频制作发布网页! 主要功能:素材导入、2D动画制作、常见交互添加、发布生成链接二维码 基本就是一个制作H5为主,但是里面的动画可以依赖4种…

ubuntu配置 Conda 更改默认环境路径

我的需求是以后凡是新建一个虚拟环境都需要安装在一个挂载了大容量的分区/data里面 /home里面的是即将爆满但是还能塞点东西的硬盘. 如果您想要永久更改 Conda 的默认环境路径,可以编辑 Conda 的配置文件。首先,找到 Conda 的配置文件通常是 .condarc 文…

windows应用软件扫描报告 不告谱 要钱

chatGPT开路,帮找。 当你想要查找Windows软件的漏洞而不涉及查看源代码时,你可以使用一些专门设计用于扫描漏洞的工具。这些工具通常会检查已安装的软件和操作系统的漏洞,并提供建议或修补程序。以下是一些可以用于查找Windows软件漏洞的工具…

逻辑斯蒂回归

逻辑斯蒂回归 使用回归可以进行分类,,需要使用sigmod函数,将实数压缩到0-1之间的一个数,表示类别的概率,不像归一化函数会出现0或者1的数 逻辑回归就是线性回归进行sigmod函数处理,将预测结果变成0-1的数&…

数据结构之顺序表详解

hello,大家好,今天的内容是关于顺序表的,其实之前也发过文章,但是那个时候水平还是差了一点,有些地方不是很详细,这次会把每个点都讲清楚,也当给自己在复习一遍。 顺序表在本质上就是数组&#…

实习日常的点点滴滴记录(代码冲突问题)------慢慢积累,厚积薄发(要学的东西还好多,加油!))(知识和实践的结合)

Git代码冲突解决: 1、为什么会产生代码冲突? 远程仓库的某个文件内容发生了修改,而本地没有及时进行pull拉取,那么就会导致本地的分支落后。当修改完本地代码再push到远程的时候,就会产生代码冲突。 2、如何避免产生代…

并行和并发有什么区别?

并行和并发 并行和并发最早其实描述的是 Java 并发编程里面的概念。他们强调的是 CPU 处理任务的能力。简单来说: 并发,就是同一个时刻,CPU 能够处理的任务数量,并且对于应用程序来说,不会出现卡顿现象。并行&#x…