来源:雷锋网
作者:蒋宝尚
最近,国外一个 YouTuber 发布了通过神经网络增强的 1895 年拍摄的纪录片《火车进站》,整部电影只有 45 秒长度,由路易 · 卢米埃和奥古斯特 · 卢米埃拍摄于法国一沿海城市。
这部电影采用 35mm 格式胶片制作,由于当时的放映机由手摇进行驱动,其原始帧率大概在 16 帧到 24 帧之间。
由于当时的胶片技术尚未成熟,我们可以看到画面景物都是比较模糊的,火车在驶来的同时还带有明显的拖影。但经过了神经网络的画面分辨率增强和插帧之后,这部老电影获得了 4K ~ 60fps 的画质。
如果不是电影黑白的画面和胶片电影独有的画面抖动,画面流畅度和清晰度几乎可以与现在的智能手机相媲美。这部影片的修复工作是由一位名叫 Denis Shiryaev 的男子完成的,其所使用的是 Topaz 实验室的 Gigapixel AI 以及 DAIN image 图像编辑应用程序。在修复过程中,他不仅将镜头提高到 4K,还将帧率提高到每秒 60 帧。
Gigapixel AI 官网截图
《火车进站》这部短片原始原片质量非常模糊,分辨率非常低。Shiryaev 使用 Gigapixel AI 渲染后,自己为这部电影加上声音后,观影体验竟然完全符合现在的标准。
根据官网介绍,Gigapixel AI 软件内嵌专有的插值算法,在分析图像的同时能够识别图像的细节和结构,即使将图像放大 600%,它也可以使图像更清晰。值得一提的是,电影中的图像有的是通过 GAN 生成的。
另一方面, DAIN (Depth-Aware Video Frame Interpolation)可对电影中的帧进行预测,并将其插入现有视频之中。换句话说, DAIN 分析并映射视频剪辑,然后在现有图像之间插入生成的填充图像。为了在这段 1896 年的视频中达到与 4K 同样的效果,Shiryaev 为电影填充了足够多图像,从而将“图片放映”提高到了每秒 60 帧。
因此,DAIN 每秒会自动生成 36 个图像然后添加到电影中。除此之外,基于同样的 AI 技术,神经网络可以将一堆彩色照片转换为黑白,然后再训练它重建彩色原稿,这样就可以把黑白电影,转换成彩色。如下视频展示的那样。
DAIN 基于深度学习的视频插帧技术
将百年老片修成 4K 大片,深度学习技术出了不少力,更为具体的是视频插帧技术在深度学习里的体现。当然,深度感知视频帧内插(Depth-Aware Video Frame Interpolation)也不是最近才出现的技术。早在 2019 年,此项技术的相关论文就被收录到 CVPR 2019,相关算法也已经开源在了 Github 上。
论文下载地址:https://arxiv.org/pdf/1904.00830.pdfGithub
地址:https://github.com/baowenbo/
DAIN 这篇文章的第一作者 Bao Wenbo,是上海交通大学电子信息与电气工程学院的博士生。具体工作是基于其在 2018 年发表的论文 MEMC-Net 做的改进。
具体效果类似于英伟达开源的 Super SloMo,即能够从普通的视频“脑补”出高帧率的画面,从 30fps 插帧到 240fps,即使放慢 8 倍也不会感到卡顿。
而这个新的插帧算法 DAIN 比英伟达的算法效果更清晰、帧率更高,可以把 30fps 的进一步插帧到 480fps。具体到算法层面,研究人员提出了一种通过探索深度信息来检测遮挡的方法。
一个深度感知光流投影层来合成中间流,中间流对较远的对象进行采样。此外,学习分层功能以从相邻像素收集上下文信息。更为具体的如上图所示,整个算法分为光流、深度、上下文特征、插值 kernel、框架合成这几个部分。
在光流估计模块,采用 PWC-NET 光流估计模型,由于在没有监督的情况下学习光流是非常困难的,所以作者从预先训练好的 PWC-Net 中初始化光流估计网络。
在深度部分,不同于过去的网络模型采用的是计算平均值的方式,为了处理处理遮挡区域的问题,此作者提出了一种使用深度辅助来计算 tt 时刻的光流融合结果。融合的权重使用的是深度值的倒数,简单的来说就是深度值越大的像素(距离越远的像素),在光流合成的时候所占的权重越小。
上下文特征部分,作者提出,在 CtxSynNet 论文中已经证明上下文信息(contextual feature)的加入对视频插值有一定帮助。所以在这篇论文中,作者基于 Residual block 自己设计了一个提取上下文特征的网络,并从头开始训练。
插值 kernel 自适应 warping layer 部分,主要思想是通过光流找到像素的新位置后,将其新位置周围 4x4 范围内与一个特殊的 kernel 相乘后作为该点的像素值。这个 kernel 由两部分相乘得出,一部分是我们图像缩放时常用的双线性插值,其中每个位置的权重只与坐标距离有关,另一部分也是一个内插值 kernel,是通过网络学习得出的。
框架合成。为了生成最终的输出帧,作者构建了一个帧合成网络,该网络由 3 个个残差块组成。并将扭曲的输入 warped 深度图、warped 上下文特征、warped 和插值核连接起来作为帧合成网络的输入。此外,还对两个 warped 帧进行线性混合,并强制网络预测地面真实帧和混合帧之间的残差。
损失函数是真实帧和混合帧之间的残差,这种函数名为 Charbonnier Loss,是一种 L1 loss 的变种,只不过加了一个正则项。所采用的训练数据集是 Vimeo90K,其有 51312 个三元组用于训练,其中每个三元组包含 3 个连续的视频帧,分辨率为 256×448 像素。
具体在训练过程,作者用网络来预测每个三元组的中间帧 ( 即,t=0.5 ) 。在测试时,模型能生成任意中间帧。另外,还通过水平和垂直翻转以及颠倒三元组的时间顺序来增加训练数据。
在具体的训练策略中,作者使用 AdaMax 优化网络,分别设置 β1 and β2 为 0.9 和 0.999,并将核估计、上下文提取和帧合成网络的初始学习率设置为 1e−4。由于流估计和深度估计网络都是从预先训练的模型初始化而来的,因此分别使用较小的学习率 1e−6 和 1e−7。
另外还对整个模型进行 30 个 epoch 的联合训练,然后将每个网络的学习率降低 0.2 倍,并针对另外 10 个 epoch 对整个模型进行微调。值得一提的是,作者在 NVIDIA Titan X ( Pascal ) GPU 卡上训练模型,大约用了 5 天达到收敛状态。
关于实验结果,放两张在不同数据集上与近年论文的优劣,这里不做过多分析。总的来说,作者提出了一种 depth-aware 视频插帧方案,并尝试显式的解决遮挡区域的问题。借用 PWC 光流 coarse-to-fine 的思路,尝试解决 large motions 的问题。使用学习的分层特征和深度作为上下文信息,更好的合成中间帧。那么,这种类型的深度学习技术在具体的电影修复中能发挥什么样的作用呢?2019 年的几部 AI 修复的影片或许能给我们答案。
开国大典、决胜时刻皆是 AI 修复
去年是建国 70 周年,除了气势恢宏的阅兵给人们留下了深刻的印象之外,10 月下旬上映的《开国大典》也着实让人感动了一把,这部电影展现了三次战役胜利到开国大典的整个历史过程。
这部电影在 1989 年 9 月 21 日初映,全片分为 18 卷,共 164 分钟。由于当时的拍摄条件,重新上映必须修复画质。在修复过程中,制作方最大化地利用 DRS 修复系统的功能,把自动化修复与人工修复结合。
通过 AI 算法,老胶片存在的收缩、卷曲等问题都可以得到解决,但是胶片的撕裂、划痕等都需要专业的修复师一帧一帧地进行修补。但是胶片的撕裂、划痕等都需要专业的修复师一帧一帧地进行修补。
除了《开国大典》,9 月份上映的《决胜时刻》也是采用了 AI 技术,据电影制片方爆料,这段材料来自于俄罗斯的一段彩色纪录片,但由于年代久远,画质模糊,色彩失真。而经过了复杂的 4K 修复工作之后,最终呈现出这般极致的画面体验。
另外,《厉害了,我的国》就是中影电影数字制作基地数字修复中心主任肖搏及其团队利用 AI 修复进行的一次尝试。
为了更顺利地进行修复工作,肖搏团队开发了“中影 · 神思”人工智能图像处理系统,靠计算机大数据深度学习算法,在四个月内修复增强了 30 万帧图像。利用“中影 · 神思”,修复一部电影的时间可以缩短四分之三,成本减少了一半。
而爱奇艺开发 ZoomAI 也是一款基于深度学习的视频修复技术,此技术内部由多个模块组成,每个模块负责一种或者几种画质增强的方向,比如超分辨率,去除噪声,锐化,色彩增强等等。
每个模块都是由一个或者多个深度学习模型组成。综上所述,利用卷积神经网络和最先进的图像识别技术,让经典老电影重现光彩已经不是遥不可及的事情。与其他方法相比,通过基于深度学习的技术来修复电影可以节省时间和精力。经典电影的修复和数字化也能使人们能够更方便地获得更多文化产品。
参考文献
https://towardsdatascience.com/neural-networks-help-upscale-conversion-of-famous-1896-video-to-4k-quality-d2c3617310fehttps://cloud.tencent.com/developer/article/1507729https://baijiahao.baidu.com/s?id=1657837274349020022&wfr=spider&for=pc