用 Real-ESRGAN 拯救座机画质,自制高清版动漫资源

内容一览:Real-ESRGAN 是 ESRGAN 升级之作,主要有三点创新:提出高阶退化过程模拟实际图像退化,使用光谱归一化 U-Net
鉴别器增加鉴别器的能力,以及使用纯合成数据进行训练。 关键词:Real-ESRGAN 超分辨率 视频修复
本文首发自微信公众号:HyperAI超神经

相比于如今画面优良精美的新番,老动漫因时代的技术和设备限制,画质较差、分辨率低。但那些内容优质、童年经典的老动漫还是会被观众拿出来反复观看、「盘出包浆」。

每每经典的动漫视频被 4K 修复,在视频网站上的观看量都居高不下,高画质加上经典的内容足以让「双厨狂喜」。

图片 B 站上的 4K 修复视频极受欢迎

本期教程介绍如何用 Real-ESRGAN 对动漫视频进行超分优化,修复视频画质。教程可用云平台 OpenBayes 运行,对设备配置没有依赖, 轻松享受 1080P 视频带来的快乐。

Real-ESRGAN:爱二次元的盲超分模型

传统动画制作时,动画师先手绘制作每一幅画面,再用摄像设备拍摄画面,将其扫描到计算机中进行数字化处理。拍摄设备的好坏、上传动画到视频平台的压缩及不可预测的噪音等复杂因素, 会影响到动画的图像效果。

真实世界中引起图像退化的原因非常复杂,这使得非盲的超分算法,如 ESRGAN,恢复图像的效果并不好。所以需要用盲超分 (Blind Super-Resolution) 为未知退化类型的低分辨率图像进行超分增强。

盲超分主要分为显式建模 (Explicit Modelling) 和隐式建模 (Implicit Modelling) 两类方法。

显式建模

将模糊核与噪声信息进行参数化,通过先验知识估计图像的退化过程,包括噪声、模糊、下采样和压缩。但简单地组合几种退化并不能很好地拟合现实世界的图像退化。

隐式建模

不依赖于任何显式参数,它利用额外的数据通过数据分布,隐式的学习潜在超分模型。

Real-ESRGAN 的作者将显式建模称为一阶建模。一阶的退化建模难以拟合复杂的退化,作者提出了一种高阶退化模型 (High-order Degradation Model)。 该模型中,n 阶模型包含 n 个重复的退化过程,每个过程都遵循经典模型:

x = Dn(y) = (Dn ◦ · · · ◦ D2 ◦ D1)(y)

论文中作者使用的是二阶退化过程,这既保持了简单性,又解决大多数实际问题。

Real-ESRGAN 完全使用合成数据训练。 在生成高清和低清数据对时,模型对输入的图像进行 4 倍下采样( subsampled 或称缩小图像)之外,还继续进行 1 倍或 2 倍的下采样操作。

图片
Real-ESRGAN 使用和 ESRGAN 完全一致的结构

为减小计算量,作者创新性地提出了 Pixel Unshuffle 操作, 令输入分辨率减小、通道增加。

在生成高清和低清的数据对时,论文使用模糊的 kernel 做卷积,之后对图像下采样 r 倍,加上噪声,最后做 jpeg 压缩。这些操作模仿了现实生活中图像在传播过程中多次压缩的情况。

图片
Real-ESRGAN 采用多种图像退化方法

与 ESRGAN 相比,Real-ESRGAN 处理模糊图像的效果更佳,并在 2021 年 ICCV AIM 上获得荣誉论文提名奖。

代码详见

论文链接

Real-ESRGAN 实操:让陈年老番变清晰

本教程将演示在 OpenBayes 上,用 Real-ESRGAN 算法实现图像增强,把老动画视频变清晰。

完整教程

第 1 步 环境准备

# !git clone https://github.com/xinntao/Real-ESRGAN.git
%cd Real-ESRGAN
!pip install basicsr
!pip install facexlib
!pip install gfpgan
!pip install ffmpeg-python
!pip install -r requirements.txt
!python setup.py develop

