基于改进AKAZE算法的图像特征匹配方法
2020-08-20王晓华王文杰
程 禹,王晓华,王文杰,张 蕾
(西安工程大学电子信息学院,陕西西安 710048)
0 引 言
基于特征的图像匹配具有信息量大、抗干扰能力强的特点,在视觉SLAM[1]、目标识别[2-3]、目标跟踪[4]、三维重建[5-6]以及视频监控[7-8]等领域得到了广泛的应用。ORB(oriented FAST and rotated BRIEF)[9]算法、BRISK(binary robust invariant scalable keypoints)算法[10]等基于二进制描述符来描述图像特征点,相比于传统描述符,二进制描述符提高了特征点的稳定性,加速了特征向量匹配过程。Pablo F在KAZE算法[11]的基础上提出了AKAZE算法[12],使用二进制描述符M-LDB代替64维浮点型描述符M-SURF对特征点进行描述,速度快、计算简单,但在图像发生尺度、模糊变化时,特征点提取少、准确度低。
针对上述问题,学者们对AKAZE算法的描述符进行改进,分为二进制描述符与非二进制描述符2种方法。使用BRIEF、BRISK、ILDB[13]等二进制描述符在图像发生尺度、模糊等变化时,可以提高算法的特征点数量,但会产生旋转不变性丢失、运算时间长等问题。应用CNN[14]、LATCH等非二进制描述符可以提高特征点描述准确度,但图像尺度变化时会产生特征点数量少、计算量大、丢失边缘信息等问题。FREAK[15]是一种高稳定性的二进制描述符,其圆形对称采样结构具有旋转不变性、尺度不变性对光照与噪声有较强的抵抗能力[16-18]。
上述的AKAZE改进算法使用随机抽样一致算法(random sample consensus,RANSAC)[19]以及渐进一致采样算法(progressive sample consensus,PROSAC)[20]剔除误匹配点对时,会产生迭代次数不稳定、运算时间长、人为误差等问题。MAGSAC[21]使用的模型质量评估函数无需求解类内点集,迭代次数不依赖类内点阈值,在保证速度的基础上,显著提升了匹配精度。
为解决AKAZE算法在图像尺度变化、模糊变化时,特征点提取不均匀的问题,同时提高算法匹配准确率,本文提出了一种改进AKAZE的图像特征匹配算法。通过构建非线性尺度空间检测特征点,利用FREAK描述符对特征点进行描述,使用采样点确定特征点主方向,解决了M-LDB描述符稳定性差的问题,使用边缘化采样一致方法对粗匹配结果进行误匹配点对剔除,解决了匹配算法迭代次数不稳定、人为误差的问题。
1 改进AKAZE算法
1.1 构建非线性尺度空间
本文改进算法的尺度空间是一种使用图像亮度变化表示的非线性尺度空间。尺度空间为金字塔模型,每组图像包含多个子层,各层采用的分辨率与原始输入图像相同。为了较好地保留图像边缘信息,该非线性尺度空间采用非线性扩散滤波方法构建,应用流动函数的散度描述图像亮度在不同尺度空间的变化。本文改进算法使用快速显示扩散(FED)算法求解流动函数,快速得到输入图像的非线性尺度空间。
1.2 图像特征点检测与位置确定
计算非线性尺度空间中每个滤波图像的像素点值,表示为
(1)
1.3 图像特征点描述
为克服传统AKAZE算法局部二进制描述符在尺度变化、模糊变化的环境下鲁棒性差的缺点,提高特征点匹配准确率,使用FREAK描述符对检测出的特征点进行描述。具体步骤如下:
1) 采样点选取。采样点在以特征点为圆心的7层同心圆上。同心圆半径与特征点尺度成正比,每层圆环上均匀选取6个采样点,共得到42个采样点,产生903个采样点对。在得到采样点后,对所有采样点进行高斯平滑,高斯平均使用的高斯核与当前采样点所在同心圆半径成正比。每个采样点都有一个感受域,感受域为以该点为圆心,高斯核为半径的圆。
2) 描述符构造。使用高斯平滑后的采样点信息构造FREAK描述符。将采样点对的强度进行比较,其比较结果组合构成FREAK描述符,用F表示为
式中:Pα为感受域对;N为特征向量的维度。T(Pα)定义如下:
1.4 特征点主方向计算
特征点的主方向可以保证其旋转不变性及抗噪能力。参与计算的采样点越多耗时越长,因此,主方向O选取903个采样点中的距离长、中心对称的45个采样点计算梯度,在保证准确度的情况下提升了运算速度。主方向O的计算公式为
(2)
相比于传统AKAZE描述符的网格结构,FREAK描述符使用的同心圆结构使得圆与圆之间重叠,能够获取到足够多的图像信息;远稀近密的采样点分布能在保持描述准确性的前提下提高速度;采用数量可变的对称采样点对计算主方向具有更好的鲁棒性。
2 图像特征点匹配
筛选出正确的特征点是特征匹配中的关键。本文选取FREAK描述符作为特征描述符,因此使用二进制描述符的汉明距离对特征点进行粗匹配,选取边缘化采样一致方法对粗匹配得到的特征点进行精匹配,剔除错误匹配点。
边缘化采样一致方法避免了手动设定内点阈值、迭代次数的影响。首先,在输入数据点集Ρ中选择4对特征点计算,得到模型M,得到单应性矩阵参数θ。模型质量函数Q(θ,σ,Ρ)中,σ为阈值,质量函数的期望用来评估模型质量。模型质量函数为
(3)
式中:K为特征点数目;σi为特征点的投影误差;D为残差。根据评估函数判断当前模型是否为最优模型。
根据σ求取每个点为内点的概率,将阈值σ作为服从均匀分布的随机变量,边缘化σ得到:
(4)
将各点概率视为每个点的权重,根据权重使用加权最小二乘法拟合来优化模型。
传统RANSAC的迭代次数计算需要内点率,内点率依赖于类内点阈值σ。由于未设置阈值σ,因此迭代次数计算需要将阈值σ边缘化,即
(5)
根据模型的质量函数判断当前模型是否为最优模型,若是,则更新迭代次数k,进行新的迭代;若不是,则停止迭代,输出之前最优模型为这一数据集最优模型,并根据该模型计算正确匹配点对,剔除错误点。
3 实验与分析
为了验证本文改进算法的准确性与实用性,选取1组包含尺度变化、亮度变化、旋转变化、模糊变化的彩色图像,分别采用AKAZE+MAGSAC、本文改进算法+MAGSAC进行图像匹配实验。同时,为进一步说明本文改进算法的有效性,对实验过程中特征点提取的平均用时以及算法错误率-查全率进行对比分析。
3.1 匹配实验
实验图像在尺度变化、亮度变化、旋转变化、模糊变化情况下的匹配结果见图1。在图像发生亮度变化、旋转变化和模糊变化3种情况下,本文改进算法较AKAZE算法提取的特征点更均匀、数量更多、匹配准确率高,表明本文改进算法适应性更强;在图像发生尺度变化情况下,提取特征点数量与AKAZE算法提取的一致,但匹配精度得到提高。
图 1 各算法在彩色图像下的匹配结果
3.2 特征点提取平均用时对比
特征点提取平均用时是衡量算法的重要指标。AKAZE算法与本文改进算法在图像不同变化条件下的特征点匹配平均用时见表1。
表 1 彩色图像特征点提取平均用时
本文改进算法所采用的FREAK描述符使用特征点与采样点结合计算主方向,降低了使用采样点对组合数量,相较于AKAZE算法通过M-LDB描述符的随机选取扇形区域和网格像素采样来计算主方向的方法具有更高的效率。可见,本文改进算法相比于传统AKAZE算法,当图像尺度发生变化时,特征点提取平均耗时减少0.084 ms,当图像亮度发生变化时,特征点提取平均耗时减少0.064 ms,当图像发生旋转变化下特征点提取平均耗时减少0.055 ms,当图像发生模糊变化时,特征点提取平均耗时减少0.05 ms。
3.3 错误率-查全率
查全率为图像中检测出的正确配准点与所有配准点对的比值;错误率为错误配准点与总配准点的比值。图2~4为图像4种条件变化下的错误率-查全率曲线。图2为传统AKAZE算法和本文改进算法在图像发生尺度与旋转变化时的错误率-查全率曲线。
本文改进算法是在非线性尺度空间的基础上使用采样点来确定特征点主方向,采样点为对称结构,在保证特征点尺度不变的基础上增加了旋转不变性,提高了特征描述的效率与准确度,进而提升了特征匹配准确率。如图2所示,AKAZE算法的查全率达到0.839 2,本文改进算法查全率达到0.909,相比传统AKAZE算法提高了6.98%。
图 2 尺度与旋转变化
图3为传统AKAZE算法和本文改进算法在图像发生亮度变化时的错误率-查全率曲线。
图 3 亮度变化
AKAZE算法的查全率达到0.858,本文改进算法的查全率为0.917,与传统AKAZE算法相比提高了5.9%。这是因为本文改进算法使用的FREAK描述符采用同心圆结构,圆与圆之间有重叠,相比于传统AKAZE算法描述符的邻域划分网格方式能够获得更多的图像信息,描述更准确,抗噪能力更好,查全率更高。图4为传统AKAZE算法和本文改进算法在图像发生模糊变化时的错误率-查全率曲线。
图 4 模糊变化
本文改进算法的FREAK描述符中的采样点使用了高斯核进行高斯平滑,之后再生成强度值对特征点进行描述,具有较好的抗噪声能力,保证了图像模糊条件下的查全率达到0.920 3,相比AKAZE算法查全率0.834 6提高了8.57%。
4 结 语
针对传统AKAZE算法在图像发生尺度变化、模糊变化下匹配错误率高的问题,本文提出了一种基于边缘化采样一致的改进AKAZE图像特征匹配算法。构造非线性尺度空间检测图像特征点,利用FREAK描述符描述特征点,对采样点对进行梯度计算确定特征点主方向,使用汉明距离对图像特征点进行粗匹配,应用边缘化采样一致方法剔除粗匹配中的错误匹配点。实验结果表明,本文改进算法可有效提高图像在尺度变化、模糊变化下的特征点提取数量及提取用时,准确率更高。