宝塔服务器面板,一键全能部署及管理,送你10850元礼包,点我领取

说到神经网络,你第一个想到的什么,有不少人第一个想到的应该是前段时间大火的换脸 APP「ZAO」,神经网络在图片领域堪称「魔法」的应用第一次展现在每一个普通用户面前。

不少用户在使用过 ZAO 后,对神经网络产生了「技术恐惧」,担心 ZAO 会对自己的肖像权产生侵害,ZAO 也因为种种原因迅速下架,成为技术应用的「负面典型」。

但神经网络还有另一种用法,那就是对图像进行增强。

不止换脸,神经网络还能让你看到30年前的4K电影-编程部落

▲ 1895年的电影火车进站》图片来自:wiki

神经网络翻新老电影

最近,国外一个 YouTuber 发布了通过神经网络增强的1895年拍摄的纪录片《火车进站》,整部电影只有45秒长度,由路易·卢米埃和奥古斯特·卢米埃拍摄于法国一沿海城市。

▲ 经过神经网络增强的《火车进站》电影

传说放映到火车驶向镜头的时候,大量观众惊恐的从剧院跑出,展现了当时人们对新技术的好奇和恐惧。当然,这些往事都已经成为了都市传说。

不过由「新技术」的神经网络对这部电影进行翻新,也有着深远的意义。

1895年拍摄的《火车进站》采用35mm 格式胶片制作,由于当时的放映机由手摇进行驱动,我们可以粗略的认为其原始帧率在16帧到24帧之间。

▲ 1895年拍摄的《火车进站》原片

由于当时的胶片技术尚未成熟,我们可以看到画面景物都是比较模糊的,火车在驶来的同时还带有明显的拖影。

不止换脸,神经网络还能让你看到30年前的4K电影-编程部落

但经过了神经网络的画面分辨率增强和插帧之后,这部老电影获得了4K ~ 60fps 的画质。如果不是电影黑白的画面和胶片电影独有的画面抖动,画面流畅度和清晰度几乎可以与现在的智能手机相媲美。

是什么让神经网络在图像增强和插帧上有着这样的效果呢?

我们知道,数字视频的清晰度一般由分辨率和帧率决定(暂且不考虑影响图像压缩质量的码率)。神经网络对视频的增强,也主要集中在这两种参数上。

分辨率增强

首先我们来谈谈分辨率增强,想要将一张低分辨率的图片变成高分辨率的图片,我们就需要猜测放大产生的未知像素。通常情况下,我们会采用某种插值算法进行计算,在图像边缘的模糊和锯齿间获得平衡,这种计算通常无法增加图像细节,即使放大了图像,依旧显得很模糊。

不止换脸,神经网络还能让你看到30年前的4K电影-编程部落

▲ waifu2x SRCNN 算法与传统算法的对比

神经网络在增强分辨率上就有着独到的优势,或许你之前曾经听说过一个软件 waifu2x ,动漫爱好者们经常用它来放大动漫插图。当然,它同样可以用作照片放大。

waifu2x 的核心方法就是通过机器学习,训练一个端到端的网络,使用低分辨率的图像作为输入得到对应的高分辨率结果图像,最后得到的结果在图像的锯齿与模糊程度有较好表现,其训练的原理类似于 FCN 模型。

不止换脸,神经网络还能让你看到30年前的4K电影-编程部落

▲ 不同算法在视频分辨率增加上的效果 图片来自:download.co.jp

在效果上,waifu2x 的 SRCNN(超分辨率卷积神经网络)要好于传统的双三次插值算法。

当然,waifu2x 的算法仅能在静态图片上使用。不过方法都是相同的,madvr 中放大视频分辨率的 ngu 算法也是类似的原理。

视频插帧

对于视频插帧来说,神经网络也有自己的用武之地,之前英伟达发布了一个叫做 Super SloMo 的神经网络,能通过联合建模的运动解释和遮挡推理配合光流算法生成中间帧。

不止换脸,神经网络还能让你看到30年前的4K电影-编程部落

这种技术能将原本30帧的视频放慢到240帧,并在其中添加画面的运动细节。

不止换脸,神经网络还能让你看到30年前的4K电影-编程部落