APP下载

基于导向快速与旋转简短和随机抽样一致组合的图像拼接算法优化

2022-08-23李明亮侯英竹

科学技术与工程 2022年21期
关键词:拉普拉斯金字塔特征

李明亮, 侯英竹

(1.河北地质大学信息工程学院, 石家庄 050031; 2.智能传感物联网技术河北省工程研究中心, 石家庄 050031)

计算机科学与技术日新月异,构建全景图像成为了研究热点,目前全景图像已在医用影像处理、虚拟现实、图像遥感技术等方面有较为成熟的应用[1]。由于设备有限,只能够得到清晰度较高的局部图像或者清晰度较低的全景图像。目前研究发现将清晰度较高的局部图像进行无缝拼接可以得到清晰度较高的全景图像,研究一种拼接效果好、拼接效率高的图像拼接算法尤为必要[2]。

图像存在噪声,在图像拼接之前需要进行图像预处理,Mallat建立了小波变换快速算法并应用于图像的分解与重构,提出了利用小波变换模极大值原理进行信号去噪[3-4]。图像拼接的关键是准确快速找到待拼接图像的重叠部分,最常用的方法有像素查询、块匹配、特征提取等[5-6]。将待拼接图像重叠部分进行融合完成图像拼接[7]。尺度不变特征转换(scale invariant feature transform,SIFT)算法[8]和加速鲁棒特征(speed-up robust features,SURF)算法[9]的实现原理相似,其中SURF算法比SIFT算法构建线性的尺度空间的速度快[10],SIFT算法与SURF算法有较强的鲁棒性,但构建的线性尺度空间丢失图像细节信息[11-12]。导向快速与旋转简短(oriented fast and rotated brief, ORB)算法为了使其更加具有方向性,使用一个不具备旋转与尺度不变性的二进制描述符对该特征点的位置进行描述,计算速度快[13-14]。文献[15]首次提出了一种通过利用rBRIEF(rotated BRIEF) 的描述子对特征点提取二进制描述符,其利用这个特征点的一个主方向决定二进制描述符的位置,得到一个具有非线性和尺度不变的二进制描述符。RANSAC算法[16]能够消除大部分不相互匹配的特征点[17],提升了相互匹配的精度[18]。以上研究虽然在一定条件下大大提升了ORB算法的图像匹配精度,但对于图像在相位变化复杂的情况下,仍无法解决图像匹配精度低的问题。Aslantas进行了图像融合实验,结果表明拉普拉斯金字塔图像融合[19-20]效果更显著。

在现有特征提取及特征点匹配算法的基础上,现研究SIFT算法、SURF算法、ORB算法,使得图像特征匹配速度更快、精度更高,研究RANSAC算法与拉普拉斯金字塔图像融合算法,使得图像拼接更加精确。提出一种ORB算法、RANSAC算法与拉普拉斯金字塔图像融合算法组合的图像拼接算法,以期达到图像拼接速度更快、精度更高及无损无痕的效果。

1 利用小波变换对图像进行预处理

小波变换将图像的数据信息进行时间和频率的局部变换,可同时在时域和频率中对图像数据进行多尺度联合分析,所以采用Harr小波函数对图像进行分解,既保留了图像特征,又降低了噪声对图像特征提取的干扰,提高了图像匹配的精度,进而提高了图像拼接的精度。

Harr小波函数的数学定义为

(1)

尺度函数为

(2)

对于待拼接图像,分别在水平和垂直方向通过Harr小波函数实现一级小波变换分解。图1为经过一级小波变换行分解和列分解后子图像的划分。

小波变换的重构算法对分解后的小波系数进行逆变换重构图像,得到下一步进行特征提取的图像。

LL子带表示图像的近似;HL子带表示图像的水平方向特性;LH 子带表示图像的垂直方向特性;HH子带表示图像的对角特性图1 图像一级小波分解与重构过程Fig.1 Image first order wavelet decomposition and reconstruction process

