利用全景图的视频稳像算法

2018-07-25 11:11蒋双霜朱振峰常冬霞
信号处理 2018年7期
关键词:全景图轨迹运动

蒋双霜 朱振峰 常冬霞

(1. 北京交通大学信息科学研究所,北京 100044; 2. 北京市现代信息科学与网络技术重点实验室,北京 100044)

1 引言

由于拍摄设备的无规律运动常造成视频的抖动,其不仅影响用户的观赏体验,也不利于对视频的进一步分析与处理,由此稳像技术应运而生。相比传统光学、机电等防抖技术,基于计算机视觉的电子稳像技术以其低成本、低能耗、强灵活性等优点成为稳像技术的研究热点[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节给出实验设置、结果和分析;最后为论文总结。

2 基于全景图的视频稳像流程

图1所示为本文提出的基于全景图的视频稳像算法的基本流程,由以下四部分组成:

图1 稳像算法基本流程图Fig.1 Basic flowchart of proposed video stabilization algorithm

(1)全景图生成:基于图像拼接技术生成全景图;

(2)原始运动轨迹估计:采用基于区域的运动估计方法提高运动估计效率;

(3)运动轨迹平滑:针对相机的不同运动模式(往复运动与非往复运动),对相机的运动轨迹进行平滑;

(4)视频帧抽取:基于生成的虚拟轨迹,在全景图抽取视频帧,输出稳定视频。

3 基于区域的运动轨迹估计

图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 轨迹平滑

由于视频抖动导致原始运动轨迹具有非平滑性,因此,需进一步对抖动轨迹进行平滑处理。目前常用的轨迹平滑方法缺乏对相机的运动模式进行充分考虑。实际上,产生视频抖动的原因往往是由于相机的不同运动模式产生。这些运动模式大致可分为往复运动(如图4)与非往复运动(如图5)。而针对不同运动模式导致的视频抖动应采取有针对性的平滑处理。为此,在对抖动轨迹进行平滑前,首先需要对相机的运动模式进行判决。具体来说,基于相机运动的统计特性,本文提出了如下相机运动模式判决方法:

(3)

(4)

公式(3)反映了在由Nf帧组成的视频序列的帧间运动轨迹方向,而公式(4)反映了该视频序列轨迹点的聚集程度。这样,当同时满足上述条件时,则说明相机轨迹具有特定运动方向的趋势,且轨迹长度不断增加,轨迹点不具有聚合性,判断为非往复运动。反之,若不同时满足以上条件,则认为相机轨迹点限制于局部范围,为往复运动。

4.1 基于卡尔曼滤波的往复运动平滑

(5)

4.2 基于轨迹相似性保持的非往复平滑

(6)

(7)

图4 往复运动全景图Fig.4 Panoramic drawing of reciprocating trajectory

图5 非往复运动全景图Fig.5 Panoramic drawing of non reciprocating trajectory

5 基于平滑轨迹的视频帧抽取

为输出稳定的视频,在获取平滑轨迹后,需要根据平滑后的稳定轨迹点进行采样,进而抽取视频帧生成稳定视频,示意图如图6所示。此外,利用全景图抽取视频帧时,在平滑后的轨迹点地图垂直方向上抽取视频帧即可:一方面相机抖动通常属于位置平移变化,或者轻微旋转,偏移角度微小,可直接采取垂直方式抽取。另一方面轨迹点较为密集,若每个轨迹点处都调整旋转角度抽取帧,则视觉上生成视频存在明显晃动,造成体验不佳。因此,采用垂直抽样方式,不但节约运行时间,且能获得较好视觉稳像结果。

图6 视频帧抽取示意图Fig.6 Video frames capturing

6 实验结果与分析

6.1 实验数据及比较算法说明

6.1.1 实验数据集

实验采集测试视频3组共8段视频,标记为V1~V8。分别为不同类型抖动,信息如表1所示。

表1 测试视频种类

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 实验结果分析

6.2.1 帧间峰值信噪比

为评价稳像前后相邻帧的相似程度,可采用帧间峰值信噪比(PSNR)作为评价指标[18]。PSNR值越大,帧间差异越小,稳定质量越高。测试视频选取场景变换较小的V1~V3、V7~V8,由于帧间序列差异小,可用PSNR值说明抖动视频和稳像视频的帧间差异。对比方法为原始视频与稳像软件Deshaker[19]、L1范数优化法[9],结果如表2所示。

表2 视频帧间峰值信噪比

可以看出,本文方法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

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/帧)

图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]稳像方法处理后,或存在视频画面扭曲的现象。

7 结论

针对具有场景复杂、景深变换较小的抖动视频,本文提出基于全景图的视频稳像方法。对于产生视频抖动的相机运动的复杂性,我们提出了基于运动统计特性的相机运动模式判决方法。通过在全景图上利用平滑轨迹进行均匀采样,合成稳定视频。实验表明,稳像视频的运动轨迹与原始趋势一致,且能够去除较大抖动;稳像后视觉观赏质量与客观指标均明显提高。

猜你喜欢
全景图轨迹运动
轨迹
轨迹
嫦娥四号月背之旅全景图
轨迹
不正经运动范
进化的轨迹(一)——进化,无尽的适应
环保概念股全景图
古代都做什么运动
疯狂的运动
奇妙岛全景图