ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

低清图片放大4倍:Real-ESRGAN从安装到调参

低清图片放大4倍:Real-ESRGAN从安装到调参

低清图片放大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 develop

basicsr 是底层的图像复原框架,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_enhanceGFPGAN 单独补人脸细节
动漫插图RealESRGAN_x4plus_anime_6B仅 6 个 RRDB 块,网络更小、保留线稿
动漫视频realesr-animevideov3XS 最小规格,适合逐帧处理
显存小、批量快跑realesr-general-x4v3S 规格小模型,支持-dn调去噪强度
求快、要平滑观感RealESRNet_x4plusMSE 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 拼接回去。

用自己的数据训练与二开

手头有某领域高清图(工业质检、医疗等)时,可以在现有权重上微调:

  1. 用scripts/generate_meta_info.py生成训练图像的清单 txt
  2. 把options/train_realesrgan_x4plus.yml里的数据目录改成自己的路径
  3. 运行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这类参数。

接下来做什么

  1. 跑一遍默认命令,挑inputs/里一张图,对照results/里的结果看放大 4 倍后的细节
  2. 常处理动漫内容的,换RealESRGAN_x4plus_anime_6B再跑一遍对比
  3. 大图先带--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),仅供参考

返回列表