• 本站会放置Google广告用于维持域名以及网站服务器费用。

  • 感谢大家访问本站,希望本站的内容可以帮助到大家!

  • 欢迎大家交换友链,可在https://www.stubbornhuang.com/申请友情链接进行友链交换申请!

  • 工资「喂饱肚子」,副业「养活灵魂」!

  • 在本站开通年度VIP,无限制下载本站资源和阅读本站文章

  • 计算机图形学与计算几何经典必备书单整理,下载链接可参考:https://www.stubbornhuang.com/1256/

  • 本站由于前段时间遭受到大量临时和国外邮箱注册,所以对可注册的邮箱类型进行了限制!

  • 如果觉得本站的内容有帮助,可以考虑打赏博主哦!

  • 问题反馈可发送邮件到stubbornhuang@qq.com

使用自定义数据集微调Real-ESRGAN图片超分模型

图片超分 发布于2025-03-13 阅读 2,914次 1次评论 2次点赞 本文共3762个字,阅读需要10分钟。

1 为什么要微调Real-ESRGAN模型

Real-ESRGAN github仓库放出的开源模型基本上都是基于开源数据集进行训练的,比如DIV2K、Flickr2K等等,在一些特殊场景下其表现得并不是很好,比如商品图超分、书画超分等等,所以我们需要在自己的数据集上微调Real-ESRGAN的预训练模型,使其能适应某个特殊场景。

我们这里微调不采用LR-HR配对数据集,而是直接按照Real-ESRGAN的做法准备HR数据集,然后使用Real-ESRGAN的图片退化方法去做。

2 自定义数据集

在本文中,以LIU4K-v2这个4K 超分数据集为例,其包含了1600张高分辨率训练集图片和400张验证集图片,其图像分辨率至少为

3K,大部分为4K-6K,且包含了非常多样化的背景和物体,并且低级信号分布也多样而复杂,涵盖动物、建筑、风景、街景等等。

数据集官方链接:https://structpku.github.io/LIU4K_Dataset/LIU4K_v2.html

使用自定义数据集微调Real-ESRGAN图片超分模型-第0张图片

我们的微调数据集以LIU4K-v2的train+val的2000张图片为微调数据集,将所有图片重命名为%07d.png的形式,比如0000001.png ~ 0002000.png。

3 数据集处理

按照Real-ESRGAN github仓库的微调教程 主要有以下几个步骤。

3.1 生成多尺寸图片(可选步骤)

对第2节中的HR图像进行下采样,获取多尺度的标准参考(Ground-Truth)图像。

python scripts/generate_multiscale_DF2K.py --input 数据集原始高清图片输入文件夹路径 --output 数据集多尺寸图片输出文件夹路径

示例命令:

python scripts/generate_multiscale_DF2K.py --input datasets/LIU4K-v2/LIU4K-v2_HR --output datasets/LIU4K-v2/LIU4K_multiscale

3.2 裁切为子图像(可选步骤)

这里我们不进行处理,主要是磁盘空间足够。

3.3 生成数据集元信息文件

这个元信息文件主要是包含了数据集图片的路径信息的txt文件。

(1)如果你跳过了3.1节中生成多尺寸图片,那么meta_info可通过以下命令生成

 python scripts/generate_meta_info.py --input 数据集原始高清图片输入文件夹路径 --root 数据集根目录路径 --meta_info 数据集元信息文件保存路径

示例命令:

 python scripts/generate_meta_info.py --input datasets/LIU4K-v2/LIU4K-v2_HR --root datasets/LIU4K-v2 --meta_info datasets/LIU4K-v2/meta_info/meta_info_LIU4K-v2.txt

(2)如果你在3.1节中生成了多尺寸图片,那么meta_info可通过以下命令生成

 python scripts/generate_meta_info.py --input 数据集原始高清图片输入文件夹路径, 数据集多尺寸图片输出文件夹路径 --root 数据集根目录路径, 数据集根目录路径 --meta_info 数据集元信息文件保存路径

示例命令:

 python scripts/generate_meta_info.py --input datasets/LIU4K-v2/LIU4K-v2_HR, datasets/LIU4K-v2/LIU4K_multiscale --root datasets/LIU4K-v2, datasets/LIU4K-v2 --meta_info datasets/LIU4K-v2/meta_info/meta_info_LIU4K-v2_multiscale.txt

4 Real-ESRGAN模型微调

4.1 下载预训练模型

