预购商品
书目分类
特别推荐
本書系統介紹了視覺SLAM(同時定位與地圖構建)所需的基本知識與核心演算法,既包括數學理論基礎,如三維空間的剛體運動、非線性優化,又包括電腦視覺的演算法實現,例如多視圖幾何、回環檢測等。此外,我們還提供了大量的實例代碼供讀者學習研究,從而更深入地掌握這些內容。 本書可以作為對SLAM感興趣的研究人員的入門自學材料,也可以作為SLAM相關的高校本科生或研究生課程教材使用。
第1講預備知識1 1.1本書講什麼1 1.2如何使用本書3 1.2.1組織方式3 1.2.2代碼5 1.2.3面向的讀者6 1.3風格約定6 1.4致謝和聲明8 第1部分數學基礎10 第2講初識SLAM11 2.1引子:小蘿蔔的例子13 2.2經典視覺SLAM框架19 2.2.1視覺里程計20 2.2.2後端優化21 2.2.3回環檢測22 2.2.4建圖23 2.3SLAM問題的數學表述24 2.4實踐:程式設計基礎27 2.4.1安裝Linux作業系統27 2.4.2HelloSLAM29 2.4.3使用cmake30 2.4.4使用庫32 2.4.5使用IDE35 第3講三維空間剛體運動40 3.1旋轉矩陣42 3.1.1點、向量和坐標系42 3.1.2坐標系間的歐氏變換43 3.1.3變換矩陣與齊次座標46 3.2實踐:Eigen47 3.3旋轉向量和歐拉角53 3.3.1旋轉向量53 3.3.2歐拉角54 3.4四元數56 3.4.1四元數的定義56 3.4.2四元數的運算57 3.4.3用四元數表示旋轉59 3.4.4四元數到其他旋轉表示的轉換59 3.5*相似、仿射、射影變換61 3.6實踐:Eigen幾何模組62 3.6.1Eigen幾何模組的資料演示62 3.6.2實際的座標變換例子64 3.7視覺化演示66 3.7.1顯示運動軌跡66 3.7.2顯示相機的位元姿69 第4講李群與李代數71 4.1李群與李代數基礎73 4.1.1群73 4.1.2李代數的引出74 4.1.3李代數的定義76 4.1.4李代數so(3)76 4.1.5李代數se(3)77 4.2指數與對數映射78 4.2.1SO(3)上的指數映射78 4.2.2SE(3)上的指數映射80 4.3李代數求導與擾動模型81 4.3.1BCH公式與近似形式81 4.3.2SO(3)上的李代數求導83 4.3.3李代數求導84 4.3.4擾動模型(左乘)85 4.3.5SE(3)上的李代數求導85 4.4實踐:Sophus86 4.4.1Sophus的基本使用方法86 4.4.2例子:評估軌跡的誤差89 4.5*相似變換群與李代數92 4.6小結93 第5講相機與圖像95 5.1相機模型97 5.1.1針孔相機模型97 5.1.2畸變模型100 5.1.3雙目相機模型103 5.1.4RGB-D相機模型104 5.2圖像106 5.3實踐:電腦中的圖像107 5.3.1OpenCV的基本使用方法107 5.3.2圖像去畸變112 5.4實踐:3D視覺113 5.4.1雙目視覺113 5.4.2RGB-D視覺115 第6講非線性優化119 6.1狀態估計問題121 6.1.1批量狀態估計與最大後驗估計121 6.1.2最小二乘的引出123 6.1.3例子:批量狀態估計125 6.2非線性最小二乘126 6.2.1一階和二階梯度法127 6.2.2高斯牛頓法128 6.2.3列文伯格—馬誇爾特方法130 6.3實踐:曲線擬合問題132 6.3.1手寫高斯牛頓法132 6.3.2使用Ceres進行曲線擬合136 6.3.3使用g2o進行曲線擬合141 6.4小結148 第2部分實踐應用150 第7講視覺里程計1151 7.1特徵點法153 7.1.1特徵點153 7.1.2ORB特徵155 7.1.3特徵匹配158 7.2實踐:特徵提取和匹配159 7.2.1OpenCV的ORB特徵159 7.2.2手寫ORB特徵162 7.2.3計算相機運動165 7.32D-2D:對極幾何165 7.3.1對極約束165 7.3.2本質矩陣168 7.3.3單應矩陣170 7.4實踐:對極約束求解相機運動172 7.5三角測量177 7.6實踐:三角測量178 7.6.1三角測量代碼178 7.6.2討論179 7.73D?2D:PnP180 7.7.1直接線性變換180 7.7.2P3P182 7.7.3最小化重投影誤差求解PnP184 7.8實踐:求解PnP188 7.8.1使用EPnP求解位姿188 7.8.2手寫位姿估計189 7.8.3使用g2o進行BA優化191 7.93D-3D:ICP196 7.9.1SVD方法196 7.9.2非線性優化方法198 7.10實踐:求解ICP199 7.10.1實踐:SVD方法199 7.10.2實踐:非線性優化方法201 7.11小結203 第8講視覺里程計2205 8.1直接法的引出207 8.22D光流208 8.3實踐:LK光流210 8.3.1使用LK光流210 8.3.2用高斯牛頓法實現光流211 8.3.3光流實踐小結218 8.4直接法218 8.4.1直接法的推導218 8.4.2直接法的討論221 8.5實踐:直接法221 8.5.1單層直接法221 8.5.2多層直接法226 8.5.3結果討論227 8.5.4直接法優缺點總結230 第9講後端1232 9.1概述234 9.1.1狀態估計的概率解釋234 9.1.2線性系統和KF236 9.1.3非線性系統和EKF239 9.1.4EKF的討論241 9.2BA與圖優化242 9.2.1投影模型和BA代價函數242 9.2.2BA的求解243 9.2.3稀疏性和邊緣化245 9.2.4魯棒核函數251 9.3實踐:CeresBA253 9.3.1BAL資料集253 9.3.2CeresBA的書寫253 9.4實踐:g2o求解BA257 9.5小結263 第10講後端2265 10.1滑動窗口濾波和優化266 10.1.1實際環境下的BA結構266 10.1.2滑動窗口法267 10.2位姿圖270 10.2.1位姿圖的意義270 10.2.2位姿圖的優化270 10.3實踐:位姿圖優化272 10.3.1g2o原生位姿圖272 10.3.2李代數上的位姿圖優化277 10.3.3小結282 第11講回環檢測283 11.1概述285 11.1.1回環檢測的意義285 11.1.2回環檢測的方法286 11.1.3準確率和召回率287 11.2詞袋模型289 11.3字典291 11.3.1字典的結構291 11.3.2實踐:創建字典292 11.4相似度計算295 11.4.1理論部分295 11.4.2實踐:相似度的計算296 11.5實驗分析與評述300 11.5.1增加字典規模300 11.5.2相似性評分的處理302 11.5.3關鍵幀的處理302 11.5.4檢測之後的驗證303 11.5.5與機器學習的關係303 第12講建圖305 12.1概述306 12.2單目稠密重建308 12.2.1立體視覺308 12.2.2極線搜索與塊匹配309 12.2.3高斯分佈的深度濾波器311 12.3實踐:單目稠密重建314 12.3.1實驗分析與討論323 12.3.2圖元梯度的問題324 12.3.3逆深度325 12.3.4圖像間的變換326 12.3.5並行化:效率的問題327 12.3.6其他的改進327 12.4RGB-D稠密建圖328 12.4.1實踐:點雲地圖328 12.4.2從點雲重建網格333 12.4.3八叉樹地圖336 12.4.4實踐:八叉樹地圖338 12.5*TSDF地圖和Fusion系列340 12.6小結343 第13講實踐:設計SLAM系統345 13.1為什麼要單獨列工程章節346 13.2工程框架347 13.3實現349 13.3.1實現基本資料結構349 13.3.2前端354 13.3.3後端357 13.4實驗效果361 第14講SLAM:現在與未來363 14.1當前的開源方案364 14.1.1MonoSLAM364 14.1.2PTAM365 14.1.3ORB-SLAM366 14.1.4LSD-SLAM369 14.1.5SVO370 14.1.6RTAB-MAP371 14.1.7其他372 14.2未來的SLAM話題372 14.2.1視覺+慣性導航SLAM373 14.2.2語義SLAM374 14.2.3SLAM的未來375 附錄A高斯分佈的性質377 附錄B矩陣求導380 附錄CROS入門382 參考文獻385
客服公告
热门活动
订阅电子报