若恒速模型跟踪失败, 我们只能用参考关键帧再跟踪一次. else{// 用最近的普通帧来跟踪当前的普通帧// 根据恒速模型设定当前帧的初始位姿// 通过投影的方式在参考帧中找当前帧特征点的匹配点// 优化每个特征点所对应3D点的投影误差即可得到位姿bOK=TrackWithMotionModel();if(!bOK)//根据恒速模型失败了,只能根据参
if(nGood<50) { // 通过投影的方式将关键帧中未匹配的地图点投影到当前帧中, 生成新的匹配 int nadditional = matcher2.SearchByProjection( mCurrentFrame, //当前帧 vpCandidateKFs[i], //关键帧 sFound, //已经找到的地图点集合,不会用于PNP 10, //窗口阈值,会乘以金字塔尺度 100); //匹配的ORB描述...
ORB-SLAM2代码详解07_跟踪线程Tracking.pdf,各成员函数/变量 跟踪状态 初始化 单目相机初始化: MonocularInitialization() 双目/ RGBD相机初始化: StereoInitialization() 初始位姿估计 根据恒速运动模型估计初始位姿: TrackWithMotionModel() 根据参考帧估计位姿: TrackRef
前言 目前学习ORBSLAM2中,ORBSLAM2中使用ORB算子进行特征点的提取与描述,ORB算法原理主要来自于文章《ORB an efficient alternative to SIFT or SURF》。这里先就该文章做自己的学习过程记录,之后结合文章内容分析ORBSLAM2中的代码实现(放到下一篇博客中)...田里的小粟读ORBSLAM2 ORB-SLAM2——一种开源的单目、...
ORB-SLAM2是一种基于特征点的视觉SLAM系统,它的跟踪线程Tracking是整个系统的核心部分,负责实时地跟踪相机的运动并估计场景的三维结构。在本文中,我们将详细介绍ORB-SLAM2的跟踪线程。 ORB-SLAM2的跟踪线程...
ORB-SLAM2的跟踪部分通过寻找对局部地图的特征,并且进行匹配,通过motion-only BA算法来最小化重投影误差,进行跟踪和定位。在System对象中,主要调用了两个与跟踪线程相关的函数,分别是Tracking线程的构造函数: // 传入参数:(this, ORB词典, 图片窗口, 地图窗口,地图, 关键帧数据库, 相机内参数文件, 相机类型)mpTr...
在本讲中,我们以追踪线程中的匀速模型追踪中的优化为例,讲解了ORBSLAM2中一次完整的优化流程是什么样子的。 系列更新: 勉之:ORBSLAM2中的优化(一)--g2o的使用,顶点和边的继承关系和使用 勉之:ORBSLAM2中的优化(二)-- 在跟踪线程中,使用g2o进行优化,orbslam2代码详细讲解,图优化算法代码讲解 勉之:ORBSLAM2...
来自专栏 · ORB-SLAM2源码系列 概述 用参考关键帧的地图点来对当前普通帧进行跟踪 流程 Step 1: 将当前普通帧的描述子转化为BoW向量 Step 2: 通过词袋BoW加速当前帧与参考帧之间的特征点匹配 Step 3: 将上一帧的位姿作为当前帧位姿的初始值 Step 4: 通过优化3D-2D的重投影误差来获得位姿 Step 5: 在当前...
Step 2: 在局部地图中查找与当前帧匹配的MapPoints, 其实也就是对局部地图点进行跟踪 Step 3: 更新局部所有MapPoints后对位姿再次优化 Step 4: 更新当前帧的MapPoints被观测程度, 并统计跟踪局部地图的数目 Step 5: 决定是否跟踪成功 代码分析 boolTracking::TrackLocalMap(){ ...