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

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

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

用 Real-ESRGAN 拯救座机画质,自制高清版动漫资源
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 拯救座机画质,自制高清版动漫资源
Real-ESRGAN 运用和 ESRGAN 完全一致的结构

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

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

用 Real-ESRGAN 拯救座机画质,自制高清版动漫资源
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="https://juejin.im/post/7205843311340732473/{video_url}"></video>""")
# 输入视频
show_video('inputs/video/onepiece_demo.mp4')
# 增强后的视频
show_video('results/onepiece_demo_outx2.mp4')

完好教程

详细处理作用及教程的视频讲解,点击查看

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

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

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

—— 完 ——