发明内容
有鉴于此,本发明的目的在于提出一种无人机图像拼接方法,提出一种新的适用于无人机图像拼接的目标函数。
基于上述目的本发明提供一种无人机图像拼接方法,包括:获取无人机拍摄的待匹配图像的SIFT特征匹配对;随机选取一幅待匹配图像作为参考图像,以此图像所在的图像平面作为最终拼接图像的参考平面,此图像的单应矩阵为单位阵,以此图像为基准,通过两两配准关系得到其它待匹配图像的初始变换参数;假设图像的变换参数设为Xi,Xi表示由单应矩阵的8个独立参数组成的列向量,Ti为由Xi表示的变换,令定义目标函数
E(X)=Ecor(X)+ωErig(X);
其中,ω为常数权重;Ecor(X)为基于特征点对应的能量项,Erig(X)为变换参数X的约束项;将所述SIFT特征匹配对的特征对应代入所述目标函数,并以待匹配图像的初始变换参数作为初值,采用LM算法进行优化;对变换后的图像进行融合处理,消除拼接缝隙。
根据本发明的实施例,进一步的,所述获取无人机拍摄的待匹配图像的SIFT特征匹配对包括:从每张待匹配图像中提取图像SIFT特征点,采用FLANN算法进行SIFT特征匹配,对SIFT特征匹配对采用RANSAC算法剔除误匹配。
根据本发明的实施例,进一步的,采用基于特征的方法对待匹配图像进行配准,用8自由度的单应矩阵Hi表示第i幅待匹配的变换参数,Hi为:
对于图像上的某个点x来说,用单应矩阵对其进行变换,变换后的坐标x′为:x′=Hx。
根据本发明的实施例,进一步的,所述目标函数中的Ecor(X)定义为:
其中,ei=Tm(pi,m)-Tn(pi,n),1≤m,n≤M;(pi,m,pi,n)表示第i个SIFT匹配对;n_ref为参考图像的标号,为参考图像中的匹配对数。
根据本发明的实施例,进一步的,所述Erig(X)的定义为:
其中:
Erig(Xi)=(aibi+cidi)2
+(ai 2+ci 2-1)2
+(bi 2+di 2-1)2;
+(gi 2+hi 2)2
其中,pi为第i幅图像中的点对应的个数。
根据本发明的实施例,进一步的,所述对SIFT特征匹配对采用RANSAC算法剔除误匹配包括:步骤a:随机抽取m对SIFT特征匹配对的特征,用SIFT特征匹配对的特征计算出一个8自由度的单应变换HR;步骤b:计算其它SIFT匹配对的特征对HR的支持度;其中,对于某一对匹配对(xA,xB),xA、xB为齐次坐标,如果||xA-x′A||小于预先设定的阈值,则所述(xA,xB)支持变换参数HR;其中,x′A=HRxB;重复步骤a和步骤b预设的次数,计算获得最大支持度的HR,设为Hbest;用所有支持Hbest的匹配对重新计算一个变换参数,设为Hout;把所有支持Hout的匹配对作为正确的匹配对。
根据本发明的实施例,进一步的,所述待匹配的SIFT特征匹配对采用RANSAC算法剔除误匹配后,如果正确的匹配对小于预先设定的阈值,则认为待匹配图像之间没有重叠的公共区域。
根据本发明的实施例,进一步的,所述对变换后的图像进行融合处理包括:在某个像素点(x,y)处对来自多幅待匹配图像的图像灰度值进行加权叠加,权重W(x,y)=w(x)w(y);其中,w(x)的取值范围为[0,1],在图像中心处为1,越靠近图像边缘w(x)越小;
线性加权用公式表示为:
根据本发明的实施例,进一步的,所述对变换后的图像进行融合处理方法采用多频段图像融合进行图像方法进行融合:得到最终的拼接结果;其中,对于待融合的图像,建立拉普拉斯图像金字塔;在拉普拉斯图像金字塔的每一层,采用线性加权融合方法进行融合。
根据本发明的实施例,进一步的,权重的计算方法如下:先用所述线性加权用公式得到每幅图像的权重Wi(x,y);
再计算Wi max(x,y);
对于拉普拉斯图像金字塔最底层的图像,权重为Wi σ(x,y)为:
Wi σ(x,y)=Wi max(x,y)*gσ(x,y);
其中,gσ(x,y)为高斯函数;对于拉普拉斯图像金字塔其他层,权重Wi (k+1) σ(x,y)为:
Wi (k+1) σ(x,y)=Wi k σ*gσ′;
其中,用线性融合后的拉普拉斯金字塔进行重建,得到最终的融合图像。
从上面所述可以看出,本发明的无人机图像拼接方法,可以使得各个变换参数尽量保持为刚性变换,使得拼接的结果不发生全局变形,使得每幅图像试图保持原来的形状,使得输出的拼接图像的全局变形得到有效的控制,并且无需相机的参数和姿态信息,即可获得很好的拼接效果。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
图1为本发明的无人机图像拼接方法的一个实施例的流程图,如图1所示:
步骤101,获取无人机拍摄的待匹配图像的SIFT特征匹配对。
步骤102,随机选取一幅待匹配图像作为参考图像,以此图像所在的图像平面作为最终拼接图像的参考平面,此图像的单应矩阵为单位阵,以此图像为基准,通过两两配准关系得到其它待匹配图像的初始变换参数。
假设图像的变换参数设为Xi,Xi表示由单应矩阵的8个独立参数组成的列向量,Ti为由Xi表示的变换,令定义目标函数
E(X)=Ecor(X)+ωErig(X);
其中,ω为常数权重;Ecor(X)为基于特征点对应的能量项,Erig(X)为变换参数X的约束项。
步骤103,将SIFT特征匹配对的特征对应代入目标函数,并以待匹配图像的初始变换参数作为初值,采用LM算法进行优化。
步骤104,对变换后的图像进行融合处理,消除拼接缝隙。
本发明的无人机图像拼接方法所做的假设为:
(1)相机的镜头没有明显的畸变;
(2)地面为平面或近似平面。
发明的无人机图像拼接方法,提出一种新的适用于无人机图像拼接的目标函数。该目标函数由两部分组成。其中,第一部分为基于点对应的能量项,它的目标是使得变换后的匹配的特征点之间的距离平方和最小化,实现图像在几何上的配准;第二部分为图像变换参数的约束项,它使得各个变换参数尽量保持为刚性变换,其目的是使得拼接的结果不发生全局变形。采用这个目标函数,无需相机的参数和姿态信息,即可获得很好的拼接效果。
本发明的无人机图像拼接方法,基于嵌入变形模型,在网格非刚性变形模型中加入局部的刚性变形约束,以保持网格的局部特征。本发明的无人机图像拼接方法,使得每幅图像试图保持原来的形状,从而使得输出的拼接图像的全局变形得到有效的控制。
在一个实施例中,采用基于特征的方法对图像进行配准,用8自由度的单应矩阵Hi表示第i幅图像的变换参数,Hi为:
对于图像上的某个点x(齐次坐标)来说,用单应矩阵对其进行变换,变换后的坐标x′为:
x′=Hx (2)
假设在全部M幅图像之间共找到N对特征点,图像的变换参数设为Xi(Xi表示由单应矩阵的8个独立参数组成的列向量),Ti为由Xi表示的变换。令为了获得各幅图像的变换参数,定义一个目标函数E(X):
E(X)=Ecor(X)+ωErig(X) (3)
其中,ω为常数权重。
Ecor(X)为基于特征点对应的能量项,其目的是使得所有变换后的匹配点之间的距离的平方和最小化,其定义为:
其中,ei=Tm(pi,m)-Tn(pi,n),1≤m,n≤M;(pi,m,pi,n)表示第i个匹配对; n_ref为参考图像的标号,为参考图像中的匹配 对数。
式(4)的第2项的目的是使得参考图像尽可能保持为原来的形状。
Erig(X)为变换参数X的约束项,它使得各个Xi尽量保持为刚性变换,其目的是为了防止拼接结果发生全局变形。Erig(X)的定义为:
Erig(Xi)=(aibi+cidi)2
+(ai 2+ci 2-1)2
+(bi 2+di 2-1)2 (6)
+(gi 2+hi 2)2
其中,pi为第i幅图像中的点对应的个数。它的意义是:当一幅图像中的点对应越多时,它在Ecor(X)中就具有越多的项,为了平衡,在Erig(X)中也应赋予它更大的权重。
在式(3)中,共有8M个未知数。式(3)表示的目标函数是一个典型的非线性最小二乘问题,可采用Levenberg-Marquardt(LM)算法进行求解。
在一个实施例中,用LM算法求解式(3)时,它的雅克比矩阵的尺寸为2N+4M行8M列。当M和N很大时,如图5所示的实验,M=591,N=220977,此时雅克比矩阵的尺寸为444318行4728列,这是一个非常庞大的矩阵,使得LM算法在一般的计算机上无法执行。为了节省内存空间和加快计算速度,采用稀疏LM算法对式(3)进行求解。
图3为本发明的无人机图像拼接方法的另一个实施例的流程图;如图3所示:
步骤202,特征提取和匹配。
考虑到无人机在飞行的过程中的姿态和高度的变化,从图像中提取具有尺度不变性和对仿射变形具有一定鲁棒性的SIFT特征,用FLANN(Fast Library for Approximate Nearest Neighbors)进行匹配,并用随机采样一致性算法(RANSAC)剔除误匹配对。
例如:对于待匹配的图像IA和IB,采用开源计算机视觉库OpenCV中提供的SiftFeatureDetector类从每张图像中均匀地提取最多1000个128维的SIFT特征;采用FlannBasedMatcher类进行SIFT特征匹配。对其中的匹配 误差最小的400对匹配对,采用RANSAC算法剔除误匹配。
RANSAC算法剔除误匹配的步骤为:
a)随机抽取4对匹配的特征,用这4对点计算出一个8自由度的单应变换HR(HR的形式如公式(1)所示)。
b)计算其他匹配对对HR的支持度。对于某一对匹配对(xA,xB)(xA、xB为齐次坐标)来说,如果有||xA-x′A||小于预先设定的阈值(2个像素),则表示(xA,xB)支持变换参数HR。其中,x′A=HRxB。
c)重复步骤a和步骤b K次(本实施例K=50),并找出获得最大支持度的HR,记为Hbest;用所有支持Hbest的匹配对重新计算一个变换参数,记为Hout。即,Hout为由剔除误匹配后的特征对计算得到的变换参数。最后,把所有支持Hout的匹配对作为正确的匹配对。如果正确的匹配对数小于预先设定的阈值(10对),则认为图像IA和IB之间没有重叠的公共区域。
步骤203,获取初始变换参数。
随机选取一幅图像作为参考图像,以它所在的图像平面作为最终拼接图像的参考平面,该图像的单应矩阵为单位阵。以参考图像为基准,通过两两配准关系得到其他图像的初始变换参数。
如图2所示,6幅图像之间的匹配关系用带箭头的虚线表示。在图2中,8自由度的单应矩阵Hij表示图像Ii和图像Ij之间的变换关系,由步骤1得到。图像I5和图像I1没有直接的匹配关系,但通过其他的图像,I5和作为基准图像的I1可以建立起联系。
Η51=Η54Η43Η32Η21 (7)
以Η51作为图像I5的初始变换参数。用同样的方式,可以得到其他图像的初始变换参数。
步骤203,全局优化。
将步骤202中获得的特征对应代入由公式(3)表示的目标函数,并以步骤203获得的初始变换参数作为初值,用LM算法进行优化。
优化具有形式的目标函数(fi(X)为非线性函数,X为n维的变量)是一个典型的非线性最小二乘问题,可用Levenberg-Marquardt算 法迭代求解。
在一个实施例中,给定X的初值X0,X的迭代求解公式如下:
其中,I为单位阵,αk为正实数,Ak雅克比矩阵:
fk=[f1(X(k)) f2(X(k)) … fm(X(k))]T。
Levenberg-Marquardt算法完整步骤如下:
a)给定初值X(0)=X0,α=α0(α0>0),增长因子β>0,允许误差ε>0,k=0,计算E(X(k));
b)令α=a/β,计算fk、Ak;
c)
d)计算E(X(k+1)),若E(X(k+1))<E(X(k)),则转步骤f,否则转步骤e;
e)若||Akfk||≤ε,则停止计算,得到最终解X=X(k),否则,令α=βa,转步骤c;
f)若||Akfk||≤ε,则停止计算,得到最终解X=X(k+1),否则,令k=k+1,返回步骤b。
在本实施例中,α0=0.01,β=10。
步骤405,图像融合。
如果应用步骤203得到的图像变换参数对每幅图像进行变换,由于成像条件的差异、未建模的视差效应、图像配准几何误差等因素,得到的拼接图像会存在明显的拼接缝隙。为了得到视觉上一致、无缝的拼接结果,还需要对变换后的图像进行融合处理,消除拼接缝隙。
在一个实施例中,一种简单的融合方法是在某个像素点(x,y)处对来自多幅图像的图像灰度值进行加权叠加。权重W(x,y)为:
W(x,y)=w(x)w(y) (8)
其中,w(x)、w(x)的取值范围为[0,1],在图像中心处为1,越靠近图像边缘w(x)越小。
线性加权用公式表示为:
其中,Wi(x,y)为第i幅图像(x,y)处的权重;Ii(x,y)为第i幅图像在(x,y)处的灰度值。
线性加权图像融合方法具有原理简单、计算速度快的优点,但该方法会模糊图像的细节信息。本实施例采用多频段图像融合(Multi-Band Blending)方法进行图像融合,得到最终的拼接结果。
多频段图像融合方法能够保持图像的细节信息,它的步骤是:
1)对于待融合的图像,建立拉普拉斯图像金字塔。
2)在拉普拉斯图像金字塔的每一层,采用线性加权融合方法进行融合。
权重的计算方法如下:
a)先用公式(9)得到每幅图像的权重Wi(x,y);
b)再计算Wi max(x,y)
对于金字塔最底层(k=0)图像,权重为Wi σ(x,y)为:
Wi σ(x,y)=Wi max(x,y)*gσ(x,y) (11)
其中,gσ(x,y)为高斯函数,σ为高斯平滑因子。
式(11)的作用是用高斯函数对Wi max(x,y)进行平滑处理。
对于其他层(k≥1,在本实施例中,0≤k≤4),权重为Wi (k+1) σ(x,y)为:
Wi (k+1) σ(x,y)=Wi k σ*gσ′
其中,
3)用线性融合后的拉普拉斯金字塔进行重建,得到最终的融合图像。
OpenCV已经有了多频段图像融合算法的实现,本实施例采用OpenCV2.4.9中的MultiBandBlender类进行图像融合处理(拉普拉斯金字塔的层数 设为5)。
在一个实施例中,通过两组数据集对本发明提出的图像拼接目标函数进行了测试。
第一组数据集是昆士兰科技大学在网上公开的无人机图像,使用其中的部分图像进行测试(cam0_image01821-cam0_image04555,这些图像构成一个闭合回路)。
第二组数据集为Pixe4D公司在网上发布的图像,用其中的591幅图像进行拼接实验。此外,该公司还提供了正射拼接影像图,将利用这个正射影像图对我们的拼接结果进行定量的评估。
图4和图5分别为本文算法对第一组和第二组数据集得到的拼接结果。从图中可以看出,本发明的算法对这两组数据集都获得了视觉上令人满意的拼接结果。
数据集1中除了原始的图像以外,还包含了一幅从这些图像和GPS信息生成的正射影像图,用这张正射影像图作为标准评价本文算法的精度。以手动的方式分别从正射影像图(分辨率为3613×2550)和本发明的算法得到的拼接图中选取30个大致均匀分布控制点,采用4自由度的相似变换模型对控制点进行配准,误差为19.6像素。由于目标是在相机参数未知的情况下得到视觉上感觉良好的拼接图像,这个误差量级尚不足以让人感觉到图像发生了全局的变形。所有的拼接实验,都不使用任何相机位姿和内参数据,其中,式(3)的ω设为4000。
本发明的无人机图像拼接方法,可以使得各个变换参数尽量保持为刚性变换,使得拼接的结果不发生全局变形,使得每幅图像试图保持原来的形状,使得输出的拼接图像的全局变形得到有效的控制,并且无需相机的参数和姿态信息,即可获得很好的拼接效果。
所属领域的普通技术人员应当理解:以上仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。