一种匹配策略融合及低误差的快速图像拼接方法与流程

文档序号:14195568阅读:299来源:国知局
一种匹配策略融合及低误差的快速图像拼接方法与流程

本发明涉及图像拼接技术领域,尤其涉及一种匹配策略融合及低误差的快速图像拼接方法。



背景技术:

图像拼接技术将同一场景的多幅序列图像经过配准、融合后合成宽视野、高分辨率的全景图,近年来,广泛应用于三维重建、视频监控、遥感影像及灾害防控等领域。

图像拼接主要包括图像配准和图像融合2个步骤,图像配准是拼接算法的核心,基于区域的配准算法使用区域信息进行拼接,且要求图片有较高重合度,运算效率降低,实时性较差。基于特征的图像配准技术计算量小、鲁棒性高,因而得到广泛的关注,其中特征检测及匹配是决定配准质量的关键因素。特征点的数量远少于整幅图像的像素,且对于环境变化有较强的适应能力,鲁棒性较高。而特征匹配是特征检测和估计图像变换参数间的关键步骤,直接影响拼接算法的快速性和拼接效果,其核心是如何快速、有效剔除误匹配对,高精度的匹配对可以精确地计算出图像间的变换模型。最后利用变换模型参数进行拼接,为了降低拼接图像的扭曲变形,需要选择合适的映射模型,常用的有平面、柱面、球面等,其中柱面能实现360度的视角,且不需要精确的焦距估计,广泛应用于拼接领域。

目前,常用的基于特征的图像拼接算法流程为,首先利用sift算法提取图像的特征点,然后使用穷举搜索策略并结合欧氏距离进行特征匹配,使用最近邻比次近邻策略剔除一些错误的匹配对,接着使用ransac算法剔除错误匹配完成精匹配,并使用最小二乘法等拟合得到变换矩阵的参数,最后,利用帧到图像的逐帧扩大式拼接策略并结合加权平均融合完成图像序列的拼接。该拼接算法存在以下4点缺陷:

第一,sift算法计算特征描述符时,需要计算特征点邻域内的梯度方向的直方图,计算复杂、耗时;第二,使用穷举搜索匹配时需要遍历所有的特征描述符,且描述符维数是128维,当提取的特征点数量很大时显然存在大量耗时,且只使用最近邻比次近邻策略进行特征匹配显然会产生很多错误的匹配对,这一方面导致最后求得的变换矩阵误差很大,另一方面使ransac算法收敛时间大大增加,影响匹配效率;第三,该算法每一帧的拼接都会产生误差且下一帧的拼接会携带上一帧的误差,使得累计误差越来越大,且串行拼接策略会增加拼接耗时;第四,该算法无法完成无序图像的拼接,需要人工调整,且没有对图像的亮度进行统一校正,使得拼接图像很难满足人的视觉要求。



技术实现要素:

本发明要解决的技术问题在于针对现有技术中常用拼接算法匹配正确率低、耗时及误差大的缺陷,提供一种匹配策略融合及低误差的快速图像拼接方法。

本发明解决其技术问题所采用的技术方案是:

本发明提供一种匹配策略融合及低误差的快速图像拼接方法,该方法包括以下步骤:

s1、获取待拼接的多幅序列图像,对其进行预处理,包括灰度化、统一图像分辨率以及标定图像间的重合区域;

s2、在标定的重合区域内提取sift特征点,然后利用积分图像计算surf特征描述符;

s3、使用基于bbf查询机制的kd树搜索算法,融合改进的最近邻比次近邻、交叉检查和匹配阈值化3个匹配策略,并结合坐标约束完成特征粗匹配,并利用粗匹配信息完成序列图像排序,然后采用随机采样一致性算法对匹配结果对进行提纯并拟合图像间的单应性变换矩阵;

s4、选取序列图像中间位置的图像作为参考图像,根据得到的单应性变换矩阵,建立任意位置的待拼接图像到参考图像的投影变换模型;

s5、对所有图像进行亮度校正后,使用得到的投影变换模型,并结合多线程技术,将所有图像均投影到参考坐标空间,经过图像融合后合成高质量全景图像。

