一种基于局部及整体运动差异补偿的视频稳定方法与流程

文档序号:16907598发布日期:2019-02-19 18:26阅读:218来源:国知局
一种基于局部及整体运动差异补偿的视频稳定方法与流程

本发明涉及一种视频稳定方法,尤其涉及一种基于局部及整体运动差异补偿的视频稳定方法,属于视频信号处理及视频运动补偿技术领域。



背景技术:

随着数码相机的普及,人们无论在何时何地都能拍摄视频,这就导致了视频数量的快速稳定增长。然而,不同的拍摄环境和技术,拍出来的视频效果也大不相同。特别是对于业余视频拍摄者来说,很难做到一直稳定的拿着相机拍摄,这样拍出来的视频会有明显的抖动现象,而且有的时候看起来还模糊不清。目前,一些硬件设备已经被用来消除拍摄时的视频抖动,如手推车、凸轮、三脚架等等,但是这些设备都是需要提前准备好的,如果临时拍摄视频,是没有这些设备的。因此,抖动的视频是无法避免的。虽然相机的内置光学接口或电子稳定器能够消除高频抖动,但是当一个走动的人拿着相机拍摄时产生的低频抖动却是相机无法处理的,所以,拍摄出来的视频还是会伴随有抖动,影响人们观看时的视觉效果。

作为一个具有较高应用价值的问题,视频稳定被国内外的学者做了大量的研究,并且产生了显著地成果。目前已知的视频稳定技术主要包括两种:基于2D的视频稳定技术和基于3D的视频稳定技术。2D的视频稳定技术首先估计连续帧之间的2D变换,然后按时间序列去平滑视频帧,从而生成一个稳定的视频。2D方法虽然能够通过快速鲁邦的建立平滑的相机运动来实现视频的稳定,但是也正是由于这种简单的线性运动模型,它在处理含有因场景深度变化而产生的视差的视频时,结果会产生严重的变形。3D视频稳定技术依赖于运动场景的3D重建和强健的特征轨迹追踪。它首先使用运动恢复结构(SFM)技术对原始视频进行3D场景重建,然后建立一条平滑的运动路径,再根据特征点在两条路径上的投影位置,建立从原始路径到稳定路径之间的变换,根据这个变换,将输入视频投射到稳定的运动路径上,从而实现视频的稳定。从理论上来说,3D方法能够处理视差,产生强健且稳定的结果,但是它的运动模型评估容易出现问题,特别是当特征点追踪失败的情况下。

针对2D和3D视频稳定技术中存在的问题,(Liu S,Yuan L,Tan P,et al.Bundled camera paths for video stabilization[J].Acm Transactions on Graphics,2013,32(4):96-96.)提出了一种基于捆绑相机路径的视频稳定技术。此文把视频分块处理,对于每一块,根据内容保存和尽可能相似约束,建立一条相机路径,再分别对每一条相机路径进行优化,最后根据优化前后的相机路径对每一块视频进行变形,获得稳定的结果。该技术采用分块处理的思想,在避免3D场景重建的同时,能够很好地完成含有视差的视频的稳定;然而,在相机路径优化时,文中单独对每一条路径进行优化,这大大增加了处理时间,降低了速率。而且,当不同块之间有较大的运动差异时,对应平滑的相机路径方向也会产生较大差异,这会使稳定的视频产生较大的内容损失。

上述已有的基于捆绑相机路径的视频稳定技术虽然能够解决2D视频稳定技术无法处理的视差问题和避免3D建模出错的问题,但在计算平滑相机路径时,需要计算多条路径,这消耗大量时间。而且,在视频各部分运动差异较大的情况下,计算出来的平滑路径的运动趋势也会有较大差异,所以,依然存在速率过低和内容损失过多的问题。本发明的目的旨在克服基于捆绑相机路径的视频稳定技术的速率低和内容损失多问题,提出基于局部及整体运动差异补偿的视频稳定方法。



技术实现要素:

