低清图片放大4倍:Real-ESRGAN从安装到调参
【免费下载链接】Real-ESRGANReal-ESRGAN aims at developing Practical Algorithms for General Image/Video Restoration.项目地址: https://gitcode.com/gh_mirrors/re/Real-ESRGAN
一张模糊的低分辨率图片要放大打印或上屏,双三次插值只会让模糊更明显。Real-ESRGAN 是腾讯 ARC 的图像复原算法,能把低清图放大 4 倍并重建纹理细节,动漫图、动漫视频也有专门模型。
Real-ESRGAN 是什么
它是一组"实用导向"的超分算法:只用纯合成数据训练,换到真实照片上直接可用。
几个可查证的事实:
- 模型默认输出 4 倍放大(另有 X2 模型,
--outscale可指定任意倍数) - 内置 6 个预训练模型,覆盖通用图、动漫图、动漫视频
- 推理脚本默认支持带 alpha 通道、灰度、16-bit 图像
- 默认用 fp16 半精度推理,省显存、速度快
左为双三次插值,右为 Real-ESRGAN 放大 4 倍的结果
3 条命令拿到增强结果
环境要求 Python 3.7+、PyTorch 1.7+,建议先用 conda 建一个独立环境。
git clone https://gitcode.com/gh_mirrors/re/Real-ESRGAN cd Real-ESRGAN运行后仓库克隆到本地Real-ESRGAN目录,后续命令都在这个目录里执行。
pip install basicsr facexlib gfpgan pip install -r requirements.txt python setup.py developbasicsr 是底层的图像复原框架,facexlib、gfpgan 提供人脸增强。运行完成后项目以开发模式安装,可以直接import realesrgan。
python inference_realesrgan.py -n RealESRGAN_x4plus -i inputs运行后:脚本先把模型权重下载到weights/(已有则跳过),再逐张处理inputs/下的图片,结果写入results/,文件名加_out后缀。只处理单张图时,把-i换成具体文件路径即可。
该选哪个模型
-n参数决定用哪个模型,内容类型不同,最优选择不同:
| 使用场景 | 推荐模型 | 理由 |
|---|---|---|
| 通用照片、老照片 | RealESRGAN_x4plus(默认) | 23 个 RRDB 块,纹理重建最稳 |
| 有人脸的人像 | RealESRGAN_x4plus+--face_enhance | GFPGAN 单独补人脸细节 |
| 动漫插图 | RealESRGAN_x4plus_anime_6B | 仅 6 个 RRDB 块,网络更小、保留线稿 |
| 动漫视频 | realesr-animevideov3 | XS 最小规格,适合逐帧处理 |
| 显存小、批量快跑 | realesr-general-x4v3 | S 规格小模型,支持-dn调去噪强度 |
| 求快、要平滑观感 | RealESRNet_x4plus | MSE loss 训练,输出偏平滑(over-smooth) |
注意:--face_enhance只适用于真实人脸,对动漫图无效;配动漫模型时脚本会自动关掉它。
4 个常用参数怎么调
--tile 400:按 400×400 像素分块推理,是压低显存的关键-dn 0.7:去噪强度,0 保留噪点、1 强去噪,仅realesr-general-x4v3有效--outscale 3.5:最终输出倍数,模型出 4 倍后再做一次 LANCZOS 缩放--fp32:改用全精度,CPU 下算子报错时使用
python inference_realesrgan.py -n RealESRGAN_x4plus -i big.jpg --tile 400 python inference_realesrgan.py -n realesr-general-x4v3 -i inputs -dn 0.3第一条让大图分块通过;第二条把去噪强度降到 0.3,保留更多原始纹理。
显存不够怎么办
现象:报错出现CUDA out of memory。原因:脚本默认把整张图塞进显存一次推理,大图直接超限。解决:加--tile 400分块处理,仍超就继续调小,或换更小的realesr-general-x4v3。
现象:CPU 上跑报slow_conv2d_cpu not implemented for Half。原因:默认 fp16 半精度,部分算子在 CPU 上没有实现。解决:命令加--fp32。
现象:结果发"塑料感"、细节被抹平。原因:去噪过强,或选了偏平滑的模型。解决:realesr-general-x4v3把-dn降到 0.3 左右;或换回RealESRGAN_x4plus。
动漫视频怎么增强
用inference_realesrgan_video.py直接吃视频文件:ffmpeg 解码、逐帧超分、再编码回results/,音轨保留。
python inference_realesrgan_video.py -n realesr-animevideov3 -i inputs/video -o results_video仓库自带的inputs/video/onepiece_demo.mp4可直接用来试跑。检测到多张 GPU 时脚本会自动把视频拆成子片段并行处理,最后用 ffmpeg 拼接回去。
用自己的数据训练与二开
手头有某领域高清图(工业质检、医疗等)时,可以在现有权重上微调:
- 用
scripts/generate_meta_info.py生成训练图像的清单 txt - 把
options/train_realesrgan_x4plus.yml里的数据目录改成自己的路径 - 运行
realesrgan/train.py -opt options/train_realesrgan_x4plus.yml开训,两阶段流程(先 L1 训练 Real-ESRNet,再加感知和 GAN loss 训 Real-ESRGAN)见 docs/Training.md
核心代码在realesrgan/目录:archs/srvgg_arch.py是 VGG 系小网络结构,utils.py里的RealESRGANer是推理封装,做二次开发直接调用它。不想配 Python 环境的话,README 提到的 ncnn-vulkan 可执行文件不需要 CUDA,但不支持--outscale这类参数。
接下来做什么
- 跑一遍默认命令,挑
inputs/里一张图,对照results/里的结果看放大 4 倍后的细节 - 常处理动漫内容的,换
RealESRGAN_x4plus_anime_6B再跑一遍对比 - 大图先带
--tile 400确认不爆显存,再按需去掉
资源导航:
- 常见问题:docs/FAQ.md
- 模型列表与下载说明:docs/model_zoo.md
- 训练教程:docs/Training.md
- 图像推理脚本:inference_realesrgan.py
- 视频推理脚本:inference_realesrgan_video.py
【免费下载链接】Real-ESRGANReal-ESRGAN aims at developing Practical Algorithms for General Image/Video Restoration.项目地址: https://gitcode.com/gh_mirrors/re/Real-ESRGAN
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考