当前位置: 华文星空 > 新闻

4060显卡用AI修复老视频变成4K教程

2023-12-01新闻

前言

最近我扒拉出来我之前小时候的一些影像资料,在我的4K屏幕上看还是很糊的,毕竟当时也没有太好的保存手段。

老照片/视频记录着曾经的岁月,承载着美好的回忆与厚重的历史。但由于年代久远,旧的影像素材往往存在模糊、缺色、跳帧等问题。相片或者视频什么的分辨率最多也就是720P,本来我自诩一个多媒体通信专业毕业的人,专业学图像与视频的,修复一个老视频老照片,把它变成4K分辨率,应该是毫无问题,但是事实啪啪啪打了我的脸,我自己要去以像素插值的方式去修复的话,那我这辈子的时间都要耗在上面了。

所以作为半个AI从业者,我就开始琢磨一些更方便的途径去修复老视频,折腾了差不多一个月之后我终于全部搞定了,现在就过来写个教程给大家当参考。

首先介绍一下我的主机配置:13700K加技嘉4060 8G的显卡,然后配了64G的内存。

其实如果你只是想修复旧图片的话,老旧的1080Ti 11G也是可以的,我已经帮你们试过了,只要是显存大于4G的N卡都是可以完美操作的。

图片修复教程

如果你有Python编程基础的话,你完全可以跟我一样在某代码网站上直接自己配置PaddleGAN,包括 图片上色、视频上色、图片分辨率提升、视频分辨率提升,以及 视频流畅度提升(提高视频播放流畅度)三大功能。

这个动图就是之前2021年时候这个项目修复的老北京城的视频,通过AI模型把之前的黑白低分辨率低码率的视频通过自动上色,图像插值提升分辨率,视频插帧提升流畅度等方式变成了彩色高分辨率高码率的流畅的现代视频。

这个已经是2021年的技术了,经过两年的迭代,其实有更多的开源技术给了我们更多的选择。

比如现在我选的就是Real-ESRGAN,有自己改代码用命令行的版本,也有exe可执行文件的版本,完美照顾到所有人的需求。

这个模型是做的4倍超分辨率,也有一定的几率失败。

但是看他给的示例图我就觉得还很不错,基本上都是以低分辨率的图为案例去做,然后以高分辨率的图作为输出,成像质量相当高。

Real-ESRGAN里面给了五个训练好的模型,有默认的4倍分辨率模型,也有realesrgan-x4plus-anime(针对动漫插画图像优化,有更小的体积)和realesr-animevideov3 (针对动漫视频)。

我首先试了一下我笔记本上的1650Max-Q的性能,这个显存只有4GB,勉强能达到修复的最低要求。后来试了一下我台式机上的技嘉4060,这个就丝滑流畅了。

这个也能跑,一张PNG图一秒不到就跑完了。

我随便找了一张图跑了一下修复,4倍分辨率修复的图很明显比修复之前清晰很多。

视频修复教程

视频部分修复教程其实相对复杂一点,简单来说就是把视频文件变成图片文件,然后对每个图片文件进行4倍分辨率修复,最后把修复好的图片文件再合成视频文件。

所以视频需要使用到ffmpeg进行视频拆分处理,至于ffmpeg是怎么装的,可以参考别的教程,我就暂时不细写了。

先创建两个目录用来存放拆分和处理的图片帧。

再看看demo视频文件里面的基本参数,视频的分辨率就是老照片的感觉。

首先利用ffmpeg把视频分割成不同的图片文件:ffmpeg -i onepiece_demo.mp4 -qscale:v 1 -qmin 1 -qmax 1 -vsync 0 tmp_frames/framed.jpg

上面就是执行后tmp_frames目录产生了拆分后的图片帧,相对来说还是挺粗糙的。

下一步就是执行命令行对所有的图片帧进行4倍分辨率修复:realesrgan-ncnn-vulkan.exe -i tmp_frames -o out_frames -n realesr-animevideov3 -s 2 -f jpg

这一步执行的时间会特别长,建议大家用一下40系显卡,我后面会放出来我用不同的N卡修复同一段视频的时间对比。

再执行一下命令行:ffmpeg -i out_frames/framed.jpg -i onepiece_demo.mp4 -map 0:v:0 -map 1:a:0 -c:a copy -c:v libx264 -r 23.98 -pix_fmt yuv420p output_w_audio.mp4

将out_frames内的图片压缩为视频,看一下最后的视频质量,可以看出清晰度和分辨率也有了不小的提高。

不同显卡修复视频的性能对比

我尝试对比了一下笔记本的1650Max-Q的显卡,1080Ti的显卡,以及4060的显卡,居然还是最新款的4060最快。

整个视频修复需要修复的图片数量是181张图,视频长度是7秒,1650Max-Q的单张修复时间是1.2s,总修复时间是3.62分钟,1080Ti的单张修复时间是0.76s,总修复时间是2.29分钟,4060的单张修复时间是0.44s,总修复时间是1.3分钟。

也就是说要想修复得快一点,还是要买新款的40系显卡。7s左右的视频修复时间差不多是一分钟,如果视频长度拉到10min,那么用老显卡的修复时间就是196分钟,用新的4060的卡修复时间就是111分钟,足足能节约一半多的时间下来,并且修复的视频时间长度越长,节约的时间就越多。

结语

科技改变生活,也改变生产力,之前很多历史图片和视频都是低分辨率的,对这类资料的修复是需要花费大量的时间精力的,之前需要专业人士花费大量时间和精力去处理的事情,现在只需要一张40系的显卡加一点电费,对此我只有一句话想说:感谢科技的发展。