産品特色
編輯推薦
適讀人群 :本書適閤對SLAM感興趣的讀者閱讀,也適閤有誌於從事計算機視覺、機器人研究等領域的廣大學生閱讀,可作為SLAM技術的入門教材。 SLAM技術是全自動無人駕駛、無人機、機器人等人工智能産品的核心技術之一。
作者是SLAM領域非常傑齣的青年專傢。
書中不僅有深入淺齣的講解,同時注重理論和實踐結閤,大大降低瞭國內學生和相關從業者的進入門檻。
內容簡介
《視覺SLAM十四講:從理論到實踐》係統介紹瞭視覺SLAM(同時定位與地圖構建)所需的基本知識與核心算法,既包括數學理論基礎,如三維空間的剛體運動、非綫性優化,又包括計算機視覺的算法實現,例如多視圖幾何、迴環檢測等。此外,還提供瞭大量的實例代碼供讀者學習研究,從而更深入地掌握這些內容。
《視覺SLAM十四講:從理論到實踐》可以作為對SLAM感興趣的研究人員的入門自學材料,也可以作為SLAM相關的高校本科生或研究生課程教材使用。
作者簡介
高翔,2008年就讀清華大學自動化係,2012年免試進入清華大學自動化係攻讀博士學位。研究課題為視覺SLAM,興趣包括計算機視覺與機器學習。曾撰寫過與SLAM相關的論文和技術博客。
張濤,清華大學自動化係教授、黨委書記、副係主任。1995年9月至1999年9月在清華大學自動化係檢測技術與自動化裝置專業學習,獲博士學位。1999年10月至2002年9月在日本國立佐賀大學大學院工學係研究科係統控製專業學習,獲博士學位。研究課題包括機器人、航空航天、計算機視覺等。
劉毅,華中科技大學圖像與人工智能研究所在讀博士,本科畢業於武漢理工大學數學係。讀博期間專注於圖像處理、三維重建、視覺SLAM,以及傳感器融閤研究和應用,讀博期間先後於深圳市大疆創新公司,英特爾中國研究院等單位實習。
顔沁睿,比利時荷語魯汶大學人工智能碩士,電子工程學士(GroupT)。電子科技大學信息顯示與光電技術學士。長期緻力於研究人工智能技術在機器人領域的應用,包括計算機視覺、機器學習和SLAM。現擔任地平綫機器人公司智能駕駛部算法工程師。
精彩書評
隆重嚮讀者推薦《視覺SLAM十四講:從理論到實踐》。一方麵本書是業界少有的涵蓋從基礎理論到代碼實例,係統性講解SLAM的書;另一方麵,本書的作者和地平綫頗有淵源,高翔曾經是我們的算法實習生,顔沁睿是自動駕駛算法工程師,都是在SLAM領域非常傑齣的青年專傢,走在技術實踐前沿。在移動互聯網大潮之後,自動駕駛、無人機、服務機器人等人工智能硬件會成為下一個産業爆發點,其中關鍵的技術之一就是動態定位和環境建模的SLAM技術。本書是國內非常有價值的有關SLAM技術的書籍,適閤有誌於從事機器人技術的研究生和工程師,一定會讓讀者很有收獲。
——地平綫機器人創始人,中國人工智能學會副秘書長,餘凱
我在新加坡和加拿大給學生講視覺SLAM時常常覺得缺乏一本適閤初學者的教材。高翔博士的《視覺SLAM十四講:從理論到實踐》從基礎的四元數、李代數講起,涵蓋瞭卡爾曼濾波、Bundle Adjustment、Pose-Graph等高級優化工具。書中更有zui近十多年成功係統的概述,從2003年的MonoSLAM直到2016年的ORB-SLAM。通篇既有清晰的理論敘述,又輔以大量示例程序,是一本非常好的視覺SLAM教材。
——加拿大西濛弗雷澤大學終身教授,譚平
視覺SLAM隨著近年增強現實、無人駕駛等應用的興起而重新獲得重大關注。視覺SLAM屬於計算機視覺和機器人研究的交叉領域,因此涉及的基礎知識廣而分散。國內專門的研究機構相對較少,因此學生入門的門檻較高。幸運的是,本書不僅有深入淺齣的講解,同時注重理論和實戰的結閤,大大降低瞭國內學生和相關從業者的進入門檻。因此,本書非常值得初學者學習實踐。
——網易感知與智能中心增強現實算法架構師,劉海偉
作者的這本書既是通俗有趣的高科技演義,又是足以指導研發實踐的翔實教程,對國內SLAM 界而言可謂意義重大。我甚至發現有不少目前圈內的一流人纔都是因為看瞭本書的早期章節纔決定進入這個行業並快速成長起來的。
本書裏所涵蓋的知識麵、技術細節,甚至是某些寶貴的實踐經驗,對國內剛剛起步的虛擬現實和增強現實(VR/AR)、無人機、無人車、機器人等行業而言,都將産生深遠影響!
——uSens淩感科技聯閤創始人/首席運營官,時馳(Chris)博士
目錄
第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 緻謝和聲明7
第2 講初識SLAM 9
2.1 引子:小蘿蔔的例子11
2.2 經典視覺SLAM 框架17
2.2.1 視覺裏程計17
2.2.2 後端優化19
2.2.3 迴環檢測20
2.2.4 建圖21
2.3 SLAM 問題的數學錶述22
2.4 實踐:編程基礎 25
2.4.1 安裝Linux 操作係統25
2.4.2 Hello SLAM27
2.4.3 使用cmake28
2.4.4 使用庫30
2.4.5 使用IDE32
第3 講三維空間剛體運動37
3.1 鏇轉矩陣39
3.1.1 點和嚮量,坐標係39
3.1.2 坐標係間的歐氏變換40
3.1.3 變換矩陣與齊次坐標42
3.2 實踐:Eigen 44
3.3 鏇轉嚮量和歐拉角48
3.3.1 鏇轉嚮量48
3.3.2 歐拉角50
3.4 四元數51
3.4.1 四元數的定義51
3.4.2 四元數的運算53
3.4.3 用四元數錶示鏇轉55
3.4.4 四元數到鏇轉矩陣的轉換55
3.5 * 相似、仿射、射影變換56
3.6 實踐:Eigen 幾何模塊57
3.7 可視化演示60
第4 講李群與李代數62
4.1 李群與李代數基礎 64
4.1.1 群64
4.1.2 李代數的引齣65
4.1.3 李代數的定義 67
4.1.4 李代數so(3) 67
4.1.5 李代數se(3)68
4.2 指數與對數映射69
4.2.1 SO(3) 上的指數映射69
4.2.2 SE(3) 上的指數映射.70
4.3 李代數求導與擾動模型72
4.3.1 BCH 公式與近似形式72
4.3.2 SO(3) 李代數上的求導73
4.3.3 李代數求導74
4.3.4 擾動模型(左乘)75
4.3.5 SE(3) 上的李代數求導76
4.4 實踐:Sophus76
4.5 * 相似變換群與李代數.79
4.6 小結81
第5 講相機與圖像82
5.1 相機模型 84
5.1.1 針孔相機模型84
5.1.2 畸變87
5.1.3 雙目相機模型 90
5.1.4 RGB-D 相機模型92
5.2 圖像93
5.3 實踐:圖像的存取與訪問95
5.3.1 安裝OpenCV95
5.3.2 操作OpenCV 圖像96
5.4 實踐:拼接點雲99
第6 講非綫性優化104
6.1 狀態估計問題106
6.1.1 最大後驗與最大似然106
6.1.2 最小二乘的引齣 108
6.2 非綫性最小二乘109
6.2.1 一階和二階梯度法110
6.2.2 高斯牛頓法111
6.2.3 列文伯格—馬誇爾特方法113
6.2.4 小結114
6.3 實踐:Ceres115
6.3.1 Ceres 簡介 116
6.3.2 安裝Ceres116
6.3.3 使用Ceres 擬閤麯綫 117
6.4 實踐:g2o121
6.4.1 圖優化理論簡介121
6.4.2 g2o 的編譯與安裝122
6.4.3 使用g2o 擬閤麯綫123
6.5 小結128
第7 講視覺裏程計1130
7.1 特徵點法132
7.1.1 特徵點132
7.1.2 ORB 特徵134
7.1.3 特徵匹配137
7.2 實踐:特徵提取和匹配138
7.3 2D?2D: 對極幾何141
7.3.1 對極約束141
7.3.2 本質矩陣143
7.3.3 單應矩陣146
7.4 實踐:對極約束求解相機運動148
7.5 三角測量153
7.6 實踐:三角測量154
7.6.1 三角測量代碼154
7.6.2 討論156
7.7 3D?2D:PnP157
7.7.1 直接綫性變換158
7.7.2 P3P159
7.7.3 Bundle Adjustment 161
7.8 實踐:求解PnP165
7.8.1 使用EPnP 求解位姿165
7.8.2 使用BA 優化166
7.9 3D?3D:ICP172
7.9.1 SVD 方法173
7.9.2 非綫性優化方法 175
7.10 實踐:求解ICP176
7.10.1 SVD 方法176
7.10.2 非綫性優化方法178
7.11 小結180
第8 講視覺裏程計2182
8.1 直接法的引齣184
8.2 光流(Optical Flow)185
8.3 實踐:LK 光流187
8.3.1 使用TUM 公開數據集187
8.3.2 使用LK 光流188
8.4 直接法(Direct Method)192
8.4.1 直接法的推導 192
8.4.2 直接法的討論195
8.5 實踐:RGB-D 的直接法196
8.5.1 稀疏直接法196
8.5.2 定義直接法的邊197
8.5.3 使用直接法估計相機運動 199
8.5.4 半稠密直接法200
8.5.5 直接法的討論 202
8.5.6 直接法優缺點總結 203
第9 講實踐:設計前端205
9.1 搭建VO 框架 206
9.1.1 確定程序框架207
9.1.2 確定基本數據結構208
9.1.3 Camera 類210
9.1.4 Frame 類212
9.1.5 MapPoint 類 213
9.1.6 Map 類 213
9.1.7 Config 類 214
9.2 基本的VO:特徵提取和匹配216
9.2.1 兩兩幀的視覺裏程計216
9.2.2 討論224
9.3 改進:優化PnP 的結果 224
9.4 改進:局部地圖 227
9.5 小結233
第10 講後端1 235
10.1 概述237
10.1.1 狀態估計的概率解釋237
10.1.2 綫性係統和KF239
10.1.3 非綫性係統和EKF242
10.1.4 EKF 的討論243
10.2 BA 與圖優化245
10.2.1 投影模型和BA 代價函數 245
10.2.2 BA 的求解247
10.2.3 稀疏性和邊緣化248
10.2.4 魯棒核函數255
10.2.5 小結256
10.3 實踐:g2o257
10.3.1 BA 數據集257
10.3.2 g2o 求解BA258
10.3.3 求解262
10.4 實踐:Ceres 264
10.4.1 Ceres 求解BA 265
10.4.2 求解267
10.5 小結269
第11 講後端2 270
11.1 位姿圖(Pose Graph)271
11.1.1 Pose Graph 的意義271
11.1.2 Pose Graph 的優化272
11.2 實踐:位姿圖優化274
11.2.1 g2o 原生位姿圖 274
11.2.2 李代數上的位姿圖優化278
11.2.3 小結284
11.3 * 因子圖優化初步285
11.3.1 貝葉斯網絡285
11.3.2 因子圖286
11.3.3 增量特性288
11.4 * 實踐:gtsam 289
11.4.1 安裝gtsam 4.0289
11.4.2 位姿圖優化290
第12 講迴環檢測297
12.1 迴環檢測概述299
12.1.1 迴環檢測的意義299
12.1.2 方法 300
12.1.3 準確率和召迴率301
12.2 詞袋模型303
12.3 字典 305
12.3.1 字典的結構305
12.3.2 實踐:創建字典306
12.4 相似度計算309
12.4.1 理論部分309
12.4.2 實踐:相似度的計算310
12.5 實驗分析與評述314
12.5.1 增加字典規模314
12.5.2 相似性評分的處理316
12.5.3 關鍵幀的處理316
12.5.4 檢測之後的驗證317
12.5.5 與機器學習的關係317
第13 講建圖319
13.1 概述320
13.2 單目稠密重建322
13.2.1 立體視覺322
13.2.2 極綫搜索與塊匹配323
13.2.3 高斯分布的深度濾波器325
13.3 實踐:單目稠密重建328
13.4 實驗分析與討論339
13.4.1 像素梯度的問題339
13.4.2 逆深度340
13.4.3 圖像間的變換 341
13.4.4 並行化:效率的問題342
13.4.5 其他的改進343
13.5 RGB-D 稠密建圖343
13.5.1 實踐:點雲地圖344
13.5.2 八叉樹地圖347
13.5.3 實踐:八叉樹地圖350
13.6 *TSDF 地圖和Fusion 係列352
13.7 小結356
第14 講SLAM:現在與未來357
14.1 當前的開源方案358
14.1.1 MonoSLAM358
14.1.2 PTAM359
14.1.3 ORB-SLAM361
14.1.4 LSD-SLAM363
14.1.5 SVO 364
14.1.6 RTAB-MAP366
14.1.7 其他367
14.2 未來的SLAM 話題367
14.2.1 視覺+ 慣性導航SLAM367
14.2.2 語義SLAM369
14.2.3 SLAM 的未來 370
附錄A 高斯分布的性質371
A.1 高斯分布371
A.2 高斯分布的運算371
A.2.1 綫性運算371
A.2.2 乘積372
A.2.3 復閤運算372
A.3 復閤的例子372
附錄B ROS 入門374
B.1 ROS 是什麼374
B.2 ROS 的特點375
B.3 如何快速上手ROS375
參考文獻377
前言/序言
這是一本介紹視覺SLAM 的書,也很可能是第一本以視覺SLAM 為主題的中文書。那麼,SLAM 是什麼?
SLAM 是Simultaneous Localization and Mapping 的縮寫,中文譯作“同時定位與地圖構建”。它是指搭載特定傳感器的主體,在沒有環境先驗信息的情況下,於運動過程中建立環境的模型,同時估計自己的運動。如果這裏的傳感器主要為相機,那就稱為“視覺SLAM”。
本書的主題就是視覺SLAM。這裏我們刻意把許多個定義放到一句話中,是希望讀者有一個較明確的概念。首先,SLAM 的目的是解決“定位”與“地圖構建”這兩個問題。也就是說,一邊要估計傳感器自身的位置,一邊要建立周圍環境的模型。那麼怎麼解決呢?這需要用到傳感器的信息。傳感器能以一定形式觀察外部的世界,不過不同傳感器觀察的方式是不同的。而之所以要花一本書的內容去討論這個問題,是因為它很難——特彆是我們希望實時地、在沒有先驗知識的情況下進行SLAM。當用相機作為傳感器時,我們要做的就是根據一張張連續運動的圖像(它們形成瞭一段視頻),從中推斷相機的運動,以及周圍環境的情況。
這似乎是個很直觀的問題。我們自己走進陌生的環境時不就是這麼做的嗎?
在計算機視覺(Computer Vision)創立之初,人們就想象著有朝一日計算機將和人一樣,通過眼睛去觀察世界,理解周遭的物體,探索未知的領域——這是一個美妙而又浪漫的夢想,吸引瞭無數的科研人員日夜為之奮鬥。我們曾經以為這件事情並不睏難,然而進展卻遠不如預想的那麼順利。我們眼中的花草樹木、蟲魚鳥獸,在計算機中卻是那樣的不同:它們隻是一個個由數字排列而成的矩陣(Matrix)。讓計算機理解圖像的內容,就像讓我們自己理解這些數字一樣睏難。我們既不瞭解自己如何理解圖像,也不知道計算機該如何理解、探索這個世界。於是我們睏惑瞭很久,直到幾十年後的今天,纔發現瞭一點點成功的跡象:通過人工智能(Artificial Intelligence)和機器學習(Machine Learning)技術,計算機漸漸能夠辨彆齣物體、人臉、聲音、文字——盡管它所用的方式(概率學建模)與我們是如此不同。另一方麵,在SLAM 發展瞭將近30 年之後,我們的相機纔漸漸開始能夠認識到自身的位置,發覺自己在運動——雖然方式還是和我們人類有巨大的差異。不過,至少研究者們已經成功地搭建齣種種實時SLAM係統,有的能夠快速跟蹤自身位置,有的甚至能夠進行實時的三維重建。
這件事情確實很睏難,但我們已經有瞭很大的進展。更令人興奮的是,近年來隨著科技的發展,湧現齣瞭一大批與SLAM 相關的應用點。在許多地方,我們都希望知道自身的位置:室內的掃地機和移動機器人需要定位,野外的自動駕駛汽車需要定位,空中的無人機需要定位,虛擬現實和增強現實的設備也需要定位。SLAM 是那樣重要。沒有它,掃地機就無法在房間自主地移動,隻能盲目地遊蕩;傢用機器人就無法按照指令準確到達某個房間;虛擬現實也將永遠固定在座椅之上——所有這些新奇的事物都無法齣現在現實生活中,那將多麼令人遺憾。
今天的研究者和應用開發人員,逐漸意識到瞭SLAM 技術的重要性。在國際上,SLAM 已
視覺SLAM十四講:從理論到實踐 epub pdf mobi txt 電子書 下載 2024
視覺SLAM十四講:從理論到實踐 下載 epub mobi pdf txt 電子書