一种改进AKAZE 特征和RANSAC 的图像拼接算法

2021-01-15 07:18吴禄慎陈小杜
计算机工程 2021年1期
关键词:尺度空间描述符像素

吴禄慎,陈小杜

(南昌大学 机电工程学院,南昌 330031)

0 概述

图像拼接技术是将部分重叠的多幅图像合成为一幅无缝高分辨率图像,广泛应用于广域场景获取以及遥感图像[1]、视频监控图像、医学图像分析等领域。图像配准作为图像拼接的关键环节,其结果对图像拼接效果影响较大。图像配准方法主要包括基于图像灰度的配准方法、基于图像特征的配准方法和基于图像域变换的配准方法[2]。

近年来,基于图像特征的配准算法因具有鲁棒性好、配准速度快和计算量少等优点,成为学者们研究的热点。基于图像特征的配准算法主要包括SIFT、SURF、ORB、KAZE 和AKAZE 等算法。其中,SIFT 算法和SURF 算法的实现原理相似,两者不同之处在于SURF 算法是使用不同尺度的滤波窗口与原图进行卷积来加速构建线性的尺度空间,其为SIFT 算法的加速版。虽然SIFT 算法和SURF 算法的鲁棒性均较强,但这两种算法构建的线性尺度空间会导致图像细节信息丢失[3]。ORB 算法[4]改进了FAST 特征点检测算法,使其具有方向性,并使用二进制的二元鲁棒独立基本特征(Binary Robust Independent Elementary Features,BRIEF)对特征点进行描述,虽然计算速度较快,但不具备尺度不变性[5]。KAZE算法[6]和加速AKAZE算法[7]构建的尺度空间均为非线性尺度空间,可较好保留图像细节部分,但由于所用的特征点描述符不稳定,导致AKAZE 算法鲁棒性不高[8]。针对AKAZE 算法所用描述符稳定性低的问题,文献[9]提出在特征点描述时,将M-LDB 描述符替换为BRISK 描述符来描述特征点,使其具有较好的旋转不变性和尺度不变性,从而提高描述子稳定性。文献[10]提出一种三元组描述符与AKAZE 算法相结合的方法,有效提高图像配准精度。文献[11]利用SIFT 描述符描述特征向量并获取特征点主方向,提高了AKAZE 算法的描述能力。文献[12]利用特征点周围灰度梯度相似性,通过剔除部分匹配点来提高RANSAC 算法剔除错误单应性矩阵的速度。上述研究虽然在一定条件下提升了AKAZE 算法匹配精度,但出现图像拍摄视角和亮度等较复杂的变化时,仍无法解决图像配准精度低的问题。此外,传统RANSAC 算法计算图像变换矩阵时冗余时间多且稳定性较差。

针对现有算法在图像对变化复杂时配准精度低的问题,本文提出一种利用改进AKAZE 特征与RANSAC 算法的图像拼接算法。采用AKAZE 算法建立图像的非线性尺度空间,使用非极大值抑制法计算得到图像特征点,利用卷积神经网络(Convolutional Neural Network,CNN)[13]描述符生成特征点描述向量,分区块精简特征点并设定嵌套阈值改进RANSAC算法以提升变化矩阵模型计算速度,并避免特征点对太集中造成图像配准精度下降的问题。

1 AKAZE 算法

1.1 特征点检测

不同尺度空间下图像亮度L的变化可采用非线性偏微分方程来描述,表达式如下:

其中,div 和∇分别为散度和梯度,c(x,y,t)为传导函数,t为进化时间,也是图像尺度参数。

1.1.1 构造非线性尺度空间

AKAZE 算法构造非线性尺度空间的方法与SIFT 算法类似,两者都设置O组和S层。图像尺度参数σi的计算公式为:

其中:i∈[0,N-1],N为图像总数;图像组o∈[0,O-1];子层级s∈[0,S-1];σ0为图像初始尺度参数。

图像尺度参数σi与进化时间ti的关系式如下:

由式(2)和式(3)得到输入图像和对比度因子之后,使用FED 算法[14]和式(1)计算得到图像L的非线性尺度空间,表达式为:

其中,i∈[0,N-1],I为单位矩阵,τ为时间步长,A(Li)为维度i上的影像矩阵。

