☛ 從未知環境中的定位、地圖建構到處理意外情況,
▶▶▶ SLAM技術一次完整到位學習!
SLAM 是指移動智慧體從一個未知環境裡的未知地點出發,在運動過程中透過自身感測器觀測周圍環境,並根據環境定位自身的位置,再根據自身的位置進行增量式的地圖建構,從而達到同時定位和地圖建構的目的。舉凡機器人、無人機、汽車,或其它可穿戴裝置等,都可以運用SLAM在其中。
本書分為三大部分,深入淺出地介紹SLAM技術。
❶ 第一部分涵蓋SLAM的基礎知識,包括定義、應用場景、程式設計及編譯工具、數學基礎知識、相機成像模型、對極幾何以及圖最佳化函式庫的使用。
❷ 第二部分專注於視覺SLAM框架ORB-SLAM2的原理和核心程式,從ORB特徵提取、特徵匹配、地圖點、主要畫面格、圖結構到地圖初始化、追蹤執行緒、局部地圖建構執行緒、閉環執行緒以及最佳化方法。通過對ORB-SLAM2的深入剖析,讀者可以更好地理解視覺SLAM的工作原理。
❸ 第三部分則介紹ORB-SLAM2的升級版——視覺慣性系統ORB-SLAM3的主要新增內容和程式,包括IMU預積分、多地圖系統、追蹤執行緒、局部地圖建構執行緒、閉環及地圖融合執行緒。最後一章還對視覺SLAM的現在與未來進行了總結和展望。
【本書特點】
✪ SLAM的定義、應用場景和應用領域
✪ C++ 11新特性和CMake工具
✪ SLAM中常用的數學基礎知識
✪ 相機成像模型和相機扭曲模型
✪ 對極幾何的基本概念
✪ g2o函式程式庫的使用方法
✪ ORB特徵提取與均勻化策略
✪ ORB-SLAM2中的特徵匹配方法
✪ 地圖點、主要畫面格、圖結構
✪ ORB-SLAM2中的地圖初始化方法
✪ ORB-SLAM2中的追蹤執行線
✪ ORB-SLAM2中的局部地圖建構執行線
✪ ORB-SLAM2中的閉環執行線
✪ ORB-SLAM2中的最優化方法
✪ ORB-SLAM3的新增內容和程式,如IMU預積分、多地圖系統等
✪ ORB-SLAM3中的IMU預積分原理及推導
✪ 多地圖系統的效果和作用
✪ 地圖融合的具體流程和程式實現
✪ ORB-SLAM3中IMU的初始化過程
✪ 視覺SLAM的發展歷程和未來趨勢
視覺慣性SLAM實作:原始程式剖析真正讀懂理論
內容描述
目錄大綱
第一部分 SLAM 基礎
第1 章 SLAM 導覽
1.1 什麼是 SLAM
1.2 SLAM 有什麼不可替代性
1.3 SLAM 的應用領域
第 2 章 程式設計及編譯工具
2.1 C++ 新特性
2.2 CMake 入門
第3章 SLAM 中常用的數學基礎知識
3.1 為什麼要用齊次座標
3.2 三維空間中剛體旋轉的幾種表達方式
第4 章 相機成像模型
4.1 針孔相機成像原理
4.2 針孔相機成像模型
4.3 相機扭曲模型
第5 章 對極幾何
5.1 對極幾何的基本概念
5.2 理解對極約束
第6 章 圖最佳化函式庫的使用
6.1 g2o 程式設計框架
6.2 建構 g2o 頂點
6.3 建構 g2o 邊
第二部分 ORB-SLAM2 理論與實作
第7 章 ORB 特徵提取
7.1 ORB 特徵點
7.2 ORB 特徵點均勻化策略
第8 章 ORB-SLAM2 中的特徵匹配
8.1 單目初始化中的特徵匹配
8.2 透過詞袋進行特徵匹配
8.3 透過地圖點投影進行特徵匹配
8.4 透過 Sim(3) 變換進行相互投影匹配
第9 章 地圖點、主要畫面格和圖結構
9.1 地圖點
9.2 主要畫面格
9.3 圖結構
第10 章 ORB-SLAM2 中的地圖初始化
10.1 為什麼需要初始化
10.2 單目模式地圖初始化
10.3 雙目模式地圖初始化
第11 章 ORB-SLAM2 中的追蹤執行緒
11.1 參考主要畫面格
11.2 恒速模型追蹤
11.3 重定位追蹤
11.4 局部地圖追蹤
第12 章 ORB-SLAM2 中的局部地圖建構執行緒
12.1 處理新的主要畫面格
12.2 剔除不合格的地圖點
12.3 生成新的地圖點
12.4 檢查並融合當前主要畫面格與相鄰畫面格
12.5 主要畫面格的剔除
第13 章 ORB-SLAM2 中的閉環執行緒
13.1 什麼是閉環檢測
13.2 尋找並驗證閉環候選主要畫面格
13.3 計算 Sim(3) 變換
13.4 閉環矯正
13.5 閉環全域 BA 最佳化
第14 章 ORB-SLAM2 中的最佳化方法
14.1 追蹤執行緒僅最佳化位姿
14.2 局部地圖建構執行緒中局部地圖最佳化
14.3 閉環執行緒中的 Sim(3) 位姿最佳化
14.4 閉環時本質圖最佳化
14.5 全域最佳化
第三部分 ORB-SLAM3 理論與實作
第15 章 ORB-SLAM3 中的IMU 預積分
15.1 視覺慣性緊耦合的意義
15.2 IMU 預積分原理及推導
15.3 IMU 預積分的程式實現
第16 章 ORB-SLAM3 中的多地圖系統
16.1 多地圖的基本概念
16.2 多地圖系統的效果和作用
16.3 建立新地圖的方法和時機
16.4 地圖融合概述
第17 章 ORB-SLAM3 中的追蹤執行緒
17.1 追蹤執行緒流程圖
17.2 追蹤執行緒的新變化
第18 章 ORB-SLAM3 中的局部地圖建構執行緒
18.1 局部地圖建構執行緒的作用
18.2 局部地圖建構執行緒的流程
18.3 IMU 的初始化
第19 章 ORB-SLAM3 中的閉環及地圖融合執行緒
19.1 檢測共同區域
19.2 地圖融合
第20 章 視覺 SLAM 的現在與未來
20.1 視覺 SLAM 的發展歷程
20.2 視覺慣性 SLAM 框架對比及資料集
20.3 未來發展趨勢
20.4 總結
作者介紹
作者簡介
程小六
中國科學院博士。計算機視覺life平臺創始人,研究興趣為計算機視覺、機器人定位與建圖。