本发明的目的是针对现有视频稳定技术中稳定速率较低和内容损失过多的问题,提出一种基于局部及整体运动差异补偿的视频稳定方法。

本发明技术方案的思想是:首先,使用光流法获得相邻视频帧中特征点的运动轨迹;然后,将视频帧网格化,根据内容保存约束和相似不变约束,计算出每个网格的相机路径和整体视频帧的相机路径,并得到整体相机路径与网格相机路径之间的补偿矩阵;接着,根据路径平滑和重叠的约束,计算一条优化的整体相机路径,并利用补偿矩阵和优化的整体相机路径,计算出优化的网格相机路径;最后,求出每个网格的变形矩阵,并对网格进行变形从而获得稳定的图像。

一种基于局部及整体运动差异补偿的视频稳定方法所依托的视频稳定系统,后续简称本系统,包括相机路径建立模块、相机路径平滑模块以及图像变形模块;

本系统中各模块的连接关系为:

相机路径建立模块与相机路径平滑模块相连,相机路径平滑模块与图像变形模块相连;

本系统中各模块的功能为:

相机路径建立模块的功能是:将特征点检测与匹配以及计算相机路径;相机路径平滑模块的功能为:计算相机路径间的补偿矩阵和平滑相机路径;图像变形模块功能为:计算变形矩阵和变形图像;

一种基于局部及整体运动差异补偿的视频稳定方法,包括以下步骤:

步骤一、相机路径建立模块计算视频流的特征点轨迹;

具体的,在视频流的一个视频帧中提取特征点,使用光流法计算下一帧中特征点的位置,进而得到所有特征点在视频中的运动轨迹,即特征点轨迹;

其中,所述的特征点轨迹是指相邻视频帧中的特征点,分别记为p和两个特征点共同位于一条特征轨迹上;

所述的视频帧来源于包含有抖动、旋转和缩放的视频,视频帧的数量记为N,其范围为100到800;

所述的光流法计算特征点的位置,具体为:首先,在第t帧中检测角点并计算它们在第t帧中的位置;然后,根据视频流中的像素强度数据的时域变化和相关性来确定像素位置的“运动”;最后,根据角点在第t帧中的位置和像素的移动确定角点在第t+1帧中的最佳位置;

其中,t的取值范围为1到N;

步骤二、相机路径建立模块将步骤一的视频帧网格化;

步骤2.1将视频流的第t帧帧划分为M个大小一致的长方形区域,每个长方形区域为个单个网格;

其中,M范围为整数D的平方,整数D的取值范围是2到16;所述的单个网格形式化表示为公式(1):

公式(1)中p表示特征点,Vp表示特征点p所在的网格,代表特征点p所在网格的角点,一个网格是指划分此视频帧中的一个小长方形,由长方形区域的四个顶点和四条边组成;

步骤2.2将步骤2.1输出的网格化视频帧进一步变形,得出公式(2)的变形网格形式化表示:

其中,是一个二维坐标点,表示网格形式化后的角点,上标i的取值为1到4;

步骤三、相机路径建立模块计算用于求解相机路径及其能量方程的内容保持项;

具体包含以下步骤:

步骤3.1、相机路径建立模块分别计算网格化视频帧中一条特征点轨迹在相邻视频帧中的特征点;

其中,所述的相邻视频帧中的特征点,记为p和

其中,特征点p落在第t帧的网格Vp上,特征点落在第t+1帧的网格上;Vp和在这两相邻帧上的位置相同,并且,表示在第t+1帧中网格变形后的结果;

步骤3.2、相机路径建立模块计算步骤3.1中特征点p的双线性插值表示;

其中,所述的双线性插值表示基于网格Vp四个角点产生,根据如下公式(3)计算:

p=Vpωp; (3)

其中,为第i角点的双线性插值权重,i的取值为1到4;步骤3.3、相机路径建立模块计算内容保持项;

其中,内容保持项记为Ed;由公式(4)算出:

