基于深度学习特征提取的改进ORB-SLAM3算法

2022-06-29 03:36张昊宇柳祥乐王思山
湖北汽车工业学院学报 2022年2期
关键词:位姿鲁棒性特征提取

张昊宇,柳祥乐,王思山

(湖北汽车工业学院 电气与信息工程学院,湖北 十堰 442002)

同步定位与地图构建(simultaneous localization and mapping,SLAM)作为环境感知技术的代表,主要分为视觉SLAM和激光SLAM。近些年来,由于相机传感器较激光传感器价格低、易部署、数据易处理[1],视觉SLAM 逐渐成为研究的焦点。传统视觉前端可分为特征点法[2-4]与直接法[5-7]。Juan D.Tardos 基于具有方向性的快速特征点和旋转不变的描述(oriented FAST and rotated BRIEF,ORB)特征提出了ORB-SLAM2[4],随后又增加IMU融合算法和多地图系统,提出了ORB-SLAM3 算法。此算法具有较强的鲁棒性,但在纹理单一的场景中,易出现特征点数量较少或堆积的情况,造成帧间位姿估计误差较大,甚至特征点跟踪丢失[8]。Jakob Engel 基于光度不变性提出了直接法SLAM算法DSO[5],虽然计算量减少,运行速度变快,但是对相机内参以及曝光非常敏感,在光照变化大的场景或者快速运动时容易跟踪失败[9]。近年来,随着机器学习的迅猛发展,深度学习以其强大的学习能力在计算机视觉领域中展现出其优势。Daniel DeTone等人提出的特征点提取深度自监督卷积神经网络SuperPoint[10],通过构建已知位姿关系的图片进行兴趣点自标注,在构建损失函数时加入姿态误差,使其在位姿解算方面更有优势。英国牛津大学提出VINet[11],结合IMU 进行绝对姿态估计,在面对时间不同步和外参标定不准确的多视觉惯导数据时表现出了一定的优势,并且无需建立复杂的运动模型,也不考虑相机参数以及尺度变化,但其准确性与鲁棒性依赖神经网络的设计,且需要大量不同场景数据进行训练,泛用性较差[12]。针对上述传统视觉前端鲁棒性不足及基于学习的帧间位姿估计存在苛刻条件等问题,文中基于ORB-SLAM3框架使用深度学习对视觉前端进行改进,并引入误匹配剔除策略进行优化,提高位姿估计的精确度。

1 整体算法框架

文中改进算法整体方案如图1 所示,在ORBSLAM3框架的基础上对前端进行了优化。系统分为视觉(惯性)前端和非线性优化后端部分,运行时有跟踪、局部建图和闭环检测3个线程。

图1 改进算法整体方案

1)跟踪 跟踪线程对输入图像进行特征点提取及匹配。根据相邻帧的特征匹配结果进行帧间运动估计,跟踪已经重建的局部地图并优化位姿,之后判断当前帧是否为关键帧。

2)建图 建图线程主要完成局部地图构建,包括对新关键帧的处理、剔除并生成新的地图点。在融合当前帧与相邻帧重复的地图点后使用BA进行局部优化,最后对插入的关键帧进行筛选,剔除冗余的关键帧。

3)闭环检测 闭环检测主要分为闭环条件检测和全局优化。闭环条件检测使用词袋模型计算相似度,在检测到闭环的时候计算Sim3 变换之后进行闭环融合和图优化。

2 传统视觉前端的改进

2.1 基于GCNv2深度网络的特征点提取

ORB-SLAM3 算法中虽然利用四叉树对特征点进行均匀分发,但并没有从本质上解决特征点堆叠的问题。文中利用GCNv2网络代替ORB算法进行图像的特征点提取,通过非极大值抑制,得到平稳均匀的特征点输出。

