APP下载

基于BRISK-LATCH的喀斯特山区无人机影像匹配算法

2021-02-06代友林王晓红李万华

地理与地理信息科学 2021年1期
关键词:描述符喀斯特山区

代友林,王晓红,李 闯,李万华

(1.贵州大学矿业学院,贵州 贵阳 550025;2.贵州大学林学院,贵州 贵阳 550025;3.烟台职业学院,山东 烟台 264025)

0 引言

中国喀斯特地区已列入“世界遗产名录”[1],但该地区易发生滑坡、泥石流等自然灾害,利用无人机技术可快速做出响应,为救灾做好信息保障工作,且无人机影像构建的喀斯特三维景区更直观。喀斯特山区峰林和峰丛众多,其影像存在地形起伏大、影像亮度分布不均匀等情况,使得该地区无人机影像匹配特征不明显,出现正确匹配点数量较少、耗时长的现象。近年来,国内外学者针对无人机影像匹配进行了大量研究,在经典SIFT (Scale Invariant Feature Transform)算法[2]、SURF(Speeded Up Robust Features)算法[3]及AKAZE (Accelerated-KAZE)算法[4]等的基础上进行了改进和创新。例如,张贝贝等[5]利用Delaunay三角网的约束作用,在保持SURF算法和Harris算法优点的同时减少了误匹配,但当特征点数量较大时,构建三角网会导致计算量增大,时效性降低;王晓红等[6]利用AKAZE算法和SIFT描述符分别进行特征点检测和描述,再利用RANSAC(Random Sample Consensus)算法进行精匹配,可提高匹配效率及匹配点数;Leutenegger等[7]提出的BRISK(Binary Robust Invariant Scalable Keypoints)算法速度快且具有较好的旋转和尺度不变性,相比SIFT算法可满足实时性要求;宋伟等[8]提出基于改进AKAZE特征的无人机影像拼接算法,通过并行计算,利用BRISK描述符代替M-LDB描述符,在保证较高准确率的同时,有效提升了匹配效率,但总匹配数和正确点数均有所下降;针对喀斯特地区影像,何志伟[9]提出基于完全仿射变换的改进算法,通过对喀斯特地区多视角影像做不同经纬度下的模拟,能够精确模拟因相机光轴取向变化导致的无人机影像扭曲和几何变形,使得特征点数量增加且分布更均匀,正确匹配的数量显著提高;Levi等[10]提出的 LATCH(Learned Arrangements of Three Patch Codes)算法缩小了二进制描述符与局部梯度描述符间的性能差距;沈学利等[11]将LATCH与AKAZE和KAZE结合,提高了算法的速度和正确率,但在喀斯特山区的无人机影像上表现欠佳。

综上,已有研究通过结合两种算法优势或着眼于影像再处理,提升了算法的综合性能。但喀斯特地区影像应用对特征辨识度要求较高,无论是应用SIFT这种具有抗噪性好的算法[12],还是利用影像再处理技术或引入相关约束提升性能,均会导致时间成本升高,同时SIFT这类算法的特征数量较少,直接影响后续正确匹配数量。因此,本文顾及喀斯特山区无人机影像的特点,提出一种基于BRISK算法和LATCH描述符的喀斯特山区影像匹配算法,以期提升影像的匹配质量及时效性。

1 BRISK算法

BRISK算法采用在多尺度空间中进行FAST(Features from Accelerated Segment Test)[13,14]特征检测,通过比较特征点邻域像素灰度值,生成二值特征描述子[15,16],包括特征检测和特征描述两个步骤,本研究主要利用其特征检测过程。

(1)构建尺度空间金字塔。如图1所示,该金字塔共包含n个组层ci和n个组间层di,c0是尺度为1的原始影像,d0由c0经过1.5倍降采样得到,而其他di可由前一个组间层经隔点采样得到。各层尺度计算公式见式(1)。

图1 BRISK特征检测示意Fig.1 Schematic diagram of BRISK feature detection

(1)

式中:tci表示组层的尺度;tdi表示组间层的尺度。

(2)特征点检测和非极大值抑制。在尺度空间金字塔每层进行FAST特征点检测,得到候选特征点,通过对每个候选点比较其同层8邻域元素及其上下两层3×3范围内18个元素共26个元素的角点响应值,剔除比其他点响应值小的候选点,达到非极大值抑制的目的。

