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

一、下载数据集及项目包

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.hqwc.cn/news/473266.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BUGKU-WEB game1

题目描述 题目截图如下: 进入场景看看: 是一个盖楼的游戏! 解题思路 先看看源码,好像没发现什么特别的是不是要得到一定的分数才会有对应的flag?查看下F12,请求链接发现,这不就提示了 相…

工业数据采集的时间不确定性及PLC-Recorder的通道偏移功能

目录 一、缘起 二、效果展示 三、设置方法 四、小结 一、缘起 大家都知道采集软件首先要尽可能还原数据原来的状态,给用户提供一个可以信赖的参考。但是,数据采集又有很多随机因素:Windows是一个周期不严格的系统、以太网通讯有时间波动、…

【开源】SpringBoot框架开发智能教学资源库系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 课程档案模块2.3 课程资源模块2.4 课程作业模块2.5 课程评价模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 课程档案表3.2.2 课程资源表3.2.3 课程作业表3.2.4 课程评价表 四、系统展示五、核心代…

RM电控工程讲义

HAL_CAN_RxFifo0MsgPendingCallback(CAN_HandleTypeDef *hcan) 是一个回调函数,通常在STM32的HAL库中用于处理CAN(Controller Area Network)接收FIFO 0中的消息。当CAN接口在FIFO 0中有待处理的消息时,这个函数会被调用。 HAL库C…

centos中docker操作+安装配置django+mysql5.7并使用simpleui美化管理后台

一、安装docker 确保系统是CentOS 7并且内核版本高于3.10,可以通过uname -r命令查看内核版本。 更新系统软件包到最新版本,可以使用命令yum update -y。 安装必要的软件包,包括yum-utils、device-mapper-persistent-data和lvm2。使用命令yum install -y yum-utils devic…

蓝桥杯 星期计算

思路1 由于2022太大,用double来存储,即(52022 % 7) % 7即可 int num 5;int t (int)(Math.pow(20,22)%7);num t;num%7;System.out.println(num1);思路2 你需要知道 (a * b ) % p a % p * b % p Scanner scan new Scanner(System.in);int num 1;for…

C语言第二十六弹---字符串函数(下)

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】 目录 1、strncat 函数的使用 2、strncmp 函数的使用 3、strstr 函数的使用和模拟实现 4、strtok 函数的使用 5、strerror 函数的使用 6、perror 函数的使用…

NumPyML 源码解析(五)

numpy-ml\numpy_ml\preprocessing\nlp.py # 导入必要的库和模块 import re import heapq import os.path as op from collections import Counter, OrderedDict, defaultdict import numpy as np# 定义英文停用词列表,来源于"Glasgow Information Retrieval G…

力扣 123. 买卖股票的最佳时机 III

题目来源:https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-iii/description/ C题解:动态规划。至多买卖两次,这意味着可以买卖一次,可以买卖两次,也可以不买卖。 一天一共就有四个状态: 第…

在UE5中使用体积材质

在平时使用UE的材质设置时,经常会看见Material Domain Volume类型,但是却很少使用。其实该类型可以配合体积雾使用,并制作体积效果以弥补自带雾参数的不足。 操作流程 首先找到场景中的ExponentialHeightFog组件,开启体积雾Volu…

Midjourney绘图欣赏系列(一)

Midjourney介绍 Midjourney 是生成式人工智能的一个很好的例子,它根据文本提示创建图像。它与 Dall-E 和 Stable Diffusion 一起成为最流行的 AI 艺术创作工具之一。与竞争对手不同,Midjourney 是自筹资金且闭源的,因此确切了解其幕后内容尚不清楚。我们知道它严重依赖机器学…

嵌入式Qt Qt中的信号处理

一.Qt中的信号处理 Qt消息模型: - Qt封装了具体操作系统的消息机制 - Qt遵循经典的GUI消息驱动事件模型 Qt中定义了与系统消息相关的概念; Qt中的消息处理机制: Qt的核心 QObject::cinnect函数: Qt中的“新”关键字: 实验1 初探…