
ORB-SLAM 解析
文章平均质量分 81
理论和代码解析
他人是一面镜子,保持谦虚的态度
别低头,王冠会掉;别流泪,坏人会笑
展开
-
ORB-SLAM2 代码(+理论)解析(四): Tracking 线程 —— ORB特征点提取
ORB特征提取是 Tracking线程 中首先要做的事情,只有从图像中提取了特征,才能对camera中传入的一帧一帧的图像按照特征值来进行跟踪,进而来估计相机的位姿。上一节博客中: https://blog.youkuaiyun.com/hltt3838/article/details/115096997, 最后我们介绍了 2.2.1 中Frame.cc 程序,里面包含特征点提取函数: ExtractORB(0,imGray)一、ExtractORB(int flag, const cv::Mat &a..原创 2021-03-23 22:20:30 · 1915 阅读 · 0 评论 -
ORB-SLAM2 理论知识梳理
1. 综述ORB系统总共有3个线程分别为 Tracking,LocalMapping,LoopClosing。 其中Tracking运行在主线程,由 Tracking::GrabImageMonocular() 进入。LocalMapping 线程由 LocalMapping::Run() 进入;LoopClosing 线程由 LoopClosing::Run() 进入;我将由这个3个线程讲述ORBslam2的单目模式是如何运作的。2.Tracking跟踪系统将图片交给 Tr...转载 2021-03-23 14:19:57 · 1326 阅读 · 0 评论 -
ORB-SLAM2 代码(+理论)解析(三): 开始Tracking 线程
1、主要功能Tracking线程的输入为图片帧,然后根据输入的Frame来进行四个步骤:1)ORB特征提取;2)从上一帧进行初始化位姿估计或者进行重定位;3)跟踪局部地图;4)新的关键帧生成。Tracking线程的输出为新生成的关键帧,并将新生成的关键帧传给 LocalMapping线程 继续后边的工作。2、代码具体步骤 Step 1 从配置文件中加载相机参数Step 2 加载ORB特征点有关的参数,并新建特征点提取器 /** ...原创 2021-03-22 21:29:09 · 1326 阅读 · 0 评论 -
ORB-SLAM2 代码(+理论)解析(二): System.cc 内容
目录一、具体代码:二、主要功能(总管)三、包含的程序3.1 mpTracker = new Tracking( )3.2 SLAM.TrackMonocular(im,tframe)3.3 System::Shutdown函数3.4 SLAM.SaveKeyFrameTrajectoryTUM("KeyFrameTrajectory.txt")一、具体代码: ORB_SLAM2::System SLAM(argv[1],argv...原创 2021-03-22 20:30:18 · 1327 阅读 · 1 评论 -
ORB-SLAM2 代码(+理论)解析(一):进入mono_euroc 主函数
一、ORB-SLAM2 程序运行步骤https://blog.youkuaiyun.com/hltt3838/article/details/113962104二、ORB-SLAM2 系统框架要了解一个系统的代码实现,总是要先从熟悉系统的框架开始,ORB-SLAM2的系统框架如下图所示:我们可以看到 TRACKING线程 中做了提取ORB特征、初始位姿估计等操作,那么这个线程应该属于SLAM中的“前端VO”;LOCAL MAPPING线程 里有Local BA,我们可以知道这个线程属于后端,..原创 2021-03-22 18:02:13 · 1936 阅读 · 1 评论 -
第10周课件-全网最详细的ORB-SLAM2精讲
本周课程重点: 1. 理解Sim3的原理(重要),能看懂推导过程。 2. 掌握Sim3代码(重要)。 全网最详细的SIM3 算法原理详解 什么是SIM3变换? Sim3 (Similarity Transformation)的提出就是为了解决两个坐标系之间的相似变换问题,只要我们能 得到3对匹配好的不共线的三维点在两个坐标系下的坐标,我们就能解出Sim3相似变换。这个也是Sim3 中数字3的来源。计算Sim3 实际就是计算这三个参数:旋转R、平移t、尺度因子s。为什么三..原创 2021-03-19 17:36:41 · 325 阅读 · 0 评论 -
第9周课件-全网最详细的ORB-SLAM2精讲
目录本周课程重点:1 共视图 本质图 拓展树原理1.1 关键帧、共视图、扩展树、本质图的区别1.2 共视图 (Covisibility Graph)1.3 本质图(Essential Graph)1.4 扩展树(spanning tree)1.5 essential graph 和 full BA 结果对比1.6计算Sim3函数ComputeSim32 全网最详细的EPnP 算法原理详解2.1 背景介绍2.2 算法的优点:2.3 控制点如何选取?2..原创 2021-03-19 14:57:29 · 384 阅读 · 0 评论 -
第8周课件-全网最详细的ORB-SLAM2精讲
本周课程重点: 1. 掌握Sim3优化位姿的原理(尤其是顶点边的定义等)与代码(重要)。 2. 理解闭环矫正调整位姿和地图点的原理。闭环检测线程 Sim3搜索匹配SearchBySim3 EdgeSE3ProjectXYZ 误差计算 EdgeSim3ProjectXYZ 的误差计算 EdgeInverseSim3ProjectXYZ 的误差计算 ComputeSim3计算Sim3 闭环矫正 CorrectLoop 1、闭环检测线程 ,Sim3搜索匹...原创 2021-03-18 21:09:28 · 383 阅读 · 0 评论 -
ORB-SLAM2 “工具安装 和 系统运行“ 详细过程
参考:https://blog.youkuaiyun.com/weixin_44436677/article/details/105587986https://blog.youkuaiyun.com/XindaBlack/article/details/102499364/目录安装前的准备: 安装 vim 、 cmake 、 git 、 gcc 、 g++安装Pangolin (建议源码安装)1) 安装依赖项2) 安装 Pangolin安装OpenCV3.4 (建议源码安装 安装时间较长 耐...原创 2021-02-22 23:28:48 · 1821 阅读 · 1 评论 -
第7周课件-全网最详细的ORB-SLAM2精讲
本课件是公众号 计算机视觉life旗下课程《全网最详细的ORB-SLAM2精讲:原理推导+逐行代码分析》(点击可跳转课程详情)的课程课件。谢谢各位学员的支持!本课程对应的注释代码:https://github.com/electech6/ORBSLAM2_detailed_comments由于源码注释和课件在持续更新,所以: 如视频课程中注释与上述GitHub中有不同,以GitHub上最新源码为准。如视频课程中课件与本课件不同,以本课件为准。目录1 理解共视...原创 2021-02-20 11:08:52 · 586 阅读 · 7 评论 -
第6周课件-全网最详细的ORB-SLAM2精讲
本课件是公众号 计算机视觉life旗下课程《全网最详细的ORB-SLAM2精讲:原理推导+逐行代码分析》(点击可跳转课程详情)的课程课件。谢谢各位学员的支持!本课程对应的注释代码:https://github.com/electech6/ORBSLAM2_detailed_comments由于源码注释和课件在持续更新,所以: 如视频课程中注释与上述GitHub中有不同,以GitHub上最新源码为准。如视频课程中课件与本课件不同,以本课件为准。本周课程重点:...原创 2021-02-18 21:30:08 · 642 阅读 · 1 评论 -
第5周课件-全网最详细的ORB-SLAM2精讲
本课件是公众号 计算机视觉life旗下课程《全网最详细的ORB-SLAM2精讲:原理推导+逐行代码分析》(点击可跳转课程详情)的课程课件。谢谢各位学员的支持!本课程对应的注释代码:https://github.com/electech6/ORBSLAM2_detailed_comments由于源码注释和课件在持续更新,所以: 如视频课程中注释与上述GitHub中有不同,以GitHub上最新源码为准。如视频课程中课件与本课件不同,以本课件为准。本周课程重点:...原创 2021-02-17 11:18:18 · 1204 阅读 · 0 评论 -
第4周课件-全网最详细的ORB-SLAM2精讲
本课件是公众号 计算机视觉life 旗下课程《全网最详细的ORB-SLAM2精讲:原理推导+逐行代码分析》 (点击可跳转课程详情)的课程课件。谢谢各位学员的支持! 本课程对应的注释代码:https://github.com/electech6/ORBSLAM2_detailed_comments 由于源码注释和课件在持续更新,所以: 如视频课程中注释与上述GitHub中有不同,以GitHub上最新源码为准。 如视频课程中课件与本课件不同,以本课件为准。本周课程重点: 1. 理解..原创 2021-02-15 14:53:37 · 855 阅读 · 0 评论 -
ORB-SLAM2代码阅读笔记汇总
ORB-SLAM2被许多人推荐为学习SLAM必须要学习的入手项目,甚至视觉SLAM十四讲当中的许多章节的描述方式都是和该系统吻合的。其中包含了经典的视觉SLAM的各个模块:前端视觉里程计、后端优化、闭环检测和建图,将这个系统代码完整读一遍能够加深对视觉SLAM的理解。当然,SLAM研究,学习优秀的开源系统、基础理论和相关论文只是第一步,一定要在工作中去实践,才有可能把SLAM相关技术掌握的更加深入。ORB-SLAM2代码阅读笔记(一):从mono_kitti单目运行开始 ORB-SLAM2代码阅读笔转载 2021-02-14 20:12:09 · 899 阅读 · 0 评论 -
第3周课件-全网最详细的ORB-SLAM2精讲
目录1、求解单应矩阵H1.1 归一化1.2 H矩阵求解原理1.3 SVD分解1.4 为什么 的第9个奇异向量就是最优解?2. 求解基础矩阵F2.1 推导F矩阵约束方程2.2 SVD2.3 F矩阵秩为2 2.4 对极约束3 卡方检验3.1 为什么要引用卡方检验?3.2 卡方分布用途?3.3 卡方分布假设检验步骤?3.4 一个例子:抽奖机之谜3.5 什么是显著性水平?3.6 卡方...原创 2021-02-14 17:43:27 · 744 阅读 · 0 评论 -
第2周课件-全网最详细的ORB-SLAM2精讲
本课件是公众号 计算机视觉life 旗下课程《全网最详细的ORB-SLAM2精讲:原理推导+逐行代码分析》 (点击可跳转课程详情)的课程课件。谢谢各位学员的支持! 本课程对应的注释代码:https://github.com/electech6/ORBSLAM2_detailed_comments 由于源码注释和课件在持续更新,所以: 如视频课程中注释与上述GitHub中有不同,以GitHub上最新源码为准。 如视频课程中课件与本课件不同,以本课件为准。本周课程重点: 1. ..原创 2021-02-07 18:47:53 · 765 阅读 · 0 评论 -
第1周课件-全网最详细的ORB-SLAM2精讲
本课件是公众号 计算机视觉life 旗下课程《全网最详细的ORB-SLAM2精讲:原理推导+逐行代码分析》 (点击可跳转课程详情)的课程课件。谢谢各位学员的支持! 本课程对应的注释代码:https://github.com/electech6/ORBSLAM2_detailed_comments 由于源码注释和课件在持续更新,所以: 如视频课程中注释与上述GitHub中有不同,以GitHub上最新源码为准。 如视频课程中课件与本课件不同,以本课件为准。 本周课程学前准备: 1. .原创 2021-02-07 12:34:52 · 2296 阅读 · 2 评论