转载自AI Studio

标题项目链接https://aistudio.baidu.com/aistudio/projectdetail/3156903

Real-ESRGAN-PaddlePaddle

本项目基于深度学习框架PaddlePaddle对Real-ESRGAN网络(论文)进行复现。

简介

如下图所示,Real-ESRGAN网络属于生成对抗网络,包括基于ESRGAN的生成器和基于U-Net的判别器,可对真实世界的复杂图像进行超分辨率重建。

生成器
real-esrgan生成器

判别器
real-esrgan判别器

训练数据

本项目所用的数据集为DF2KDF2K_multiscale,它们是通过DIV2KFlickr2K生成的,其中,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,可下载使用。

复现效果

低分辨率图片

image1_before

经过Real-ESRGAN重建的结果

image1_after

开始使用

训练

导入初始化权重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-ESRGANPytorch代码,提高了本repo复现论文的效率。

请点击此处查看本环境基本用法.

Please click here for more detailed instructions.

Logo

学大模型,用大模型上飞桨星河社区!每天8点V100G算力免费领!免费领取ERNIE 4.0 100w Token >>>

更多推荐