基于ORB-slam2改进的八叉树地图构建

2018-02-24 13:55周明超
电脑知识与技术 2018年34期
关键词:滤波

周明超

摘要:ORB-slam2在建图部分构建的是稀疏特征点地图,无法提供导航功能。考虑到八叉树地图可以实现三维导航,该文在原ORB-slam2算法的基础上增加了八叉树的地图构建。实现方式是将点云地图转化为八叉树地图,并在建图之后对地图进行滤波处理。通过对TUM数据集和真实环境的同步定位与地图构建实验证明,滤波之后的八叉树地图在不破坏环境结构的情况下,相比于点云地图节省了大量的内存空间,并且去除了因为噪声产生的孤立的点,使地图变得干净准确,为后续的三维导航提供有效的技术支持。

关键词:ORB-slam2;点云地图;八叉树地图;滤波;TUM数据集

中图分类号:TP242.6        文獻标识码:A        文章编号:1009-3044(2018)34-0236-02

同步定位与地图构建(SLAM)[1]在过去的20年中,一直是计算机视觉和机器人自主移动领域的热门研究对象。同步定位与地图构建技术是在未知的环境中建立一个地图并且能够在地图中完成对自身的定位[2]。同步定位与地图构建搭载各种不同的传感器,如雷达、相机等。相机传感器受到了研究者们的青睐。相机提供的图像信息能够带来鲁棒性和精确的位置识别[3],而位置识别是同步定位与地图构建系统中的关键模块。

2015年Mur-Artal等提出了ORB-SLAM( Oriented FAST and Rotated BRIEF-Simultaneous Localization And Mapping)算法,使视觉SLAM发展的一个高峰。ORB-SLAM2是在原算法的基础上的改进和优化,但算法最终只构建基于特征点的稀疏点云地图,无法应用于机器人导航和路径规划等实际领域。

针对ORB-SLAM2算法的不足,又考虑到八叉树地图可以实现三维导航,引入了在线快速构建未知环境的八叉树地图的方法,算法的具体步骤如图1所示。

通过关键帧计算每帧的位姿,结合位姿和相应关键帧拼接点云,生成点云地图。对点云地图进行滤波护理之后,将点云地图转换为八叉树地图。实验表明,本文算法在TUM数据集实验上能够取得较好的效果,经过滤波处理之后的地图去除掉了孤立的噪声点和区域内的重复的点。八叉树梯度相对于点云地图极大地缩小了内存。建立准确的八叉树地图为以后的导航提供技术支持。

1 ORB-slam2模型

ORB-slam2[4]是一种基于ORB特征点的可以支持单目相机、双目相机和深度相机的同步定位与建图的系统。

在后端上采用的是捆集优化(BA)的方式,bundle adjustment[5]是对相机定位的同时完成几何重建。该系统在DBoW2[6]的基础上嵌入了一批文字识别模块,用于执行循环检测和重定位。视觉词汇只是描述符空间的离散化,被称为视觉词汇。使用从大量图像中提取的ORB描述符离线创建词汇表。

该系统,包含三个并行运行的线程,跟踪线程,局部建图线程和闭环线程。

2 构建八叉树地图

2.1 八叉树地图

八叉树地图是一种树形层次的数据结构,从一个大立方体不断的均匀分割成八块,直到变成最小的方块(最高精度)为止。精度越高小方块就越大,精度越小小方块就越小。如图2所示。

地图中的方块表示被占据的概率,被占据则表示不可以通过,导航时查询地图某个方块是否被占据即可。

2.2 滤波处理

对初步生成的地图进行滤波处理,本文中用到两种滤波器:外点去处滤波器以及降采样滤波器。

外点去除滤波器会去掉深度值太大或者无效的点,同时会去掉孤立的点。这样已达到去除孤立的噪声点的目的。体素体滤波器(Voxel Filter)用来降采样。它会保证在某一个大小的立方体内仅有一个点,避免由于多个视角存在视野重叠,在重叠区域存在大量位置相似的点。

