视频防抖

1. 概述

该文章总结了一些视频防抖技术。点播、直播行业的蓬勃发展,使用户生产视频(UGC)逐渐替代了专家生产和平台生产的方式,成为了主流。由于广大用户不可能全都具备专业素质和专业器材,其产出的视频往往质量较差,最明显的特征之一就是存在抖动。视频防抖有很多种技术,各有优劣,主流的目前分为三种:

1.1. 电子图像稳定(Electronic Image Stabilization,EIS)

俗称电子防抖,是通过软件算法实现防抖的。其技术运作原理是通过加速度传感器和陀螺仪模块侦测手机抖动的幅度,从而来动态调节整ISO、快门以及成像算法来做模糊修正。

  • 优点:成本低
  • 缺点:画面会被裁切,牺牲图像分辨率

1.2. 光学图像稳定(Optical Image Stabilization,OIS)

俗称光学防抖,是通过处理器、陀螺仪和相机防抖模组之间的配合,在拍照抖动时用以驱动防抖组件快速向抖动的相反方向移动镜头模组,由此来抵消发生的抖动,进而实现最终的稳定成像。

  • 优点:画面不会被裁切,原生画质图像效果最好
  • 缺点:成本较高、镜头非常容易损坏、镜头无法做小

1.3. 混合图像稳定(Hybrid Image Stabilization,HIS)

俗称混合防抖,结合了EIS和OIS,是智能手机上的综合防抖技术,集OIS和EIS的所有优点于一身,与其他两种技术相比,防抖能力大幅提升,对有效的HDR和夜间拍摄提供了极好的支持。

目前,HIS混合防抖技术已在谷歌的Pixel系列、三星Galaxy S21 5G以及iPhone11 Pro Max、iPhone12 Pro Max等高端iPhone系列上使用。

  • 优点:非常好的防抖,适合需要高曝光的拍摄功能。
  • 缺点:需要在光学防抖(OIS)和电子防抖(EIS)之间进行优化,成本高。

1.4. 人工智能图像稳定(AI Image Stabilization,AIS)

俗称AI防抖,是一种基于人工智能的图像防抖技术,可以在相机拍摄过程中,减少因为手抖动造成的画面模糊,获得更加稳定,清晰的画面。即使在拍摄视频或者拍摄夜景时,也可取得良好的防抖效果。

  • 优点:健壮性可以做到很强
  • 缺点:性能低、尚未普及

2. 手机防抖调研

2.1. 参考文章

2.2. 详情

型号 类型 主打特色 硬件介绍
iphone 14 PM OIS 1、后摄:4800万像素;主摄:第二代传感器位移式光学图像防抖功能,1200万像素;2倍长焦:第二代传感器位移式光学图像防抖功能,1200万像素;3倍长焦:光学图像防抖功能。2、前摄:影院级视频防抖功能 (4K、1080p 和 720p)。3、录像:第二代传感器位移式视频光学图像防抖功能 (主摄) 双摄像头视频光学图像防抖功能 (主摄和长焦) 将传感器固定在通过电磁效应平行滑动的平台上,利用电磁的迟滞性使传感器在短时间内固定不动,达到防抖的目的。不过,苹果iPhone上的传感器位移式防抖为双轴,仅可抵消X、Y两个反向的抖动,相比目前高端无反相机配备的五轴防抖,有一定的局限性。
huawei mate 50 pro OIS 1、后摄 5000 万像素超光变摄像头(F1.4-F4 光圈,OIS 光学防抖)6400 万像素潜望式长焦摄像头(F3.5 光圈,OIS 光学防抖)
vivo x80 pro HIS 微云台防抖+虚化云台适配算法+人像算法,支持标准防抖(4K)、超级防抖(1080p)、360度地平线防抖。 搭载的微云台,将摄像头模组做成一个整体,剧烈抖动下,镜片和CMOS传感器始终保持相对静止。沿用五轴VIS视频防抖技术,通过“X轴转动+Y轴转动”的超稳微云台防抖,和 “X轴平移+Y轴平移+Z轴旋转”的电子防抖,实现“五轴视频防抖”效果。
xiaomi 12s ultra OIS 1、后摄 5000万 1 英寸大底专业主摄 Sony’s IMX989 OIS光学防抖 4800万 潜望式长焦 OIS光学防抖 Zoom EIS防抖 2、录像 视频超级防抖
oppo find x5 pro OIS 1、后摄 主摄 5000万像素: f/1.7;FOV 80°;1G6P 镜头;支持 AF;采用闭环对焦马达,支持双 OIS 五轴防抖 2、录像 后置支持视频防抖支持 EIS,4K@60fps/30fps、1080P@60fps/30fps、720P@60fps/30fps 前置支持 视频防抖 1080P/720P@30fps

3. OIS

TODO

4. EIS

4.1. 基于图像特征点抖动检测加以纠偏的防抖技术

参考文章:文章一 文章二

(1)关键点检测

对每一帧(逐帧)图像做角点检测,也就是将图像上所有的关键点角点识别出来。例如下图的小祥哥

关键点检测算法有很多算法:

  • FAST
  • Agast
  • GFTT
  • SimpleBlob
  • Affine
  • SIFT
  • BRISK
  • ORB
  • MSER
  • KAZE
  • AKAZE

(2)仿射变换

逐一将前后两帧的关键点做比对,计算出两两之间的向量差。如下图小祥哥,红色箭头所示方向,即两帧相比对得到的向量方向。

