一种基于单应性矩阵的实时视频稳像方法与流程

文档序号:17359083发布日期:2019-04-09 21:56阅读:794来源:国知局
一种基于单应性矩阵的实时视频稳像方法与流程

本发明属于视频信息处理的技术领域,本发明是一种基于单应性矩阵的视频序列稳像方法,适用于手持设备,无人机等领域。



背景技术:

目前UAV(Unmanned Aerial Vehicle)在航拍领域发挥着越来越重要的作用。由于受到了自身电机振动以及飞行路径不平稳的影响,无人机拍摄的视频不可避免的存在抖动问题。这些抖动不仅严重影响了观看效果,而且会给视频序列的目标检测,目标跟踪以及目标识别等后处理带来较大误差。因此,使用快速有效的稳像算法去除视频中的高频抖动具有重要的实用意义。

现有的视频稳像算法主要分为两大类:一是基于2D图像变换的稳像算法,二是基于3D场景重建的稳像算法。

基于2D图像变换的稳像算法将相机实际的3D的运动简化为2D的平面运动进行处理。这类稳像算法主要使用图像的块特征和点特征来进行帧间信息的估计。在帧率为30FPS的视频流中,帧间时差相对运动较小,采用四参数的2D相似变换模型或者六参数的仿射变换模型对帧间的运动进行建模,使用适当参数的低通滤波器分离相应的主动运动量对配准图像进行运动补偿,对视频抖动有一定的去除效果。但是,2D稳像算法中使用仿射模型,相似模型估计的2D的相机路径与实际的3D相机路径并不等价,这使得此类稳像算法对于视角及景深变换明显的视频稳像效果并不理想。

基于3D场景重建的视频稳像算法使用了SFM(Struct From Motion),利用2D图像序列估计出场景的3D结构和3D的运动信息。然后利用这些信息对3D的相机运动路径进行滤波平滑,并使用最终的平滑后参数补偿抖动帧。这种基于场景重建的稳像算法对于一些视角及景深变化明显的抖动视频具有很好的稳像效果。然而该算法的计算量大,参数计算过度依赖与帧间特征的跟踪精度,因而鲁棒性一般。

论文名:Content preserving warps for 3D video stabilization,期刊:ACM Transactions on Graphics,年份:2009年。Liu等人提出了一种基于3D场景重建的稳像算法,并将深度相机引入稳像处理中来提高稳像系统的鲁棒性。但该算法需要对场景进行3D重建,计算量较大,无法实现实时处理,很难应用于实时场景中。

论文名:Calibration-free rolling shutter removal,会议:IEEE International Conference on Computational Photography(ICCP),年份:2012年。Grundmann等人提取图像中的角点作为特征,并使用光流法跟踪帧间角点。但是跟踪算法对于帧间存在大运动,帧模糊情况效果退化明显。

针对上述背景内容,研究一种有效处理3D相机路径的快速稳像算法,对实时性系统应用具有重要意义。



技术实现要素:

本发明的目的是为了克服现有稳像算法的不足,提供一种基于单应性矩阵的实时视频稳像算法,既能有效的去除无人机航拍视频中存在的抖动,恢复出平稳连续的视频,同时做到较低的复杂度和较快的运行速度,为实时应用系统提供了很好的应用价值。

本发明的技术方案:

一种基于单应性矩阵的实时视频稳像方法,步骤如下:

(1)使用距离约束的Harris角点检测算法获得分布均匀的帧图像特征点集计算抖动视频序列图像的Harris特征点,先将当前彩色图像变换成灰度图像,使用Harris角点检测算法获得角点,并用距离r进行约束,获得均匀分布的帧图像特征点集;

(2)利用分层仿射约束的光流跟踪算法跟踪下一帧角点的坐标

1)对长宽分别为w,h的图像建立5层尺度金字塔,第L层图像对应的长宽为

第0层为原始图像尺度,同时,第L层对应的角点坐标为:

2)在最底层跟踪同一尺度下的帧间角点,将跟踪问题转化为帧间图像窗口SSD函数,求最小值:

