局部特征信息的航拍图像匹配算法
2022-04-02倪佳忠马志龙
倪佳忠 马志龙
(1. 浙江省测绘科学技术研究院, 浙江 杭州 311100; 2. 杭州天图地理信息技术公司, 浙江 杭州 310007)
0 引言
借助无人机航拍构建地形图[1-2]以及三维重建[3-5]已成为一种主流,限于无人机挂载相机画幅,需多次拍摄才能获得比较完整的图像。连续航拍图像构建地形图和三维重建,需得到相邻图像位置关系,基于局部特征点的图像匹配算法是计算相邻图像位置信息的最佳方法。
目前无人机航拍图像匹配主要是基于局部特征的方法,主要有4个步骤:尺度空间构建、特征检测、特征编码和内点筛选。何敬等人[6]提出基于尺度不变算法(scale-invariant feature transform, SIFT)[7]完成航拍图像匹配,SIFT算法在高斯尺度空间上提取特征点和构建描述符,具有较好尺度不变性、旋转不变性和抗光照不变性,但是耗时较长。王晓红等人[8]借助加速鲁棒性算法(speeded up robust features, SURF)[9]完成图像匹配,SURF算法描述符维度仅为64维,利用小波算法提取特征,相较SIFT算法效率更高。为了进一步加速航拍匹配方法,王文爽等[10]提出改进快速定向和描述符构建(oriented fast and rotated brief,ORB) 算法[11]进行图像匹配,在待匹配图像中构造掩膜并逐步移动掩膜完成ORB特征点提取,该方法相较SIFT算法和SURF算法速度更快,但鲁棒性欠佳。
上述几种算法的特征提取均在高斯尺度空间中进行,而高斯滤波会造成图像边缘信息丢失,严重影响航拍匹配算法鲁棒性。故任克强等人[12]提出基于“风”算法(KAZE)[13]的图像匹配方法,KAZE算法使用非线性滤波构建尺度空间,更好的保护图像细节信息,增加算法的稳定性,但非线性尺度空间构建耗时较长和浮点型描述符匹配效率较低等导致算法匹配速度较慢。韩敏等人[14]提出一种改进KAZE算法,使用二进制快速虹膜描述符(fast retina keypoint,FREAK)[15]代替原KAZE的SURF浮点型描述符。为了提高KAZE算法的效率,Alcantarilla等人[16]提出加速KAZE算法(accelerated KAZE),该算法使用速度更快加性算子分裂算法构建尺度空间,并提出鲁棒性较好的局部不同二进制描述符(modified-local difference binary,MLDB);该算法相较KAZE算法速度有极大提升,但相较ORB算法效率较低。
综上所述,现有航拍图像匹配方法仍有不足:(1)在高斯尺度空间上检测特征点和构造描述符严重影响算法稳定性;(2)非线性尺度构建鲁棒性较强,但匹配效率较慢。
为了解决上述问题,本文提出一种改进的ORB算法对电力巡线无人机航拍图像进行匹配。首先借助非线性滤波函数构建尺度空间,然后使用快速定位算法(Fast)检测特征点,随后构建二进制鲁棒描述符(binary robust independent elementary features,BRIEF)并用暴力匹配方法完成匹配,最后借助网格运动统计算法(grid-based motion statistics, GMS)[17]完成内点筛选,具体过程如图1所示。
图1 匹配过程
1 非线性ORB算法
1.1 非线性尺度空间构建
在SIFT、ORB等算法中,均借助高斯核函数平滑操作建高斯尺度空间,该方法效率较高,但会造成图像边和角点信息丢失。为了得到稳定的尺度空间,本文提出使用具有各向异性的非线性滤波算法构建尺度空间。
非线性扩散滤波将图像亮度L在不同尺度层演化,转化为热扩散函数散度因子控制的扩散过程,该过程通常借助偏微方程求解,则热扩散函数偏微方程为
(1)
式中,L为图像亮度矩阵;div和▽分别表示为热扩散函数的扩散度和图像梯度;c(x,y,t)是传导函数,表示为
(2)
式中,t为尺度参数;▽Lσ为图像L高斯滤波后的梯度图像;g为
(3)
式中,k为控制扩散度的对比因子。
为了更高效的解非线性函数,AKAZE算法借助快速显示扩散算法解偏微方程,可表示为
(4)
式中,I为单位矩阵;A(Li)为图像Li的传导矩阵;n为显性扩散步数;τj为恒定步长,可写成
(5)
式中,τmax为最大迭代步长,是控制显式扩散稳定条件,单个周期停止时间θn为
(6)
非线性尺度空间与SIFT算法高斯尺度空间类似,分别用o、s表示尺度空间的组和层,每组和层对应的尺度因子为
(7)
式中,σ0为初始尺度参数;O×S为尺度空间总层数。非线性尺度空间的尺度因子σ,可映射到时间单位中,即为
(8)
式中,ti为尺度空间的进化时间。
1.2 特征点检测
原ORB算法的特征点检测和描述符构建均在高斯尺度空间中,但是高斯滤波保边性较差,故本文提出特征点检测和描述符构建均在非线性尺度空间中进行。上一节已完成非线性尺度空间构建,则特征点提取具体过程如下:
(1)图像上任意像素点为圆心,选择半径为3个像素圆上的16个像素点作为比较点;
(2)设定固定阈值,若是圆心与圆上第一和第9个像素点做差,若插值绝对值大于阈值,则保留圆心点;
(3)若圆心为候选点,再计算第1、9、5、13个像素点与圆心的差值,若任意3个差值绝对值大于阈值,则保留圆心点;
(4)若圆心点为候选点,再计算圆上16个点与圆心点差值,若是至少9差值绝对值大于阈值,则圆心点为特征点。
1.3 描述符提取
在非线性尺度空间中检测特征点后,需对特征点构建主方向,本文借助原ORB算法中主方向构建方法,具体过程如下:
第一步:计算特征采样区域的矩,可写成
(9)
第二步:矩的质心为
(10)
第三步:特征点主方向为中心点到质心的方向,可写成
(11)
以特征点为中心旋转合适的区域作为特征采样窗口,任意选着两个像素点作为描述符采样点,可以建立τ为
(12)
若选择N对(Xi,Yi),(i=1,2,…,N)像素点,则可得到N维二进制描述符fN为
(13)
(14)
在非线性尺度空间上提取特征点和构建描述符后,借助汉明距离计算寻找同一对特征描述符。
2 网格运动统计算法
上述步骤完成了航拍图像的粗匹配,但内部存在大量错误匹配点,需借助特征点筛选算法选择正确匹配点。传统一般借助随机采样一致性算法筛选内点,但该方法需多次迭代计算,运算量较大,严重影响匹配效率;故在本文中,先借助汉明距离完成粗匹配,然后再通过GMS算法剔除错误匹配点。网格运动算法的核心思想:运动的平滑性导致正确匹配点邻域有较多的正确匹配点,因此可通过计算邻域匹配点数量判断一个匹配点是否正确。
若两张匹配图像IL和IR最邻近匹配点集合为
(15)
式中,xi={mi,ni},m,n分别为匹配图像IL、IR上匹配点数量;任意匹配点的邻域支持度Si=|xi|-1。特征点匹配需满足面积足够小和相互独立分布,则成对匹配点分布为
(16)
式中,xi为匹配点对;Kn为匹配点对数量;pt和pf分别为正确和错误匹配率。在网格运动统计算法中S(xi)呈双峰分布,则成对匹配点分布的均值和标准可写成:
(1)若xi为正确匹配点对,则有
(2)若xi为错误匹配点对,则有
由此可得网格运动统计算法的概率评估标准函数为
(21)
式中,px值越大,表明该对匹配点为正确匹配点概率越高。
3 实验
为了证明本文所提非线性ORB+GMS算法对航拍图像匹配的优越性,借助ORB算法、ORB+GMS算法、AKAZE算法、AKAZE+GMS算法与本文所提算法对比实验,在SUIRD数据集(small UAV image registration dataset)中对上述算法的匹配正确率和效率统计对比。SUIRD数据集共有四组具有不同变化图像:水平旋转、竖直旋转、尺度变换和混合变化,每组有6张图像且变化程度逐次增加,第1张为参考图像,其余5张是待匹配图像,如图2所示。
本实验计算机主要配置为:CPU i7-6700HQ,主频2.60 GHz,内存8 GB,操作系统为Ubuntn18.04,基于Python_Opencv3在Pycharm上进行实验。
(a)混合变化
(b)水平旋转
(c)尺度变化
(d)竖直旋转图2 实验图像
3.1 匹配准确率
为了提高ORB算法的鲁棒性,本文提出在非线性尺度空间中检测特征点和提取描述符,相较原ORB算法稳定性有极大提升;AKAZE算法构建的LDB描述符不仅对像素编码,还添加了梯度信息,故鲁棒性优于所提非线性ORB算法。
对于具有混合变化的航拍图像,ORB算法的匹配准确率最低;本文所提非线性ORB算法匹配正确率不及AKAZE算法,但优于ORB算法。ORB算法经过GSM算法筛选内点后,准确率高达0.912,但仍不及非线性ORB+GMS算法和AKAZE+GMS算法。非线性ORB+GMS算法匹配准确率高达0.950,相较ORB+GMS算法提高0.038。对于具有水平旋转变换航拍图像,非线性ORB算法匹配准确率相较ORB算法平均提高0.04,相较AKAZE算法降低0.043;非线性ORB+GSM算法相较ORB+GMS算法准确率提高0.48。
针对具有尺度变化的航拍图像,所提非线性ORB算法相较原ORB算法,匹配准确率提高0.053;非线性ORB+GMS算法相较ORB+GMS算法匹配准确率提高0.041。
针对竖直变化的航拍图像,所提非线性ORB算法相较AKAZE算法,匹配准确率降低0.06,相较ORB算法提高0.056。非线性ORB+GMS算法匹配准确率相较AKAZE+GMS算法降低0.01,相较ORB+GMS算法提高0.05,具体如图3所示。
(b)水平旋转变化
(c)尺度变化
(d)竖直旋转变化图3 各种算法匹配正确率
3.2 匹配效率
对ORB算法、ORB+GMS算法、AKAZE算法、AKAZE+GMS算法和本文所提算法在混合变化图像组匹配耗时统计,如表1所示。ORB算法借助高斯函数可快速构建尺度空间,特征点检测和描述符构建速度均较快,故ROB算法耗时最短、匹配效率最高;但由折线图3(a)知,ORB算法的匹配正确率最低,稳定性最差。非线性ORB算法借助非线性滤波函数构建尺度空间,需迭代解非线性函数,耗时较长,故匹配效率不及ORB算法;但非线性ORB算法匹配正确率超过ORB算法,稳定性优于ORB算法。AKAZE算法不仅需要解非线性函数,而且构建描述符需计算图像梯度值,故匹配效率不及非线性ORB算法;由折线图3(a)知,AKAZE算法匹配正确率高于非线性ORB算法,但匹配耗时远超过非线性ORB算法。
表1 算法耗时 单位:ms
4 结束语
针对ORB算法尺度空间构建方法易使图像角点和边缘信息丢失,造成航拍图像匹配准确率较低等问题,本文,本文提出一种基于非线性尺度空间的改进ORB算法。本文借助非线性滤波算法构建非线性尺度空间,可有效地保护图像细节信息,增加算法的鲁棒性;再使用Fast算法提取特征点,然后使用BRIEF算法提取描述符;最后借助GMS算法筛选内点。实验表明:非线性ORB算法具有较高的稳定性和效率,可广泛应用于航拍图像匹配场景中。