本课件是公众号 计算机视觉 life 旗下课程 《全网最详细的 ORB-SLAM2 精讲:原理推导 + 逐行代码分析》 (点击可跳转课程详情)的课程课件。谢谢各位学员的支持!
本课程对应的注释代码: https://github.com/electech6/ORBSLAM2_detailed_comments 由于源码注释和课件在持续更新,所以: 如视频课程中注释与上述GitHub 中有不同, 以 GitHub 上最新源码为准 。
如视频课程中课件与本课件不同, 以本课件为准 。
本周课程重点:
1. 掌握跟踪线程的整体流程(非常重要)。
2. 掌握局部建图线程如何生成新的地图点。
3. 理解删除冗余关键帧和地图点的原理。
4. 掌握local BA的原理及代码实现(重要)。
1. 局部建图 local mapping
CreateNewMapPoints()
ComputeF12
SearchForTriangulation
SearchInNeighbors()
删除地图点和关键帧
删除地图点,在
MapPoint::SetBadFlag()
被标记为需要删除 ; 删除关键帧 KeyFrame::SetBadFlag()
,会更新
spanning tree
地图点法线朝向的计算
共视图 (Covisibility Graph)
共视图是无向加权图,每个节点是关键帧,如果两个关键帧之间满足一定的共视关系(至少
15
个共同观 测地图点)他们就连成一条边,边的权重就是共视地图点数目
EdgeSE3ProjectXYZ 误差计算