其中,I(x,y),J(x+υx,y+υy)分别表示t1,时刻的图像;(2·ωx+1)×(2·ωy+1)表示以(px,py)为中心的邻域窗口尺寸(见图6);像素点(px,py)经过时间的运动矢量(υx,υy);

将跟踪问题进一步转化为最终求解得到第L层对应的角点坐标(xL,yL);

3)对第L层跟踪得到的角点集合进行仿射约束,利用误差公式:

其中,FL是下一帧第L层全局单应性模型,其形式(5);是FL对应的尺度变化系数;表示当前帧第L层角点坐标;表示通过跟踪得到的下一帧第L层对应的坐标;

第L层对应的误差阈值:

当εL大于对应阈值thL,使用校正公式:

设置初始的误差th0=3,校正后第L层角点坐标

4)第L-1层的搜索起点为对第L-1层的角点重复上述2)-3)的跟踪过程,通过反复迭代得到第0层即原始图像尺度下一帧对应的角点坐标;

(3)使用RANSAC迭代算法计算原始尺度下前后帧全局单应性矩阵H0,其形式(5):

(4)分离前后帧的全局单应性矩阵中的各个运动量,使用卡尔曼滤波器获得相应平滑的主动运动量

1)令H′=(H0)-1,对H′分离运动量;待分离的运动量包含相对前一帧的平移T(x,y)、2D旋转角度θ、2D缩放Z和单应性矩阵的畸变D;

2)使用四点变换的方法进行实际运动量的分离,定义原始的矩形ABCD的长宽对应的是视频帧的长宽,面积为S,使用H′对矩形变换得到A′B′C′D′,面积为S′,此时缩放量:

计算A′B′和C′D′在水平方向的夹角θ1和θ3,A′D′和B′C′在垂直方向的夹角θ4和θ2,用均值法减小由畸变带来的2D角度误差:

因为缩放和旋转会影响平移量的计算,本稳像算法使用已经得到的Z和θ对四边形A′B′C′D′进行补偿变换,去掉旋转和缩放;然后计算变换前后的中心分别为C(x,y),C′(x,y),得到平移量(见图5)为:

T(tx,ty)=C(x,y)-C′(x,y) (10)

3)对已经得到的平移T、旋转θ和缩放Z使用卡尔曼滤波器进行滤波可以得到对应的主动运动量IT、Iθ和IZ,其中对于二维矢量T对应卡尔曼滤波器的状态方程为:

对应的观测矩阵为:

标量θ,Z对应的卡尔曼滤波器的状态方程:

观测矩阵:

(1 0 0) (14)

其中dt是采样间隔;

4)上述运动量均为2D,单应性变换会带来实际视角变化而产生的图像畸变,必须对这一畸变进行校正。使用已有的2D的平移T,旋转θ,缩放Z对A′B′C′D′进行变换去掉2D平面运动,得到A″B″C″D″,A″B″C″D″只存在由3D视角变化带来的畸变。使用平移T建立的卡尔曼滤波器对变换后的四个顶点坐标A″B″C″D″分别进行滤波得到AiBiCiDi。AiBiCiDi到ABCD表示相机3D视角变化对应的主动变化量,即所需的畸变校正量ID。

(5)利用已经得到的全局单应性及各个平滑的主动运动量计算第N帧的稳像变换模型CN,对图像进行稳像变换。

1)第N帧以第N-1帧做基准的单应性变换HN,2D平面运动补偿矩阵motionHN,3D视角变化对应的畸变补偿变换distortHN,利用上述变换得到第N帧参考第N-1帧的补偿变换:

TN=motionHN·distortHN·HN (15)

为了获得连续稳定的视频帧输出,以第一帧作为全局参考帧,因此最终第N帧的稳像变换模型为:

CN=T1·...·TN-1·TN (16)

使用CN对当前帧进行变换获得稳定的帧图像。

本发明的有益结果:

(1)使用分层仿射约束的光流跟踪方法对帧间角点位置进行跟踪,充分利用了视频帧间的信息。同时,通过分层约束减小层与层之间的传递误差。与传统的分层无约束的光流跟踪方法对比,本算法中的多层仿射约束的光流跟踪能明显的提高跟踪后的内点比例。

