点击上方“AI算法与图像处理”,选择加"星标"或“置顶”
重磅干货,第一时间送达
鱼羊 发自 凹非寺
来源:量子位(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
个人微信(如果没有备注不拉群!)
请注明:
地区+学校/企业+研究方向+暱称
下载1:何恺明顶会分享
在「AI算法与图像处理」公众号后台回复:何恺明,即可下载。总共有6份PDF,涉及 ResNet、Mask RCNN等经典工作的总结分析
下载2:终身受益的编程指南:Google编程风格指南
在「AI算法与图像处理」公众号后台回复:c++,即可下载。历经十年考验,最权威的编程规范!
下载3 CVPR2021
在「AI算法与图像处理」公众号后台回复:
CVPR
,即可下载1467篇CVPR 2020论文 和 CVPR 2021 最新论文
点亮 ,告诉大家你也在看
本文分享自微信公众号 - AI算法与图像处理(AI_study)。
如有侵权,请联系 [email protected] 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。