ORBSLAM2系列
文章平均质量分 95
一只废佐_
自动驾驶-slam算法攻城狮-后备成员
展开
-
论文分享-ORBSLAM3中的多地图系统
此线程主要都是做关键帧的增加删除等操作,对于多地图系统中,没有过多的参与(因为LocalMapping线程都是运行在活跃地图中)已经是比较准的,但是这个相对位姿只是对于当前关键帧和候选关键帧比较准,并不清楚这个相对位姿对于各自的窗口是否准,因此还要校验。Atlas其实就是由。程序开始时,会先建立ID为0的地图,并设定为活跃地图,之后的每次地图的创建都会将当前的地图设定为非活跃地图。当前关键帧的5个共视关键帧中只要有3个匹配成功即认为检测到共同区域,如果不够3个,再检测后面进来关键帧的时间连续性。原创 2023-08-15 10:01:42 · 324 阅读 · 0 评论 -
ORBSLAM2系列-LoopClosing闭环检测线程
这是三大线程的最后一个线程,在每个关键帧从LoaclMapping线程处理后,就会经过闭环检测的线程进行回环处理。这里就是一直在进行闭环检测,或者说一直在寻找当前关键帧与之前关键帧是否有那些相似的地方,是否是回到的原来关键帧的地方形成回环。DetectLoop初步检测以前关键帧是否与当前关键帧有联系形成闭环候选关键帧、计算候选匹配关键帧和当前关键帧之间的相似变换sim3再次进行筛选、对通过前两部筛选后的可回环关键帧进行全局处理。原创 2023-08-15 10:00:02 · 491 阅读 · 0 评论 -
ORBSLAM2系列-LocalMapping局部建图线程
到此整个LocalMapping线程就结束了,其中主要就是对局部地图进行了优化,并添加了新的地图点,这个线程中处理的都是关键帧。每个关键帧经过处理后,最后会放入链表中,用于LoopClosing闭环检测线程使用。原创 2023-08-15 09:59:15 · 218 阅读 · 0 评论 -
ORBSLAM2系列-重定位中求解位姿R,t
在重定位中求解位姿的具体函数在代码中详细的注释,就不再一一列举,因为整个过程就如上面所介绍的算法流程一样,一一对比就能看明白。原创 2023-08-15 09:57:47 · 245 阅读 · 0 评论 -
ORBSLAM2系列-Tracking跟踪线程
最后进行的投影匹配是使用关键帧的地图点(除了上面优化时候使用的内点)投影到当前帧,然后再进行网格搜索(这个过程与初始化时候一样),得到能够匹配点(这个投影匹配是函数,整体过程也是与局部地图跟踪一样)在重定位的最后,根据条件一共运行了两次投影匹配+重投影误差优化,都是为了能够找回跟踪,如果某一候选关键帧完成了整个重定位过程,那么就不再计算其他的候选关键帧(这部分主要看程序,逻辑简单,主要就是两个函数不断的挽救跟踪)原创 2023-08-15 09:56:05 · 212 阅读 · 0 评论 -
ORBSLAM2系列-矩阵模型H和F的分解
这是视觉slam十四讲中的内容。那么我们需要理解其在几何上的意义,以下内容。原创 2023-08-15 09:54:38 · 281 阅读 · 0 评论 -
ORBSLAM2系列-矩阵模型H和F的计算
矩阵模型计算原理对极约束对极约束在视觉slam十四讲中讲解的比较详细,在这里就简单的介绍一些流程:1.对于一个空间坐标P(X,Y,Z)P(X,Y,Z)P(X,Y,Z),根据针孔相机模型可以得到两个像素点p1,p2p_1,p_2p1,p2在两个相机坐标系下的位置:s1p1=KP,s2p2=K(RP+t)参考:Z[uv1]=(fx0cx0fycy001)(XYZ)=defKPs_1p_1=KP,\quad s_2p_2=K(RP+t) \quad 参考:Z\begin{bmatrix}u \\原创 2023-08-15 09:53:40 · 205 阅读 · 0 评论 -
ORBSLAM2系列-单目初始化
至此,单目初始化就彻底结束了,后续再进来的图像帧就是用来跟踪Tracking。原创 2023-08-15 09:52:24 · 375 阅读 · 0 评论 -
ORBSLAM2系列-特征点提取
计算FAST角点使用四叉树均匀化特征点、灰度质心法求解特征点方向、根据方向计算Steer BRIEF描述子。一共就做了这几步,但是为了后续能够方便进行三角化计算,将各个图层的特征点转换到原图像(金字塔的最底层)下,然后将特征点信息和描述子信息(因为提取特征点主要就为了求解这两个)分别传递给重载括号运算符的形参中(这部分放在了计算描述子中,因为在一个for循环中),实现传递。原创 2023-08-14 22:35:28 · 308 阅读 · 0 评论 -
ORB-SLAM2系列-相机成像与畸变
ORBSLAM2中在单目相机使用的先提取特征点,还有一个原因就是对于畸变不大的相机,可以这么操作(毕竟slam要求实时性),而对于畸变较大的相机(广角相机或者鱼眼相机等),就需要先去畸变。根据针孔相机模型中,我们是直接将相机光心想象成了一个平面,但是在实际中,相机前面是有一个透镜的,为了能够拍摄到更大的范围,这个透镜一般都是中间很厚两边薄,因此之前的假设就不能满足。等式左边是已知的坐标,而右边是未知的,那么求解这个未知量的时候就非常麻烦,因此选择反过来求,假设已经有了矫正畸变后的图像,而这个图像每一点。原创 2023-08-14 22:31:27 · 242 阅读 · 0 评论