?
第一節課講SLAM相關的計算機視覺基礎。
1?多視圖幾何基礎
1.1?三維空間剛體運動
1.2?射影幾何
1.3?單視圖幾何
1.3.1?攝像機模型
1.3.1.1?針孔攝像機模型
1.3.1.2?魚眼攝像機模型
1.3.2?攝像機矩陣P
1.4?雙視圖幾何
1.4.1?對極幾何
1.4.2?攝像機軌跡的計算
1.5?三維重建
1.5.1?實時與離線
1.5.2?SfM Pipeline
1.5.3?應用
1.6?常用第三方開發庫介紹
1.6.1?OpenCV
1.6.2?PCL
1.6.3?VTK
1.6.4?Ceres Solver
1.7?相關應用
1.7.1?全景視頻
1.7.2?虛擬現實
1.7.3?增強現實
1.7.4?機器人導航
?
第二節課講SLAM相關
2?SLAM基礎
2.1?介紹
2.2?不同的傳感器
2.2.1?激光傳感器、雷達傳感器
2.2.2?彩色攝像頭
2.2.2.1?單目攝像頭
2.2.2.2?雙目攝像頭
2.2.2.3?魚眼鏡頭
2.2.3?深度攝像頭
2.2.3.1?雙目RGB攝像頭
2.2.3.2?單/雙目RGB-D攝像頭
2.2.3.3?基于飛行時間原理的深度攝像頭
2.3?不同的輔助設備
2.3.1?IMU
2.3.2?GPS
2.4?視覺SLAM
2.4.1?基于濾波器的V-SLAM
2.4.2?基于關鍵幀的V-SLAM
2.4.3?基于直接跟蹤的V-SLAM
2.4.4?視覺SLAM算法之間的比較
2.5?激光SLAM
2.5.1?GMapping
2.5.2?Hector SLAM
2.5.3?Cartographer
2.5.4?視覺SLAM和激光SLAM之間的差異
2.6?實踐
2.6.1?ROS機器人系統入門
2.6.1.1?ROS是什么
2.6.1.2?ROS的特點
2.6.1.3?如何快速上手ROS?
2.6.2?編譯SLAM系統
2.6.3?運行實例
?
第三節課講經典SLAM框架1
3?經典視覺SLAM框架1
3.1?非線性優化
3.1.1?狀態估計問題
3.1.1.1?最大后驗與最大似然
3.1.1.2?最小二乘的引出
3.1.2?非線性最小二乘
3.1.2.1?一階和二階梯度法
3.1.2.2?高斯-牛頓法
3.1.2.3?列文伯格——馬夸爾特方法
3.1.2.4?小結
3.1.3?實踐Ceres
3.1.4?實踐g2o
3.1.5?小結
3.2?視覺里程計1
3.2.1?特征點法
3.2.1.1?特征點
3.2.1.2?ORB特征
3.2.1.3?特征匹配
3.2.2?實踐特征提取和匹配
3.2.3?2D-2D:對極幾何
3.2.3.1?對極約束
3.2.3.2?本質矩陣
3.2.3.3?單應矩陣
3.2.4?實踐:對極約束求解相機運動
3.2.5?三角測量
3.2.6?實踐:三角測量
3.2.7?3D-2D:PnP
3.2.7.1?直接線性變換
3.2.7.2?P3P
3.2.7.3?Bundle Adjustment
3.2.8?實踐:求解PnP
3.2.9?3D-3D:ICP
3.2.9.1?SVD方法
3.2.9.2?非線性優化方法
3.2.10?小結
?
第四節課講經典SLAM框架2
4?經典視覺SLAM框架2
4.1?視覺里程計2
4.1.1?直接法的引出
4.1.2?光流(Optical Flow)
4.1.3?實踐:LK光流
4.1.3.1?使用TUM公開數據集
4.1.3.2?使用LK光流
4.1.4?直接法(Direct Method)
4.1.4.1?直接法的推導
4.1.4.2?直接法的討論
4.1.5?實踐:RGB-D的直接法
4.1.5.1?稀疏直接法
4.1.5.2?定義直接法的邊
4.1.5.3?使用直接法估計相機運動
4.1.5.4?半稠密直接法
4.1.5.5?直接法的討論
4.1.5.6?直接法優缺點總結
4.2?SLAM前端
4.2.1?VO框架
4.2.1.1?程序框架
4.2.1.2?基本數據結構
4.2.1.3?Camera
4.2.1.4?Frame
4.2.1.5?MapPoint
4.2.1.6?Map
4.2.1.7?Config
4.2.2?基本的VO:特征提取和匹配
4.2.2.1?兩兩幀的視覺里程計
4.2.2.2?討論
4.2.3?優化PnP的結果
4.2.4?局部地圖
4.2.5?小結
第一節課講經典SLAM框架3
5?經典SLAM框架3
5.1?后端1
5.1.1?概述
5.1.1.1?狀態估計的概率解釋
5.1.1.2?線性系統和KF
5.1.1.3?非線性系統和EKF
5.1.1.4?EKF的討論
5.1.2?BA與圖優化
5.1.2.1?投影模型和BA代價函數
5.1.2.2?BA的求解
5.1.2.3?稀疏性和邊緣化
5.1.2.4?魯棒核函數
5.1.2.5?小結
5.1.3?實踐:g2o
5.1.3.1?BA數據集
5.1.3.2?g2o求解BA
5.1.3.3?求解
5.1.4?實踐:Ceres
5.1.4.1?Ceres求解BA
5.1.4.2?求解
5.1.5?小結
5.2?后端2
5.2.1?位姿圖(Pose Graph)
5.2.1.1?Pose Graph的意義
5.2.1.2?Pose Graph的優化
5.2.2?實踐:位姿圖優化
5.2.2.1?g2o原生位姿圖
5.2.2.2?李代數上的位姿圖優化
5.2.2.3?小結
?
第二節課講經典SLAM框架4
6?經典SLAM框架4
6.1?回環檢測
6.1.1?回環檢測概述
6.1.1.1?回環檢測的意義
6.1.1.2?方法
6.1.1.3?準確率和召回率
6.1.2?詞袋模型
6.1.3?字典
6.1.3.1?字典的結構
6.1.3.2?實踐:創建字典
6.1.4?相似度計算
6.1.4.1?理論部分
6.1.4.2?相似度的計算
6.1.5?實驗分析與評述
6.1.5.1?增加字典規模
6.1.5.2?相似性評分的處理
6.1.5.3?關鍵幀的處理
6.1.5.4?檢測之后的驗證
6.1.5.5?與機器學習的關系
6.2?建圖
6.2.1?概述
6.2.2?單目稠密重建
6.2.2.1?立體視覺
6.2.2.2?極限搜索與快匹配
6.2.2.3?高斯分布的深度濾波器
6.2.3?實踐:單目稠密重建
6.2.4?實驗分析與討論
6.2.4.1?像素梯度的問題
6.2.4.2?逆深度
6.2.4.3?圖像間的變換
6.2.4.4?并行化:效率的問題
6.2.4.5?其他的改進
6.2.5?RGB-D稠密見圖
6.2.5.1?實踐:點云地圖
6.2.5.2?八叉樹地圖
6.2.5.3?實踐:八叉樹地圖
6.2.6?小結
6.3?SLAM的未來
6.3.1?視覺+慣性導航SLAM
6.3.2?語義SLAM
?
第三節課講深度學習
7?深度學習
7.1?機器學習原理
7.1.1?機器學習術語
7.1.2?深入了解機器學習
7.2?深度學習介紹
7.2.1?神經網絡基礎
7.3?主流深度學習框架
7.3.1?Tensorflow
7.3.2?Theano
7.3.3?CNTK
7.4?實踐:Tensorflow的安裝
7.5?實踐:簡單的識別字符的應用
?
第四節課講深度學習和SLAM的結合
8?深度學習和SLAM的結合
8.1?深度學習與幀間估計
8.2?深度學習與閉環檢測
8.3?深度學習與語義SLAM
8.4?深度學習方法與傳統方法對比
8.5?未來展望
8.5.1?高維傳感器數據處理與融合
8.5.2?機器人知識庫
8.5.3?云機器人
8.5.4?SLAM促進深度學習