首页 文章详情

如何用AI实现视频防抖?台湾大学和谷歌提出NeRViS:无需裁剪的全帧视频稳定算法

公众号CVer | 439 2021-02-14 00:14 0 0 0
UniSMS (合一短信)

点击上方“CVer”,选择加"星标"置顶

重磅干货,第一时间送达

鱼羊 发自 凹非寺
来源:量子位(QbitAI)

右边的画面,是不是比左边的画面看上去稳定许多?

这样的效果,大家可能并不陌生。现在,不少手机厂商都为自家手机配备了类似的防抖算法,为你拍摄生活Vlog提供便利。

不过,目前的智能手机在面对复杂的抖动时,主要是通过电子防抖(EIS)的方式来实现画面的稳定。

也就是说,需要对画面的边界进行裁剪,通过“后期处理”,实现画面的稳定:

图片来自TDK

而现在,一项来自台湾大学、谷歌、弗吉尼亚理工大学和加州大学默塞德分校等研究机构的论文,提出了一种无需裁剪的全帧视频稳定算法

NeRViS

Neural Re-rendering for Full-frame Video Stabilization

论文:https://arxiv.org/abs/2102.06205

项目:https://alex04072000.github.io/NeRViS

代码:https://github.com/alex04072000/NeRViS

即使是奔跑中拍摄的画面,也能稳定不少。

那么,这只AI具体是如何做到防抖的?

方法原理

该方法的核心思想,是融合视频中多个相邻帧的信息,来呈现无需裁剪的完整稳定视频。

具体而言,对于输入视频,首先对每一帧图像特征进行编码,并在目标时间戳处将相邻帧翘曲至虚拟相机空间。

这里面主要用到了目标帧到关键帧的翘曲场,以及从关键帧到相邻帧的估计光流两个信息,这样,就可以通过链接流向量,计算目标帧到相邻帧的翘曲场。

然后,融合这些特征。

传统的全景图像拼接算法通常是在图像级别进行融合。这样做的缺点在于,如果估计光流不可靠,就会产生伪影。

而将图像编码为CNN特征,再在特征空间中进行融合的方法更具鲁棒性,但又往往会产生过于模糊的图像(如下图b)。

于是,研究人员提出结合两种策略的优点:首先将图像编码为CNN特征,然后从多个帧中融合翘曲特征。

对于每个源帧,研究人员将融合特征图和各个翘曲特征一起,解码成输出帧和相关的置信度图。

最后,通过使用生成图像的加权平均,来产生最终的输出帧。

实验结果

研究人员在NUS数据集和自拍视频数据集上验证了该方法。

标红的为最佳结果

在上表中,DIFRINT方法同样是无需裁剪的方法。虽然该方法在失真值(distortion value)上略优于本文方法,但如下图所示,DIFRINT的结果中有明显的局部失真。

总体而言,本文提出的方法优于此前的SOTA方法。

不过,论文也谈到了该方法的局限性,比如对卷帘式快门无效;如果视频帧间亮度变化很大,会导致明显的接缝;预处理阶段的平滑方法可能会导致失真等。

传送门

根据作者介绍,该项目即将开源,如果感兴趣,不妨先mark一下~

代码地址:

https://github.com/alex04072000/NeRViS


CV资源下载


后台回复:CVPR2020,即可下载代码开源的论文合集

后台回复:ECCV2020,即可下载代码开源的论文合集

后台回复:YOLO,即可下载YOLOv4论文和代码

后台回复:Transformer综述,即可下载两个最新的视觉Transformer综述PDF,肝起来!


重磅!CVer-细分垂直交流群成立


扫码添加CVer助手,可申请加入CVer-细分垂直方向 微信交流群,可申请加入CVer大群,细分方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、Transformer、PyTorch和TensorFlow等群。


一定要备注:研究方向+地点+学校/公司+昵称(如目标检测+上海+上交+卡卡),根据格式备注,才能通过且邀请进群


▲长按加微信群

▲点击上方卡片,关注CVer公众号

整理不易,请给CVer点赞和在看

good-icon 0
favorite-icon 0
收藏
回复数量: 0
    暂无评论~~
    Ctrl+Enter