1)GCNv2 网络结构 受Superpoint 网络结构启发,GCNv2 网络在设计上比上一代更加轻量化,其网络结构如表1 所示。特征点检测网络和描述子生成网络共用同一个编码网络,整体网络简化模型如图2 所示。整个网络主要分为特征点提取和计算描述子部分。特征点检测网络和描述子提取网络共用了卷积层1到卷积层4的卷积网络进行图像特征编码,之后分别使用卷积层F和卷积层D卷积网络进行解码,再利用亚像素卷积和双线性插值进行处理,得到特征点和相应的描述子。

图2 GCNv2网络简化模型

表1 GCNv2网络结构

2)特征提取流程 改进算法增加了深度学习特征提取的相关函数,主要包括新增深度学习特征提取函数ExtractGCN(),并在Frame 类中新增基于深度学习特征提取的构造帧函数GCNextractor(),该新增函数接口对传入的图像进行深度学习特征点提取,同时保持输出类型与原算法输出的特征点及其描述子类型一致。与传统ORB-SLAM3 算法不同,GCNv2 网络特征提取算法流程要更加简洁。将图像输入到GCNv2 网络后,先通过模型输出可得到对应的特征点和描述子,再利用非极大值抑制得到区域最佳特征点的位置,使提取到的特征点不会密集堆叠,从而得到良好的输出结果。

2.2 特征点匹配及剔除

常见的匹配点对剔除策略是随机抽样一致性采样[13](random sample consensus, RANSAC),它能在一组包含错误的数据样本中得到有效样本数据。由于ORB-SLAM3 中并没有专门的误匹配剔除算法,仅使用地图点投影进行内外点区分,因此文中使用GMS-NN 算法进行特征点匹配及剔除,并与RANSAC进行对比测试。

1)GMS 算法 GMS 是基于运动统计的快速鲁棒特征匹配过滤算法,其核心思想是:匹配应该是平滑的,正确匹配周围会有较多的匹配去支持它,而错误的匹配周围支持它的匹配很少。该算法可以动态地计算出阈值P,当1 个匹配点对邻域内的匹配点对数量小于P时,判定该匹配是错误的。

2)特征匹配及剔除 改进算法在特征匹配上主要进行了2个方面的改进。在双目图像匹配时,新增ComputeStereoGMSMatches()函数,利用GMSNN算法代替立体稀疏匹配;在帧间特征点匹配时,使用最近邻(nearest neighbor,NN)匹配进行代替。GMS-NN 算法先使用NN 匹配算法对特征点进行匹配,再将图像划分为20×20 的网格,以加速GMS算法进行误匹配剔除,减少运算时间,最后得到正确的匹配结果。

3 测试结果及分析

分别对特征点提取、特征匹配及剔除和整体改进算法进行实验测试。实验平台为Ubuntu18.04和ROS Melodic,测试所用电脑CPU 为Intel i7 4700HQ、GPU为GTX960M。

3.1 特征提取测试

测试采用ORB-SLAM3 与GCNv2 网络分别对同一图像进行特征提取,结果如图3所示。图3a为ORB-SLAM3 算法均匀化提取特征点后得到的结果,可以看到在局部特征明显的地方出现特征点集中、扎堆的现象,不利于视觉SLAM系统进行跟踪,也会降低运动位姿估计的精度。在低纹理或快速运动时,依旧会出现跟踪丢失的情况。GCNv2 网络的特征点提取结果如图3b 所示,特征点分布均匀,没有发生特征点堆叠的情况。

图3 不同算法的特征点提取结果

通过对比测试结果可知,在原算法提取不到ORB 特征点的地方,GCNv2 网络也能检测出特征点,其检测的特征种类更加多样,且改进之后的特征点提取更加均匀。

3.2 GMS-NN测试