进一步地,本发明的步骤s1中进行预处理的方法具体为:

s11、对图像进行灰度化处理;

s12、统一调整图像的分辨率大小;

s13、标定图像的左右1/3区域为重合区域,中间1/3区域为不重合区域,仅对重合区域进行特征检测。

进一步地,本发明的步骤s2中计算特征描述符的方法具体为:

s21、计算待拼接图像i(x,y)的积分图像:

s22、构建尺度空间,即高斯金字塔l(x,y,δ)和高斯差分金字塔d(x,y,δ):

s23、在d(x,y,δ)内进行三维邻域内的特征点极值搜索,初步确定特征点;

s24、利用像元插值法得到亚像素精度的特征点;

s25、剔除插值偏移量大于0.5、响应值小于0.03的点以及存在边缘效应的点;

s26、给每个特征点分配一个主方向和多个辅方向;

s27、计算特征描述符:

沿特征点主方向,取20δ×20δ的矩形区域,并将该区域划分为4×4个子块,然后统计积分图像isum(m,n)子块的harr响应值v:

v=[∑dx,∑|dx|,∑dy,∑|dy|]

即可得到4×4×4=64维的特征描述符descriptor,如果区分正负号,则为128维。

进一步地,本发明的步骤s3中进行特征匹配的方法具体为:

s31、利用图像ii和图像ij的特征描述符建立kd树;

s32、利用bbf查询机制,并结合改进的最近邻比次近邻策略,得到匹配结果matches1:

利用九距离法改进最近邻比次近邻策略,即用d(2)~d(9)的平均值代替次近邻d(2),d(1)仍为最近距离,避免了d(1)与d(2)相差较小时正确匹配对被误排除,其具体步骤为:

s321、对于图像ij中的特征描述符,利用bbf查询机制,在kd树中查询9个近邻点:

neighborpoints={n1,n2,…,n9}

并计算每个近邻点与查询点的距离:

neighbordis={dis1,dis2,…,dis9}

s322、求n2,n3,…,n9这8个近邻点的平均距离,作为次近邻距离d(2);

s323、最后计算:disc=dis1/d(2);

设阈值dish=0.65,若disc小于dish,则认为是正确的匹配对,否则排除匹配对;

s33、计算matches1中的特征描述符间的差值,根据差值的大小得到匹配对matches2,具体方法为:

分别利用欧式距离计算matches1中所有匹配对间的特征描述符间的差值:

式中,desik和desjk分别表示两个描述符i,j的每一维的数值,当featuredist大于阈值maxfeaturedist=0.4,则该匹配为错误的匹配,只有featuredist小于阈值才认为是正确匹配对;

s34、利用交叉检查策略,分别匹配两个方向的特征点,只有两个方向都能匹配到相同的匹配对,才是正确的匹配对matches3;

s35、利用坐标约束条件,得到高精度的匹配对bestmatches,具体方法为:

考虑到图像序列均处于同一方向,正确匹配对的横纵坐标符合一定的坐标关系,因此可以增加坐标约束条件。以水平方向为例,令约束条件为|y1-y2|<p1且|w-x1-x2|<p2,其中,(x1,y1)和(x2,y2)是匹配对上的两个点,p1,p2是两个阈值,w为图像宽度;同理,垂直方向约束条件可以设为:|x1-x2|<p1且|h-y1-y2|<p2,其中h为图像高度,只有满足水平和垂直方向的约束条件时,才认为是正确的匹配对。

s36、利用ransac算法提纯匹配对,并拟合图像间的变换矩阵vectorh:

具体地,依次选择bestmatches中的每一项,随机选取4组匹配对,计算单应矩阵和其错误概率,反复迭代,直到错误率小于事先设置的阈值0.995或达到指定的迭代次数,得到的匹配对集合即为正确匹配对。

然后,对k组匹配对(xi,yi),(xi′,yi′),i∈1,2,…,k,利用最小二乘法估计图像间的单应变换矩阵vectorh,其矩阵参数为:h=[h0,h1,...,h7];

