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

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


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

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

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

image.png

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 倍的下采样操作。

image.png

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

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

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

image.png

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

完整教程

具体处理效果及教程的视频讲解,点击查看

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

相关文章
|
算法 网络安全 数据安全/隐私保护
|
8月前
|
机器学习/深度学习 编解码 人工智能
《深度揭秘:生成对抗网络如何重塑遥感图像分析精度》
生成对抗网络(GAN)由生成器和判别器组成,通过对抗训练生成逼真图像。在遥感图像分析中,GAN可扩充数据集、提升超分辨率、去噪增强及提高语义分割精度,有效应对高分辨率、多光谱等挑战,显著提升分类和检测任务的准确性。研究案例表明,GAN使分类精度提高15%以上,并实现4倍分辨率提升。未来,GAN有望进一步优化算法和架构,结合其他AI技术,推动遥感图像分析的创新与突破。
144 2
|
12月前
|
JavaScript 应用服务中间件 nginx
nginx部署vue项目
本文介绍了将Vue项目部署到Nginx的步骤,包括构建Vue项目、上传dist文件夹到服务器、安装Nginx、配置Nginx代理静态文件以及重启Nginx,确保了Vue应用可以通过域名或IP地址访问。
629 1
|
10月前
|
数据挖掘 vr&ar C++
让UE自动运行Python脚本:实现与实例解析
本文介绍如何配置Unreal Engine(UE)以自动运行Python脚本,提高开发效率。通过安装Python、配置UE环境及使用第三方插件,实现Python与UE的集成。结合蓝图和C++示例,展示自动化任务处理、关卡生成及数据分析等应用场景。
919 5
|
监控 Android开发 数据安全/隐私保护
安卓kotlin JetPack Compose 实现摄像头监控画面变化并录制视频
在这个示例中,开发者正在使用Kotlin和Jetpack Compose构建一个Android应用程序,该程序 能够通过手机后置主摄像头录制视频、检测画面差异、实时预览并将视频上传至FTP服务器的Android应用
|
JSON 安全 Swift
【Swift开发专栏】Swift中的JSON解析与处理
【4月更文挑战第30天】本文介绍了Swift中的JSON解析与处理。首先,讲解了JSON的基础,包括其键值对格式和在Swift中的解析与序列化方法。接着,展示了如何使用`Codable`协议简化JSON操作,以及处理复杂结构的示例。通过这些内容,读者能掌握在Swift中高效地处理JSON数据的方法。
431 0
|
人工智能 物联网 数据处理
C语言在嵌入式系统中的应用
该文探讨了C语言在嵌入式系统中的应用,强调其优势,如可移植性、高效性、灵活性及社区支持,并列举了在RTOS开发、驱动程序、通信协议实现和简单GUI开发中的应用场景。文中通过LED闪烁程序示例展示了C语言如何控制硬件。结论指出,C语言在嵌入式系统中扮演重要角色,随着技术发展,开发者需不断学习以适应新需求。
|
JSON 数据格式 Python
Python三行代码实现json转Excel
最近重保,经常需要通过Excel上报威胁事件。安全设备的告警很多都是json格式的,就需要将json转成Excel。 用Python将json转成excel也就三行代码的事,先将json串导入形成字典对象,再通过pandas转成DataFrame直接输出excel。
1314 0
Python三行代码实现json转Excel
|
前端开发 Java 应用服务中间件
基于springboot+mybatisplus+vue-科技项目评审及专家库管理系统
基于springboot+mybatisplus+vue-科技项目评审及专家库管理系统
452 0
基于springboot+mybatisplus+vue-科技项目评审及专家库管理系统
|
IDE NoSQL Cloud Native
研发与环境的那些事儿
研发与环境的那些事儿
研发与环境的那些事儿