点击上方“3D视觉工坊”
干货第一时间送达
作者丨小深
本文总结了特征点法SLAM中目前效果最好的方法:ORB-SLAM2 / ORB-SLAM3 相关改进代码汇总,包括加速、多传感器融合、稠密建图、线特征、点线融合、导航、动态环境、多平台移植等。具体见下。
为方便点击链接,我们整理了pdf版本,在公众号后台回复:ORBSLAM
ORB-SLAM2 相关改进代码汇总
论文发表于2017年的IEEE Transactions on Robotics,论文名称《ORB-SLAM2: an Open-Source SLAM System for Monocular, Stereo and RGB-D Cameras》
ORB-SLAM2 特点:
- 首个(2017年发布时)支持单目,双目和RGB-D相机的完整的开源SLAM方案,具有回环检测和重新定位的功能。
- 能够在CPU上进行实时工作,可以用于移动终端如 移动机器人、手机、无人机、汽车。
- 特征点法的巅峰之作,定位精度极高,可达厘米级。
- 能够实时计算出相机的位姿,并生成场景的稀疏三维重建地图。
- 代码非常整洁,包含很多实际应用中的技巧,非常实用。
- 支持仅定位模式,该模式适用于轻量级以及在地图已知情况下长期运行,此时不使用局部建图和回环检测的线程
[PAPER](https://arxiv.org/abs/1610.06475),
[CODE](https://github.com/raulmur/ORB_SLAM2),
[超详细中文注释版]
(https://github.com/electech6/ORBSLAM2_detailed_comments)
改进方法
[ORBSLAM2_with_pointcloud_map](https://github.com/gaoxiang12/ORBSLAM2_with_pointcloud_map),
高翔实现的添加稠密点云地图
[ORB-SLAM2_RGBD_DENSE_MAP]
(https://github.com/tiantiandabaojian/ORB-SLAM2_RGBD_DENSE_MAP),在高翔基础上添加了稠密闭环地图
[ORB-YGZ-SLAM]
(https://github.com/gaoxiang12/ORB-YGZ-SLAM),
使用SVO中直接法来跟踪代替耗时的特征点提取匹配,在保持同样精度的情况下,是原始ORB-SLAM2速度的3倍
[YGZ-stereo-inertial SLAM]
(https://github.com/gaoxiang12/ygz-stereo-inertial),
双目VIO版本,加入了LK光流和滑动窗口BA优化
[VI-ORB](https://github.com/jingpang/LearnVIORB),
京胖实现的VI-ORB-SLAM2
[Fisheye-ORB-SLAM]
(https://github.com/lsyads/fisheye-ORB-SLAM),添加了支持鱼眼
[Save and load orb-slam2 maps]
(https://github.com/AlejandroSilvestri/osmap),添加保存和导入地图功能
[ORB_SLAM2 with map load/save function]
(https://github.com/Jiankai-Sun/ORB_SLAM2_Enhanced),添加保存和导入地图功能
[Viewer for maps from ORB-SLAM2 Osmap]
(https://github.com/AlejandroSilvestri/Osmap-viewer),
添加了地图可视化
[Add line feature based ORB-SLAM2]
(https://github.com/atlas-jj/ORB_Line_SLAM),添加了线特征
[RGBD-SLAM with Point and Line Features, developed based on ORB_SLAM2]
(https://github.com/maxee1900/RGBD-PL-SLAM),添加了点线融合
[Good Feature Selection for Least Squares Pose Optimization in VO/VSLAM]
(https://github.com/ivalab/gf_orb_slam2),使用了一种更好的特征选择方法
[ORB_SLAM2_SSD_Semantic](https://github.com/Ewenwan/ORB_SLAM2_SSD_Semantic),
动态语义SLAM 目标检测+VSLAM+光流/多视角几何动态物体检测+octomap地图+目标数据库
[Tracking Enhanced ORB-SLAM2]
(https://github.com/Eralien/TE-ORB_SLAM2),
用YOLO v3的语义信息来增加跟踪性能
[YOLO Dynamic ORB_SLAM](https://github.com/bijustin/YOLO-DynaSLAM),用YOLO来做动态环境的检测
多平台移植代码
[Windows version ORBSLAM2,Easy built by visual studio]
(https://github.com/phdsky/ORBSLAM24Windows),
Windows平台版本,可以用 visual studio轻松编译
[ORB-SLAM-Android, test on Sony Xperia Z]
(https://github.com/castoryan/ORB-SLAM-Android),
Android移植,在 Sony Xperia上测试
[ORBSLAM2 on Mac OSX]
(https://github.com/meiroo/ORBSLAM2-OSX),Mac OSX版本
[ROS interface for ORBSLAM2]
(https://github.com/ethz-asl/orb_slam_2_ros),添加ROS接口
ORB-SLAM3 相关代码
ORB-SLAM3
2020年07月开源, 论文《ORB-SLAM3: An Accurate Open-Source Library for Visual, Visual-Inertial and Multi-Map SLAM》
ORB-SLAM3特点
- 支持视觉、视觉加惯导、混合地图的SLAM系统,可以在单目,双目和RGB-D相机上利用针孔或者鱼眼模型运行。
- 基于特征的紧耦合的VIO系统,仅依赖于最大后验估计(包括IMU初始化时)。因此不管是在大场景还是小场景,室内还是室外都能鲁棒实时的运行,精度上相比于上一版提升了2到5倍
- 根据新的重定位模块来构建的多地图系统,可以让系统在特征不是很好的场景中长期运行。
- 第一个能够在所有算法阶段重用所有先前信息的系统,可以在BA的时候使用相隔很远的共视关键帧。
[PAPER](https://arxiv.org/pdf/2007.11898.pdf)
[CODE](https://github.com/UZ-SLAMLab/ORB_SLAM3)
ORB_SLAM3-RGBD-Inertial
增加了RGBD-IMU的运行模式和ROS接口,增加了单目IMU和双目IMU的ROS接口,替换了词典为二进制格式,加载速度更快。依据ORB_SLAM3重写了RGBD-IMU的ROS接口,避免出现队列拥塞,提供了Kinect for Azure的参数文件
[CODE](https://github.com/xiefei2929/ORB_SLAM3-RGBD-Inertial)
本文仅做学术分享,如有侵权,请联系删文。
▲长按关注公众号
觉得有用,麻烦给个赞~