1. 引言
随着家用便携摄像设备的普及,非专业拍摄的视频大量涌现。由于缺乏良好的固定措施和拍摄技巧,这些非专业视频往往存在视频视角晃动大、可观赏性不高的问题。一般可以采用去除抖动的方法对视频进行处理,提升视频的观赏质量。因此改善视频的可观赏性就成为非专业视频优化的一个主要挑战。
视频去抖是视频处理的中心问题之一,常见的视频去抖动主要是基于2D方法。
基于2D的方法主要通过估计单应性矩阵 [1] ,如基于运动矢量的视频去抖动算法,通过块运动估计来估算摄像机的全局运动参数 [2] - [4] 。利用RANSAC算法 [5] 或图像的SIFT特征匹配 [6] 增强全局运动参数估计的鲁棒性。目前最先进的基于2D的去抖算法是由Shuaicheng Liu提出的对同一时段多特征点轨迹平滑 [7] 。基于2D的方法虽然鲁棒性较强、计算代价较小,但不能合理描述相机的运动模型,无法对其运动路径和视角进行优化 [8] 。
基于3D的视频去抖技术以多视角几何为基础 [9] - [11] ,通过构建相机运动模型并平滑相机运动参数以达到视频去抖的目的。相机抖动是产生视频抖动的根本原因,相机运动参数可直观反应相机运动,因此通过平滑相机运动参数去抖更加合理。
便携式相机的拍摄内容带有拍摄者的主观随意性,其视频图像往往不满足一般的图像处理技术所必需应用条件,一般的去抖动方法在处理此类视频时的效果欠佳。鉴于便携式摄像机视频中造成抖动的主要原因在于摄像机拍摄视角的非均匀变化,本文基于对视角优化进行运动补偿的思路,提出一种基于视角优化的3D视频去抖算法。主要贡献有:通过摄像机运动估计,对视频帧进行筛选和视角优化。实验结果表明,本文提出的方法能够解决2D去抖算法对摄像机运动估计不足的问题。
2. 基于视角优化的去抖算法
利用便携式相机进行视频拍摄时,相机的运动路径一般较为简单、往复运动少,因此摄像机位置的短时震动对画面的可观赏性影响影响较小,使得视角的非均匀变化成为导致视频抖动的主要原因。因此,可以在估计摄像机位置的基础上,对相机位置进行曲线拟合,得到相机的主运动趋势后对相机运动参数进行筛选,并对相机朝向进行平滑处理。最后,根据相机视角平滑处理的结果对所选的帧进行视角变换,从而弱化或消除视角剧烈变化造成的视频抖动。
2.1. 算法原理
首先,通过运动结构重建(structure-from-motion, SFM) [12] 恢复摄像机运动参数,并估算其姿态。运动结构重建由特征检测、KLT跟踪重构帧间关系,估算相机的运动参数,主要是相机位置与朝向。
其次,由最小二乘法对相机实际位置拟合,得到相机运动的平滑曲线。最小二乘法通过各个时刻相机实际位置拟合出与所有相机位置距离偏差最小的高次平滑曲线。此曲线反映相机平滑的整体运动的趋势。
再次,通过球面线性插值平滑相机视角。对任一时刻相机朝向和相机初始朝向进行球面线性插值,在不改变相机朝向运动趋势的同时,平滑相机朝向运动幅度。
最后,基于相机运动平滑曲线与平滑视角对视频帧进行筛选和修正。
其原理如图1所示。
2.2. 算法流程
视频去抖算法:
Figure 1. The fundamental of the proposed algorithm
图1. 算法原理图
3. 摄像机运动估计
估计摄像机的运动趋势可以分离摄像机的运动趋势和和抖动。视频拍摄过程中,摄像机的物理位置是连续变化的,高质量的专业视频拍摄中通常不存在无规则的随机抖动。对于非专业的便携式相机视频,缺乏专业的去抖处理,因而需要一定的手段估计摄像机的运动趋势,以平滑抖动。本文通过运动结构重建估算相机的位姿,并分别通过最小二乘法和球面线性插值法对位姿做平滑处理。
3.1. 运动结构重建
运动结构重建(SFM) [12] 算法基于多视角几何,通过多幅图像的两两特征匹配,生成摄像机的运动参数和特征点的三维点云数据。如图2所示。
首先,对视频序列帧Image1、Image2、Image3中的特征点(x1, y1)、(x2, y2)、(x3, y3)进行两两匹配。
其次,寻找基线最大、匹配最好的两帧图像,并且基于其特征匹配估算本征矩阵,由本征矩阵还原相机外参并三角化特征点三维位置。
最后,逐步加入新的视频帧进行外参与特征点三维位置的计算,调整世界标系原点,直到所有视频帧都完成三维位置计算。
3.2. 摄像机位姿估算
最小二乘法是一种数学回归技术。其算法通过最小化均方误差的思想,寻找离散数据的最佳匹配曲线。
对数学上一条曲线,可通过高次多项式进行拟合。通过最小二乘法,可由一组离散坐标点拟合出一条连续运动曲线的高次多项式表达式,以预测曲线上某点的坐标值。
由于非专业的便携式相机视频一般是帮助拍摄者回顾浏览路径的,一般不会有针对统一内容的反复拍摄。因此这类视频一般浏览路径简单,且主运动方向上的往复运动时间持续短暂,使得通过曲线拟合摄像机运动路径成为可能。如图3所示,由最小二乘拟合,基于每一时刻的摄像机真实位置估算出主运动趋势的平滑曲线,可以反映真实摄像机的主运动。
记i时刻相机坐标系与世界坐标系之间的旋转矩阵和平移向量为和,则相机在世界坐标系下的位置表示为:
(1)
式中是的转置矩阵。
对摄像机位置P做最小二乘的多项式拟合得路径位置C:
Figure 2. The reconstruction of feature points’ positions and camera’s motion model bySFM
图2. SFM算法对特征点的空间位置和摄像机运动模型的恢复
Figure 3. The real positions and the planning path of the camera
图3. 摄像机实际运动位置与优化后的虚拟摄像机路径
(2)
式中表示时刻i空间三维曲线的位置,表示在i时刻曲线C与摄像机真实位置的偏差。
4. 相机视角平滑算法
球面线性插值是一种可以保持向量长度不变的线性插值方法,用于计算向量间角度变化的插值。以四元数为工具的球面线性插值算法 [13] ,可以计算等角速度变化的向量角度线性插值,以达到使向量角度均匀变化的目的。
令相机朝向为相机坐标系中Z轴的正方向,记i时刻相机的旋转矩阵为,则相机在世界坐标系下的朝向 可表示为:
(3)
式中是的转置矩阵。
由四元组表示相机朝向旋转,其中:
(4)
表示由方向转到方向的旋转轴。
(5)
表示由方向转到方向的旋转角。
设 是两四元组与间的转角中值,为插值与四元组的相似程度,则可由下式求得:
(6)
设首帧视角旋转为稳定旋转,平滑算法为:
其中alpha为迭代次数。
5. 视频帧的筛选与修正
本文算法避免对视频帧做较大变换,以防止视频内容发生较大扭曲,因此选取距离虚拟路径最近且视角与虚拟视角最接近的视频帧做视角变换与修正。
5.1. 视频帧筛选算法
基于视角优化的视频帧筛选策略如下:
1) 首先选取摄像机位置距离虚拟路径较近的视频帧为待选变换帧。做各个时刻摄像机位置与虚拟路径的投影距离。路径上每个位置点可能有0个至几个摄像机与其距离是最近的,有的虚拟路径上也可能没有邻近的摄像机。
2) 如果路径上某位置没有邻近摄像机,则添加此位置的前后路径位置的摄像机位置为待选。
3) 根据待选摄像机,选取距离虚拟路径最近且视角与优化估计视角偏差ψ最小的视频帧为最优变换帧。
(7)
其中表示虚拟路径位置i处的最优帧号。为虚拟路径位置i处的摄像机优化朝向。表示虚拟路径位置i的坐标。与表示第j时刻摄像机的实际位置坐标和朝向。与为权重常数,、,分别表示位置偏差与朝向偏差在目标函数中所占的比重。
实际中可选,,在分别对位置偏差与朝向归一化的基础上使两者权重相等。
5.2. 纸型
视角变换是通过适当的矩阵映射使一视角的图像矩阵变换为从另一视角看去的图像矩阵。通过变换视角,过滤掉连续的视频帧在视角上较大的晃动,使其在视觉上表现平滑。首先,通过内参投影矩阵使相平面坐标变换为对应摄像机坐标系下的坐标向量,然后通过旋转矩阵使此坐标向量变换为虚拟视角的摄像机坐标系下的坐标向量,最后再通过内参矩阵使坐标向量投影到虚拟像平面。
设摄像机在实际位置i具有旋转矩阵,虚拟路径点j的摄像机旋转矩阵为。当摄像机内参矩阵为K时,虚拟像平面坐标点与实际相平面坐标点之间的关系为:
(8)
6. 实验分析
实验表明本文算法在无精确内参的条件下,通过3D摄像机运动估计可以达到视频去抖的目的。
实验配置为:intel(R)Xeon(R) E5620 2.40 Hz,内存12.0 GB,操作系统Windows Server 2008 R2 Standard。
本文数据集采用了Feng Liu提供的抖动视频数据集0018AF[7] 和shakycar [7] 。
视角平滑迭代参数alpha试验中取3~8就已经能产生很好的效果。
实验结果如图4所示。其中,射线表示相机视角朝向。图4(a)是视角平滑前数据集0018AF的摄像机真实朝向。图4(b)显示了对视角做平滑估计后的结果。本文算法在不改变相机真实运动轨迹的基础上,对相机视角进行平滑处理。图4(c)是Shuaicheng Liu的2d去抖算法对视角的处理情况。Shuaicheng Liu的算法在优化视角的同时改变了相机原始轨迹,没有真实反映出拍摄者的浏览路径。图4(d)~(f)分别表示了shakycar数据集视角平滑前后的视角变化和Shuaicheng Liu算法的视角变化。可以看出,本文算法在不改变相机原始轨迹的基础上,能更好的平滑视角朝向。
本文算法和Shuaicheng Liu的算法对视角平滑的对比结果如表1所示。其中平均角速度表示了相机视角变化的幅度,平局角速度越大说明视频抖动幅度越大。平均角加速度衡量视角变化的突然程度,平均角加速度越大所产生的视频抖动越剧烈。
表1的实验结果显示,本文的视角变换策略是有效的,并且对比Shuaicheng Liu算法有更好的视角平滑效果。
本文算法与Shuaicheng Liu的2D去抖算法的效果对比如图5所示。图5(a)~(c)分别是0018AF数据集原始数据、Shuaicheng Liu的2D去抖算法和本文算法对0018AF数据集第12至16帧数据的处理
(a) (b) (c)(d) (e) (f)
Figure 4. The comparison of before and after the smoothing camera rotation. (a) Original data; (b) The proposed method; (c) Shuaicheng Liu’s mechod; (d) Original data; (e) The proposed method; (f) Shuaicheng Liu’s mechod
图4. 视角平滑前后的对比。(a) 0018AF平滑前;(b) 0018AF平滑后;(c) Shuaicheng Liu的方法;(d) 0018AF平滑前;(e) 0018AF平滑后;(f) Shuaicheng Liu的方法
Table 1. Smoothing algorithm data contrast
表1. 平滑算法数据对比
结果。图5(d)~(f)分别是shakycar原始数据、Shuaicheng Liu的2D去抖算法和本文算法对数据集第22至26帧数据的处理结果。图5(b)和图5(e)显示经本文算法处理的视频帧去除了视频抖动,且不存在图像局部区域的抖动问题。在图5(c)和图5(f)中,Shuaicheng Liu的去抖算法由于图像特征点分布不均匀,去抖处理产生了图像局部区域的抖动。本文算法,基于更合理的相机运动模型,避免了帧局部的失真。
7. 结论
本文提出了一种基于对视角优化进行运动补偿的3D视频去抖算法,通过估计摄像机3D运动轨迹选帧并做视角优化进行视频去抖。我们采用视角优化的方法更合理地修正了摄像机的运动参数,稳定视频内容。实验证明本文算法在缺乏精确摄像机内参数的条件下,可以通过摄像机3D运动估计,很好的解决便携设备中普遍存在的视频抖动问题。