从Real-ESRGAN的github仓库下载RealESRGAN_x4plus.pthRealESRGAN_x4plus_netD.pth两个预训练模型文件放到experiments/pretrained_models目录下。

4.2 修改配置文件

拷贝一份options/finetune_realesrgan_x4plus.yml文件,重名为options/finetune_realesrgan_x4plus_liu4k_v2.yml

修改主要内容如下,
(1)修改实验名称

# general settings
name: finetune_RealESRGANx4plus_400k_LIU4kv2 # 修改实验名称

(2) 修改微调数据集路径

# general settings
name: finetune_RealESRGANx4plus_400k_LIU4kv2 # 修改实验名称
model_type: RealESRGANModel
scale: 4
num_gpu: auto
manual_seed: 0

......

datasets:
  train:
    name: LIU4k-v2 # 修改名称
    type: RealESRGANDataset
    dataroot_gt: ./datasets/LIU4K-v2 # 修改为你的数据集文件夹根目录
    meta_info: ./datasets/LIU4K-v2/meta_info/meta_info_LIU4K-v2_multiscale.txt # 修改为你自己生成的元信息txt
    io_backend:
      type: disk

(3)修改预训练模型
默认的微调配置finetune_realesrgan_x4plus.yml中的pretrain_network_g的权重指定的是RealESRNet_x4plus.pth

path:
  # use the pre-trained Real-ESRNet model
  pretrain_network_g: experiments/pretrained_models/RealESRNet_x4plus.pth

我们需要直接在RealESRGAN_x4plus.pth上进行微调,所以这里修改为

path:
  # use the pre-trained Real-ESRNet model
  pretrain_network_g: experiments/pretrained_models/RealESRGAN_x4plus.pth

(4)修改验证数据集路径和验证参数

  # Uncomment these for validation # 这里可以增加你的验证数据集
  # val:
  #   name: validation
  #   type: PairedImageDataset
  #   dataroot_gt: path_to_gt
  #   dataroot_lq: path_to_lq
  #   io_backend:
  #     type: disk

  # Uncomment these for validation # 这里可以增加你的数据集验证设置
 # validation settings
 # val:
 #   val_freq: !!float 5e3
 #   save_img: True

 #   metrics:
 #     psnr: # metric name
 #       type: calculate_psnr
 #       crop_border: 4
 #       test_y_channel: false

配置文件的其他超参数可以根据需求自行修改,比如预训练模型文件保存频率save_checkpoint_freq等参数。

4.3 模型微调

单个gpu模型微调可使用以下命令,--auto_resume用于断点续训

python realesrgan/train.py -opt options/finetune_realesrgan_x4plus_liu4k_v2.yml --auto_resume

多个gpu模型微调可使用以下命令

CUDA_VISIBLE_DEVICES=0,1,2,3 \
python -m torch.distributed.launch --nproc_per_node=4 --master_port=4321 realesrgan/train.py -opt options/finetune_realesrgan_x4plus_liu4k_v2.yml.yml --launcher pytorch --auto_resume

微调的模型和相关信息保存在experiments/pretrained_models目录的finetune_xxx文件夹下。

4.4 使用自己微调的模型进行推理

使用以下命令基于自己的微调模型进行推理

python inference_realesrgan.py -n RealESRGAN_x4plus -i inputs --outscale 4 --model_path 你自己微调模型的路径

参考链接

欢迎扫码关注我的微信公众号,及时获取文章更新

微信公众号二维码

本文作者:StubbornHuang

版权声明:本文为站长原创文章,如果转载请注明原文链接!

原文标题:使用自定义数据集微调Real-ESRGAN图片超分模型

原文链接:https://www.stubbornhuang.com/3133/

发布于:2025年03月13日 11:03:44

修改于:2025年03月18日 16:04:08

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

文章末尾
上一篇
Python - opencv保存mp4视频出现了global cap_ffmpeg_impl.hpp:3133 open Could not find encoder for codec_id=27, error: Encoder not found错误
Python
下一篇
Python - 解决模型训练时读取png图片libpng warning: iccp: known incorrect srgb profile的问题
Python
当前分类随机文章推荐

发表评论

您必须 [ 登录 ] 才能发表留言!

全部评论:1条

加载中...
  1. StubbornHuang Blog-s0m1头像
    s0m1 2025-08-16 11:38 来自天朝的朋友 谷歌浏览器 Windows 10 北京市 广电网

    您好,能问下大概需要什么配置吗?

关注我们的公众号

微信公众号