[超分辨率重建]ESRGAN算法训练自己的数据集过程

news2025/1/13 4:49:15

一、下载数据集及项目包

1. 数据集

1.1 文件夹框架的介绍,如下图所示:主要有train和val,分别有高清(HR)和低清(LR)的图像。

1.2 原图先通过分割尺寸的脚本先将数据集图片处理成两个相同的图像组(HR和LR)。

如训练x4的ESRGAN模型,那么我们需要将HR的图像尺寸与LR的图像尺寸比例是4:1。在我的训练中,我将HR的图像尺寸分割成了480x480,LR的图像分割成了120x120。如下图所示。

随后将分割好的图像按照train和val的分类,分成如1.1图中的文件结构。

2.  项目包

在我的下载资源中有SR项目包的下载,后续上链接。也可以在我上传的资源中下载。

二、训练ESRGAN

ESRGAN模型包括生成模型的训练和判别模型的训练。

2.1 配置RRDBNet_train.py(生成模型)的参数及训练

2.1.1 训练的图像路径设置:dataroot_gt为HR图像的路径、dataroot_lq为LR图像的路径。

2.1.2 batch_size_per_gpu为batchsize的设置,根据显存大小相应设置,显存越大可以设置的值越大,但是训练时间也会增大。

2.1.3 val的数据集路径设置,dataroot_gt为HR的图像路径、dataroot_lq为LR图像的路径。

2.1.4 训练迭代次数的设置,可以设置到10万或者更大

2.1.5 训练结果指标的计算psnr和ssim。val_freq参数为保存结果的频率。下图中我的设置为1e3即1000轮保存一次。

2.1.6 保存训练权重的频率设置。下图中我的设置为1e3,即为1000次保存一次训练权重。

2.1.7 RRDBNet_train.py的训练
python basicsr/train.py -opt options\train\ESRGAN\train_RRDBNet_PSNR_x4.yml

2.2 配置ESRGAN_train.py(判别模型)的参数及训练

2.2.1 ESRGAN_train.py的参数设置

ESRGAN_train.py的参数设置与RRDBNet_train.py相同,但是多了一个pretrain_network_g参数的设置,即填RRDBNet_train.py训练完以后最好的那次权重路径。

2.2.2 ESRGAN_train.py的训练
python basicsr/train.py -opt options\train\ESRGAN\train_RRDBNet_PSNR_x4.yml

三、测试

3.1 测试图片路径的设置

包括HR和LR的路径,分别为dataroot_gt和dataroot_lq。

3.2 ESRGAN模型权重的路径导入

在pretrain_network_g参数中导入ESRGAN模型训练完后生成的权重路径。

四、训练中断后,继续训练

只需要在训练代码后加上--auto_resume

python basicsr/train.py -opt options\train\ESRGAN\train_RRDBNet_PSNR_x4.yml --auto_resume


------------------     今天不学习,明天变垃圾。    ---------------------

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

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

相关文章

政安晨:示例演绎机器学习中(深度学习)神经网络的数学基础——快速理解核心概念(一){两篇文章讲清楚}

进入人工智能领域免不了与算法打交道,算法依托数学基础,很多小伙伴可能新生畏惧,不用怕,算法没那么难,也没那么玄乎,未来人工智能时代说不得人人都要了解算法、应用算法。 本文试图以一篇文章,…

分享76个表单按钮JS特效,总有一款适合您

分享76个表单按钮JS特效,总有一款适合您 76个表单按钮JS特效下载链接:https://pan.baidu.com/s/1CW9aoh23UIwj9zdJGNVb5w?pwd8888 提取码:8888 Python采集代码下载链接:采集代码.zip - 蓝奏云 学习知识费力气,收集…

(坑点!!!)给定n条过原点的直线和m条抛物线(y=ax^2+bx+c,a>0),对于每一条抛物线,是否存在一条直线与它没有交点,若有,输出直线斜率