第 2 步 推理

# ! python inference_realesrgan_video.py -i inputs/video/onepiece_demo.mp4 -n RealESRGANv2-animevideo-xsx2 -s 4 -v -a --half --suffix outx2
! python inference_realesrgan_video.py -i /openbayes/home/results.mp4 -n RealESRGANv2-animevideo-xsx2 -s 4 -v --half --suffix outtsx2
# 参数
# -i, --input: 输入视频
# -n, --model_name: 使用的模型名字
# -s, --outscale: 放大尺度
# -v, --video: 将增强的帧转换回视频中
# -a, --audio: 将输入的音频复制到增强的视频中
# --half: 推理半精度
# -suffix: 输出视频的后缀

第 3 步 可视化

from IPython.display import HTML
from base64 import b64encode
 
def show_video(video_path, video_width = 600):
   
  video_file = open(video_path, "r+b").read()
 
  video_url = f"data:video/mp4;base64,{b64encode(video_file).decode()}"
  return HTML(f"""<video width={video_width} controls><source src="{video_url}"></video>""")

# 输入视频
show_video('inputs/video/onepiece_demo.mp4')

不清晰动漫视频

# 增强后的视频
show_video('results/onepiece_demo_outx2.mp4')

Real-ESRGAN 处理清晰视频

完整教程

没有使用过 OpenBayes 平台?保姆级教程运行视频讲解看这里👇

教程演示

以上就是本期教程的全部内容,心动不如行动,你童年的梦中情番是什么?快克隆 OpenBayes 上的「Real-ESRGAN 动漫视频的超分辨率」教程,自制清晰视频吧~

注:高清自制内容仅可供个人学习使用

参考链接:
https://zhuanlan.zhihu.com/p/431612275
https://zhuanlan.zhihu.com/p/558893171

—— 完 ——

### Real-ESRGAN 的使用指南与 GitHub 仓库链接 Real-ESRGAN 是一种基于 ESRGAN 的图像超分辨率技术,能够显著提升低分辨率图片的质量并生成逼真的细节[^3]。该项目由 Xintao Wang 等研究者开发,并广泛应用于图像修复和增强领域。 #### GitHub 项目地址 Real-ESRGAN 的官方 GitHub 仓库位于以下链接: [https://github.com/xinntao/Real-ESRGAN](https://github.com/xinntao/Real-ESRGAM)[^4] 此仓库提供了完整的源码以及详细的文档说明,用户可以根据需求下载预训练模型或自行训练新模型。 #### 安装依赖项 为了运行 Real-ESRGAN,需先安装必要的 Python 库。以下是基本的环境配置命令: ```bash git clone https://github.com/xinntao/Real-ESRGAN.git cd Real-ESRGAN pip install -r requirements.txt ``` 如果需要 GPU 支持,则应确保已正确安装 CUDA 和 cuDNN 驱动程序[^5]。 #### 运行示例脚本 仓库中提供了一个简单的推理脚本来测试效果。执行如下命令即可加载默认模型并对指定文件夹中的图片进行处理: ```python from realesrgan import RealESRGANer import cv2 input_image_path = 'your_input_image.jpg' output_image_path = 'your_output_image.png' model = RealESRGANer( scale=4, model_path='experiments/pretrained_models/RealESRGAN_x4plus.pth', dni_weight=None, tile=0, tile_pad=10, pre_pad=0, half=True) img = cv2.imread(input_image_path, cv2.IMREAD_COLOR) result, _ = model.enhance(img, outscale=4) cv2.imwrite(output_image_path, result) ``` 以上代码片段展示了如何利用 `RealESRGANer` 类来实现单张图片的放大操作[^6]。 #### 调整参数优化结果 通过修改不同选项可进一步定制化输出质量。例如调整缩放因子 (`scale`) 或启用动态权重插值功能 (Dynamic Network Interpolation),后者允许在两个预定义风格之间平滑过渡[^7]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值