(3)获取特征点信息。对特征点同层及上下两层的每一个3×3范围内的9个元素进行最小二乘拟合,得到每层角点响应值的最大值s0、s1和s2及其亚像素坐标偏移量,再将s0、s1和s2与对应尺度通过抛物线拟合得到最大值smax及对应尺度,最终根据亚像素坐标偏移量及尺度关系计算得到具有亚像素级定位精度的特征点及其尺度。

2 LATCH描述符

基于局部梯度的描述符通过空间分割方式汇聚影像特征,所描述的特征具有高鲁棒性特点,但其计算量较大,不能满足实时性要求;相反,基于局部像素比对的二进制描述符以特征点为中心,构建一个一定像素大小的采样模板M,将M内各像素两两一对组合成t对坐标序列Si,直接比较Si和Si+1(也可对像素进行高斯滤波处理,比较处理后的像素),形成相应的二进制描述符,直到比较完所有像素坐标对,生成完整的二进制描述符。直接对比像素的方式减少了大量运算,实时性更好,但其描述的特征对噪声不敏感,易受局部变化影响[11,17],尤其是对于喀斯特山区地形起伏大、光照不均匀的无人机影像,更易产生影响。BRISK算法描述符就是这种二进制描述符,易受光照、噪声、尺度等的干扰,鲁棒性较差[18]。

LATCH描述符应用三元组像素块的比对方法确定二进制描述符中相应位的取值[19]。在特征检测窗口内,三元组存在多种组合方式,Levi等[10]通过机器学习的方式对文献[20]中的数据集(包含3个独立数据集合)进行Harris角点[5,21]检测,从每个独立数据集中获得超过40万个局部影像窗口,对这些窗口中成对的不同影像进行标记,依据其在不同视角或观看条件下是否都有相同的物理场景点进行区分,分别标记为相同或不同;然后将包含“不同”和“相同”标记各一半的50万对窗口,通过随机选取的形式组合成56 000个三元组(即t=56 000)为一个序列;最后,为每个序列生成50万位,统计其中正确位的总次数以评估每个序列的质量,并设置阈值筛选绝对相关度小于阈值(τ=0.2)的组合,以免选择相关度高的高质量组合序列。这种通过机器学习的方式获取像素的比对方法比单纯地学习整个描述符更有优势。

如图2所示,在每个特征点检测窗口w内定义(定义方式为通过学习获得三元组的比对方法,即三元组的排列定义)t组3个m×m大小的像素块(本文m=7,共32组,即32位描述符),包含一个主要像素块(Pt,α)和两个(Pt,1,Pt,2)伴随像素块,通过计算并比较主要像素块与两个伴随像素块差值的F范数来确定描述符对应位取值G(w,t)(式(2)),最终形成的描述符可表示为bw(式(3))。LATCH在保持二值化描述符速度快的同时,比二值化描述符更具稳健性。

图2 LATCH描述符示意Fig.2 Schematic diagram of LATCH descriptor

(2)

(3)

3 BRISK-LATCH算法

本文考虑到喀斯特山区影像的特点,提出结合BRISK算法检测子和LATCH描述符的影像匹配算法,具体流程(图3)为:1)由BRISK检测特征点,利用LATCH描述符描述特征点;2)采用结合最小距离的FLANN(Fast Library for Approximate Nearest Neighbors)[22]算法进行特征粗匹配,计算出最小匹配距离,将各个匹配距离值与预设阈值(本文设置为6倍最小距离)相比较,小于阈值的匹配作为参考影像中匹配特征点的优秀匹配,否则为较差匹配,予以删除,以此到达提纯匹配点对的目的;3)利用基于单应性矩阵的RANSAC[23]算法(随机抽样一致性算法)对粗匹配中的误匹配点对进行剔除,达到精匹配的效果。

图3 BRISK-LATCH算法流程Fig.3 Flow chart of BRISK-LATCH algorithm

3.1 RANSAC精匹配

RANSAC通过运用概率统计学中的假设和检验对含有噪声的数据集在一定置信度下估计数据间模型。在影像匹配中,本文将误匹配点对看作噪声,运用RANSAC方法剔除误匹配点。算法实现步骤为:1)从匹配点对集中随机抽取4对样本特征点(参考匹配和待匹配各4个相对应的不共线特征点),计算出单应性变换矩阵M;2)计算数据集中所有数据与M的投影误差,若某一特征点的误差小于阈值(本文阈值为3),认为该点为内点,加入内点集I;3)若当前I中的元素数大于最优内点集的元素数,则更新最优内点集为I,同时更新迭代次数K(式(4));4)若迭代次数大于K则退出,此时得到最终所求单应性变换矩阵M,否则迭代次数加1,重复上述步骤。

