图像透视变换的优化方法与流程

文档序号:12551821阅读:964来源:国知局
图像透视变换的优化方法与流程

本发明属于图像处理技术领域,更进一步涉及对图像透视变换的优化方法,可用于个人相册压缩、计算机视觉和云端图像存储。



背景技术:

图像透视变换是利用透视中心、像点、目标点三点共线的条件将图片投影到一个新的视平面,也称作投影映射。透视变换的变换公式为X=H·X',其中X'是像点,即参考图像的坐标,X是目标点,即目标图像的坐标,H是变换矩阵。通过参考图像和目标图像的部分坐标得到H,根据H对参考图像进行透视变换,就可以根据参考图像得到目标图像的拟合,此方法可以应用于个人相册压缩和云端图像存储等领域中。

由参考图像和目标图像的部分坐标得到H的过程中,为使得H更加精确,需要使用最优化方法对H进行修正。目前,比较常用的最优化方法有:梯度下降法、牛顿法和Levenberg-Marquardt(简称为L-M)法等。梯度下降法也称为最速下降法,用负梯度方向为搜索方向,越接近目标值,步长越小,前进越慢,存在靠近极小值时收敛速度减慢和直线搜索时得不到理想结果等一些问题。牛顿法收敛速度快,但对初始点要求严格,方向构造困难,计算复杂且占用内存较大。L-M方法是利用梯度求最大或最小值的方法,形象的说,属于“爬山”法的一种。L-M方法同时具有梯度法和牛顿法的优点。在L-M算法中,每次迭代会寻找一个合适的阻尼因子λ。当λ很小时,步长等于牛顿法步长,当λ很大时,步长约等于梯度下降法的步长。L-M方法对过参数化问题不敏感,能有效处理冗余参数问题,使代价函数陷入局部极小值的机会大大减小,这些特性使得L-M方法在计算机视觉等领域得到广泛应用。所以,在对H进行修正时都采用L-M方法。但是在透视变换中采用最初的L-M方法存在计算复杂度高,运行时间长的问题。

K.Madsen,H.B.Nielsen,O.Tingleff在其发表的论文“METHODS FOR NON-LINEAR LEAST SQUARES PROBLEMS”(《Informatics and Mathematical Modelling Technical University of Denmark》,2004年)中详细介绍了最基本的,最初的L–M方法,简称为原始L-M方法。原始L-M方法会根据误差来更新阻尼系数、雅可比矩阵和步长等数据,最后得到拟合结果。

Richard Hartley和Andrew Zisserman在《Multiple View Geomtry in computer vision》一书中详细介绍了透视变换的定义,以及采用原始L-M方法来修正H的步骤。但存在计算复杂度高,运行时间长的问题。



技术实现要素:

本发明的目的在于针对透视变换中原始L-M方法的不足,提出一种图像透视变换的优化方法,以降低修正H时的计算复杂度,从而减少运行时间。

本发明的技术方案是:根据参考图像和目标图像的部分坐标值和变换矩阵H的初始值,通过对雅克比矩阵进行改进的L-M方法来最小化误差函数,以达到修正H的目的。在最小化误差函数时通过不断改变阻尼系数λ来更新H中元素的值,直至更新H之前的误差与更新H之后的误差差值满足预设的迭代终止控制常数或到达总迭代次数时,得到最终的变换矩阵H。其实现步骤包括如下:

(1)由每一维坐标的误差组成误差矩阵d,根据误差矩阵得到误差函数F(H)

(2)设定参考图像、目标图像的部分坐标值和变换矩阵H的初始值;

(3)初始化迭代终止控制常数ε、总迭代次数iters、当前迭代次数i和误差的初始值e_old;

(4)根据步骤(2)中设定的参考图像的部分坐标值计算初始阻尼系数λ:

λ=τ×max{hesii},

其中τ是一个表示参考图像对目标图像拟合效果的常数,hesii是Hessian矩阵Hes的第i行第i列元素值;

(5)根据步骤(1)的误差函数F(H)和步骤(2)中的部分坐标值,计算目标图像与参考图像坐标值之间的误差矩阵d;

(6)根据根据步骤(1)的误差函数F(H)和步骤(5)中的误差矩阵d计算误差e_new;

(7)计算步骤(3)中误差初始值e_old与步骤(6)中误差e_new之间的差值dE,并将e_old更新为e_new;

(8)判断是否同时满足dE≤ε和i≤iters这两个条件:如果是,则输出最终的变换矩阵H,否则,执行步骤(9);

(9)根据阻尼系数λ、误差矩阵d和Hessian矩阵,计算用于更新变换矩阵H的步长dp;

(10)根据步骤(9)得到的步长dp更新变换矩阵H中元素的值;

