【图像恢复算法】 ESRGAN & Real-ESRGAN的配置和应用

发布于:2025-06-16 ⋅ 阅读:(18) ⋅ 点赞:(0)

目录

一、什么是ESRGAN?什么是Real-ESRGAN?

1.ESRGAN

2.Real-ESRGAN

二、环境配置

1.ESRGAN

2.Real-ESRGAN

三、修复实战

1.ESRGAN

2.Real-ESRGAN

四、常见问题

1.CUDA out of memory

2.Error: No module named 'torchvision.transforms.functional_tensor'


一、什么是ESRGAN?什么是Real-ESRGAN?

1.ESRGAN

        ESRGAN 由 Xintao Wang 等人于 2018 年提出,旨在通过对抗生成网络(GAN)进一步提升图像超分辨率重建的视觉效果。它是在 SRGAN(Super‑Resolution GAN)的基础上改进而来,重点解决了高频细节表现不足和生成结果偏“平滑”的问题。

  • 优点:生成的细节更丰富、纹理更自然;在多项基准测试(如 DIV2K)上视觉效果显著提升。
  • 局限:主要针对“理想降采样”场景(bicubic 降采样);对真实世界的噪声、模糊等退化情况适应性较差。

2.Real-ESRGAN

        真实场景中的低分图像通常包含各种不可预知的退化:相机噪声、压缩伪影、镜头模糊等。Real‑ESRGAN 在 ESRGAN 的基础上,引入更贴近真实退化的训练策略,使模型对多种劣化情况具备鲁棒性。

  • 对各种真实低质图像(监控、老照片、网络截图等)具有更好恢复能力。
  • 在公开的“RealSR”数据集上,相比 ESRGAN、SRGAN 等传统方法,主观和客观指标均有显著提升。

二、环境配置

CUDA和CUDNN的配置不过多赘述,需要的可以参考之前的记录YOLO系列环境配置及训练_yolo环境配置-CSDN博客

1.ESRGAN

  • Python 3
  • PyTorch >= 1.0 (CUDA version >= 7.5 if installing with CUDA. )
  • Python packages: pip install numpy opencv-python 
  •  创建虚拟环境
# 创建conda虚拟环境
conda create -n esrgan python=3.9

# 激活并进入环境
conda activate esrgan
  •  torch安装 及其他库安装(以ubuntu系统和CUDA11.8为例)
# torch安装
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

# 其他
pip install numpy opencv-python
  • 克隆代码至本地,下载预训练模型
git clone https://github.com/xinntao/ESRGAN
cd ESRGAN

模型下载:ESRGAN_models_免费高速下载|百度网盘-分享无限制 

2.Real-ESRGAN

环境创建及torch安装同ESRGAN

  • 项目克隆到本地
git clone https://github.com/xinntao/Real-ESRGAN.git
cd Real-ESRGAN
  • 安装各种依赖
# 安装 basicsr - https://github.com/xinntao/BasicSR
# 使用BasicSR来训练以及推断
pip install basicsr
# facexlib和gfpgan是用来增强人脸的
pip install facexlib
pip install gfpgan
pip install -r requirements.txt
python setup.py develop
  • 预训练模型下载  
# RealESRGAN_x4plus.pth
wget https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth -P weights

# RealESRGAN_x4plus_anime_6B
wget https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.2.4/RealESRGAN_x4plus_anime_6B.pth -P weights

RealESRGAN_x4plus.pth 和 RealESRGAN_x4plus_anime_6B 的区别在于,后者anime针对模型尺寸小得多的动漫图像进行了优化。

三、修复实战

1.ESRGAN

        在ESRGAN项目文件夹中找到 test.py 文件,将参数test_img_folder的内容改为自己需要处理图片的文件夹路径(或者我们把图片直接放入项目默认的LR文件夹中),直接运行即可

        修复后的图片会在ESRGAN项目的results 文件夹中,可以看到效果还是很不错的

2.Real-ESRGAN

        直接在命令窗口执行,注意:先cd至Real-ESRGAN项目所在目录

python inference_realesrgan.py -n RealESRGAN_x4plus -i inputs --face_enhance

命令各参数如下:

-h                   show this help
-i --input           Input image or folder. Default: inputs
-o --output          Output folder. Default: results
-n --model_name      Model name. Default: RealESRGAN_x4plus
-s, --outscale       The final upsampling scale of the image. Default: 4
--suffix             Suffix of the restored image. Default: out
-t, --tile           Tile size, 0 for no tile during testing. Default: 0
--face_enhance       Whether to use GFPGAN to enhance face. Default: False
--fp32               Whether to use half precision during inference. Default: False
--ext                Image extension. Options: auto | jpg | png, auto means using the same extension as inputs. Default: auto

效果如下:(可以看到明显清晰了很多) 

四、常见问题

1.CUDA out of memory

        修改参数tile,根据情况设置即可

python inference_realesrgan.py -n RealESRGAN_x4plus -i input --tile 200

2.Error: No module named 'torchvision.transforms.functional_tensor'

高版本pytorch的torchvision.transforms._functional_tensor名字改了,在前面加了一个下划线,但是torchvision.transforms.augmentation里面的import没把名字改过来,所以会找不到

import torchvision.transforms._functional_tensor as F_t

网站公告

今日签到

点亮在社区的每一天
去签到