转载自AI Studio
标题项目链接https://aistudio.baidu.com/aistudio/projectdetail/3156903
Real-ESRGAN-PaddlePaddle
本项目基于深度学习框架PaddlePaddle对Real-ESRGAN网络(原论文)进行复现。
简介
如下图所示,Real-ESRGAN网络属于生成对抗网络,包括基于ESRGAN的生成器和基于U-Net的判别器,可对真实世界的复杂图像进行超分辨率重建。
生成器
判别器
训练数据
本项目所用的数据集为DF2K
和DF2K_multiscale
,它们是通过DIV2K和Flickr2K生成的,其中,DF2K
包含3450张高分辨率图片,DF2K_multiscale
包含13800张不同尺度下的低分辨率图片。本项目已包含该数据集,在data
目录下,需要先解压:
!ls /home/aistudio/data
!unzip -qo /home/aistudio/data/data119372/DF2K_HR.zip -d /home/aistudio/data/
!unzip -qo /home/aistudio/data/data119372/DF2K_multiscale.zip -d /home/aistudio/data/
!ls /home/aistudio/dat
数据集放在了aistudio,可下载使用。
复现效果
低分辨率图片
经过Real-ESRGAN重建的结果
开始使用
训练
导入初始化权重ESRGAN_SRx4_DF2KOST_official-ff704c30.pdparams
,设置参数进行训练。
python train.py
测试
python inference_realesrgan.py
代码结构
├─data 数据准备
├─datasets
├─experiments 实验预训练模型及保存的训练模型
├─inputs 测试的低分辨率图片
├─loss 损失函数
├─models 模型
├─options 参数设置
├─results 测试结果
├─utils
│ inference_realesrgan.py 测试代码
│ train.py 训练代码
│ train1.ipynb Notebook训练和测试代码
复现心得
本项目是我们的第一个PaddlePaddle项目,也是我们做个第一个超分辨项目。Real-ESRGAN的核心主要在于训练数据集的构建,通过模糊、加噪、尺寸缩小、压缩等多种退化方式的随机组合模拟真实场景的图像退化情况,进而提高模型在真实场景下的泛化性。项目整体难度不高,主要难点可能在于原文代码基于pytorch的工具包BasicSR,我们对工具包中相关文件进行了PaddlePaddle的转写和简化。在复现实验中,我们感受到数据集规模和数据扩增对网络性能的影响还是很大的。这个项目对我们的代码写作水平的提高很有帮助,同时我们也对PaddlePaddle这个新的深度学习框架有了一定的了解。
关于作者
本项目的作者是来自中国地质大学(武汉)的两位小可爱,起名叫勇敢土豆不怕困难!好听吧哈哈哈。
参考repo
在此非常感谢论文作者Xintao
贡献的Real-ESRGAN的Pytorch
代码,提高了本repo复现论文的效率。
请点击此处查看本环境基本用法.
Please click here for more detailed instructions.