具体操作如下:
【1】先使用OpenCV里的光流法函数calcOpticalFlowPyrLK()函数得到当前帧相对上一帧的所有关键点变化信息;
【2】再使用OpenCV里的estimateRigidTransform()函数传入上一个函数的两帧的结果,可以挑选出前后两帧两个2D点集矩阵之间的最佳仿射变换。

(3)方向抹平

将第二步算出的最佳仿射变换矩阵数据的整体平均方向,套用低通滤波或者高斯滤波,抹平突变的波峰波谷。

在OpenCV里面分成单程稳定器(OnePassStabilizer)和双程稳定器(TwoPassStabilizer),且支持设置两种滤波方式:低通滤波(LpMotionStabilizer)和高斯滤波(GaussianMotionFilter)。

以上图小祥哥的视频为例,帧方向变化曲线

其中,横坐标是时间轴;纵坐标轴是视频基于第一帧的画面的水平方向变化的像素位移量;实线是实际根据光流法计算出来的像素位移量;虚线是使用高斯滤波抹平后的相对较为稳定的像素位移量。

(4)图像裁切

使用均值滤波抹平之后的仿射变换矩阵数据对视频帧进行图像变换(缩放、旋转、平移等全放射变换)和裁切。

在OpenCV里面使用invertAffineTransform()和warpAffine()直接对图像进行仿射变换,得到变换后的图像结果。

比如说视频这一帧,有检测到明显的左移倾向,那么会调用仿射变换,将原视频帧变成下图这样:

图片一

图片二

注意到,修正后的画面整体逆时针有偏移,出现一些黑边。

(5)resize

将裁切后的视频resize回原视频的大小。此步骤涉及到多种BorderMode(边界模式):

  • CONSTANT
  • REPLICATE
  • REFLECT
  • WRAP
  • REFLECT_101
  • TRANSPARENT

4.2. 融合邻近帧的全帧视频稳定方法OVS

4.3. 用于3D视频稳定的内容保留扭曲

F. Liu, M. Gleicher, H. Jin, and A. Agarwala, “Content-preserving warps for 3d video stabilization,” ACM Transactions on Graphics, vol. 28, no. 3, pp. 1–9, 2009.

4.4. 子空间视频稳定

F. Liu, M. Gleicher, J. Wang, H. Jin, and A. Agarwala, “Subspace video stabilization,” ACM Transactions on Graphics, vol. 30, no. 1, pp. 1–10, 2011.

4.5. Codingflow:启用视频编码以实现视频稳定

S. Liu, M. Li, S. Zhu, and B. Zeng, “Codingflow: Enable video coding for video stabilization,” IEEE Transactions on Image Processing, vol. 26, no. 7, pp. 3291–3302, 2017.

4.6. 转换空间中的测地线视频稳定

L. Zhang, X.-Q. Chen, X.-Y. Kong, and H. Huang, “Geodesic video stabilization in transformation space,” IEEE Transactions on Image Processing, vol. 26, no. 5, pp. 2219–2229, 2017.

4.7. 自拍视频防抖

J. Yu and R. Ramamoorthi, “Selfie video stabilization,” in Proceedings of the European Conference on Computer Vision, 2018, pp. 551–566.

5. AIS算法解析

5.1. DUT:通过简单地观看不稳定的视频来学习视频稳定

简介:
过去基于深度学习的视频稳定器需要大量配对的不稳定和稳定视频进行训练,这些视频很难收集。另一方面,传统的基于轨迹的稳定器将任务分为几个子任务并随后处理它们,这些子任务在无纹理和遮挡区域中对于手工特征的使用很脆弱。在本文中,我们尝试以深度无监督学习的方式解决视频稳定问题,该方法借鉴了传统稳定器的分而治之思想,同时利用DNN的表示能力来应对现实世界场景中的挑战。从技术上讲,DUT由轨迹估计阶段和轨迹平滑阶段组成。在轨迹估计阶段,我们首先估计关键点的运动,分别通过新的多单应性估计策略和运动细化网络初始化和细化网格的运动,并通过时间关联获得基于网格的轨迹。在轨迹平滑阶段,我们设计了一种新颖的网络来预测动态平滑内核以实现平滑轨迹,该网络可以很好地适应具有不同动态模式的轨迹。我们利用关键点和网格顶点的空间和时间一致性来制定训练目标,从而形成无监督的训练方案。公共基准的实验结果表明,DUT在质量和数量上都优于最先进的方法。源代码可在 https://github.com/Annbless/DUTCode 获得。

5.2. 具有多网格翘曲变换学习的深度在线视频稳定

M. Wang, G.-Y. Yang, J.-K. Lin, S.-H. Zhang, A. Shamir, S.-P. Lu, and S.-M. Hu, “Deep online video stabilization with multi-grid warping transformation learning,” IEEE Transactions on Image Processing, vol. 28, no. 5, pp. 2283–2292, 2018.

5.3. Pwstablenet:学习用于视频稳定的像素级翘曲图

M. Zhao and Q. Ling, “Pwstablenet: Learning pixel-wise warping maps for video stabilization,” IEEE Transactions on Image Processing, vol. 29, pp. 3582–3595, 2020.

5.4. 使用对抗网络的深度视频稳定

S.-Z. Xu, J. Hu, M. Wang, T.-J. Mu, and S.-M. Hu, “Deep video stabilization using adversarial networks,” in Computer Graphics Forum, vol. 37, no. 7. Wiley Online Library, 2018, pp. 267–276.