(11)根据步骤(2)中的部分坐标值和步骤(10)中更新后的H,计算目标图像与参考图像坐标值之间的误差矩阵d;

(12)根据步骤(11)中的误差矩阵d和步骤(1)中的误差函数F(H),计算变换矩阵H更新后的目标图像与参考图像坐标值之间的误差e_new;

(13)计算步骤(12)得到的误差e_new与误差e_old之间的差值dE,并将e_old更新为e_new;

(14)改变阻尼系数λ的值;

(15)根据步骤(14)中阻尼系数λ的值和步骤(10)中变换矩阵H中更新的元素值计算雅可比矩阵J(H),并根据雅可比矩阵J(H)计算Hessian矩阵;

(16)更新迭代次数i,返回步骤(8)。

本发明与现有技术相比,具有以下优点:

第一:本发明在修正图像透视变换的变换矩阵H的过程中,通过对雅可比矩阵的计算采用了更简洁的矢量形式,降低了运算复杂度,减少了运行时间。

第二:本发明在修正图像透视变换的变换矩阵H的过程中,通过参考图像坐标对目标图像坐标拟合的误差差值来控制修正变换矩阵H的迭代标准,提高了参考图像对目标图像的拟合效果。

附图说明

图1是本发明的实现流程图;

图2是本发明和原始L-M方法在第一个实验中用参考图像对目标图像进行拟合的结果图;

图3是本发明和原始L-M方法在第二个实验中用参考图像对目标图像进行拟合的结果图。

具体实施方式

透视变换可以实现两幅图像间的拟合,即对参考图像进行透视变换以实现对目标图像的拟合。透视变换是通过变换矩阵H实现的。变换矩阵H的准确度是影响透视变换效果的决定性因素。所以为使得变换矩阵H更加准确,提高拟合效果,需要对变换矩阵H进行修正。

参照附图1,本发明对变换矩阵H进行修正的详细过程如下。

步骤1,确定表示参考图像对目标图像拟合效果的误差矩阵d和误差函数F(H)。

(1.1)对图像透视变换公式进行相乘展开:

透视变换公式:

X=H·X' [1]