1.1.2 特征点位置确定

构造图像的非线性尺度空间后,采用非极大值抑制法计算图像金字塔中各层图像像素点对应的Hessian 矩阵值,并对Hessian 矩阵进行归一化。然后将Hessian 矩阵值与同层8 个像素点以及上下邻层18 个像素点对比,得到的极值点即为该尺度下的图像特征点。

1.2 特征点主方向

通过特征点附近区域内的一阶微分导数计算图像中该特征点的响应值,再随机选取一个以该像素点为原点的60°扇形区域,并计算绕该点不同方向扇形区域内特征点梯度向量之和,向量和最大的向量方向为特征点主方向。

1.3 特征点描述

将特征点附近区域分成若干子网格,以尺度σ为间隔在子网格中进行重采样获得离散点,再计算其对应像素值以及垂直和水平方向倒数的均值,最终生成一个长度为3 bit 的特征点描述向量。

2 CNN 描述符

与BoW 模型[15]的描述方法不同,基于卷积神经网络的图像描述方法主要依赖全局信息,而且从深度卷积神经网络模型中提取的通用深度描述符在视觉任务中具有良好的图像描述能力,因此,本文利用CNN 模型提取的通用深度描述符对特征点区域图像块进行描述生成特征点描述向量。

2.1 网络结构

本文采用的L2-Net 网络[16]结构如图1 所示,其中,图1(a)为基本网络,图1(b)为中央环绕(Central-Surround,CS)网络,其包含两个相同的基本网络。在该网络中,特征塔由池化层和步长为2 的卷积操作共同构建,除最后一个卷积层之外,每个卷积层后均有一个归一化层使卷积层的权值和偏置参数保持在0~1 之间,最后的卷积操作是利用L2 归一化层生成128 维特征向量。

图1 L2-Net 网络结构Fig.1 L2-Net network structure

2.2 数据预处理

本文采用GL3D 数据集[17-18]进行训练,其中包含90 590 张高分辨率图像,涉及378 个不同城市和农村场景。该数据集图像由无人机从不同视角并采用多个尺度拍摄,几何重叠面较大。利用几何相似性方法[18]计算GL3D 数据集中不同视角下图像的相似性Simage,去除相似度大于0.85 的图像对,剔除GL3D 数据集中30%的训练样本。同时,对感兴趣区域提取尺寸为32 像素×32 像素的图像块,并利用几何相似性方法[18]得到图像块之间相似度Spatch用于计算损失函数。在CNN 描述符的学习中,使用32像素×32像素感兴趣区域图像块对(匹配/不匹配)作为输入。

2.3 损失函数

为拉大非匹配对和匹配对的距离,本文对结构损失函数E1和几何损失函数E2进行定义。

2.3.1 结构损失函数

其中,li,j为向量L中的元素。a∈(0,1)为距离比,用来增大非匹配对和匹配对之间的距离。取每批训练样本的损失平均值作为每批训练样本损失值。

2.3.2 几何损失函数

虽然结构损失函数E1可增大匹配对和非匹配对之间的距离,但无法保证匹配对之间距离接近。为此,本文将几何损失函数定义为:

其中,β为自适应参数,si,i为图像块对的余弦相似矩阵S中的元素,即每对图像块的余弦相似度。以E1+λE2作为损失函数,α和λ分别设置为0.4 和0.2。

2.4 训练过程

使用梯度下降法更新网络结构参数进行训练,学习率为0.001,权重为0.000 1,学习率衰减率为0.9,采用随机翻转、缩放、90°旋转、亮度和对比度调整等操作进行数据增强。匹配集大小和批量大小分别为64和512,输出的特征向量被归一化为均值是0 的单位范数,训练后模型大小为5.3 MB。

3 改进的RANSAC 算法

传统RANSAC 算法[19]在一定程度上可以去除错误匹配点对并估算图像变换矩阵模型,但当模型参数不合理时,每次要计算所有错误匹配点对后才能去掉该模型参数造成耗时较多,且当图像中随机特征点对较集中时,易计算出参数局部性过高的图像变换矩阵模型导致图像融合精度低[20]。

为解决上述问题,本文通过精简图像特征点对和在迭代过程中设定嵌套阈值的方式改进传统RANSAC 算法,从而加速变换模型参数计算并提高图像拼接精度。