K=log(1-p)/log(1-wm)

(4)

式中:p为置信度(可靠度),本文为0.995;w为内点比例;m为模型计算所需最少样本数,本文m=4。

3.2 评价标准

本文采用总匹配数、正确匹配数(即经过投影变换后匹配点对之间的距离差在3个像素以内的匹配)、匹配总耗时、单个正确点耗时综合评价算法的整体性能。总匹配数是算法提取到的所有匹配点对数,表征算法检测特征的能力,其数值越大,代表算法的检测能力越强;正确匹配数为经过RANSAC算法剔除误匹配点对后剩余的匹配数量,其值越大,特征稳健性越强;匹配总耗时和单个正确点耗时分别代表算法的总用时及算法的实际效率。

4 实验与结果分析

4.1 实验方案

本文选取3组喀斯特山区无人机影像:a组影像沟壑纵横,岩石裸露;b组影像地形起伏多变,地形复杂度较高;c组影像光照不均,多独立山头(图4),其中,a、b两组影像由大疆精灵4搭载尼康D810拍摄,分辨率为810像素×541像素,c组影像由大疆精灵4p的FC6310相机拍摄,分辨率为657像素×438像素,分别对3组影像采用本文算法、BRISK、SIFT和AKAZE算法进行影像匹配实验。实验中BRISK算法角点阈值为30,基准尺度为1,影像金字塔为3层;SIFT也为3层金字塔,过滤较差特征阈值和边缘效应阈值分别是0.04和10,第0层影像高斯滤波系数为1.6;AKAZE为4个组层,每个组层包含4个子层,特征点响应阈值为0.001,采用扩散方式为DIFF_PM_G2,描述符为MLDB。本文实验的运行环境为:Intel(R) Core(TM) i5-8300H CPU @ 2.30 GHz,8 G内存,Win10 64位系统;Opencv 3.2开源库。

图4 喀斯特山区无人机影像Fig.4 UAV images in Karst mountain areas

4.2 正确匹配点的分布情况及分析

喀斯特山区影像的匹配难点是影像特征具有隐蔽性和弱特征性。喀斯特山区地形复杂,易引起影像局部像元值和尺度变化,造成特征差异性减弱、识别困难;由于山区多植被,所以影像色彩较为单一,像元间区分度小;地形起伏大造成像点位移、局部尺度变化和阴影,沟壑纵横则使影像局部呈现类似于阴影的特性。结合图5匹配实验效果看,a组影像沟壑区域呈带状,在此范围内与阴影相似,无论是梯度变化还是像素值比较,二者差异均很小,故不易得到代表性强的特征点,即使提取到特征点也容易因相似出现误匹配。而沟壑边缘区域与阴影边缘又有所区别:前者是自然条件形成,周围环境差异小,该区域的优质特征不易提取;后者是由于遮挡产生的拍摄结果,其周边区域差别更大,阴影内呈深色而外部是浅色,因而更容易获得优质特征,如c组影像匹配效果。

图5 BRISK算法和本文算法正确匹配点对比Fig.5 Comparison of correct matching points between BRISK algorithm and the proposed algorithm in this paper

总体而言,沟壑纵横、地形起伏引起的局部阴影和尺度变化,使影像呈现的特征弱化或减少,从而导致正确匹配减少甚至部分区域缺失。应当注意的是,沟壑区域复杂度高,变化细小而频繁,其对影像的影响更复杂,可能还存在由无人机拍摄前后的视场变化引起该区域同一地物像点的变化,以及沟壑周围地物遮挡导致特征缺失等,其影响机理有待深入研究。本文算法通过增加特征点数量增强了特征的稳健性,一定程度上改善了该地区影像匹配的效果。

4.3 各算法精匹配结果分析

根据实验方案进行不同算法的特征匹配(图6-图8),统计各算法的总匹配数、正确匹配数、单个正确点耗时(即匹配总耗时与正确点数之比)等指标并进行对比分析(表1)。

