APP下载

基于改进关键帧的单目视觉SLAM研究

2019-04-28杨承忠

电子技术与软件工程 2019年3期
关键词:单目关键帧位姿

文/杨承忠

1 引言

随着虚拟现实和无人驾驶等技术的发展,同时定位与地图创建(SLAM)受到越来越多的关注,而且在机器人领域一直被认为是实现移动机器人完全自主导航的关键。本文主要对目前主流的采用特征点法的ORB-SLAM在选取关键帧环节做了改进,使系统具有更好的鲁棒性。

2 单目视觉slam研究

2.1 单目视觉slam介绍

2007年由Davison等首次完成了在单目摄像头上的SLAM问题求解,完成了第一个基于纯单目视觉的MonoSLAM系统。随之Klein等也完成了第一个基于关键帧的PTAM系统。直到现在的ORB-SLAM系统仍然采用了PTAM的算法框架。

单目视觉slam根据多视图几何原理,恢复出每帧图像对应的相机位姿P1...Pn和场景的三维结构X1...Xn。通过观测方程得到空间点在相机图像上的投影量hij:

其中nij表示观测噪声,然后通过优化目标函数:

来得到不同图像中对应于同一场景点的匹配。不过在图像的求解过程中,必须假设图像观测点符合高斯分布。

2.2 研究现状

视觉slam的整体框架可以分为四个部分,首先是前端的图像采集与特征点的检测,然后根据关键帧构建视觉里程计,后端通过非线性优化和回环检测,最后构建全局地图。目前的视觉slam主要有基于特征点法和直接法。ORB-SLAM使用ORB特征子来进行图像匹配,具有较高的鲁棒性,更容易进行重定位。但是计算量比较大,而且对光照和图像质量比较敏感,在弱纹理环境下容易失效。图像检测的特征子只使用了环境的极少数信息,只能构建出稀疏的环境地图,忽略了在图像中占据大量部分的线段与平面信息。李海丰[7]等融合了环境中点、线、面特征构建包含更多信息量的环境地图。

由于特征点检测与匹配过程总会存在一定误差,导致相机位姿估计不精确,而且在相机运动过程中,帧间运动估计误差会造成更大的累计漂移,减小这种误差即成为了研究重点。通过优化关键帧部分,选择位置估计准确性较高关键帧能保证系统定位精度,并提高了构建全局地图效率。

2.3 改进的关键帧选取

为了减小系统运算和存储量,关键帧部分优化的整个流程如图1所示。初始时选择准确率更高的n个关键帧来计算相机的位姿,从而提高定位精度,并丢弃哪些关联性不强的关键帧,以减小后期构建全局地图时运算量。

(1)在初始化时,选择前n个包含特征点数多与一个阈值量的帧来估计相机位姿,从而最优一个初始相机姿态;

(2)在创建关键帧后必须至少经过n个帧再创建一个关键帧,并加入约束条件:

1.当前帧至少能看到k个地图点;

2.位置估计准确性较高;

3.计算一个帧间运动距离,其距离必须大于D。

(3)如果检测到的特征点过少,当参考帧与当前帧观测到的共同路标点数少于一定数量时,创建一个新的关键帧。

(4)在创建地图时,采用RANSAC算法,去除冗余关键帧,使系统负载变小。

3 结束语

本文在视觉SLAM关键帧选择中做了改进,减小了运算量和系统负载。仅采用一个摄像头作为外部传感器进行定位与建图仍然是一个具有挑战性的领域。随着无人驾驶和虚拟现实等技术的发展,视觉slam也得到快速发展,但是实时性和挑战更复杂的环境还需要深入研究。

图1

猜你喜欢

单目关键帧位姿
一种单目相机/三轴陀螺仪/里程计紧组合导航算法
单目SLAM直线匹配增强平面发现方法
基于改进关键帧选择的RGB-D SLAM算法
基于共面直线迭代加权最小二乘的相机位姿估计
基于CAD模型的单目六自由度位姿测量
基于相关系数的道路监控视频关键帧提取算法
小型四旋翼飞行器位姿建模及其仿真
基于聚散熵及运动目标检测的监控视频关键帧提取
基于单目立体视觉的三坐标在线识别技术研究
论“关键帧”在动画制作中的作用