题目 思路: 1、区间端点可能是小数的时候,不能直接利用加减1将 < 转化为 <=,例如,x < 1.5 不等价于 x <= 2.5 2、该题中k在(b - sqrt(4 * a * c), b + sqrt(4 * a * c) 中,注意是开区间,那么可以将左端点向上取整,右端点向下取整,即sqrt(4 * a * c)向下取…

Netty中的常用组件(三)

ChannelPipeline 基于Netty的网路应用程序中根据业务需求会使用Netty已经提供的Channelhandler 或者自行开发ChannelHandler&#xff0c;这些ChannelHandler都放在ChannelPipeline中统一 管理&#xff0c;事件就会在ChannelPipeline中流动&#xff0c;并被其中一个或者多个Chan…

Mysql-Explain-使用说明

Explain 说明 explain SELECT * FROM tb_category_report;id&#xff1a;SELECT识别符&#xff0c;这是SELECT查询序列号。select_type&#xff1a;表示单位查询的查询类型&#xff0c;比如&#xff1a;普通查询、联合查询(union、union all)、子查询等复杂查询。table&#x…

房屋租赁系统的Java实战开发之旅

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

【Java多线程案例】实现阻塞队列

1. 阻塞队列简介 1.1 阻塞队列概念 阻塞队列&#xff1a;是一种特殊的队列&#xff0c;具有队列"先进先出"的特性&#xff0c;同时相较于普通队列&#xff0c;阻塞队列是线程安全的&#xff0c;并且带有阻塞功能&#xff0c;表现形式如下&#xff1a; 当队列满时&…

CSP-202012-2-期末预测之最佳阈值

CSP-202012-2-期末预测之最佳阈值 【70分思路】 本题的难点还是时间复杂度&#xff0c;暴力枚举会导致时间超限。对于每一个可能的阈值theta&#xff0c;代码都重新计算了整个predict数组&#xff0c;统计预测正确的数目&#xff0c;因为有两个嵌套的循环&#xff0c;使得时间…

各版本安卓的彩蛋一览

目录 前言前彩蛋纪Android 2.3 GingerbreadAndroid 3 HoneycombAndroid 4.0 Ice Cream SandwichAndroid 4.1-4.3 JellybeanAndroid 4.4 KitKatAndroid 5 LollipopAndroid 6 MarshmallowAndroid 7 NougatAndroid 8 OreoAndroid 9 PieAndroid 10 Queen CakeAndroid 11 Red Velvet…

分享66个相册特效,总有一款适合您

分享66个相册特效&#xff0c;总有一款适合您 66个相册特效下载链接&#xff1a;https://pan.baidu.com/s/1jqctaho4sL_iGSNExhWB6A?pwd8888 提取码&#xff1a;8888 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;收集整理更不…

【Java EE初阶十】多线程进阶二(CAS等)

1. 关于CAS CAS: 全称Compare and swap&#xff0c;字面意思:”比较并交换“&#xff0c;且比较交换的是寄存器和内存&#xff1b; 一个 CAS 涉及到以下操作&#xff1a; 下面通过语法来进一步进项说明&#xff1a; 下面有一个内存M&#xff0c;和两个寄存器A,B; CAS(M,A,B)&am…

社区店营销新趋势:如何吸引并留住顾客?

作为一名资深的鲜奶吧创业者&#xff0c;我已经在这个行业摸爬滚打了五年。 这五年的时间&#xff0c;我见证了社区店营销的变迁&#xff0c;也积累了一些关于如何吸引并留住顾客的经验。今天&#xff0c;我想和大家分享一些留住顾客的核心干货。&#xff08;可以点赞收藏&…

YOLOv8改进 | 检测头篇 | 独创RFAHead检测头超分辨率重构检测头(适用Pose、分割、目标检测)

一、本文介绍 本文给大家带来的改进机制是RFAHead,该检测头为我独家全网首发,本文主要利用将空间注意力机制与卷积操作相结合的卷积RFAConv来优化检测头,其核心在于优化卷积核的工作方式,特别是在处理感受野内的空间特征时。RFAConv主要的优点就是增加模型的特征提取能力,…

MATLAB实现LSTM时间序列预测

LSTM模型可以在一定程度上学习和预测非平稳的时间序列&#xff0c;其具有强大的记忆和非线性建模能力&#xff0c;可以捕捉到时间序列中的复杂模式和趋势[4]。在这种情况下&#xff0c;LSTM模型可能会自动学习到时间序列的非平稳性&#xff0c;并在预测中进行适当的调整。其作为…

股票均线的使用方法和实战技术,看涨看空的均线形态与案例教学

一、教程描述 本套教程讲解了14种均线的特殊形态&#xff0c;通过直观图形以及大量案例的教学&#xff0c;将深奥、繁琐的均线变得生动与具体&#xff0c;广大投资者在认真学习以后&#xff0c;可以学会均线的使用方法&#xff0c;掌握最强的均线应用实战技术。本套教程不仅适…

Qt可视化大屏布局

科技大屏现在非常流行&#xff0c;这里分享一下某个项目的大屏布局&#xff08;忘了源码是哪个博主的了&#xff09; 展示 这个界面整体是垂直布局&#xff0c;分为两个部分&#xff0c;标题是一个部分&#xff0c;然后下面的整体是一个layout布局&#xff0c;为另外一部分。 l…

Shell脚本系列| SSH分发公钥方法 - expect脚本的使用

ssh原理&#xff1a;在SSH安全协议的原理中&#xff0c; 是一种非对称加密与对称加密算法的结合。用于确保远程登录和其他网络服务的会话安全&#xff0c;通过非对称加密、会话加密、多重验证机制等手段&#xff0c;保护数据传输的机密性和完整性。 ssh登录有2种方法&#xff1…

图书商城系统

文章目录 图书商城系统一、项目演示二、项目介绍三、系统部分功能截图四、部分代码展示五、底部获取项目&#xff08;9.9&#xffe5;带走&#xff09; 图书商城系统 一、项目演示 网上书城 二、项目介绍 基于SSM的图书商城网站 运行环境:idea或eclipse 数据库:mysql 开发语…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Web组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之Web组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Web组件 提供具有网页显示能力的Web组件&#xff0c;ohos.web.webview提供web控制能…

4. TypeScript

目录 1 TypeScript 介绍 2 TypeScript 常用类型 2.1 类型标注的位置 2.2 字符串、数字、布尔类型 2.3 字面量类型 2.4 interface 类型 2.5 class 类型 Vue1&#xff1a;基础跟使用方式 Vue2&#xff1a;路由方面 Vue3&#xff1a;状态管理 vuex 状态管理库 1 TypeScrip…