随笔分类 - ORB-SLAM
摘要:基于ORB-SLAM2的图片识别,其功能是首先运行ORB-SLAM2,在运行过程中调起另一个线程进行图像识别,识别成功后在图片上渲染AR中的立方体模型。 识别过程主要基于ORB-SLAM2中的BoW算法,同样使用DBoW2库和ORB特征以及词汇树视觉词典。其主要流程可以概括为:运行ORB-SLAM2
阅读全文
摘要:补充SystemSetting和InitKeyFrame两个类的代码。实际上,由于是通过SystemSetting来读取的相机内参以及ORB特征参数,所以就可以将Tracking.cc中关于读取内参的部分替换掉了。 1. SystemSetting.h 2. SystemSetting.cc 3.
阅读全文
摘要:一、前面说了ORB-SLAM地图的保存部分,继续说地图如何加载,因为加载部分相比保存要稍微复杂一些,所以要多说一点。 二、ORB-SLAM2地图加载构成 首先同样是在头文件中声明加载函数,包含地图点和关键帧类的加载。 下面先是加载主函数Load的构成,关于SystemSetting类后面再说: 其过
阅读全文
摘要:一、简介 在ORB-SLAM2的System.h文件中,有这样一句话:// TODO: Save/Load functions,让读者自己实现地图的保存与加载功能。其实在应用过程中很多场合同样需要先保存当前场景的地图,然后下次启动时直接进行跟踪,这样避免了初始化和建图,减小相机跟踪过程中计算机负载,
阅读全文
摘要:一、局部地图构建简介 为什么叫“局部”地图构建,我的理解是这个线程的主要任务是像地图中插入关键帧(包括地图点等信息),以及需要进行LocalBA优化一个局部地图,这是相对于回环检测时进行的全局优化来说的,所以称为局部地图构建。而局部地图构建的主要任务就是上面说的,等待跟踪过程判断是否应该插入一个新的
阅读全文
摘要:今天主要是分析一下Tracking.cpp这个文件,它是实现跟踪过程的主要文件,这里主要针对单目,并且只是截取了部分代码片段。 一、跟踪过程分析 它完成了对一帧的初始化,并转入Track过程: (2)接下来也是判断,这里是同时跟踪和建图的跟踪过程,其实只有跟踪的时候也很有意思: (3)到这里三种跟踪
阅读全文
摘要:今天主要是梳理一下ORB-SLAM2源码的逻辑关系,GitHub和泡泡机器人上有很好的注释版本(吴博),大神请(轻)板砖。 一、文件 如图所示,Examples里面存放的分别是基于单目、双目、RGBD的实例程序,一般都是基于TUM等数据库,还有一个ROS版本的ORB-SLAM2,以及一个应用与AR的
阅读全文
摘要:一、跟踪模块简介 在ORB-SLAM或其他SLAM系统中,跟踪的主要任务是根据相机或视频输入的图像帧实时输出相机位姿。在ORB-SLAM中,跟踪模块的主要任务是实时输出相机位姿和筛选关键帧,完成一个没有经过优化或者说全局优化的视觉里程计。通常根据相机的不同采用的方法也不相同,如单目除了需要进行初始化
阅读全文
摘要:一、ORB-SLAM简介 最近开始入坑SLAM,经过简单调研,各位大咖认为,目前最优秀的视觉SLAM系统是ORB-SLAM2,因此对ORB-SLAM2进行了学习。 ORB-SLAM2是2015年提出的支持单目、双目、RGB-D相机三种工作模式的SLAM系统。整个系统基于ORB特征实现,包含了跟踪定位
阅读全文