2 ORB算法

ORB算法采用rBRIEF(rotated BRIEF) 描述子对特征点提取二进制描述符,其利用特征点的主方向来决定二进制描述符的方向。

选取一个S×S大小的像素块p,p经过平滑处理,令像素块中心处的灰度值为p(x),则二值测试准则τ定义为

(3)

在特征点周围选取n个点,坐标为(xi,yi),通过二值测试准则进行比较,得到具有旋转不变性质的n维二进制特征描述符,表达式为

(4)

定义一个2×n阶矩阵S为

(5)

特征点主方向θ对应的旋转矩阵Rθ为

(6)

将矩阵S进行旋转变换得到新的矩阵Sθ为

(7)

二进制描述符为

gn(p,θ)=fn(p)|(xi,yi)∈Sθ

(8)

3 特征点匹配

3.1 特征点粗匹配

运用ORB算法完成特征提取后,接着利用正反双向匹配算法进行特征点粗匹配。

正反双向匹配算法步骤如下。

步骤1在图像G1中随机选取一个特征点h,计算特征点h与待拼接图像G2中各个特征点之间的汉明距离q。

步骤2从待拼接图像G2各个特征点中选取与特征点h汉明距离最近的两个特征点,即最近点h1和次近点h2。

步骤3设h与h1之间的汉明距离为L1,h与h2之间的汉明距离为L2,若L1/L2>0.7,则表示特征点h和h1是一对匹配点。

步骤4根据步骤3规则计算得到图像G1中的特征点相应的匹配点对集为C1。同上,计算得到图像G2中的特征点相应的匹配点对集为C2。对比集合C1中的匹配点对与集合C2的匹配点对,若相同则保留,否则剔除。

3.2 特征点精匹配

经过粗匹配后的特征点对中有时候可能会出现有错误的匹配点对,会大大降低最终拼接精度,因此使用RANSAC算法提纯了匹配点对。

RANSAC算法步骤如下。

步骤1随机选取4组匹配点对(保证这4组匹配点对不共线)并用最小二乘法求解单应矩阵H。

步骤2计算根据H变换得到的特征点与粗匹配得到的特征点之间的欧氏距离,设定阈值选取匹配点对集合I。

步骤3欧氏距离在设定阈值内的匹配点对加入匹配点对集合I。每次迭代更新匹配点对集合I和迭代次数K,确定迭代次数K使得置信概率更高。置信概率为随机抽取K次,至少出现一次4组匹配点对都正确的概率,设特征点集包含正确数据的百分比为n,置信概率为1-(1-8n)K。

步骤4计算匹配点对集合I对应的变换矩阵H,即最终的图像变换模型。

4 图像融合

直接进行图像拼接,拼接处存在裂痕,利用拉普拉斯金字塔融合算法进行图像融合完成无缝拼接。

拉普拉斯金字塔融合算法步骤如下。

步骤1搭建高斯金字塔。

(9)

式(9)中:l为金字塔的层数;(m,n)和(i,j)为图像大小的参数;Gl(i,j)为第l层高斯金字塔图像;Gl-1(2i+m,2j+n)为第l-1层高斯金字塔图像;w(m,n)=h(m)h(n)为高斯卷积核。

(10)

步骤2高斯金字塔内的相邻层相减,得到拉普拉斯金字塔。

拉普拉斯金字塔表达式为

Ll=Gl-pyrUp(Gl+1)

(11)

式(11)中:l为金字塔的层数;Gl为第l层高斯金字塔图像;Gl+1为第l+1层高斯金字塔图像;Ll为第l层拉普拉斯金字塔图像;pyrUp()为对图像进行上采样函数。

步骤3拉普拉斯金字塔由底层逐层向上相加,得到融合图像。

5 图像拼接

进行图像拼接的过程中存在计算量大、运行时间长、提取错误匹配点对的问题,为了提高图像拼接的速度与精度,提出了改进的算法。

