随着自媒体与短视频的兴起,人们有了越来越多的拍摄视频的需求。然而由于手持拍摄、硬件限制等原因,利用手机等普通摄影设备拍摄的视频难免存在视频抖动问题。尤其是开启较高倍数的变焦后,手持拍摄很难拍摄到稳定的视频,极易产生抖动的现象。使用云台、斯坦尼康等外设可以缓解这样的抖动,但是很多时候多带一个外设降低了拍摄视频的便利程度,会使得随时随地的拍摄体验大打折扣。
那么除了换用更专业的摄影设备或使用云台等配件外,是否有其他的方法消除视频抖动呢?其实无需担忧,AI“魔法”可以对抖动的视频进行稳像,达到清晰稳定的效果。视觉增强团队在ModelScope魔搭平台开源了DUT-RAFT视频稳像算法,几行代码即可调用,无需复杂的操作,也无需复杂的输入(如陀螺仪参数等)。ModelScope网页端还上线了体验Demo,在线上传视频,鼠标一点即可畅快体验让视频变稳定的AI“魔法”。
点击https://modelscope.cn/models/damo/cv_dut-raft_video-stabilization_base/summary 即可在线快速体验,ModelScope平台支持多种调用方式,用户可以在网页端上传抖动视频一键体验视频稳像效果;也可以在本地利用几行代码构建Pipeline,轻松调用视频稳像能力;值得一提的是,现在在ModelScope平台绑定阿里云账号,即可拥有零门槛的Notebook在线开发环境,算法、模型自动导入,省去安装环境的麻烦;并可享有长期免费的CPU资源和100小时免费的GPU算力(以官网显示为准)。
借助开源的视频稳像能力,个人视频拍摄者、Vlogger们可以方便地将原本抖动的视频变得稳定,轻松拯救“废片”;一些由于早期拍摄条件限制而抖动的老片、早期影视剧也能够在AI“魔法”的加持下重焕青春。
视频稳像算法基本可以分为视频运动估计和运动平滑两个步骤。然而由于视频抖动成因多种多样,如视差、相机平移、空气波动等,这样复杂的空间变化导致视频运动估计十分困难;同时一些大运动的场景也为运动估计增加了额外的难度。因此对视频进行运动估计并进行平滑,同时还要保证视频清晰度、避免边缘瑕疵并减少裁剪对算法提出了很大的挑战。
一些早期的传统方法依赖手工设计的特征对视频帧进行全图的运动估计,带来了很大的计算量;或是采用单参数的运动模型(如单个仿射变换、单个单应性变化等)来估计视频运动,导致视频运动的估计并不准确。一些文献已经证实了单个单应性变换不足以表示复杂的空间变化运动。另外一些算法需要复杂的额外输入,如陀螺仪参数等硬件参数来辅助运动估计,提升了算法使用的门槛;即使增加了输入,陀螺仪参数也仅能反应相机的旋转变换,并不能处理平移运动,并不能带来非常准确的运动估计。
图1. 从早期传统方法、MeshFlow到DUT的发展历程
MeshFlow构建了空间平滑的稀疏运动场;其运动矢量仅在网格顶点处定义,相比全图的运动估计减少了计算量,能够实时运行;MeshFlow首先检测FAST特征,并利用KLT算法(Kanade-Lucas-Tomasi光流法)进行特征匹配,从而获得匹配特征点的运动矢量。接着MeshFlow在视频帧上定义一个MxN的方形网格,将每一个特征点的运动矢量被转移到其附近对应的网格顶点中。 每个网格顶点可能接受多个运动矢量,MeshFlow使用中值滤波器进行滤波,从而在每一个时刻(一帧)为每个顶点产生一个唯一的运动矢量。 随着时间的推移,网格的每一个顶点收集了不同时刻的运动矢量,MeshFlow再使用自适应路径平滑(PAPS)来对这些运动矢量进行平滑,以达到视频稳像的效果。
图2. MeshFlow的算法流程
MeshFlow取得了不错的视频稳像效果,而DUT继承了MeshFlow的思想,并结合了神经网络的强大表示能力。DUT同样将算法分为运动估计和运动平滑两个阶段,在轨迹估计阶段,DUT首先利用预训练的PWCNet生成光流、RFNet生成关键点,从而获得视频帧中每个关键点处的光流;再利用多单应性估计策略生成初始运动估计,而后使用运动细化网络来优化运动估计生成MxN网格顶点处的运动矢量。与MeshFlow类似,DUT根据时间收集每个网格顶点处的运动矢量来获得基于网格顶点的轨迹。 在轨迹平滑阶段,DUT利用网络来预测动态的平滑内核,从而实现运动平滑。与MeshFlow相似,DUT算法是无监督的,其无需成对的抖动-稳定视频对来进行训练。相比早期的神经网络监督算法,DUT能够避免困难的数据对收集,同时也取得了更好的视频稳像效果。
图3. DUT的算法流程
在DUT-RAFT算法中,DUT算法的几个问题得到了解决。首先是DUT使用预训练的PWCNet来估计光流,其生成的光流不够准确,从而影响了初始运动估计的精度;DUT-RAFT将光流预测模块替换为了较新的RAFT模型,能够更好地生成精确光流,提升运动估计精度。其次,为了适应不同类型的抖动,DUT-RAFT在训练阶段提升了训练分辨率并加入了数据增广,带来了更好的视频稳像效果。此外,为了降低计算成本,DUT算法在小尺寸的图像上进行计算和warp,再将生成的稳定视频帧进行上采样获得原始尺寸的视频帧;这样的逻辑导致稳定后的视频清晰度严重下降,影响了算法的实用性。DUT-RAFT优化了上采样逻辑,使用原图进行warp,从而保持了原始视频的清晰度,使算法能够广泛应用于各种实用场景下。
在AI技术不断发展的当下,我们仍将继续探索视频稳像技术及其在不同场景下的应用;尤其是与AIGC能力相结合,为大家带来能够不断创造优质内容的真正AI“魔法”。
[1] Sun D, Yang X, Liu M Y, et al. Pwc-net: Cnns for optical flow using pyramid, warping, and cost volume[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2018: 8934-8943.
[2] Liu S, Tan P, Yuan L, et al. Meshflow: Minimum latency online video stabilization[C]//Computer Vision–ECCV 2016: 14th European Conference, Amsterdam, The Netherlands, October 11-14, 2016, Proceedings, Part VI 14. Springer International Publishing, 2016: 800-815.
[3] Xu Y, Zhang J, Maybank S J, et al. DUT: learning video stabilization by simply watching unstable videos[J]. IEEE Transactions on Image Processing, 2022, 31: 4306-4320.
[4] Teed Z, Deng J. Raft: Recurrent all-pairs field transforms for optical flow[C]//Computer Vision–ECCV 2020: 16th European Conference, Glasgow, UK, August 23–28, 2020, Proceedings, Part II 16. Springer International Publishing, 2020: 402-419.
[5] Choi J, Kweon I S. Deep iterative frame interpolation for full-frame video stabilization[J]. ACM Transactions on Graphics (TOG), 2020, 39(1): 1-9.