从图6、图8可知,精匹配后所有算法的匹配效果均较好,基本不存在误匹配点对,反映出RANSAC算法能从含有大量噪点的数据集中估算出高精度的模型;结合表1可知,最终的正确匹配数由少到多依次是AKAZE算法、SIFT算法、BRISK算法和本文算法。其中影像组b是一组左下半部分地形更复杂、右上半部分地形较单一的喀斯特山区影像,结合图5、图7和表1可知该影像组的匹配结果为:SIFT算法依旧稳定且正确匹配数比BRISK更多,SIFT算法正确匹配数转化最高,说明局部梯度算法的特征稳健性非常高;相反,BRISK算法出现匹配数锐减,AKAZE算法甚至出现精匹配失败的情况,缘于这两种算法的描述符均为传统二进制描述符,更易受喀斯特山区复杂地形的影响,BRISK的描述符虽然比AKAZE的描述符稳健性更高,但仍不能摆脱传统二进制描述符的局限;本文算法依然保持正确点数多的优势,进一步说明了本文算法的优越性,既有传统二进制描述符的速度优势,又有很高的稳健性。

图6 a组影像各算法精匹配结果Fig.6 Results of fine matching of various algorithms for images of group a

图7 b组影像各算法精匹配结果Fig.7 Results of fine matching of various algorithms for images of group b

图8 c组影像各算法精匹配结果Fig.8 Results of fine matching of various algorithms for images of group c

表1 4种算法提取的特征点数及用时情况Table 1 Number of feature points extracted by the four algorithms and their time consumption

从总匹配数量看,本文算法在a组和c组影像上的表现略低于BRISK算法,分别达到BRISK算法匹配数量的95.97%和93.84%,进一步印证了本文算法很好地保留了BRISK算法的特征检测能力;本文算法在b组影像上的表现明显优于BRISK算法,适应性更强。与其他算法相比,本文算法在3组影像上的表现更好,总匹配数分别是SIFT算法的1.77倍、2.49倍、3.47倍,是AKAZE算法的384.13倍、2.18倍、6.94倍,总匹配数高为后续获得可观的正确匹配数提供了保障。

从正确匹配点数看,本文算法均高于其他算法,在3组影像上的表现分别为BRISK算法的2.83倍、5.47倍、1.36倍,是SIFT算法的3.38倍、2.19倍、6.46倍,是AKAZE算法的76.83倍、无效、54.33倍。虽然本文算法总匹配数量略少于BRISK算法,但正确点数却比BRISK算法多,根据前面对特征正确匹配点分布的分析,本文算法从定量上证明了运用LATCH描述符改进BRISK算法,使得特征点更具稳健性,在保持BRISK算法检测能力的基础上提高了正确匹配数;AKAZE算法获得了一定的总匹配数,得益于算法本身检测子所利用的非线性扩散滤波及其非线性尺度空间,但其描述符鲁棒性较差导致正确匹配急剧下降,甚至在b组影像上出现精匹配失败的情况。

从单个正确点耗时看,本文算法在3组影像上分别为BRISK算法的22.74%、11.11%、40.73%,是SIFT算法的75.97%、54.18%、79.28%,是AKAZE算法的7.22%、无效、7.70%,可见本文算法效率最高,对实时性要求较高的基于无人机影像的应用具有一定的参考价值。

综上所述,本文算法在总匹配数低于BRISK算法的情况下获得了更高的正确匹配数量,且单个正确点耗时低于BRISK算法50%以上,表明本文算法效率更高,稳健性更强;与SIFT和AKAZE算法相比,本文算法均有更好的表现,说明本文算法在喀斯特山区无人机影像上具有更好的适应性。

5 结语

本文针对BRISK算法在喀斯特山区影像匹配中存在的耗时长、正确匹配点数少问题,提出了一种采用BRISK算法检测特征点、运用LATCH描述符描述特征点的算法,通过与BRISK算法、SIFT算法和AKAZE算法对比,证明本文算法效率更高、稳健性更好。研究结果可为喀斯特山区无人机影像的快速匹配提供参考。此外,通过实验发现本文算法和其他算法在该地区仍存在特征点分布不均匀、部分区域特征点较少以及b组影像中AKAZE算法精匹配失败的现象,有待深入研究。

猜你喜欢

描述符喀斯特山区
基于结构信息的异源遥感图像局部特征描述符研究
基于AKAZE的BOLD掩码描述符的匹配算法的研究
《山区修梯田》
“别有洞天”的喀斯特王国
喀斯特
————水溶蚀岩石的奇观
山区
Linux单线程并发服务器探索
利用CNN的无人机遥感影像特征描述符学习
邮一堆微笑到山区
重庆金佛山喀斯特等入选世界自然遗产