前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用 Real-ESRGAN 拯救座机画质,自制高清版动漫资源

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

作者头像
数据派THU
发布2023-03-29 11:01:07
3620
发布2023-03-29 11:01:07
举报
文章被收录于专栏:数据派THU
代码语言:javascript
复制
本文约1200字,建议阅读8分钟Real-ESRGAN 是 ESRGAN 升级之作,主要有三点创新:提出高阶退化过程模拟实际图像退化,使用光谱归一化 U-Net 鉴别器增加鉴别器的能力,以及使用纯合成数据进行训练。

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

每每经典的动漫视频被 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 个重复的退化过程,每个过程都遵循经典模型: 

代码语言:javascript
复制
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 步 环境准备 

代码语言:javascript
复制
# !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 步 推理 

代码语言:javascript
复制
# ! 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 步 可视化 

代码语言:javascript
复制
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')
代码语言:javascript
复制
# 增强后的视频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

编辑:黄继彦

校对:林亦霖

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-03-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据派THU 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档