1)采用具有最大和最小x、y值的4 个边缘特征点确定特征点分布范围,将其划分为A×B个网格,网格的长度a、宽度b根据特征点对分布范围矩阵中宽度W、高度H的较小值以及网格数目确定,单位为像素。文中实验将特征点对分布范围矩阵的宽度和高度中较小值的1/40 作为网格边长,即a=b=min(H,W)/40。特征点分布如图2 所示,将边缘处小于设定边长的网格作为一个独立网格进行处理。

图2 特征点分布Fig.2 Distribution of feature points

2)去掉没有特征点的图像块,对于特征点个数大于1 的图像块,只保留1 个特征点对匹配分数最高的特征点对,特征点个数从1 234 个减少至415 个,优化后的特征点分布如图3 所示。对比图2 和图3发现:图2 中特征点分布过于集中,造成计算的变换模型参数具有很高局部性;图3 中特征点分布均匀,计算出的变换模型具有更好的稳定性和准确性,减少特征点数可缩短错误变换模型去除时间。

图3 优化后的特征点分布Fig.3 Distribution of feature points after optimization

3)在优化后的特征点对集S中随机选取4 对匹配特征点对计算图像变换矩阵模型参数。

4)统计特征点对集S中除了已选取的4 对特征点对之外的其他特征点对,并由步骤3 计算出变换矩阵模型数目记为局内特征点数目。

5)重复步骤3 和步骤4。将迭代次数上限设置为10 000,若计算出的变换矩阵模型H局内特征点对数目大于10,则记录局内特征点对数目及其对应的变换矩阵模型H,否则不记录并继续迭代。设定满足条件的变换矩阵模型数量上限为200,即最终记录的变换矩阵模型H及其对应的局内特征点对数目不超过200。迭代次数上限的设置原则是其应尽可能大,但本文在迭代过程中嵌套了阈值,当满足条件的变换矩阵模型H数量达到200 时则停止迭代。通过实验统计不同阈值下最优变换矩阵模型所对应的局内特征点对数目得到阈值设置范围,如图4 所示。可以看出,当阈值设置为150~250 时,计算得到的最优变换矩阵模型局内特征点对数目最多且拟合曲线趋于平稳。

图4 不同阈值下局内特征点对数目Fig.4 The number of local interior feature point pairs with different thresholds

6)提取局内特征点对数目最多的变换矩阵模型H,该模型为最优变换矩阵模型。

4 图像拼接

4.1 最佳缝合线

配准变换后的两张图像由于可能存在色差或配准误差等问题,因此直接进行拼接会有明显拼接缝或鬼影现象。为确保图像的拼接精度,采用最佳缝合线算法结合多频段融合算法[21]对变换后的图像进行拼接。最佳缝合线算法的基本原理是计算重叠区域图像的强度值,选取强度值最小的路径作为最佳缝合线,可有效消除鬼影。

4.2 多频段融合

找到最佳缝合线后,若直接在拼接缝左、右两侧区域取参考图像和变换后的配准图像则会产生明显的拼接缝。多频段融合算法的基本原理是将图像分解为多个不同频率的图像,以不同权重来进行相加融合,可保留图像高频信息,并达到良好的拼接效果。因此,本文使用多频段融合算法来对拼接缝左、右两侧图像进行融合以消除图像拼接缝。

4.3 图像拼接算法流程

本文所用的图像拼接算法流程如图5 所示。特征点区域图像块是通过对原图像构建非线性尺度空间金字塔所提取,利用训练好的模型对每个32 像素×32 像素的特征点区域图像块进行卷积操作,生成128 维的特征点描述向量。

图5 图像拼接算法流程Fig.5 Procedure of image stitching algorithm

5 实验与结果分析

为验证本文采用的CNN 描述符实际配准效果和改进的RANSAC 算法实际拼接结果,分别进行图像配准实验和RANSAC 算法图像拼接实验。实验的编程环境为PyCharm2019,实验平台为Ubuntu18.04,电脑配置为Intel Core i5 9400,主频为2.9 GHz,内存为16 GB。

5.1 图像配准实验