经过滤波后的地图,可保证结构不发生变化,去除地图中的噪点,使地图本身变得干净,地图中的点数明显减少。

3 实验结果和分析

为了达到本文的目的,即在ORB-SLAM2的基础上构建八叉树地图,对TUM数据集进行了同步定位与地图构建的实验,并对实验进行分析和比对。

3.1 基于TUM数据集的同步定位与八叉树地图构建实验

TUM数据集是由慕尼黑工业大学(TUM)计算机小组提供的RGBD数据集,数据集包括了由深度相机获取的RGB图像信息与深度图像信息,以及由8个高速追踪相机所构成的高精度运动捕捉系统所获取的机器人真实移动轨迹(ground truth)。

本次试验使用的是freiburg1_desk_secret数据集,关键帧数共1148帧,文件大小为680.4MB。图3 a为数据集构建的点云地图,图3 b为数据集构建的滤波处理前八叉树地图。图3 c为数据集构建的滤波处理后八叉树地图。

通过表1可得,所构建的八叉树地图与点云地图在拥有相同的点数的情况下,八叉树地图仅占有27KB,而点云地图占到了138.9MB。足以证明八叉树数地图相对于点云地图节省了大量的存储空间,更有利于计算速度的提高。滤波后的八叉树地图去除掉了孤立的噪声点和区域内重复的点,地图的点数也有明显的降低。

通过对图3中b、c两幅图的对比可得,图中有明显的三处在滤波后噪点都消失或者减少了,这很好的证明了滤波器的优势。

4 结论

由于ORB-slam2源代码构建的是一种特征点地图,它只能显示出定位和部分特征点的位置,对以后的功能的扩展如导航、避障等不能提供帮助。而八叉树地图可以完成这一点,所以本文提出在ORB-SLAM2的基础上构建八叉树地图。

本文首先介绍了ORB-slam2计算相机位姿流程,接着介绍了八叉树地图的原理。实验部分分别对TUM数据集和真实环境进行了同步定位与地图构建实验,证明本文方法构建的八叉树地图在保证结构准确的同时,极大地缩小了地图所占的内存。滤波后的地图减少了很多的噪声点,使地图更加干净、准确。

参考文献:

[1] R Mur-Artal,JMM Montiel,JD Tardos. ORB-SLAM: a versatile and accurate monocular SLAM system[J]. IEEE Transactions on Robotics,2015,31(5):1147-1163.

[2] DARDARI D,CLOSAS P,DJURIC P M.Indoor tracking theory,methods,and technologies[J]. IEEE Transactions on Vehicular Technology,2015,64(4):1263-1278.

[3] 王芳,刘晋.移动机器人的同时定位与地图创建的算法研究[J].智能计算机与应用,2015(2).

[4] MUR ARTAL R,MONTIEL J M M,TARDOS J D.ORB-SLAM:a versatile and accurate monocular SLAM system[J].IEEE Transactions on Robotics,2015,31(5):1147-1163.

[5] B Triggs,PF Mclauchlan,RI Hartley,AW Fitzgibbon.Bundle adjustment a modern synthesis[J].in Vision algorithms: theory and practice,2000:298-372.

[6] D Galvez-López,JD Tardos.Bags of binary words for fast place recognition in image sequences[J].IEEE Transactions on Robotics,2012(5):1188-1197.

【通聯编辑:代影】

猜你喜欢
滤波
基于混合滤波LBP和PCA的掌纹识别
一种改进Unscented粒子滤波及其应用研究
一种新的InSAR干涉相位滤波方法
基于自适应Kalman滤波的改进PSO算法
RTS平滑滤波在事后姿态确定中的应用
应用于MEMS_SINS/GPS组合导航系统的H_∞容错滤波算法
基于线性正则变换的 LMS 自适应滤波
基于四元数互补滤波的无人机姿态解算
基于随机加权估计的Sage自适应滤波及其在导航中的应用
基于LS—M滤波的动力平滑定轨