(2)本发明使用了8个自由度的单应性模型对帧间变换进行建模计算,变化不仅包含了2D平面的平移T旋转θ缩放Z,而且还包含有由相机视角变化带来的图像变化,使得帧间图像能更加准确的配准。

(3)本发明使用卡尔曼滤波器对各个运动分量进行平滑滤波,同时针对单应性变换在连续帧中产生的畸变进行畸变量的分离,并使用卡尔曼滤波器分畸变的主动运动量,在局部图像的稳像中获得了优于传统基于相似矩阵,仿射矩阵的稳像算法。

(4)本发明算法复杂度仅为图像大小的线性函数,对于720×512尺寸的视频处理速度达到30FPS,实现了实时处理。

附图说明

图1为一种基于单应性矩阵的实时视频稳像方法流程示意图。

图2为分层仿射约束的光流跟踪示意图。

图3为有无畸变校正结果对比,其中,(a)待处理帧;(b)无畸变校正时处理结果;(c)本方法畸变校正结果。

图4为航拍视频三种稳像方法的处理结果,分别在参考帧、21帧和381帧下(a)原始帧图像;(b)基于相似变换稳像结果;(c)L1范数优化的稳像结果;(d)本文稳像结果。

图5为四点变换分离运动量示意图。

图6为SSD邻域求差窗口示意图。

具体实施方式

以下结合附图和技术方案,进一步说明本发明的具体实施方式。

实施例

A、从视频中获得第N帧图像,使用Harris角点检测算法获得原始的角点集合,对于720×512尺度的图像,选择约束距离为r=5pixel,为了兼顾实时处理的需求,设置最大角点数M设置为200。

B、读取第N+1帧图像,使用分层约束的光流跟踪算法跟踪第N帧角点在第N+1帧中的位置,具体的流程如附图2所示。

B1、对原始的N+1帧图像的灰度图像建立图像金字塔,在实际算法中金字塔层数设置为5,第0层的仿射约束的误差阈值th0=3pixel。通过公式(5)计算第L层的阈值thL(L>0),并利用公式(2)得到第L层对应的跟踪初始点。

B2、使用公式(3)利用得到光流矢量υopt,然后得到第N帧特征点在第N+1帧第L层对应的坐标。

B3、利用前后两帧在第L层的匹配点集合计算第L层全局的仿射约束矩阵FL,利用公式(4)(6)对第N+1帧L层的点集合进行校正。

C、利用前后帧对应的特征点集合,通过RANSAC迭代计算原始图像尺度下的全局单应性矩阵H0,其中RANSAC的外点比例的估计值设为0.1,像素误差上限为3pixel,内点比例的下限为0.25。

D、从全局单应性矩阵的逆矩阵中分离各个运动分量,通过卡尔曼滤波获得平滑的主动运动分量。

D1、计算单应性矩阵H0的逆矩阵H′,H′表示第N帧到第N+1帧的运动矩阵。

D2、初始化一个矩形ABCD,它的中心坐标C(x,y),长宽值分别为图像的长宽。使用H′对矩形ABCD进行变换,得到变换后的四边形A′B′C′D′,进而计算它的中心坐标C′(x,y)。使用公式(7)(8)(9)计算平移矢量T(x,y),旋转角度θ,缩放Z。

D3、使用卡尔曼滤波器对上述三个运动分量进行滤波,其中设置卡尔曼滤波器的R=100,Q=0.01,设置时间间隔dt=1/30s。经过滤波后得到三个分量的主动运动为IT、Iθ、IZ。

D4、使用已有的2D的平移T,旋转θ,缩放Z对A′B′C′D′进行变换去掉2D平面运动,得到A″B″C″D″,对A′B′C′D′四个顶点分别使用平移滤波的卡尔曼滤波模型进行滤波操作,得到AiBiCiDi,计算AiBiCiDi到ABCD的单应性变换ID,ID就是所需要的针对连续帧单应性变换畸变校正矩阵。

E、使用公式(14)(15)计算出最终的稳像补偿矩阵CN,并对当前帧进行变换得到稳定当前帧图像。

F、实例中,更新角点的关键帧设置为帧序号为iFrame=10·i(i=1,2,3,4…)的帧。

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