其中X是目标图像的坐标值,X=(xi,yi,zi)T,T表示转置;X'是参考图像的坐标值,X'=(xi',yi',zi')T,i=1,2…n;H是变换矩阵,h11…h33是变换矩阵H的元素值;

公式[1]可变换成如下表示式:

公式[2]根据矩阵乘法法则得:

(1.2)对公式[3]进行归一化,归一化后的是参考图像坐标对目标图像坐标的拟合值:

(1.3)根据公式[4]得到的拟合值和目标图像坐标,得到误差矩阵d和误差函数F(H):

其中n是图像坐标数目,d(i,1),d(i,2)分别是误差矩阵d的第i行的第一列、第二列元素值。

步骤2,初始化。

(2.1)通过提取参考图像和目标图像的尺度不变特征变换SIFT特征点得到参考图像、目标图像的部分坐标值,以及通过直接线性变换DLT得到变换矩阵H的初始值;

(2.2)初始化迭代终止控制常数ε、总的迭代次数iters和误差的初始值e_old参数:其中,迭代终止控制常数ε和总的迭代次数iters的值根据实际情况进行选择,设置当前迭代次数i为0,误差的初始值e_old为0;

(2.3)根据步骤(2.1)参考图像的部分坐标值计算Hessian矩阵Hes:

Hes=J(H)TJ(H) [7]

其中J(H)是雅可比矩阵,最初的雅克比矩阵计算公式为:

本发明对雅克比矩阵的计算公式进行改进,即利用每一维坐标对H中的元素求偏导:

其中hij表示变换矩阵H中第i行,第j列的元素值;

(2.4)利用步骤(2.3)得到的Hessian矩阵Hes计算初始阻尼系数λ:

λ=τ*max{hesii} [9]

其中τ是一个表示参考图像对目标图像拟合效果的常数,τ可根据实际情况自己选择,hesii是Hessian矩阵Hes的第i行第i列元素值;

(2.5)利用步骤(2.1)中参考图像的部分坐标值,根据公式[4]计算参考图像坐标对目标图像坐标的拟合值;

(2.6)利用步骤(2.5)中的拟合值和步骤(2.1)中目标图像的坐标值,根据公式[5]计算目标图像与参考图像坐标值之间的误差矩阵d,并根据公式[6]计算目标图像与参考图像坐标值之间的误差e_new;

(2.7)计算步骤(2.2)中的e_old与步骤(2.6)中的e_new之间的差值dE:

dE=e_new-e_old [10]

(2.8)将前一次的误差e_old更新为新的误差e_new。

步骤3,迭代修正变换矩阵H。

(3.1)判断参考图像坐标对目标图像坐标拟合的误差差值dE与当前迭代次数i是否分别满足dE≤ε和i≤iters这两个条件:如果是,则输出最终的变换矩阵H,否则,执行步骤(3.2);

(3.2)根据Hessian矩阵和参考图像坐标对目标图像坐标拟合的误差矩阵d计算用于更新变换矩阵H的步长dp:

dp=(Hes+λI)-1·(J(H)T·d') [11]

其中I是单位阵,(Hes+λI)-1是矩阵Hes+λI的逆矩阵,d'是将误差矩阵d转化为列向量,即:d'=[d(i,1),…,d(n,1),d(i,2),…,d(n,2)]1T×2n,T表示转置;

(3.3)根据步骤(3.3)得到的步长dp更新变换矩阵H中元素hij的值:

hij=hij+dp[i] [12]

(3.4)利用步骤(2.1)中参考图像的部分坐标值和步骤(3.6)中更新后的变换矩阵H,根据公式[4]计算参考图像坐标对目标图像坐标的拟合值;

(3.5)利用步骤(3.4)中的拟合值和步骤(2.1)中目标图像的坐标值,根据公式[5]计算误差矩阵d,并根据公式[6]计算误差e_new;

(3.6)利用步骤(3.5)中的误差e_new和误差e_old,根据公式[10]计算差值dE,并将前一次的误差e_old更新为新的误差e_new;

(3.7)改变阻尼系数λ的值,利用步骤(3.3)中变换矩阵H中更新的元素值,根据公式[8]计算雅可比矩阵J(H);

(3.8)利用步骤(3.7)中的雅可比矩阵J(H),根据公式[7]计算Hessian矩阵;

(3.9)返回(3.1)。

本发明的效果可通过以下仿真实验进一步说明。

1.实验条件:

本发明仿真实验是在windows7系统,处理器Intel(R)Core(Tm)i5-2450M CPU,主频2.50GHz,RAM 6GB的环境下进行的,编程软件为MATLAB。

本发明设置的主要参数:迭代终止控制常数ε=10-4,迭代次数iters=50;

评价参考图像对目标图像拟合效果好坏的标准:

本发明选取了两组图像:从第一组图像中提取了10对坐标值进行测试;从第二组图像中提取了15对坐标值进行测试。

2.实验内容

实验1,用本发明和原始L–M方法实现第一组测试图像中的参考图像对第一组测试图像中的目标图像的拟合,结果如图2,其中图2a是参考图像,图2b是目标图像,图2c是使用本发明进行透视变换后的图像,图2d是使用原始L-M方法进行透视变换后的图像。

实验2,用本发明和原始L–M方法实现第二组测试图像中的参考图像对第二组测试图像中的目标图像的拟合,结果如图3,其中图3a是参考图像,图3b是目标图像,图3c是使用本发明进行透视变换后的图像,图3d是使用原始L-M方法进行透视变换后的图像。

实验3,用本发明与原始L–M方法对上述两组图像进行10次测试,得到迭代次数、平均运行时间和拟合的误差Δ如表1。

表1实验结果

3.结果分析

从图2和图3透视变换后的结果看,本发明的拟合误差略小于原始L-M方法,但是从表1可看出两者明显的不同结果:

在10次测试中,原始L-M方法的迭代次数分别是13和5,而本发明的迭代次数分别是19和27,由于本发明采用参考图像对目标图像进行拟合的误差差值来控制迭代次数,使得本发明的迭代次数比原始L-M方法的迭代次数多,但在合理范围内;

在10次测试中,原始L-M方法的平均运行时间分别是48.032秒和8.505秒,本发明的平均运行时间分别是0.191秒和0.0529秒,本发明的平均运行时间比原始L-M方法的平均运行时间少,由于本发明采用改进的雅克比矩阵计算公式,使得计算复杂度大大降低。虽然本发明的迭代次数比原始L-M方法的迭代次数多,但本发明的平均运行时间依然比原始L-M方法的平均运行时间少,而且少很多,第一组测试图像中,原始L-M方法的平均运行时间大约是本发明的平均运行时间的251倍,第二组测试图像中,原始L-M方法的平均运行时间大约是本发明的平均运行时间的161倍;

在10次测试中,使用原始L-M方法进行透视变换后的误差Δ分别是0.773、0.6808,使用本发明进行透视变换后的误差Δ分别是0.306、0.234,由于本发明的迭代次数比原始L-M方法的迭代次数多,使得本发明能更好对变换矩阵H进行修正,所以会使本发明的误差比原始L-M方法的误差略小。

综上所述,本发明用于修正变换矩阵H进行图像间的拟合与原始L-M方法相比,在运行时间和拟合的误差上都具有优势,特别是运行时间的优势更为突出。

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