其中,∑条件1(计算1)是求和符号,表示对所有满足“条件1”的项执行“计算1”,并将“计算1”的结果相加;表示的二阶范数:的平方;

是第t+1帧变形后所有角点的集合;

步骤四、相机路径建立模块计算用于求解相机路径能量方程的保形项;

其中,所述的保形项,记为Es;对于保形项的计算,本系统采用(Liu S,Yuan L,Tan P,et al.Bundled camera paths for video stabilization[J].Acm Transactions on Graphics,2013,32(4):96-96.)里的公式(2)来完成,具体为下公式(5)所示:

其中,是第t+1帧变形后在一个三角形上的网格角点,R90是旋转矩阵,s是一个已知的标量,其值为:s=||v-v1||/||v-v0||;v,v1,v0是在视频帧变形前对应的网格角点,v,v1,v0都是已知量;

步骤五、相机路径建立模块建立求解相机路径的能量方程;

结合公式(4)的内容保持项和公式(5)的保形项赋予权重,建立用于求解相机路径的能量方程,其形式化表示为公式(6)所示:

其中,α为权重系数,用来控制保形项所占的分量,其变化范围为0.3到3;

用稀疏线性系统求解器来求解该能量方程,得到变形后的网格角点集合

步骤六、相机路径建立模块计算视频流的局部相机路径,具体为:

步骤6.1、相机路径建立模块用Vj和作为输入,调用OpenCV库里的findHomography函数求解网格j在第t+1帧处的局部单应矩阵Fj(t+1);

其中,Vj,分别表示第t+1帧上第j个网格变形前后的四个网格角点;

步骤6.2、重复步骤6.1N次,得到网格j在视频流上的所有局部单应矩阵;

步骤6.3、计算网格j在t+1帧处的相机路径;

其中,网格j在t+1帧处的相机路径记为Cj(t+1);由公式(7)算出:

其中,j的取值范围是1到M;

步骤6.4、重复步骤6.3N次,计算网格j在所有帧上的相机位置;

步骤6.5、重复步骤6.1到6.4M次,计算所有网格在所有帧上的相机位置;

步骤七、相机路径建立模块计算视频流的整体相机路径,具体为:

步骤7.1、相机路径建立模块用步骤二的V以及步骤五的作为输入,调用OpenCV库里的findHomography函数,求解第t+1帧对应的整体单应矩阵F(t+1);

步骤7.2、重复步骤7.1N次,得到所有视频帧的整体单应矩阵;

步骤7.3、计算第t+1帧视频的整体相机路径;

其中,第t+1帧处的整体相机路径记为C(t+1);由公式(8)算出:

步骤7.4、重复步骤7.3N次,计算所有N个视频帧的整体相机路径;

步骤八、相机路径平滑模块计算整体相机路径到单个网格相机路径的补偿矩阵;

在第t+1帧中,整体相机路径到第j网格相机路径的补偿矩阵记为Hj(t+1),即步骤七的C(t+1)和步骤六的Cj(t+1)的补偿矩阵;其中,Hj(t+1)由公式(9)算出:

其中,Fj(t+1)表示网格j在第t+1帧的单应矩阵,F(t+1)表示第t+1帧的整体单应矩阵,F(t+1)′是F(t+1)的逆矩阵;表示F(0)到F(t)的连乘,即:步骤九、相机路径平滑模块建立优化整体相机路径的能量方程;

对于整体相机路径的优化,我们使用(Liu S,Yuan L,Tan P,et al.Bundled camera paths for video stabilization[J].Acm Transactions on Graphics,2013,32(4):96-96.)里的公式(5)来实现,用公式(10)来计算:

其中,f的取值范围是2到N,C={C(f)}表示初始整体相机路径,P={P(f)}表示优化后整体相机路径;λf是这两个能量项的一个平衡参数,其取值范围为0.5到5;Ωf表示与第f帧相邻的视频帧的集合;ωf,r(C)是一个在场景变换或镜头旋转情况下保存运动不连续性的权重;