本文所用的配准图像来源于Hpatches 数据库和实际拍摄图像,在Hpatches 数据库中,每序列共有6 张不同变化的图像。选取6 组不同场景下的图像对进行配准实验,先对视角差异与光照差异较大的图像对进行图像配准,再模拟常见的图像变化进行描述子性能对比,通过RANSAC 算法去除局外特征点对来计算和统计配准的准确率,配准结果示例如图6 所示。图6(a)为传统AKAZE 算法配准结果,图6(b)为本文图像拼接算法(以下称为本文算法)配准结果。可以看出:利用传统AKAZE 算法对特征点进行描述生成的描述子,对具有较大视角差异的图像对描述能力较差,难以实现特征点的正确匹配;本文算法所用的CNN 模型对特征点进行描述生成的描述子具有更好和更稳定的描述能力,图像特征点匹配准确率更高,图像配准的鲁棒性更好。

图6 2 种算法的图像配准结果Fig.6 Image registration results of two algorithms

5.1.1 视角差异图像对配准对比

本文选取Hpatches 数据库中具有视角差异的graffiti、fest、home、man、dogman 和boat 6 对图像(见图7),分别计算AKAZE 算法、SIFT 算法和本文算法对上述图像的配准精度,结果如表1 所示。可以看出,本文算法的配准精度平均值较传统AKAZE算法高12.60 个百分点,表明本文算法对视角差异图像对配准的准确性更高。

图7 视角差异图像对Fig.7 Image pairs with different view angles

表1 3 种算法的视角差异图像对配准精度对比Table 1 Comparison of registration accuracy of image pairs with different view angles of three algorithms %

5.1.2 光照差异图像对配准对比

本文选取Hpatches 数据库中具有光照差异的londonbridge、crownday、leuven、ajuntament、partyfood和salon 6 对图像(见图8),将AKAZE 算法、SIFT 算法和本文算法对上述图像的配准精度进行对比,结果如表2 所示。可以看出,SIFT 算法在光照差异较大情况下的配准精度平均值较低,传统AKAZE 配准精度平均值较SIFT 算法要高,但对salon 图像对配准精度较低,仅为65.12%;本文算法的配准精度平均值高于其他两种算法,较传统AKAZE 算法高6.99 个百分点。由此可见,本文算法在光照差异较大情况下对图像对配准的精度更高。

图8 光照差异图像对Fig.8 Image pairs with different illumination

表2 3 种算法的光照差异图像对配准精度对比Table 2 Comparison of registration accuracy of image pairs with different illumination of three algorithms %

5.1.3 描述子性能对比

保证图像匹配算法有效的前提是局部不变特征能适应常见的图像变换。本文采用召回率(Recall)评价和对比算法在不同变化条件下的匹配性能,召回率即正确匹配的特征点对数占图像中所有匹配点对数的比率,计算公式为:

实验采用实际拍摄图像并对其进行降采样处理,压缩后图像尺寸为1 280 像素×720 像素,如图9 所示。

图9 描述子性能实验图Fig.9 Experimental graph of descriptor performance

分别对原实验图像进行亮度变化、旋转变化、高斯模糊、尺度变化和翻转变化(绕图像y轴旋转)来模拟图像变化,分别采用AKAZE 算法、SIFT 算法和本文算法对每组图像进行特征点对配准,得到图像配准实验曲线如图10 所示。可以看出:当亮度增量为-100 时,本文算法的召回率比传统AKAZE 算法高约20 个百分点;旋转变化时本文算法的召回率平均比传统AKAZE算法高15 个百分点;高斯模糊时,随着平滑半径的增大,传统AKAZE 算法和SIFT 算法的召回率降幅较大,而本文算法召回率变化较平稳;尺度变化和翻转变化时,本文算法的召回率均高于传统AKAZE 算法和SIFT算法;当图像变化较大时,本文算法的召回率与传统AKAZE 算法和SIFT 算法的召回率之间差异更大。由上述可知,本文所用的CNN 描述符对图像各种变化适应性较强,适用于处理复杂变化图像对的匹配和识别等任务。

图10 3 种算法的图像配准实验曲线Fig.10 Experimental curves of three algorithms for image registration

5.1.4 图像对配准时间对比

