一种基于改进ORB特征匹配的无人机视觉导航方法*
2024-03-26陈明强冯树娟周子杨解靖涛
陈明强,张 勇,冯树娟,周子杨,解靖涛
(中国民用航空飞行学院 飞行技术学院,四川 广汉 618307)
0 引 言
随着无人机技术的快速发展,无人机现已被广泛应用于军事、搜索救援、农业植保、遥感测绘、环境监测等领域[1]。然而相对有限的自主导航能力制约了无人机在复杂环境下的运行,目前大部分商用无人机都是基于全球导航卫星系统(Global Navigation Satellite System,GNSS)导航,但是在GNSS信号较弱的地方无人机导航存在很大困难。随着计算机视觉快速发展,基于计算机视觉的视觉导航已经成为了无人机自主导航重要组成部分,视觉传感器可以获取极其丰富的环境信息,适用于动态环境感知,且大多数视觉传感器都是无源传感器,因此有着很强的抗干扰能力[2-3]。在过去一段时间,基于视觉的无人机自主导航技术得到了越来越多的学者关注。其中,Metni等人[4]提出一种使用预先录制的图像定义无人机的期望轨迹,从相邻图像间提取出无人机的姿态以及位移变化,但是该方法实时性较差。Wei等人[5]提出一种结合特征相似度和几何信息的无人机图像匹配方法,该方法可以快速实现特征匹配,但是在几何信息较差的地方将导致匹配精度降低。Hou等人[6]提出一种利用卫星图像的深度学习特征辅助无人机视觉定位的方法,该方法对环境适应性强且定位精度高,但是对无人机机载处理器要求很高,无法适应无人机长距离飞行。Shen等人[7]提出了一种基于RGB-D的视觉SLAM (Simultaneous Localization and Mapping),通过改进快速提取旋转描述子(Oriented FAST and Rotated BRIEF,ORB)算法用于特征提取,提高了实时性,但是该方法适用于室内语义信息丰富的场景,在室外导航精度较低。
通过特征匹配算法将无人机获取的实时图像与含有地理位置信息的基准图像数据库匹配实现无人机的绝对定位,需要对特征点提取以及匹配算法进行改进[8]。常见的特征提取算法有Harris角点提取[9]、Shi-Tomasi算法[10]、尺度不变特征变换(Scale Invariant Feature Transform,SIFT)算法[11]、加速鲁棒特征(Speeded up Robust Feature)算法[12]、加速分割测试的特征(Features from Accelerated Segment Test,FAST)算法[13]、ORB算法[14]等。其中ORB是一种结合FAST和鲁棒的二进制独立描述子(Binary Robust Independent Elementary Feature,BRIEF)[15]的快速特征提取与描述算法,相比之下,该算法采用 BRIEF作为特征点描述符,匹配速度非常快,比SIFT快两个数量级;该算法使用FAST提取特征点,具备旋转不变性,但尺度不变性较差。采用ORB算法进行特征匹配能够有效提升匹配速度,但是存在较多的误匹配,对此,Ding等人[16]在特征匹配中引入随机抽样一致性(Random Sample Consensus,RANSAC)算法[17],通过计算两个视角间的基础矩阵和优质匹配项,对发现的特征点匹配用图像间极线性约束的方式验证匹配结果,有效剔除了误匹配项,但是匹配效率较低。Bain等人[18]提出基于网格的运动统计(Grid-based Motion Statistics,GMS)算法,采用基于网格、运动统计特性的方法,可以快速剔除部分误匹配,提高匹配的准确性,减少了匹配过程中的计算量,但是仍存在少量误匹配点。
为了缩短在特征匹配过程中的图像检索时间,本文提出了一种基于经纬度坐标定义的特征图像基准数据库;为解决无人机在不同高度上特征匹配精度降低的问题,对比了几种主流的图像特征提取方法,提出了一种结合SIFT尺度空间优化的改进ORB特征提取算法。通过对几种常用的特征匹配算法进行分析,根据各个算法的优点提出一种基于ORB改进的ORB+GMS+PROSAC特征匹配算法。经过实验测试,该方法能有效降低匹配时间和误匹配率并提升导航精度。
1 改进ORB特征匹配算法
ORB是目前特征匹配中使用较多的算法之一,针对该算法的不足进行改进,以解决无人机飞行过程中特征匹配问题。
1.1 构建图像基准数据库
在三维重建中,常采用一种基于空间的分区表示方法,将三维空间对象定义为连续不相交原语的集合,比如常用的空间分区表示方法空间占用枚举,将三维空间分解为相同的立方体,排列在规则的三维网格中,通过定义相应树状点云集合,实现机器人的快速定位[19]。传统线性检索方法需要耗费大量时间,为了解决无人机在特征匹配过程中检索时间长的问题,利用无人机飞行过程中采集图像数据相邻两帧之间的连续性,本文提出一种基于经纬度二维网格构建的特征图像基准数据库。
二维网格图像数据集是一种将图像数据进行稀疏化表示的方法,该模型将二维影像地图分割成彼此相互独立的图像,同时基于经纬度网格信息相互关联,当进行图像检索时可以采用网格搜索算法检索近邻图像,缩小检索范围。选定一个采样范围,通过二维网格分割地图构成基准数据库,假设无人机的位置为Pij,使用一个9×9检索核检索特征图像库,可以限定基准数据库的搜索区域,降低计算量,减少匹配时间。在无人机飞行过程中选择相邻两帧图像的概率按照大小排列如下:
Pi,j=Pi,j+1>Pi-1,j=Pi+1,j>Pi-1,j+1=Pi-1,j+1
(1)
将图像基准库中的检索结果依次与待匹配图像进行匹配,直到匹配正确,则进行下一帧待匹配图像。
1.2 ORB特征点提取与描述
在构建出基准图像数据库之后,对图像进行局部特征分析,提取其中的局部特征。针对遥感图像包含不同尺度上下文信息的特性,采用单个卷积层可能无法完全捕捉输入图像的空间细节和时间变化,且ORB算法多尺度特性较差,因此本文提出一种结合SIFT尺度空间优化的ORB特征提取算法,通过构建单层多组图像金字塔提取连续多尺度信息特征点,分两步完成多尺度图像金字塔构建,首先从原始图像尺寸开始,每一图层尺寸减少一半得到第一个图层,第二步先将原始图像尺寸除以1.5得到第一幅图像,然后在这幅图像的基础上每一层尺寸减少一半得到第二个图层,将两个图层相互交替叠加在一起,使用FAST特征检测器提取每一层图像的特征。
在获取特征点后,通过构建BRIEF特征点描述子可以判断两个相互匹配的特征点是否为同一个,从而减少错误匹配,并且描述符可被用于从不同视角下得到的图像之间的匹配,通过匹配给定对象的几个小特征描述符来解决模糊问题[14]。ORB算法在多个尺度下检测特征点,这些特征点含有方向,基于这些特征点性质,ORB描述子通过简单的比较强度值,提取每个关键点的表征,一旦从原始图像中检测到有区别的兴趣点,就需要为每个特征耦合一个局部补丁描述符,以便在两个或多个图像之间正确有效地建立特征对应关系。采用BRIEF特征描述子主要通过随机选取以特征点P为中心,对周围S×S窗口区域进行高斯滤波以减小噪声并二进制赋值,二进制位τ定义为
(2)
式中:P(x)和P(y)分别为随机点x(u1,v1)和y(u2,v2)的灰度值大小。
在特征点P所在窗口选取n对像素点,将n对像素点从低位到高位依此组成字符串fn(P)为
fn(P):=∑1≤i≤n2i-1τ(P;xi,yi)
(3)
式中:xi和yi分别为n对像素点中一对像素点灰度值的大小。
将特征点兴趣区域的灰度二值化并解析为二进制编码串,作为该特征点的描述子,通过比较特征点与周围区域的强度大小判断当前特征点的编码是0还是1,从而转化为二进制编码,节省计算机存储空间。
1.3 特征点匹配与错误匹配点剔除
在得到特征点及其描述之后,采用GMS算法进行特征点匹配,如图1为同一地点地球影像图和无人机俯拍视角图的特征点正确匹配和错误匹配结果,左边为基准图像库中的Ia,右边为待匹配图像Ib,左右各自有m、n特征点,定义χ={x1,x2,…,xi,…,xN}表示图像Ia到Ib的最邻近匹配,其中xi表示pi与qi的匹配对,定义xi的领域为
图2 像素坐标系与图像坐标系的转换Fig.2 Conversion between the pixel coordinate system and the image coordinate system
Ni={xj|xj∈χ,xj≠xi,d(pi,pj)}
(4)
对于图1中的区域a,用Si表示xi邻域匹配点支持估计量,则有
Si=|xi|-1
(5)
式中:-1表示减去匹配区域a中的原始特征。
由于每个特征的匹配都是独立的,因此Si服从二项分布,即在匹配区域xi的领域内的匹配数符合:
(6)
式中:B表示二项分布;Kn表示该区域领域内特征点匹配对数量;Pt和Pf分别表示正确和错误匹配被其领域窗口匹配支持的概率;Si分布的二项均值和标准差分别为
(7)
GMS算法中P定义为区分正确和错误匹配的能力,以分数量化为均值差除以标准差之和为
(8)
在得到初始特征点匹配结果之后,常采用RANSAC算法剔除结果中的误匹配点,但是RANSAC需要均匀的从整个集合中采样,算法运行时间较长,对此本文提出一种结合渐进采样一致性(Progressive Sample Consensus,PROSAC)算法[20]的误匹配点剔除方法。PROSAC算法的原理是通过从持续增大的最佳匹配点集合中进行采样并迭代计算得出参数模型,通过数据点回代剔除不符合模型的误匹配点。该方法相较于RANSAC算法具有更高的效率和精度。在得到特征点集Kn={x1,x2,…xn}的经纬度坐标之后,采用基于K-means聚类分析改进的中心点计算方法计算中心点x,假设点集P为一个簇,对簇内总距离贡献最小的点可确定为中心点,计算每个数据对簇内总距离贡献值Di:
(9)
式中:Zi为样本中任意一点。
选择贡献值最小的点作为中心点,其详细步骤如下:
步骤1 输入数据集Kn={x1,x2,…xn}。
步骤2 初始化数据集,以数据集中点Zi=xi(1
步骤3 输出中心点xk位置坐标。中心点xk的坐标为无人机在该帧图像特征匹配结果下的位置坐标。
1.4 像素坐标系与世界坐标系的转换
在完成特征匹配之后,特征点Pij=(u,v)以像素坐标显示,因此需要将像素坐标与世界坐标进行转换。世界坐标系O(xE,yE,zE)与相机坐标系O(xC,yC,zC)转换关系如式(10)所示:
(10)
式中:M为相机外部参数,
(11)
式中:R(φ,θ,φ)为机体坐标与地面坐标的转换矩阵;t为相机坐标与地面坐标的平移向量。
图像坐标O(x,y)与相机坐标(xC,yC,zC)的相互转换如式(12)所示:
(12)
像素坐标系O(u,v)与图像坐标系O(x,y)的转换关系如图 2所示。
两个坐标的转换公式如下:
(13)
(14)
式中:K为相机内参矩阵;(u0,v0)为图像坐标系中心点到像素坐标系中心点的偏移量。
像素坐标系与世界坐标系的转换关系如式(15)所示:
(15)
根据式(16)即可实现像素坐标系到世界坐标系的转换:
(16)
1.5 本文算法流程
本文算法流程如图3所示,具体步骤如下:
图3 本文算法流程Fig.3 Process of the proposed algorithm
步骤1 按照1.1节方法,使用ArcGIS分割影像地图,构建特征图像基准库。
步骤2 通过1.2节改进ORB特征提取方法提取出基准库中图像特征点以及特征点描述子,并返回特征图像基准库。
步骤3 读取待匹配图像获取图像特征,初始化特征图像基准库,使用1.1节中介绍的9×9检索核检索基准库。
步骤4 通过改进ORB+GMS算法将待匹配图像与检索结果进行特征点匹配。
步骤5 通过PROSAC误匹配点剔除算法将匹配结果中匹配错误的点剔除,得到最终匹配结果。
步骤6 按照1.4节像素坐标系与世界坐标系转换方法将步骤 5所得结果的像素坐标转化为世界坐标。
2 实验结果与分析
2.1 实验环境
实验环境如表1 所示。
表1 实验环境Tab.1 Experimental environment
2.2 ORB改进算法验证
为验证方案的有效性,使用国家地理信息公共服务平台天地图球面墨卡托投影影像底图构建基准数据库,级别为18级。将影像底图导入ArcGIS,划定实验区域并参考经纬度坐标系分割影像如图4所示,依次读取分割后图像块,构建特征图像基准数据库。
图4 影像分割数据集Fig.4 Image segmentation data set
图5给出了SIFT、FAST、改进FAST和改进ORB 5种特征提取算法的提取结果,可见相比传统特征提取算法,改进的ORB特征提取算法能够提取更深层次的特征,更具多尺度特性,具体如图5(e)所示。
图5 几种特征提取算法的提取结果Fig.5 Results of several feature extraction algorithms
使用改进ORB特征提取方法分别提取图4影像分割数据集中各模块图像的特征,构建特征地图基准数据库。初始化之后读取待匹配图像,并通过9×9检索核检索基准数据库并进行特征匹配,将匹配结果与ORB+PROSAC[20]、ORB+GMS[21]特征匹配方法对比,结果如图6所示,其中 A、B、C 3组中前两幅图像为ORB+PROSAC、ORB+GMS特征匹配算法的结果,存在误匹配,第三幅图为本文使用的算法结果,不存在误匹配。
图6 ORB+PROSAC、ORB+GMS、ORB+GMS+PROSAC特征匹配结果Fig.6 Feature matching results of ORB+PROSAC,ORB+GMS and ORB+GMS+PROSAC
分别统计图6中3组匹配图像在ORB+PROSAC、ORB+GMS和本文算法下的匹配结果,如表2所示,相比之下,本文算法重复计算更少,匹配时间相比ORB+GMS算法降低了41.61%;在特征匹配正确率(Correct Matching Rate,CMR)上本文算法表现出更好的效果,相比ORB+PROSAC、ORB+GMS算法,虽然本文算法匹配的特征数量有所减少,但是CMR更高,能够有效降低因误匹配而造成的定位干扰。
表2 几种算法效果对比Tab.2 Result comparison among several algorithms
CMR的计算公式如下:
(17)
式中:xt为正确匹配的特征点数量;x为所有的特征点匹配数量。
2.3 数据仿真
为了确定该算法在导航方面的效果,在划定的实验区域内随机生成一条模拟航迹,航迹经纬度数据如图7(a)模拟航迹所示。逐帧采集模拟航迹下的影像作为待匹配数据,依次检索基准数据库并与待匹配数据进行特征匹配,由于ORB+GMS算法效果好于ORB+PROSAC,因此选择ORB+GMS算法和本文算法计算各自航迹经纬度数据,结果如图7(b)和7(c)所示。
图7 3种航迹经纬度数据对比Fig.7 Longitude and latitude data comparison of three tracks
将航迹经纬度数据导入卫星底图,采用G2O(General Graphic Optionization)曲线拟合方法将数据拟合为该算法下的航迹,其中经纬度坐标则作为顶点表示其优化变量。分别将航迹信息绘制到经纬度坐标系中(如图8所示),通过对比发现,改进的ORB算法航迹能够更好地拟合模拟航迹,平均定位误差比ORB+GMS算法平均定位误差低两个数量级。
图8 无人机飞行导航结果Fig.8 UAV flight navigation result
3 结束语
针对无人机导航GNSS缺失的情况,本文提出了一种改进的ORB特征匹配算法——ORB+GMS+PROSAC算法,避免了特征点重复计算的问题,提升了运算速度。实验结果表明,该算法与ORB+PROSAC、ORB+GMS算法相比,匹配正确率更高,用于导航误差更小。
本文算法在后续还需进一步完善,比如在无人机航向改变或者高度变化较大时,降低转弯半径误差。此外,由于实验条件相对有限,获取的多源遥感影像为18级,后续研究可在分辨率上进一步改善。