采用雅克比迭代法求解公式(10)的能量方程;

步骤十、相机路径平滑模块计算网格的优化相机路径;

设Pj(t+1)表示网格j在t+1帧处优化后的相机路径,用公式(11)计算:

Pj(t+1)=P(t+1)*Hj(t+1) (11)

其中,P(t+1)是优化的整体相机路径在第t+1帧处的相机路径,Hj(t+1)表示整体相机路径在t+1帧处的相机路径和网格j在t+1帧处的相机路径之间的补偿矩阵;

步骤十一、图像变形模块变形图像,具体如下:

步骤11.1、计算第t+1帧第j网格的变形矩阵;

其中,第t+1帧第j网格的变形矩阵记为Bj(t+1),由公式(11)算出:

Bj(t+1)=Cj(t+1)′*Pj(t+1) (12)

Cj(t+1)′是Cj(t+1)的逆矩阵;

步骤11.2、图像变形模块用得到的变形矩阵Bj(t+1)计算第t+1帧第j个网格稳定后的网格角点坐标,然后用opengl纹理贴图技术完成该网格图像的变形,即用该网格稳定前的四个角点坐标作为纹理坐标,同时按比例缩小该网格稳定后的四个角点坐标作为opengl坐标;

步骤11.3、重复步骤11.1到11.2M次,完成第t+1帧所有网格图像的纹理贴图,得到第t+1帧的稳定视频帧;

步骤11.4、重复步骤11.1到11.3N次,得到所有帧的稳定视频帧;

步骤11.5、图像变形模块把步骤11.4输出的所有稳定视频帧写入到一个avi格式的视频文件中,得到稳定视频流;

至此,从步骤一到步骤十一,完成了一种基于局部及整体运动差异补偿的视频稳定方法。

有益效果

一种基于局部及整体运动差异补偿的视频稳定方法,与其他视频稳定方法相比,具有如下有益效果:

(1)传统的基于2D的视频稳定方法一般无法处理含有视差的视频,在使用2D方法处理含有由于景深变化产生的视差的场景时往往会发生明显的扭曲,而本发明克服了这一问题,视频的分块处理相当于每一块看成单独的一个视频,即每一块都是由一个相机单独拍摄,而且,处理的时候本发明是把每一块单独处理,这样,就把景深相同的场景块划分到了一个相机中,就能够有效地消除景深不同而产生的视差问题;

(2)传统的基于3D的视频稳定方法需要通过从运动恢复结构(SFM)来完成视频稳定,这种方法计算复杂度较高,且对于复杂场景无法准确建模,而本发明无需使用从运动恢复结构的方法,而是使用特征轨迹的方法来实现视频的去抖处理,而且,我们只需要根据相邻两帧间的特征点组成的轨迹来建立模型,因此,这使得我们的运动模型的建立不受特征点轨迹长度的约束,同时,也减少存储复杂度和计算复杂度,极大提高了存储和计算效率;

(3)在现有的基于相机路径的视频稳定方法中,它们在计算优化路径时,对每一条路径都单独计算其对应的优化路径,这极大增加了计算时间,降低了效率。本发明提出了补偿路径思想,首先计算一条整体路径,然后计算整体路径和网格路径之间的补偿矩阵,然后计算整体路径的优化路径,最后根据补偿矩阵和优化的整体路径,直接算出每个网格路径的优化路径;通过这种方法,只需进行一次路径优化操作,大大减少了计算时间,提高了稳定速率;同时每个网格路径以整体路径为基准进行优化,减少了网格路径间的差异,从而减少了稳定视频的内容损失。

附图说明

图1是本发明一种基于局部及整体运动差异补偿的视频稳定方法的流程图。

具体实施方式

下面结合附图1对本发明方法的实施方式做详细说明。

一种基于局部及整体运动差异补偿的视频稳定方法,具体步骤如发明主体中步骤一到步骤十一所述;