图像拼接的步骤如下。

步骤1输入待拼接的图像。

步骤2利用小波变换对图像进行预处理。

步骤3利用ORB算法选取图像特征点并匹配。

步骤4利用RANSAC算法剔除错误匹配点对。

步骤5利用拉普拉斯金字塔算法进行图像融合。

步骤6输出拼接完成的全景图像。

算法流程如图2所示。

图2 改进的算法流程图Fig.2 Improved algorithm flow chart

6 实验结果分析

6.1 实验1:特征匹配结果对比

选取4组图像分别利用SIFT算法、SURF算法、ORB算法及本文算法进行特征匹配实验。

表1进行了不同算法提取的特征数量对比,表2进行了不同算法特征提取时间对比,在windows10系统、内存8 GB计算机PyCharm软件下测试出来,利用Python中的time.time( )函数计算运行时间。

表1 不同方法提取特征数量对比Table 1 Comparison of the number of features extracted by different methods

表2 不同方法提取特征时间对比Table 2 Time comparison of feature extraction by different methods

选取图3作为实验图像,在空域上进行特征匹配的结果如图4所示,其中,SIFT算法特征匹配结果如图4(a)所示,SURF算法特征匹配结果如图4(b)所示,ORB算法特征匹配结果如图4(c)所示,基于ORB和RANSAC组合的图像拼接算法特征匹配结果如图4(d)所示。

由表1不同方法提取特征数量对比可知,SIFT算法比SURF和ORB算法提取特征数量要少得多。而基于ORB和RANSAC组合的图像拼接算法比SIFT算法提取特征数量有减少,但是不明显,分析是因为选取拼接的图像简单、特征点较少。由表2不同方法提取特征时间对比可知,同等条件下,SIFT算法比SURF和ORB算法提取特征时间要少。本文算法将图像通过小波变换进行预处理减小了特征提取的工作量,比SIFT算法提取特征时间也有减少,本文算法提取特征点平均耗时为0.309s,用时约为SIFT算法的84.7%、SURF算法的36.4%、ORB算法的64.9%。最后,结合图4的匹配结果来看,图4(c)中匹配点对最少,图4(a)、图4(b)、图4(c)中的错误匹配点对较多,图4(d)中有较多的匹配点对并且错误匹配点对最少,因此基于ORB和RANSAC组合的图像拼接算法特征点匹配精度高。

图3 实验图像Fig.3 Experimental image

图4 图像特征匹配实验Fig.4 Image feature matching experiment

6.2 实验2:图像粗匹配对比

实验2将特征点暴力匹配实验和特征点粗匹配实验进行对比,在空域上进行特征点粗匹配的结果如图5所示,图5(b)中的错误匹配点对比图5(a)中的错误匹配点对少,特征匹配的准确率更高。

6.3 实验3:图像精匹配对比

实验3将特征点粗匹配和特征点精匹配实验进行对比,在空域上进行特征点精匹配的结果如图6所示,图6(a)中存在错误匹配点对,图6(b)中不存在错误匹配点对,特征匹配的准确率进一步提高。

6.4 实验4:不同提取特征算法特征点匹配实验对比

所用的实验图像为hpatches数据库中的boat、bird、Beyus、azzola、apprentices、abstract共6组图像,主要针对不同提取特征方法对不同视角图像进行特征点匹配实验对比,统计特征点匹配对数与运行时间,其中时间在windows10系统、内存8 GB计算机PyCharm软件下测试出来,利用Python中的time.time()函数计算运行时间,从每组图像选取两幅存在视角差异的图像进行实验,如图7所示。结果如表3~表8所示。

图5 图像粗匹配对比实验Fig.5 Image rough matching contrast experiment

图6 图像精匹配对比实验Fig.6 Image precision matching contrast experiment