h=(ata)-1atb

其中,

进一步地,本发明的步骤s3中进行图像排序的方法具体为:

根据粗匹配信息,遍历每一幅图像得到的匹配数,找出与其对应的次多匹配数和最多匹配数,并求出比值,这样会得到一个一维数组;

对得到的一维数组进行排序,求出其最小值和最小值对应的位置,该位置对应的图像即为第一幅图像;

根据找到的第一幅图像,找到与它匹配数最多的图像作为第二幅图像,与第二幅图像匹配数最多的图像作为第三幅图像,依次类推,找出全部的图像;

最后来确定第一幅图像为首图像还是尾图像,其方法为:根据匹配点的横坐标x的平均值h与width/2作比较,width表示图像的宽度,若h>width/2,即匹配点集中在图像的右侧,即为首图像,若h<width/2,即匹配点集中在图像的左侧,则为尾图像;

若第一幅图像为首图像,则直接输出排序后的图像序列,若第一幅图像为尾图像,则逆序输出排序后的图像序列。

进一步地,本发明的步骤s4中投影变换模型的计算过程为:

s41、假设参考图像索引值为m,利用矩阵间的传递性,任意一幅图像到中间参考图像的变换矩阵torefhvectorim可以表示为:

式中i∈k,k=0,1,2,…,n,vectorh[i]表示经过排序后的相邻图像间的变换矩阵,则tore-fhvectorim即为投影变换模型;

s42、利用投影变换模型torefhvectorim完成图像的投影,假设参考图像的点集为(xi,yi,1),其他任意图像的点集为(xi′,yi′,1),则有:

其中,h0i、h1i、h2i、h3i、h4i、h5i,h6i,h7i,h8i是第i幅图像到参考图像的变换矩阵torefhvectorim的参数,即可以把第i幅图像的点集投影为参考图像坐标空间的点集。

进一步地,本发明的步骤s5中进行多线程并行拼接的方法为:

s51、以第一幅图像的亮度为标准进行亮度校正,其具体步骤为:

假设i1和i2为待校正的两幅待拼接图像,s1和s1分别表示重合区域内的两幅图像的任意像素点,且假设i1的亮度高于i2,且校正时以i1为基准,将i2校正到i1的亮度上;

s52、以参考图像为界,将序列图像分为liftimages={i1,i2,…,im}和rightimages={im,im+1,…,in}两部分,其拼接过程分别采用一个线程,两个线程分别将liftimages和rightimages中的每一幅图像投影到参考图像所在平面;

s53、当两个线程均工作完成后,采用渐入渐出的加权平均融合算法消除拼接缝,完成图像拼接。

进一步地,本发明的步骤s51中进行亮度校正的方法具体为:

s511、计算两幅图像在重合区域内的所有像素点的三通道之和:

对于图像i1,有:

i1c_sum=∑(s1c)γ

对于图像i2,有:

i2c_sum=∑(s2c)γ

其中c表示某个通道,对于彩色图像,c∈(r,g,b),且γ=2.2;

s512、分别计算出三个通道的比例系数:

s513、利用求出的kc值进行校正,分别将i2的像素点的三通道值进行补偿,补偿公式为:

具体地,以序列图像的第一幅图像的亮度为基准,利用以上步骤依次将其他图像的亮度校正到第一幅图像。

本发明产生的有益效果是:本发明的匹配策略融合及低误差的快速图像拼接方法,(1)提出了基于surf描述符的sift算法仅在重合区域提取特征点,提高了特征检测的效率;(2)使用基于bbf查询机制的kd树搜索算法,融合改进的最近邻比次近邻、交叉检查和匹配阈值化3个匹配策略,并结合坐标约束进行特征粗匹配,提高了匹配效率和精度,使得ransac算法快速收敛,且变换矩阵精度大大提高;(3)提出序列图像到参考图像的投影变换模型的计算方法,结合多线程技术完成所有图像的投影,不仅减少了多幅图像拼接带来的累计误差,而且效率上大大提高;(4)可自动地完成序列图像的排序,无需人工参与,且在图像融合前对所有图像进行亮度校正处理,使得拼接视觉效果更好。

