视觉导航发展的初期,定位和构图两个过程是分别独立进行的,即构图的前提是相机的位置和姿态已知,定位的前提是地图已经构建。但事实上,这两个过程是相互耦合、不可分割的,因此产生了同时定位和构图(VSLAM)的概念。VSLAM的含义可描述为:数字相机在未知环境中从一个未知位置和姿态开始移动,记录相机的视频流,对于每一帧图像,通过射影几何的原理实时估计相机相对初始时刻的位置和姿态,同时构建三维地图。
VSLAM的概念从1987年由Smith等人[1]首次提出,至今已有30多年的发展历程,产生了许多VSLAM的方法,按照不同的标准可以把VSLAM总结分类,如图1所示。
按照深度信息的获取方式不同,VSLAM可以分为单目VSLAM、双目VSLAM和RGB-D VSLAM[2-5]。单目VSLAM初始化时的深度信息是无法准确获得的,因此VSLAM得到的相机位置以及地图点坐标与真实值之间是比例关系;双目VSLAM的深度信息通过双目相机两幅图像特征点之间的视差获得;RGB-D VSLAM的深度信息采集图像的同时可以直接得到。总体来看,在理论复杂程度上,单目VSLAM算法最为复杂,用到的理论涵盖了双目VSLAM和RGB-D VSLAM。
图1 VSLAM的分类
按照所建地图的稠密程度,VSLAM可以分为稠密VSLAM和稀疏VSLAM。稠密VSLAM利用整幅图像的所有像素信息参与地图的构建,因此所建的地图是稠密的,利用价值高,但存在的问题是算法耗时比较大,关键帧的位姿不再重优化,定位精度有限;稀疏VSLAM只利用图像的特征点进行定位和构图,因此只能得到稀疏的环境地图,但算法耗时相比稠密VSLAM少,定位精度更高。
按照VSLAM是否采用概率框架,VSLAM可以分为基于滤波的VS-LAM和基于关键帧的VSLAM。基于滤波的VSLAM需要设计卡尔曼滤波器来估计相机的位姿和地图点坐标,又称为在线SLAM,此类方法存在线性化和更新效率低的问题,因此无法应用到大规模环境的地图创建中。基于关键帧的VSLAM通过基于光束平差法(Bundle Adjustment,BA)的图优化理论估计相机的位姿和地图点坐标,大大提高了SLAM的精度。Strasdat等[6]已经证明在相同计算代价的条件下基于关键帧的方法比基于滤波的方法精度更高。(www.xing528.com)
在基于关键帧的VSLAM发展的初期,由于光束平差法计算量大,许多学者认为很难保证算法的实时性,其中就包括Davison——单目VSLAM的奠基人之一,认为实时的光束平差法在21世纪初都无法实现。但是随着Klein和Murray的PTAM[7]的提出,实时的光束平差法已经变为现实,PTAM的核心思想是将跟踪和构图分为两个并行的线程进行处理,从而大大提高了处理的速度和效率。
自PTAM方法提出之后,基于关键帧的VSLAM方法发展迅速,Pirker等[8]提出了CD-SLAM算法,是一个包括闭环修正、重定位等比较完善的SLAM系统,但没有涉及地图的初始化方法。Song等[9]提出的视觉里程计算法采用ORB特征点并且利用光束平差法(BA)优化定位过程,但没有全局重定位和闭环修正。
目前,基于关键帧的VSLAM方法最具代表性的有两种:一种是LSD-SLAM[10],属于稠密的VSLAM;另一种是ORB-SLAM[11,12],属于稀疏的VSLAM。这两种VSLAM算法在保证实时性的同时具有较高的精度,融合了近年来VSLAM最新研究成果,是目前为止最为先进的VSLAM方法。
关于稠密VSLAM方法的研究仅5年的时间,而稀疏VSLAM方法已有近30年的研究历史,因此稀疏VSLAM比稠密VSLAM更加成熟,下面详细阐述基于关键帧的稀疏VSLAM的关键技术。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。