通过 Real-ESRGAN 给图像/视频超分辨率
本文由 High Ping Network
的小伙伴 GenshinMinecraft 进行编撰,首发于 本博客
前言
Real-ESRGAN 是一个开源的用于实用的图像/视频修复工具
我们这次使用的是 Real-ESRGAN-ncnn-vulkan 提供的已编译好的主程序与模型
不管那么多,先看看例子: (例图为开发者 Xintao 的 Github 头像)
原图:
超分修复后: (使用 realesrgan-x4plus
模型超分)
而要想达到上面所看到的效果,仅需一些小东西:
- 一台电脑
- 一张显卡 (核显/独显均可,与超分速度有关)
安装 Real-ESRGAN-ncnn-vulkan
直接前往 Releases 下载最新的对应你系统版本的压缩包
下载后解压,一般会有以下的文件:
如果是 Linux 系统,则应该先使用 chmod +x realesrgan-ncnn-vulkan
来设置可执行权限
在终端执行 realesrgan-ncnn-vulkan
,当看到以下输出即为安装完成
|
|
对图片超分
基础的命令格式:
|
|
对于可选的模型,有以下几个:
realesrgan-x4plus
: 通用模型,建议选择 (时间较长)realesrgan-x4plus-anime
: 动画通用模型,动画建议选择 (时间中等)realesr-animevideov3-x[234]
: 动画模型,当图片较多时可使用,后面数字越大品质越好
一般来说,只需要使用 realesrgan-x4plus
即可
比如,我现在要超分 Input.jpg
图片,输出为 Output.jpg
,我就可以使用:
|
|
等待一会,进度条跑完后即可在当前目录下看见已经超分的 Output.jpg
对视频超分
对于视频,操作也和对图片超分类似,只是把视频的每一帧提取成图片后超分
所以,可能一些大视频需要超分很久很久……
查看帧率
首先,安装 FFmpeg,Linux 用户可通过包管理器直接安装,其他不赘述
再使用 FFmpeg 查看需要超分的视频的帧率:
|
|
其中,下面这行中的 24.92
就是该视频帧率:
|
|
记住它,留着备用
拆分
这一步会将视频内的每一帧提取出来
在同目录新建两个文件夹,分别是 Input
与 Output
随后,拆分该视频:
|
|
超分
对文件夹内所有图片进行超分:
|
|
模型选择列表同上,当视频较长时建议选择较小模型
PS: 你可以添加 -j 参数来进行多线程超分,格式为 -j [加载]:[超分]:保存
,如 -j 8:8:8
耐心等待,有的时候一块好的GPU真的很重要
合并
超分完后,即可合并所有图像为视频文件:
|
|
比如我的命令是:
|
|
随后即可在本地看到超分完的文件了
音频合并 (可选)
在经过拆分后再合并的步骤下,视频原本的音频是没有的了,我们需要提取出源视频音频并合并到新视频:
|
|
成果
本次示例超分视频为 《朗德海花园场景》(世界上第一部电影)
原视频:
超分后:
小结
不管怎么说,超分都是有显著效果的
如果你觉得效果不够炸裂,也可以多次超分 (超分出 10GB 一张图也不是不行)
就这样吧
欢迎加入 High Ping 大家庭: