老赵写字的地方

Real-ESRGAN:用纯合成数据训练的真实世界盲超分辨率算法

Real-ESRGAN 是由腾讯 ARC Lab 与中国科学院深圳先进技术研究院联合开发的图像/视频修复算法,旨在解决真实世界中低分辨率图像的复原问题。项目自 2021 年开源以来,已成为最流行的图像超分辨率工具之一1)。

背景与动机

传统的超分辨率(Super-Resolution, SR)方法通常假设低分辨率图像的降质过程是已知且简单的(如双三次降采样)。然而,真实世界的图像退化往往复杂且未知,包含噪声、模糊、JPEG 压缩伪影、振铃效应等多种混合因素。

Real-ESRGAN 的核心创新在于使用纯合成数据来模拟这些复杂降质,从而训练出一个能应对真实世界退化场景的模型2)。

技术原理

Real-ESRGAN 在经典的 ESRGAN(Enhanced Super-Resolution GAN)架构基础上做了三方面的扩展:

高阶降质建模(High-Order Degradation Model):传统的 ESRGAN 使用一阶降质模型(模糊 → 降采样 → 噪声 → JPEG 压缩),Real-ESRGAN 引入了高阶(second-order)降质过程,即重复应用多个降质阶段。这能更好地模拟真实世界中叠加的、复杂的降质链。

振铃与过冲伪影的模拟:在实际图像处理流程中(如锐化、压缩),常会出现振铃(ringing)和过冲(overshoot)伪影。Real-ESRGAN 在合成训练数据时特意模拟了这些现象,使模型学会去除它们。

U-Net 判别器 + 谱归一化:采用 U-Net 结构的判别器取代传统的 PatchGAN,配合谱归一化(Spectral Normalization)来稳定 GAN 的训练过程,提升判别能力。

可用模型

Real-ESRGAN 官方提供了多个针对不同场景优化的预训练模型3):

模型名称 适用场景 缩放倍数 特点
RealESRGAN_x4plus 通用图片 ×4 主力模型,适用范围最广
RealESRGAN_x2plus 通用图片 ×2 适合轻度放大需求
RealESRGAN_x4plus_anime_6B 动漫/插画 ×4 针对二次元图片优化,体积小、效果好
realesr-general-x4v3 通用场景 ×4 小模型,支持 -dn 降噪强度调节
RealESRGAN AnimeVideo-v3 动漫视频 ×2/×3/×4 小体积模型,专为视频帧修复设计

安装方式

Real-ESRGAN 提供三种使用方式,满足不同用户需求。

1. Python 包(pip 安装)

适合需要集成到 Python 项目中的开发者:

pip install basicsr facexlib gfpgan
pip install realesrgan

或从源码安装:

git clone https://github.com/xinntao/Real-ESRGAN.git
cd Real-ESRGAN
pip install -r requirements.txt
python setup.py develop

2. 便携版可执行文件(NCNN)

适合不想配置 Python/CUDA 环境的普通用户。Real-ESRGAN 基于 ncnn 框架提供了跨平台的绿色版可执行文件4):

这些可执行文件无需 CUDA 或 PyTorch 环境即可运行,支持 Intel/AMD/Nvidia 显卡。

3. 在线体验

无需安装,直接在浏览器中使用:

基本使用

Python 命令方式:

# 4 倍放大,带人脸增强
python inference_realesrgan.py -n RealESRGAN_x4plus -i input.jpg --face_enhance
 
# 对动漫图片使用专用模型
python inference_realesrgan.py -n RealESRGAN_x4plus_anime_6B -i anime_input.png

NCNN 可执行文件方式:

./realesrgan-ncnn-vulkan -i input.jpg -o output.png -n realesrgan-x4plus

参数说明:

参数 说明
-n / –model_name 选择模型(如 RealESRGAN_x4plus)
-s / –outscale 最终放大倍数(默认 4)
-t / –tile 分块大小,大图建议设为 0(自动)或 256
–face_enhance 启用 GFPGAN 人脸增强(需安装 facexlib + gfpgan)
–fp32 使用 fp32 精度(默认 fp16 半精度)

GFPGAN 人脸增强集成

Real-ESRGAN 集成了腾讯 ARC Lab 的另一明星项目 GFPGAN(Generative Facial Prior GAN),专门用于人脸修复。启用 ``–face_enhance`` 参数后,系统会先检测图像中的人脸区域,再用 GFPGAN 进行面部细节修复,最后与超分辨率结果融合5)。

安装依赖:

pip install facexlib gfpgan

然后使用:

python inference_realesrgan.py -n RealESRGAN_x4plus -i old_photo.jpg --face_enhance

典型应用场景

老照片修复:对扫描或翻拍的老照片进行去噪、去模糊和放大,配合 GFPGAN 人脸增强后效果尤为明显。

动漫/插画放大:RealESRGAN_x4plus_anime_6B 模型专为二次元图片优化,效果超越传统的 waifu2x6)。

游戏纹理增强:将低分辨率游戏纹理放大到 4K 画质,广泛用于经典游戏的高清化 Mod。

动漫视频修复:AnimeVideo-v3 模型可逐帧处理视频,实现动漫的清晰度提升7)。

系统需求

运行方式 最低配置 推荐配置
Python (PyTorch) NVIDIA GPU 4GB VRAM + CUDA NVIDIA GPU 6GB+ VRAM
NCNN 可执行文件 Intel/AMD/Nvidia GPU 任何支持 Vulkan 的 GPU
CPU 运行 16GB RAM(速度慢) 32GB RAM
Colab 在线 浏览器即可 免费 T4 GPU

CPU 模式下也可以运行,但对于大图处理速度较慢,建议使用 GPU。

相关生态项目

Real-ESRGAN 生态系统中有多个衍生项目和图形界面工具8):

项目名称 类型
Waifu2x-Extension-GUI 桌面图形界面,支持批量处理
Upscayl 跨平台 AI 图像放大 GUI
chaiNNer 节点式 AI 图像处理流水线
vs-realesrgan VapourSynth 视频处理插件
RealSR-NCNN-Android 手机端 NCNN 实现

此外,同团队的相关项目还包括:

  1. GFPGAN:实用的人脸复原算法9)
  2. BasicSR:开源的图像和视频修复工具箱10)
  3. Real-ESRGAN-ncnn-vulkan:基于 ncnn 的跨平台便携版11)

总结

Real-ESRGAN 通过创新的高阶降质建模、纯合成数据训练策略和 GAN 架构优化,弥合了学术超分辨率算法与真实世界应用之间的鸿沟。其 BSD-3-Clause 开源协议、多平台支持和活跃的社区生态,使其成为图像修复领域最值得推荐的工具之一。

zh/real-esrgan/real-esrgan.txt · 最后更改: 由 dsbot