表3 不同提取特征方法进行特征点暴力匹配数量对比Table 3 Logarithmic comparison of feature point violence matching by different feature extraction methods

图7 hpatches数据库视角差异图Fig.7 View difference diagram of hpatches database

表4 不同提取特征方法进行特征点粗匹配数量对比Table 4 Logarithmic comparison of feature points rough matching of by different feature extraction methods

表5 不同提取特征方法进行特征点精匹配数量对比Table 5 Logarithmic comparison of feature point precision matching by different feature extraction methods

表6 不同提取特征方法进行特征点暴力匹配时间对比Table 6 The violence matching time of feature points comparison with different feature extraction methods

表7 不同提取特征方法进行特征点粗匹配时间对比Table 7 The rough matching time of feature points comparison with different feature extraction methods

表8 不同提取特征方法进行特征点精匹配时间对比Table 8 The precision matching time of feature points comparison with different feature extraction methods

由表3不同提取特征方法进行特征点暴力匹配对数数量对比可知,ORB算法明显比SIFT算法、SURF算法、AKAZE算法和BRISK算法进行特征点暴力匹配对数数量少。由表4不同提取特征方法进行特征点粗匹配对数数量对比可知,ORB算法明显比SIFT算法、SURF算法、AKAZE算法和BRISK算法进行特征点粗匹配对数数量少。由表5不同提取特征方法进行特征点精匹配对数数量对比可知,ORB算法明显比SIFT算法、SURF算法、AKAZE算法和BRISK算法进行特征点精匹配对数数量少。由表6不同提取特征方法进行特征点暴力匹配时间对比可知,ORB算法明显比SIFT算法、SURF算法、AKAZE算法和BRISK算法进行特征点暴力匹配时间少。由表7不同提取特征方法进行特征点粗匹配时间对比可知,ORB算法明显比SIFT算法、SURF算法、AKAZE算法和BRISK算法进行特征点粗匹配时间少。由表8不同提取特征方法进行特征点精匹配时间对比可知,ORB算法明显比SIFT算法、SURF算法、AKAZE算法和BRISK算法进行特征点精匹配时间少。实验结果表明ORB算法进行特征点匹配时间短。

6.5 实验5:图像融合实验对比

实验5进行图像融合实验对比,结果如图8所示,图8(a)为图像拼接结果,其中图像拼接处存在明显的裂痕,图8(b)为图像融合结果,图像拼接处裂痕不明显。

从图8(a)、图8(b)可以看到,图像拼接之后拼接处有明显裂痕。利用拉普拉斯金字塔算法进行图像融合之后获得的图像拼接处裂痕不明显,因此,基于ORB和RANSAC组合的图像拼接算法具有较好的拼接效果。

图8 图像融合实验Fig.8 Image fusion experiment

7 结论

根据图像拼接精度高、速度快的要求,介绍了图像拼接的流程,提出了对图像拼接的算法进行改进的想法,然后研究了基于小波变换的图像预处理、ORB算法、优化图像匹配的RANSAC算法以及拉普拉斯金字塔融合算法,得到了改进的图像拼接算法,最后进行实验。实验结果表明:提出的基于ORB和RANSAC组合的图像拼接算法对选取的图像进行提取特征平均耗时约为SIFT算法的84.7%、SURF算法的36.4%、ORB算法的64.9%,图像特征匹配精度提高,图像特征匹配时间缩短,消除图像拼接处裂痕,是一种优质的图像拼接算法。

猜你喜欢

拉普拉斯金字塔特征
根据方程特征选解法
“金字塔”
离散型随机变量的分布列与数字特征
Great Vacation Places
不忠诚的四个特征
金字塔是用金子造的吗
基于超拉普拉斯分布的磁化率重建算法
位移性在拉普拉斯变换中的应用
具有吸收项和局部源的一维p-拉普拉斯方程解的熄灭
含有一个参数的p-拉普拉斯方程正解的存在性