ORB-SLAM / ORB-SLAM2原理解读+代码解析(汇总了资料,方便大家学习)

注释:本文非原创,初学搜集了很多资料附上链接,方便初学者学习,避免盲目搜索浪费时间。

目录

官方代码链接

代码框架思维导图

参考解读

参考链接- -一步步带你看懂orbslam2源码

ORB-SLAM2从理论到代码实现系列(推荐)

ORB-SLAM2代码阅读笔记系列(推荐)

参考链接--多种slam内容汇总、解读和说明

system.cc文件代码

数学/多视几何部分内容--单应矩阵

算法编程部分内容--OpenCV源代码目录解析

视觉slam原理和案例解析



官方代码链接

 ORB-SLAM Project Webpage

代码框架思维导图

亿图脑图MindMaster

数学部分解析:

https://note.youdao.com/ynoteshare1/index.html?id=5e98f487c40ef22f90e1177f29271be5&type=noteicon-default.png?t=LA46https://note.youdao.com/ynoteshare1/index.html?id=5e98f487c40ef22f90e1177f29271be5&type=note

参考解读

               链接:ORB-SLAM2 程序解读_zxcqlf的博客-CSDN博客    分析orb-slam源码框架的博客,参考了下列博客

                         sylvester的博客_sylvester0510_CSDN博客          对视觉slam框架 以及 ORB-SLAM分析比较透彻的博客内容,较细

                         那些珍贵的「视觉SLAM」课程资料总结(补充版/完整版)  各种解读视频、代码等资料的网盘和提取密码

                             

参考链接- -一步步带你看懂orbslam2源码

一步步带你看懂orbslam2源码--总体框架(一)_Mr.Sliver的博客-CSDN博客

一步步带你看懂orbslam2源码--orb特征点提取(二)_Mr.Sliver的博客-CSDN博客

一步步带你看懂orbslam2源码--单目初始化(三)_Mr.Sliver的博客-CSDN博客

一步步带你看懂orbslam2源码--单应矩阵/基础矩阵,求解R,t(四)_Mr.Sliver的博客-CSDN博客

一步步带你看懂orbslam2源码--单目初始化(五)_Mr.Sliver的博客-CSDN博客

ORB-SLAM2从理论到代码实现系列(推荐)

qq_20123207的博客_波波菠菜_CSDN博客

ORB-SLAM2代码阅读笔记系列(推荐)

文科升_CSDN博客

博客园部分解读

随笔列表第3页 - 路游侠 - 博客园

参考链接--多种slam内容汇总、解读和说明

https://wym.netlify.app/categories/orb-slam2

system.cc文件代码

// Output welcome message

 //Check settings file

//Load ORB Vocabulary

参考 创建DBow离线词典用于ORB SLAM2 - 简书      ORBSLAM2学习(四):DBoW2源码分析(OrbVocabulary部分)_On my way-CSDN博客

对极几何和三角测量

SLAM前端:对极几何、三角测量_LittleEmperor的博客-CSDN博客

单目初始化问题相关:

单目相机纯旋转时无法三角测量进行初始化

目前有什么算法可以有效地解决SLAM中的纯旋转问题? - 知乎

作者:余世杰
链接:https://www.zhihu.com/question/387340614/answer/1158084919
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 

SLAM问题无非两点,两帧之间的R,t,以及求取点深度。

纯旋转就是t非常接近(0,0,0),这个时候R还是可以估计的,通过IMU或者视觉特征点的匹配。但是点深度就无法获得了。点深度的获取要依靠三角测量。三角测量在t很小的时候会失效或误差很大。理论上无法解决的哦。在加入IMU或其他传感器后,会在后续优化中尽量拉回尺度,但仍无法彻底解决问题。

参考【泡泡机器人原创专栏-深度滤波器】(一)三角化得到深度值_泡泡机器人SLAM的专栏文章_微信文章_今天看啥

目标是求取点P。若t接近(0,0,0),则O1和O2为同一个点,下面公式中,s1和s2无法求得,因为s1和s2同时扩大或者缩小n倍都成立。

数学/多视几何部分内容--单应矩阵

OpenCV 单应矩阵应用:全景图像融合原理 - 简书

SLAM入门之视觉里程计(5):单应矩阵 - Brook_icv - 博客园

单应矩阵学习笔记_文科升的博客-CSDN博客

算法编程部分内容--OpenCV源代码目录解析

opencv 目录解析_wenhaopeter的博客-CSDN博客

视觉slam原理和案例解析

视觉SLAM漫谈(高翔博士)

视觉SLAM漫淡 - 半闲居士 - 博客园

ORB特征提取

ORB 特征提取算法(理论篇) - Alex777 - 博客园

BRIEF描述子:前提是提取特征点知道及位置,在其领域内用brief算法建立特征描述符

    随机选取点对比较像素值大小,并不是在两幅图像的对应角点的领域真的随机,否则向量匹配不上。 而是随机选用一个模板后,所有的角点邻域都按照该模板生成二进制的描述子向量。

BRIEF特征点描述子 - wyu123 - 博客园

BRIEF 特征描述子 - ☆Ronny丶 - 博客园

ORB 特征提取算法(实践篇二) - Alex777 - 博客园

图优化

Bundle Adjustment---即最小化重投影误差(高翔slam---第七讲) - Jessica&jie - 博客园

SLAM学习笔记 - ORB_SLAM2源码运行及分析

SLAM学习笔记 - ORB_SLAM2源码运行及分析 - tszs_song - 博客园

  • 30
    点赞
  • 230
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ORB-SLAM2是一种基于二维图像的实时单目视觉SLAM系统,可以在没有先验地图的情况下,从单个摄像头的输入中实时定位和建立环境模型。为了更好地理解ORB-SLAM2的原理代码实现,我们需要逐行分析其核心算法。 ORB-SLAM2的主要原理是通过特征提取,特征匹配和位姿估计来实现定位和建图。在代码中,我们可以看到一些关键的数据结构和函数调用,这些都是实现这些原理的关键。 首先,ORB-SLAM2使用FAST特征检测器在图像中检测关键点。这些关键点代表图像中的有趣区域。然后,使用ORB描述符对关键点进行描述。ORB描述符使用二进制位串来表示关键点周围的特征。 然后,ORB-SLAM2使用词袋法(Bag-of-Words)模型来进行特征匹配。它首先通过建立一个词典来表示所有关键点的描述符。然后,使用词袋模型来计算图像之间的相似度,从而找到匹配的关键点。 接下来,ORB-SLAM2使用RANSAC算法来估计两个图像之间的相对位姿。RANSAC算法通过迭代随机采样的方式来筛选出最佳的匹配关系,从而得到相对位姿估计。 最后,ORB-SLAM2使用优化算法(如g2o)来进行位姿图优化,从而更精确地估计相机的位姿。通过优化,ORB-SLAM2能够减少位置漂移,并在动态环境下更好地跟踪相机的位置。 总的来说,ORB-SLAM2通过特征提取、特征匹配和位姿估计实现实时单目视觉SLAM。核心代码实现了特征检测、描述符提取、特征匹配、RANSAC算法和图优化等关键步骤。了解这些原理代码实现,可以帮助我们更好地理解ORB-SLAM2系统背后的工作原理

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值