图像对配准时间对比实验采用6 组实际拍摄的图像对,每组图像对经降采样处理后尺寸为1 280 像素×720 像素。将传统AKAZE 算法、SIFT 算法和本文算法描述单个特征点所用时间进行对比,结果如表3 所示。可以看出:本文算法的单个特征点描述平均时间略高于传统AKAZE 算法和SIFT 算法,这是因为本文算法构建非线性尺度空间和提取尺度空间中感兴趣图像块耗费了一定的时间。但由表1 和表2 可知,当图像对变化复杂时,本文算法的特征点对配准精度高于传统AKAZE 算法和SIFT 算法,鲁棒性更好。

表3 3 种算法的单个特征点描述时间对比Table 3 Comparison of description time of three algorithms for single feature point ms

5.2 RANSAC 算法图像拼接

为比较传统RANSAC 算法和本文改进RANSAC 算法的性能,本文进行传统RANSAC 算法和改进RANSAC 算法拼接精度对比实验以及RANSAC 算法运行时间对比实验,所用图像均为实际拍摄图像。

5.2.1 拼接精度对比

当特征点过于集中时,传统RANSAC 算法得到的全局变换模型参数局部性过高,造成图像拼接精度较低。本文改进了RANSAC 采样模式,预先对过于集中的特征点进行精简,使其分布更加均匀,提高算法运行速率和稳定性,同时设定迭代上限和嵌套阈值避免耗费过多时间。采用传统RANSAC 算法和改进RANSAC 算法所得图像最佳拼接缝和拼接结果对比情况如图11 所示。由于本文采用最佳缝合线对拼接缝左、右两侧图像进行拼接,因此本文中主要对比拼接缝处的图像拼接精度。由图11 可以看出,与改进RANSAC 算法相比,传统RANSAC 算法在拼接缝处出现明显的偏差,拼接精度更低,这和其RANSAC 采样的特征点分布过于集中造成变换模型参数局部性过高密切相关。由上述可知,本文算法的图像拼接精度比传统RANSAC 算法更高。

图11 传统RANSAC 算法和改进RANSAC 算法的图像拼接缝与拼接结果Fig.11 Image stitching seams and stitching results of traditional RANSAC algorithm and improved RANSAC algorithm

5.2.2 运行时间对比

采用5.1.4节中实际拍摄的6组不同场景下的图像对,每组图像对经降采样处理后图像尺寸为1 280像素×720像素。将传统RANSAC 算法和改进RANSAC 算法的运行时间进行对比,将传统RANSAC 算法迭代次数上限设置为200,结果如表4 所示。可以看出,在迭代次数上限与嵌套阈值相等的情况下,改进RANSAC 算法运行时间较传统RANSAC 算法缩短4.17 ms,这是因为改进RANSAC 算法对特征点进行精简,减少过度密集的特征点,缩短去除错误变换模型的时间,同时使得特征点分布更均匀,提高图像拼接精度。由此可见,对循环迭代设定迭代次数上限和嵌套阈值可有效消除计算变换模型参数的冗余时间。

表4 传统RANSAC 算法和改进RANSAC 算法运行时间对比Table 4 Comparison of running time between traditional RANSAC algorithm and improved RANSAC algorithm ms

6 结束语

本文针对图像对在变化复杂时配准精度低的问题,在改进AKAZE 特征与RANSAC 算法的基础上,提出一种基于卷积神经网络的图像拼接算法。使用AKAZE 算法提取图像特征点,通过CNN 描述符生成特征点描述向量,优化RANSAC 算法的特征点对采样方式,并通过设定迭代上限与嵌套阈值消除计算变换参数模型的冗余时间,从而避免特征点过于集中造成模型参数局部性过高。实验结果表明,和传统AKAZE 算法相比,该算法计算时间更短且拼接精度更高。下一步将用多张图像代替图像对,以实现多图像精准拼接。

猜你喜欢
尺度空间描述符像素
像素前线之“幻影”2000
基于结构信息的异源遥感图像局部特征描述符研究
基于AHP的大尺度空间域矿山地质环境评价研究
基于AKAZE的BOLD掩码描述符的匹配算法的研究
“像素”仙人掌
Linux单线程并发服务器探索
ÉVOLUTIONDIGAE Style de vie tactile
居住区园林空间尺度研究
利用CNN的无人机遥感影像特征描述符学习
高像素不是全部