附图说明

下面将结合附图及实施例对本发明作进一步说明,附图中:

图1是本发明匹配策略融合及低误差的快速图像拼接方法的流程图;

图2是本发明匹配策略融合及低误差的快速图像拼接方法的框架图;

图3是本发明匹配策略融合及低误差的快速图像拼接方法的详细结构图;

图4是本发明特征检测流程图;

图5是本发明特征匹配流程图;

图6是本发明坐标约束原理示意图;

图7是本发明图像拼接策略流程图;

图8是本发明投影变换矩阵计算流程图;

图9a是本发明具体的拼接实例;

图9b是本发明具体的拼接实例;

图9c是本发明具体的拼接实例。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

如图1所示,本发明实施例的匹配策略融合及低误差的快速图像拼接方法,该方法包括以下步骤:

s1、获取待拼接的多幅序列图像,对其进行预处理,包括灰度化、统一图像分辨率以及标定图像间的重合区域;

s2、在标定的重合区域内提取sift特征点,然后利用积分图像计算surf特征描述符;

s3、使用基于bbf查询机制的kd树搜索算法,融合改进的最近邻比次近邻、交叉检查和匹配阈值化3个匹配策略,并结合坐标约束完成特征粗匹配,并利用粗匹配信息完成序列图像排序,然后采用随机采样一致性算法对匹配结果对进行提纯并拟合图像间的单应性变换矩阵;

s4、选取序列图像中间位置的图像作为参考图像,根据得到的单应性变换矩阵,建立任意位置的待拼接图像到参考图像的投影变换模型;

s5、对所有图像进行亮度校正后,使用得到的投影变换模型,并结合多线程技术,将所有图像均投影到参考坐标空间,经过图像融合后合成高质量全景图像。

如图2所示,本发明实施例的匹配策略融合及低误差的快速图像拼接方法,其具体算法框架为:

分为预处理、图像配准及合成图像3个部分。预处理阶段根据全景图尺度估计将图像分辨率统一为300×400,并标定重合区域。图像配准为经过特征检测和匹配后,估计图像间的变换矩阵得到配准参数。合成图像包括亮度校正、图像投影和图像融合等,最终实现快速且误差小的序列图像拼接。

更进一步,本发明的具体实施细节如图3所示。

其中,步骤a为图像预处理模块,其具体步骤为:

a1、对序列图像进行灰度化处理,具体地,由于人眼对r、g、b的敏感度不同,采用加权的方法进行灰度化处理,即:

g(x,y)=0.30r+0.59g+0.11b

其中,g(x,y)为灰度化后的像素值,r、g、b为像素(x,y)的红色、绿色、蓝色分量值。

a2、统一序列图像的分辨率,具体地,分辨率设置为300×400;

a3、标定序列图像的重合区域,具体地,每一幅图像的左右1/3区域标定为重合区域。

步骤b为特征检测模块,其具体步骤如图4所示:

b1、计算图像的积分图像,积分图像is(x,y)中的任意一点(i,j)的值,为原图像i(x,y)左上角到任意点(i,j)相应的对角线区域灰度值的总和,即:

b2、构建图像的高斯金字塔,利用以下公式计算每一组中每一层的高斯图像,形成高斯金字塔;

b3、构建高斯差分金字塔,在高斯金字塔的每一组,依次将相邻的高斯图像相减得到高斯差分图像,如以下公式所示:

b4、初步确定极值点,在高斯差分金字塔dog内进行三维邻域内的特征点极值搜索,初步确定特征点;

b5、精确定位特征点,由于极值搜索得到的备选特征点在离散空间中得到,如果将其放到连续空间,则原来的极值点可能不是真正的极值点,需要进行拟合处理得到亚像素精度的特征点。剔除插值偏移量大于0.5、响应值小于0.03的点以及存在边缘效应的点;

