要制作慢动作视频就必须要用死贵的高速摄像机?
NO! 可以用 AI。
看到没,这就是 AI 完成的效果!
虽然和真正的高速摄像机至少上千的帧数没法比,但它完全可以做到每秒 53 帧的视频轻轻松松变成 960 帧,没有伪影也没有噪声。
很多网友看完效果都按耐不住了:“非常想要一个深入的教程”、“能不能出一个应用程序?”……
而这项酷毙的研究成果也成功入选 CVPR 2021,研究人员来自华为苏黎世研究中心和苏黎世大学。
当然,也用了一个特殊的摄像头
实现这一效果没有采用通过视频光流来猜测粒子运动的经典思想,而是先用了两个摄像头来捕捉画面。
一个就是普通摄像头,记录低帧(20-60FPS)真实画面;
要想达到慢动作效果,起码得每秒 300 张画面才够;20 帧的视频给的信息太少了,没法直接合成慢动作。
怎么办?靠另一个特殊的摄像头 ——
也就是事件相机(也称为神经形态相机),它使用新型的传感器,拍摄的是“事件”,也就是记录像素亮度变化。
事件相机还比较新兴,实验室里有很多,市场上还没有大规模问世,报价有 2000 美元一个或更高。
由于该相机记录的信息经过压缩表示,因此可以较低的清晰度、高速率进行拍摄,也就是牺牲图像质量换取更多图像信息。
最终的信息量足够 AI 理解粒子的运动,方便后续插值。
▲ 问号部分即为我们要的插帧
这俩相机同步拍摄到的内容合起来就是这样的:
拍好以后,就可以使用机器学习来最大化地利用这两种相机的信息进行插帧了。
研究人员在这里提出的 AI 模型叫做 Time Lens,一共分为四块。
首先,将俩相机拍到的帧信息和事件信息发送到前两个模块:基于变形(warp)的插值模块和合成插值模块。
基于变形的插值模块利用 U 形网络将运动转换为光流表示,然后将事件转换成真实的帧。
合成插值模块也是利用 U 形网络将事件置于两个帧之间,并直接为每个事件生成一个新的可能帧(现在就为同一事件生成两个帧了)。
该模块可以很好地处理帧之间出现的新对象以及光线变化(比如水反射啥的)。
不过到这里的话,合成的视频可能会有一个问题:出现噪声。
这时,第三个模块的作用就派上用场了,它使用第二个插值合成模块中的新信息来细化第一个模块。
也就是提取同一事件的两个生成帧中最有价值的信息,进行变形优化 —— 再次使用 U-net 网络生成事件的第三个帧版本。
最后,这三个候选帧被输入到一个基于注意力的平均模块。
该模块采用三帧表示中最好的部分将它们组成最终帧。
现在,有了帧之间第一个事件的高清帧后,再对事件相机提供的所有事件重复此过程,就能生成最终我们想要的结果了。
这就是使用 AI 创建逼真的慢动作视频的方法。怎么样?
附一个摄像机的参数图:
取得了智能手机和其他模型无法达到的效果
你说这个 AI 模型的效果好,那得对比一下才知道。
比如上面这个与最优秀的插值模型之一的 DAIN(入选 CVPR 19)的对比,谁好谁坏效果就很明显了。
而且它的插值方法的计算复杂度也是最优的:图像分辨率为 640×480,在研究人员的 GPU 上进行单个插值时,DAIN 模型需要 878 毫秒,该 AI 则只需要 138 毫秒。
另外,虽然不建议,用该模型输入的视频即使只有 5 帧,也可以生成慢动作。
和其他模型的对比实验数据,大家感兴趣的可以查看论文。
最后,作者在介绍成果的视频里也再次说道,不和昂贵的专业设备相比,该模型至少取得了智能手机和其他模型无法达到的效果。
作者介绍
一作 Stepan Tulyakov,华为苏黎世研究中心机器学习研究员。
共同一作 Daniel Gehrig,苏黎世大学博士生。苏黎世联邦理工大学机械工程硕士。