实验在提取2000 个ORB 特征点的情况下,使用NN匹配算法进行特征匹配,测试RANSAC 误匹配剔除算法与GMS误匹配剔除算法的运行时间和剩余正确点对数量,特征点匹配结果如图4 所示,误匹配剔除结果如图5~6 所示。通过图5~6 对比可知,RANSAC在保留正确筛选的同时也剔除了有效的匹配,只保留了电脑桌面附近的密集匹配对。表2 为不同特征点提取数量下3 种算法的测试结果,由于RANSAC 需要不断的进行迭代,其结果模型的可信度与迭代次数成正比,高度可信的结果往往需要花费百倍于其他算法的时间。在特征点提取数量较少的情况下,RANSAC过滤后的特征点对比GMS略多,但是保留下来的特征点对密集堆积,不利于视觉SLAM进行跟踪,且丢失其他有效匹配对,造成局部特征信息丢失。在特征点数量较多的情况下,RANSAC过滤后的匹配对数量小于GMS。

图4 NN匹配

图5 RANSAC误匹配剔除

图6 GMS误匹配剔除

表2 特征点提取数量不同时算法结果对比

总体来说,GMS 比RANSAC 运行速度快,可以较好地剔除误匹配的同时保留有效匹配信息。

3.3 改进算法测试

改进SLAM 算法的测试评价指标为绝对轨迹误差(absolute trajectory error,ATE),其原理是计算不同时间戳下真实位姿和估计位姿之间的均方根误差,计算公式为

文中主要采用双目飞行器EUROC 数据集的v1_01_easy 与v2_01_easy 序列和TUM 数据集中 单目RGBD 的纹理与结构分组、机器人SLAM 分组以及3D 重建分组。利用EVO 工具对改进后的算法进行评估,评价该算法在不同特征纹理环境下系统的精确性以及鲁棒性。表3 为不同测试序列下的测试结果。其中none为由于提取特征点数量过少而导致初始化失败,系统view 窗口没有任何输出;lost 为view 窗口有特征点输出但是由于运动过快或纹理稀疏导致跟踪失败。从表中结果可以看出,改进后的算法得益于特征点提取的多样性与提取均匀化,使系统对不同纹理结构场景下跟踪的鲁棒性大大提高。

表3 平均绝对轨迹误差测试结果 m

使用TUM数据集fr3_nostr_text_near_loop序列分别对改进前后算法进行测试,改进算法的平均误差为0.0161 m,原算法的平均误差为0.0192 m。实时绝对轨迹误差结果如图7 所示。对比可知改进算法的绝对轨迹误差比原算法小,表明改进算法在位姿估计上误差更小,估计结果更优。

图7 不同算法测试结果

使用TUM数据集序列fr3_large_cabinet分别对改进前后算法进行测试,算法估计轨迹与真实轨迹对比结果如图8 所示。对比轨迹图像可知原算法由于图像特征点数量较少而跟踪失败,改进算法在稀疏特征环境中也可以很好地提取特征点,从而跟踪成功,其鲁棒性更强。

图8 改进算法轨迹

4 结论

文中提出了基于ORB-SLAM3 框架的改进算法,并对其鲁棒性、位姿估计精度进行了测试。实验结果表明,该算法在对结构与纹理的检测更加敏感,能有效去除误匹配对的同时保留了整体匹配信息,且避免了特征点堆积的问题。改进算法虽然引入深度学习,增加了图形运算量,但在低纹理环境中,整体跟踪性能更强,泛用性更广。

猜你喜欢
位姿鲁棒性特征提取
武汉轨道交通重点车站识别及网络鲁棒性研究
基于位置依赖的密集融合的6D位姿估计方法
荒漠绿洲区潜在生态网络增边优化鲁棒性分析
空间目标的ISAR成像及轮廓特征提取
基于Gazebo仿真环境的ORB特征提取与比对的研究
基于特征提取的绘本阅读机器人设计方案
曲柄摇杆机构的动力学仿真
优化ORB 特征的视觉SLAM
基于Daubechies(dbN)的飞行器音频特征提取
基于单目视觉的工件位姿六自由度测量方法研究