b6、确定特征点方向,通过积分图像isum(m,n),计算以特征点为中心的扇形区域内x,y方向的haar小波响应值dx,dy,统计幅值∑dx+∑dy和对应的方向角arctan(∑dx/∑dy),幅值最大的区域方向即为特征点主方向,且定义幅值大于最大幅值80%的区域方向为辅方向;

b7、沿特征点主方向,取20δ×20δ的矩形区域,并将该区域划分为4×4个子块,然后利用积分图像isum(m,n)统计每个子块的harr响应值v:

v=[∑dx,∑|dx|,∑dy,∑|dy|]

这样即可得到4×4×4=64维的特征描述符descriptor,如果区分正负号,则为128维;

步骤c为特征粗匹配模块,经过步骤b提取出特征点后需要将物理位置一致的点进行匹配,具体步骤如图5所示:

c1、利用图像和图像的特征描述符信息建立kd树,将其表示为kd_roota和kd_rootb;

c2、对于图像ij中的特征描述符,利用bbf查询机制,在kd_roota中查询9个近邻点neighborpoints={n1,n2,…,n9},并计算每个近邻点与查询点的距离neighbordis={dis1,dis2,…,dis9};

c3、求n2,n3,…,n9这8个近邻点的平均距离作为次近邻距离d(2),然后计算disc=dis1/d(2),设阈值dish=0.65,若disc小于dish,则认为是正确的匹配对,否则排除匹配对;

c4、判断匹配对的特征描述符间的差值,若差值大于阈值maxfeaturedist,则剔除该匹配项;

具体地,分别利用欧式距离计算matches1中所有匹配对间的特征描述符间的差值:

式中,desik和desjk分别表示两个描述符i,j的每一维的数值因此,当featuredist大于阈值maxfeaturedist=0.4,则该匹配为错误的匹配,只有featuredist小于阈值才认为是正确匹配对;

c5、遍历图像中所有特征描述符重复步骤c2、c3、c4,得到图像到图像的匹配对goodmatches1;

c6、对图像中所有特征描述符,重复c2、c3、c4、c5四个步骤,得到图像到图像的匹配对goodmatches2;

c7、利用交叉检查策略,对goodmatches1和goodmatches2中的匹配对进行交叉验证,只有两个方向都能匹配到相同的匹配对,才认为是正确的匹配对,即得到正确的匹配对matches;

c8、对matches中的每对匹配对(x1,y1)和(x2,y2),利用|y1-y2|<v和|w-(x1-x2)|<h两个约束条件,对以上的匹配对进行提纯处理,得到精度较高的匹配对bestmatches。

具体地,考虑到序列图像均处于同一方向,正确匹配对的横纵坐标符合一定的坐标关系,因此可以增加坐标约束条件。以水平方向为例,令约束条件为|y1-y2|<p1且|w-x1-x2|<p2,其中,(x1,y1)和(x2,y2)是匹配对上的两个点,p1,p2是两个阈值,本文分别取p1=10,p2=8,w为图片的宽度,即w=300,坐标约束原理示意如图6所示,其中a、b是正确的匹配对,c、d由于不满足坐标约束条件将被排除。同理,垂直方向约束条件可以设为:|x1-x2|<p1且|h-y1-y2|<p2,其中h为图像高度,即h=400。

步骤d为图像排序和特征精匹配模块,经过步骤c后,使用得到的匹配信息完成序列图像排序,并使用ransac算法拟合得到图像间的变换矩阵,具体步骤为:

d1、根据粗匹配信息,遍历每一幅得到的匹配数,找出与其对应的次多匹配数和最多匹配数,并求出比值,这样会得到一个一维数组;

d2、对d1得到的一维数组进行排序,求出其最小值和最小值对应的位置,该位置对应的那幅图像即为第一幅图像;

d3、根据d2找到的第一幅图像,找到与它匹配数最多的图像作为第二幅图像,与第二幅图像匹配数最多的图像作为第三幅图像,依次类推,找出全部的图像;