其中,步骤一中,特征点p的检测采用计算机视觉库OpenCV函数库里的特征点检测函数GoodFeaturesToTrack()函数来实现,对于特征点采用计算机视觉库OpenCV函数库里的特征点追踪函数calcOpticalFlowPyrLK()函数来计算;视频帧数量N的值在本实施例中为387;

步骤二中,本实施例将视频帧t(t的取值范围是1到387)划分为8*8=64个网格,即M的值为64,D的值为8;一行有8个网格,则一行有9个网格角点,同理,一列也有9个网格角点,这样,视频帧t共有9*9=81个网格角点;视频的分辨率为1280*720;设步骤二中网格Vp的第i个网格角点(i的取值范围是1到4)在视频帧t中的行序号和列序号分别为a和b(a、b的取值范围都是1到9),则的坐标可以由公式(13)求出:

步骤三中,双线性插值权重的四个分量的和为1,即

步骤五中,经过多次实验,发现权重系数α的值为3时效果最好,因此,本实施将α的值设为3;对于发明主体中步骤五的能量方程(6)的计算,本实施例用该能量方程分别对变形网格角点横、纵坐标求导,并令求导后的结果等于0,这样就得到了两个分别关于变形网格角点横、纵坐标的超大稀疏线性方程组,然后用umFpack数学库中自带的超大稀疏线性方程组求解函数求解这两个方程组,得到变形网格角点的横、纵坐标值,即发明主体步骤二中的角点的坐标;

步骤九中,本实施例将平衡参数λf的值设为5,集合Ωf取第f帧前后各30帧,共60帧;在本实施例中,我们用用双边滤波的思想来计算运动不连续保存权重ωf,r,具体地,权重ωf,r用公式(14)计算:

ωf,r=exp(-(r-f)^2/(10*10))*exp(-(||C(r)-C(f)||)^2/(20*20)) (14)

其中exp()表示以自然常数e为底的指数函数,如exp(u)=eu,u为任意实数;||C(r)-C(f)||表示相机路径C(r)和C(f)之间的平移量,在本实施例中用公式(15)计算:

||C(r)-C(f)||=|Cr[0][2]-Cf[0][2]|+|Cr[1][2]-Cf[1][2]| (15)

其中,Cr和Cf分别是相机路径C(r)和C(f)对应的矩阵表示,均为3*3的矩阵;

对于发明主体步骤九中的能量方程(10)的求解,本实施例用雅克比迭代法实现,并将其转化成等价的雅克比迭代公式,如公式(16)所示:

其中,ξ是迭代系数,本实施例共迭代了20次,令P0(f)=C(f);

步骤十一中,步骤11.2需要根据第t+1帧第j个网格的变形矩阵Bj(t+1)来计该网格稳定后的四个网格角点坐标,计算一个网格的四个角点稳定后的坐标的方法是完全一样的,本实施例只说明其中一个角点的计算方法;为了方便表示,将第t+1帧第j个网格第i个(i=1,2,3,4)网格角点稳定前后的坐标分别记为v(x0,y0)、v(x1,y1),同时将第t+1帧第j个网格的变形矩阵Bj(t+1)记为B,变形矩阵Bj(t+1)是一个3*3的单应矩阵,对于网格角点坐标v(x1,y1)的计算,本实施例采用公式(17)来完成:

x1=(x0*B[0][0]+y0*B[0][1]+B[0][2])/z

y1=(x0*B[1][0]+y0*B[1][1]+B[1][2])/z (17)

其中,z的计算式为:z=(x0*B[2][0]+y0*B[2][1]+B[2][2]);

为了说明本发明的内容及实施方法,本说明书给出了一个具体实施例。在实施例中引入细节的目的不是限制权利要求书的范围,而是帮助理解本发明所述方法。本领域的技术人员应理解:在不脱离本发明及其所附权利要求的精神和范围内,对最佳实施例步骤的各种修改、变化或替换都是可能的。因此,本发明不应局限于最佳实施例及附图所公开的内容。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1