查看原文
其他

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

Trisha HyperAI超神经 2023-12-25

By 超神经


内容一览:Real-ESRGAN 是 ESRGAN 升级之作,主要有三点创新:提出高阶退化过程模拟实际图像退化,使用光谱归一化 U-Net 鉴别器增加鉴别器的能力,以及使用纯合成数据进行训练。


关键词:Real-ESRGAN   超分辨率   视频修复


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


每每经典的动漫视频被 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 上获得荣誉论文提名奖。


代码详见:

https://github.com/xinntao/Real-ESRGAN/tags


论文链接:

https://arxiv.org/abs/2107.10833


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


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


完整教程,可访问

https://openbayes.com/console/open-tutorials/containers/8VDP1mMuWXu


 第 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 HTMLfrom 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')


完整教程传送门:

https://openbayes.com/console/open-tutorials/containers/8VDP1mMuWXu


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



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


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


参考链接:

[1] https://zhuanlan.zhihu.com/p/431612275

[2] https://zhuanlan.zhihu.com/p/558893171




—— 完 ——

扫描二维码,加入讨论群

获得更多优质数据集

了解人工智能落地应用

关注顶会&论文

回复「读者」了解更多

更多精彩内容(点击图片阅读)


继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存