由于拍摄设备的无规律运动常造成视频的抖动,其不仅影响用户的观赏体验,也不利于对视频的进一步分析与处理,由此稳像技术应运而生。相比传统光学、机电等防抖技术,基于计算机视觉的电子稳像技术以其低成本、低能耗、强灵活性等优点成为稳像技术的研究热点[1- 4]。
目前,电子稳像技术可分为“2D”方法、“3D”方法和“2.5D” 方法。“2D”方法主要由运动估计、运动平滑及运动补偿组成[5-9]。运动估计利用特征匹配、光流跟踪等首先建立帧间的变换矩阵[5- 6],进而获取相机原始运动轨迹。为消除视频抖动,需对该轨迹做进一步的平滑处理。常见平滑方法有卡尔曼滤波[7]、粒子滤波[8]等。不同于上述对独立运动模型进行滤波的方法,Grundmann 等利用L1范数[9]对线性、抛物线等形式的运动估计进行平滑,从而获取稳定的相机轨迹,并在YouTube中得到应用。运动补偿基于平滑后的轨迹对抖动帧进行补偿,进而输出稳定视频。上述“2D”方法速度快、鲁棒性好,但模型固定,难以处理有视差、深度变换等复杂场景。为此,学者们提出非参数模型的“2D”方法[10]来对点特征轨迹进行平滑。虽然其具有较好的灵活性,但由于较难获取长特征轨迹,不能解决旋转平移、运动模糊等问题。为避免长时特征轨迹跟踪,Liu等[11]提出了一种非参数的稳定光流运动模型修正原始光流,在处理存在视差、动态运动目标和果冻效应[12]等情况下的抖动视频时取得了较好的效果,但视频前景的大小对稳像结果影响较大。
“3D”方法[12-13]通过三维重建或从传感器获得深度信息来消除视差影响。由于需长时特征轨迹跟踪来进行鲁棒的三维重建,使得计算的复杂度大大增加。此外,由于对信息获取设备(深度相机)也有较高要求,从而限制了其实际应用。“2.5D”的方法[14-16]基于特征轨迹中的三维信息,不仅能处理视差,而且避免了复杂的三维重建。相关工作包括极线转移方法[14]、子空间方法[15]、贝塞尔曲线方法[16]等。与“3D”方法相似,“2.5D”方法也需平滑跟踪的特征轨迹,难点在于特征点跟踪的鲁棒性。
本文针对复杂场景以及景深变换较小环境下的抖动视频的稳像技术开展研究。如上所述,“3D”方法通常用于解决具有视差问题的抖动视频的稳像,但复杂度高,鲁棒性较差,不适用于此类视频。传统“2D”方法难以消除较大抖动、或稳像后存在不规则空白区域问题。当对其进行包括裁剪以及基于相邻帧拼接的视频修复等后处理时,往往出现处理后的视频帧间过渡不自然的情况。为此,本文提出了一种基于全景图的稳像方法(Video Stabilization Algorithm Based on Generated Panorama,VSGP)。不同于传统2D方法,本文方法基于原始视频的全景图和平滑后轨迹对全景图采样输出稳定视频。为实现对运动轨迹进行有针对性的平滑,提出了基于运动统计特性的相机运动模式(非往复运动与往复运动)判定方法。基于平滑后的轨迹实现在全景图上视频帧的重采样,在确保生成视频帧间变化稳定的同时,避免了区域裁剪以及修复等传统后处理方法带来的帧间场景过渡不自然的问题。
本文第2节介绍了基于全景图的视频稳像流程;第3节说明了基于区域的快速运动估计方法;第4节阐述了基于运动矢量统计的判别方法。第5节阐述了基于平滑轨迹的视频帧抽取方式;第6节给出实验设置、结果和分析;最后为论文总结。
图1所示为本文提出的基于全景图的视频稳像算法的基本流程,由以下四部分组成:
图1 稳像算法基本流程图
Fig.1 Basic flowchart of proposed video stabilization algorithm
(1)全景图生成:基于图像拼接技术生成全景图;
(2)原始运动轨迹估计:采用基于区域的运动估计方法提高运动估计效率;
(3)运动轨迹平滑:针对相机的不同运动模式(往复运动与非往复运动),对相机的运动轨迹进行平滑;
(4)视频帧抽取:基于生成的虚拟轨迹,在全景图抽取视频帧,输出稳定视频。
为消除视频抖动,首先需要获取相机的原始运动轨迹。如图2所示,对于来自第n帧图像的第i个图像子块,本文采用归一化的互相关函数(NCCF)获取其运动矢量需说明的是,由于本文所针对的视频具有较小的景深变化,且抖动通常不存在大角度旋转,帧间变换可合理假设为平移变换。为此,可只对部分块进行匹配以提高运动估计效率。
图2 局部区域块匹配示意图。为相邻帧第i块区域运动矢量,搜索块数量为Nb=5
Fig.2 Local regional blocks matching. are motion vectors in ith block between consecutive frames, and searching block num is Nb=5
在帧间运动矢量估计的基础上,我们可如图3所示获得第i个图像子块的原始运动轨迹估计:
(1)
为进一步减小运动估计时由匹配错误和噪声产生的误差,提高相机运动轨迹估计的鲁棒性,相机的运动轨迹估计,可由下式给出:
{i≠j,k;j=maxp|Cp(n)|,k=minp|Cp(n)|}
(2)
图3 原始轨迹点估计
Fig.3 Original trajectory estimation
由于视频抖动导致原始运动轨迹具有非平滑性,因此,需进一步对抖动轨迹进行平滑处理。目前常用的轨迹平滑方法缺乏对相机的运动模式进行充分考虑。实际上,产生视频抖动的原因往往是由于相机的不同运动模式产生。这些运动模式大致可分为往复运动(如图4)与非往复运动(如图5)。而针对不同运动模式导致的视频抖动应采取有针对性的平滑处理。为此,在对抖动轨迹进行平滑前,首先需要对相机的运动模式进行判决。具体来说,基于相机运动的统计特性,本文提出了如下相机运动模式判决方法:
(3)
(4)
其中Nf为视频帧数,为Nf帧内轨迹点的均值,即轨迹点聚合中心点。|·|表示取模值。Th1,Th2为设定阈值。
公式(3)反映了在由Nf帧组成的视频序列的帧间运动轨迹方向,而公式(4)反映了该视频序列轨迹点的聚集程度。这样,当同时满足上述条件时,则说明相机轨迹具有特定运动方向的趋势,且轨迹长度不断增加,轨迹点不具有聚合性,判断为非往复运动。反之,若不同时满足以上条件,则认为相机轨迹点限制于局部范围,为往复运动。
对于往复运动,如图4(a),相机无固定运动方向,且抖动随机。因为卡尔曼滤波不需过去所有数据,而是利用前一状态放入估计值和当前状态的观测值更新当前状态的估计值。因此对于往复运动,可采用卡尔曼滤波[7]区分相机运动和随机抖动。如公式(5)所示,通过时域卡尔曼滤波,递推预测当前第n帧的轨迹点估计值,即平滑后稳定图像帧的抽取位置最后基于该位置从全景图抽取视频帧。
(5)
其中,为平滑后稳定视频帧的轨迹点。Z(n)由原始轨迹点C(n)添加噪声获得,为第n帧的观测状态。为第n帧的轨迹点估计值,Kg(n)为卡尔曼增益。图4(b)所示为往复运动的实际平滑结果。
对于非往复运动,如图5(a)所示,可看出相机运动趋势明显,因此,可合理性假设随机抖动存在于相机主动运动的垂直方向。此外,因为相机存在主动运动,随着帧数增加,卡尔曼滤波造成预测误差累积,使得平滑后相机运动轨迹较原始滞后。为保证相机的运动趋势并区分随机抖动,可采用基于轨迹相似性保持的平滑方式。将原始运动轨迹点矢量C(n)=[Cx(n),Cy(n)]分为在相机运动趋势方向上分量和其垂直方向上的分量因Cy(n)中存在随机抖动,可构造该方向的最小化能量函数去除随机抖动。
设为平滑后轨迹点在相机主动运动垂直方向上的分量,可通过最小化以下能量函数获得[5]:
(6)
其中:为高斯权重,σ2为当前邻域窗口大小;Ωn为第n帧的邻域。能量函数前项用于保持原始和平滑后轨迹的相似性;后项用于平滑轨迹。求解该最小化能量函数可通过基于雅克比迭代的方法,即以下公式,进而获得稳定轨迹:
(7)
其中, ξ为迭代次数,γ=1+2λn∑k∈Ωn,k≠nωn,k[5]。多次迭代可获得去除抖动的垂直方向轨迹,进而获得平滑后相机轨迹图5(b)所示为非往复运动的实际平滑结果。
图4 往复运动全景图
Fig.4 Panoramic drawing of reciprocating trajectory
图5 非往复运动全景图
Fig.5 Panoramic drawing of non reciprocating trajectory
为输出稳定的视频,在获取平滑轨迹后,需要根据平滑后的稳定轨迹点进行采样,进而抽取视频帧生成稳定视频,示意图如图6所示。此外,利用全景图抽取视频帧时,在平滑后的轨迹点地图垂直方向上抽取视频帧即可:一方面相机抖动通常属于位置平移变化,或者轻微旋转,偏移角度微小,可直接采取垂直方式抽取。另一方面轨迹点较为密集,若每个轨迹点处都调整旋转角度抽取帧,则视觉上生成视频存在明显晃动,造成体验不佳。因此,采用垂直抽样方式,不但节约运行时间,且能获得较好视觉稳像结果。
图6 视频帧抽取示意图
Fig.6 Video frames capturing
6.1.1 实验数据集
实验采集测试视频3组共8段视频,标记为V1~V8。分别为不同类型抖动,信息如表1所示。
表1 测试视频种类
Tab.1 Varieties of test videos
视频特点时长分辨率V1~V3抖动较小、场景变换较慢的航空拍摄视频10 s~20 s480×350V4~V6抖动较大、场景变换快的手持设备拍摄视频10 s~20 s640×480V7~V8抖动较大、场景变换慢的视频20 s~30 s640×480
6.1.2 比较算法
本文根据相机的运动模式不同,采用了两种平滑方式,在后续实验分析中,采用卡尔曼滤波记作VSGP-1,采用基于轨迹相似性保持的平滑方式记作VSGP-2。同时,本文算法与Matlab稳像工具[21]、视频稳像软件Deshaker[19]3.1版本和基于L1范数优化的YouTube稳像方法[9]进行对比。其中,Matlab稳像工具[21]利用特征点匹配进行运动估计[10],采用实验视频V3~V5时,由于没有足够多匹配特征点,导致特征点跟踪失败;而其余实验视频在开始就无法获取足够多特征点匹配。因此,Matlab视频稳像工具[21]方法不适用于该类视频。
6.2.1 帧间峰值信噪比
为评价稳像前后相邻帧的相似程度,可采用帧间峰值信噪比(PSNR)作为评价指标[18]。PSNR值越大,帧间差异越小,稳定质量越高。测试视频选取场景变换较小的V1~V3、V7~V8,由于帧间序列差异小,可用PSNR值说明抖动视频和稳像视频的帧间差异。对比方法为原始视频与稳像软件Deshaker[19]、L1范数优化法[9],结果如表2所示。
表2 视频帧间峰值信噪比
Tab.2 PSNR (dB) of the consecutive video frames
PSNR/dBV1V2V3V7V8Original Input22.7628.5632.6324.3620.04Deshaker[19]22.7329.7134.2033.0026.89YouTube[9]23.5031.2436.1232.6928.16VSGP-124.2831.3836.7842.3531.40
可以看出,本文方法VSGP-1与VSGP-2处理后的PSNR值均高于其他方法,如对V7视频,VSGP-1处理后PSNR值为42.35 dB,相比原始视频提高了18 dB,相比其他方法提高了10 dB。因此,从客观评价指标值PSNR可看出本文方法稳像后图像序列差异更小,稳像效果更好。
6.2.2 稳像前后运动轨迹
平滑后的运动轨迹可作为视频稳像的主观评价指标。曲线越平滑,且原始运动趋势保持越好,稳定效果越好。VSGP-1采用卡尔曼滤波平滑轨迹的结果如图7所示,VSGP-2基于轨迹相似性保持的平滑结果如图8所示,两种方法平滑后,视频抖动分量均减少,且平滑后的轨迹趋势与原始保持一致。
6.2.3 视频边界裁剪率
视频边界裁剪率可作为稳像的客观指标,裁剪率越小,稳像效果越好。传统的补偿相邻帧产生稳定视频的方法常常导致边界的区域丢失较大。实验中,针对抖动较大的视频序列V4~V8进行稳像后的边界裁剪率对比。YouTube[9]方法后期对视频缺失部分进行修复,因此该实验中不做比较。实验同稳像软件Deshaker[19]进行了稳像后裁剪率对比。从表3可以看出,基于全景图的视频稳像方法裁剪率更小,且保持了视频帧的原有宽度,有利于减轻后期图像补偿修复边缘区域的负担。
图7 VSGP-1平滑轨迹
Fig.7 Smoothed trajectory result of VSGP-1
图8 VSGP-2平滑轨迹
Fig.8 Smoothed trajectory result of VSGP-2
表3 视频序列裁剪率对比
Tab.3 Cropping ratio of video sequences
Video V4V5V6V7V8Deshaker[19]Reserving size580×420580×415Cropping ratio20.7%21.6%575×41522.3%550×420540×36024.8%36.7%VSGP-1Reserving size640×410640×380640×460640×410640×360Cropping ratio14.6%20.8%4.2%14.6%25.0%VSGP-2Reserving size640×410640×380640×460640×430640×340Cropping ratio14.6%20.8%4.2%10.4%29.2%
6.2.4 处理速率
对比实验中,测试视频选取了相机运动速度快、场景变换剧烈、抖动较大的视频V4~V6,分辨率为640×480。实验结果如表4所示。
表4 视频序列平均每帧处理时间(单位:ms/帧)
Tab.4 Average processing time of each frame(ms/frame)
VideoV4V5V6VSGP-138.5536.1438.13VSGP-236.2536.6536.14
图9 抖动视频稳像结果
Fig.9 Stabilization results of the shaky video
可以看出对于分辨率为640×480或以下视频,在Intel酷睿2代,主频3 GHz,双核处理器的PC机上采用VSGP-1实时处理、VSGP-2后期处理的处理速度均在40 ms/帧以内。此外,Deshaker[19]视频稳像软件在稳像步骤前保留了相邻帧运动估计的数据,进而进行后期稳像处理,也能实时稳像。YouTube稳像方法[9]属于后期稳像,且处理速度不能达到视频帧的播放速度。
6.2.5 视频稳像结果
实验选取了视频V8中存在较大抖动的几帧图像进行稳像,处理的前后效果如图9所示。可以看出基于全景图的稳像方法对于去除视频中较大抖动有明显效果。此外,实验中,对于存在较大抖动的视频,Deshaker[19]软件和YouTube[9]稳像方法处理后,或存在视频画面扭曲的现象。
针对具有场景复杂、景深变换较小的抖动视频,本文提出基于全景图的视频稳像方法。对于产生视频抖动的相机运动的复杂性,我们提出了基于运动统计特性的相机运动模式判决方法。通过在全景图上利用平滑轨迹进行均匀采样,合成稳定视频。实验表明,稳像视频的运动轨迹与原始趋势一致,且能够去除较大抖动;稳像后视觉观赏质量与客观指标均明显提高。
[1] Dong J, Liu H. Video Stabilization for Strict Real-Time Applications[J]. IEEE Transactions on Circuits & Systems for Video Technology, 2017, 27(4): 716-724.
[2] Liu S, Xu B, Deng C, et al. A Hybrid Approach for Near-Range Video Stabilization[J]. IEEE Transactions on Circuits & Systems for Video Technology, 2017, 27(9):1922-1933.
[3] Liu William X, Chin Tat-Jun. Smooth globally warp locally video stabilization using homography fields[C]∥International Conference on Digital Image Computing: Techniques & Applications, 2015: 1- 8.
[4] Koh Yeong Jun, Lee Chulwoo, Kim Chang-Su. Video stabilization based on feature trajectory augmentation and selection and robust mesh grid warping[J]. IEEE Trans on Image Processing,2015, 24(12): 5260-5273.
[5] Liu Shuaicheng, Yuan Lu, Tan Ping, et al. Bundled camera paths for video stabilization[J]. ACM Trans on Graph, 2013, 32(4): 78:1-78:10.
[6] Wilbert G. Aguilar,Cecilio Angulo. Real-time model-based video stabilization for microaerial vehicles[J]. Neural Processing Letters, 2016, 43(2): 459- 477.
[7] Wang Chuntao, Kim Jin-hyung, Byun Keun-yung, et al. Robust digital image stabilization using the Kalman filter[J]. IEEE Transactions on Consumer Electronics, 2009, 55(1): 6-14.
[8] Yang Junlan, Dan Schonfeld, Magdi A. Mohamed. Robust video stabilization based on particle filter tracking of projected camera motion[J]. IEEE Transactions on Circuits & Systems for Video Technology, 2009, 19(7): 945-954.
[9] Matthias Grundmann, Vivek Kwatra, Irfan A. Essa. Auto-directed video stabilization with robust L1 optimal camera paths[C]∥IEEE Conference on Computer Vision and Pattern Recognition, 2011:225-232.
[10] Lee Ken-yi, Chuang Yung-yu, Chen Bing-yu, et al. Video stabilization using robust feature trajectories[C]∥IEEE International Conference on Computer Vision, 2009: 1397-1404.
[11] Liu Shuaicheng, Yuan Lu, Tan Ping, et al. Steadyflow: spatially smooth optical flow for video stabilization[C]∥IEEE Conference on Computer Vision and Pattern Recognition, 2014: 4209- 4216.
[12] Feng Liu,Gleicher M, Jin H, et al. Content-preserving warps for 3D video stabilization[C]∥Acm Transactions on Graphics, 2009, 28(3): 341-352.
[13] Zhang G, Hua W, Qin X, et al. Video stabilization based on a 3D perspective camera model[J]. Visual Computer, 2009, 25(11):997.
[14] Amit Goldstein,Raanan Fattal. Video stabilization using epipolar geometry[J]. ACM Trans on Graphics, 2012, 31(5): 126:1-126:10.
[15] Liu Feng, Michael Gleicher, Wang Jue, et al. Subspace video stabilization[J]. ACM Trans on Graphics, 2011, 30(1): 4:1- 4:10.
[16] Wang Yu-Shuen, Liu Feng, Hsu Pu-Sheng, et al. Spatially and temporally optimized video stabilization[J]. IEEE Transactions on Visualization & Computer Graphics, 2013, 19(8): 1354-1361.
[17] 向友君, 雷娜, 余卫宇. 运动估计算法匹配准则研究[J]. 计算机科学, 2009, 36(9): 278-280.
Xiang Youjun, Lei Na, Yu Weiyu, et al. Research of block matching criterion for motion estimation[J]. Computer Science, 2009, 36(9): 278-280.(in Chinese)
[18] Alexander Tanchenko. Visual-PSNR measure of image quality[J]. Visual Communication and Image Representation, 2014, 25(5): 874- 878.
[19] Deshaker[CP]. http:∥www.guthspot.se/video/deshaker.htm, 2016.7
[20] Panorama-maker[CP]. http:∥www.arcsoft.com/panorama-maker/, 2016.7.
[21] Video stabilization using point feature matching[CP]. http:∥cn.mathworks.com/help/vision/examples/video-stabilization-using-point-feature-matching.html, 2016.7.
蒋双霜 女,1993年生,重庆人。北京交通大学硕士研究生,主要研究方向为低质视频增强方法。
E-mail:Shuangs_j@163.com
朱振峰 男,1974年生,黑龙江鸡西人。北京交通大学教授,主要研究方向为计算机视觉(图像/视频分析与理解)、机器学习以及网络信息挖掘等。
E-mail:Zhfzhu@bjtu.edu.cn
常冬霞 女,1977年生,河北衡水人。北京交通大学副教授,主要研究方向为进化计算、非监督分类算法、图像分割以及图像分类等。
E-mail:dxchang@bjtu.edu.cn