d4、最后来确定第一幅图像为首图像还是尾图像,确定的基本原理为根据匹配点的横坐标x的平均值h与图像的一半宽度width/2作比较,若h>width/2,即匹配点集中在图像的右侧,即为首图像,若h<width/2,即匹配点集中在图像的左侧,则为尾图像;

d5、若第一幅图像为首图像,则直接输出排序后的图像序列,若第一幅图像为尾图像,则逆序输出排序后的图像序列;

d6、经过排序后图像间的匹配信息为sortvectormatches,依次选择sortvectormatches中的每一项,随机选取4组匹配对,计算单应矩阵和其错误概率,反复迭代,直到错误率小于事先设置的阈值或达到指定的迭代次数,此时得到的匹配对集合即为正确匹配对。

然后,对k组匹配对(xi,yi),(xi′,yi′),i∈1,2,…,k,利用最小二乘法估计图像间的单应变换矩阵vectorh,其矩阵参数为:h=[h0,h1,...,h7];

h=(ata)-1atb

其中,

步骤e为图像亮度校正模块,拼接前需要进行图像亮度校正,其具体步骤为:

假设i1和i2为待校正的两幅待拼接图像,s1和s1分别表示重合区域内的两幅图像的任意像素点,且假设i1的亮度高于i2,且校正时以i1为基准,将i2校正到i1的亮度上。

e1、计算两幅图像在重合区域内的所有像素点的三通道之和:

具体地,对于图像i1,有:

i1c_sum=∑(s1c)γ

对于图像i2,有:

i2c_sum=∑(s2c)γ

其中c表示某个通道,对于彩色图像,c∈(r,g,b),且γ=2.2。

e2、根据第e1步的计算结果,利用以下公式分别计算出三个通道的比例系数:

e3、利用第e2步求出的kc值进行校正,分别将i2的像素点的三通道值进行补偿,补偿公式为:

具体地,以序列图像的第一幅图像的亮度为基准,依次将其他图像的亮度校正到第一幅图像。

步骤f为并行图像投影变换模块,该模块将形成初步的拼接结果,如图7所示,其具体步骤为:

f1、利用步骤d6求出的所有图像间的变换矩阵vectorh={h0,h1,h2,…,hn},其中h0表示第一幅图像和第二幅图像间的变换矩阵,其他类似,且序列图像数量为n+1;

f2、以中间图像为参考,假设其索引值为m,则使用以下公式计算所有图像与参考图像间的变换矩阵,并将结果保存为torefhvectorim:

其中,i∈k,k=0,1,2,…,n,其变换过程如图8所示。然后利用投影变换模型torefhvectorim完成图像的投影。假设参考图像的点集为(xi,yi,1),其他任意图像的点集为(xi′,yi′,1),则有:

其中,h0i、h1i、h2i、h3i、h4i、h5i,h6i,h7i,h8i是第i幅图像到参考图像的变换矩阵tore-fhvectorim的参数,即可以把第i幅图像的点集投影为参考图像坐标空间的点集;

f3、以参考图像为界,将序列图像分为liftimages和rightimages两部分,两部分的拼接过程分别采用一个线程,记为threada和threadb,两者同时工作;

f4、threada线程工作时,分别将liftimages中的每一幅图像投影到参考图像所在平面,完成图像liftimages的初步拼接,threadb的工作原理与threada完全一样;

f5、只有当两个线程都工作完成后,才能将两个线程的结果进行叠加,形成初步的拼接结果。

步骤g为图像融合模块,实现图像重合区域的平滑过渡,主要的实现方法为渐入渐出的加权平均融合算法,即在重叠区域由第一幅图像缓慢过渡到第二幅图像,两幅图像的权值变化相反。假设第一幅图像对应像素的权值为w1,第二幅图像对应像素的权值为w2,则w1+w2=1。

对于w1和w2的求取,首先需要知道重叠区域的宽度width和重叠区域的起始横坐标x_start,则w2=1-w1,其中,x表示重合区域任意一点的横坐标值。假设第一幅图像的像素值为i1(x,y),第二幅图像的像素值为i2(x,y),融合后的像素值为i(x,y),则计算公式为:

应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。

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