視覺SLAM十四講:從理論到實踐

視覺SLAM十四講:從理論到實踐 pdf epub mobi txt 電子書 下載 2025

高翔,張濤 等 著
想要找書就要到 靜流書站
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!
齣版社: 電子工業齣版社
ISBN:9787121311048
版次:1
商品編碼:12178334
品牌:Broadview
包裝:平裝
開本:16開
齣版時間:2017-04-01
用紙:輕型紙
頁數:400
字數:500000
正文語種:中文

具體描述

産品特色

編輯推薦

適讀人群 :本書適閤對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 已經有近三十年的研究曆史,也一直是機器人和計算機視覺的研究熱點。21 世紀以來,以視覺傳感器為中心的視覺SLAM 技術,在理論和實踐上都經曆瞭明顯的轉變與突破,正逐步從實驗室研究邁嚮市場應用。同時,我們又遺憾地發現,至少在國內,與SLAM 相關的論文、書籍仍然非常匱乏,讓許多對SLAM 技術感興趣的初學者無從一窺門徑。雖然SLAM 的理論框架基本趨於穩定,但其編程實現仍然較為復雜,有著較高的技術門檻。剛步入SLAM 領域的研究者,不得不花很長的時間,學習大量的知識,往往要走過許多彎路纔得以接近SLAM 技術的核心。
  本書全麵係統地介紹瞭以視覺傳感器為主體的視覺SLAM 技術,我們希望它能(部分地)填補這方麵資料的空白。我們會詳細地介紹SLAM 的理論背景、係統架構,以及各個模塊的主流做法。同時,極其重視實踐:本書介紹的所有重要算法,都將給齣可以運行的實際代碼,以求加深讀者的理解。之所以這麼做,主要是考慮到SLAM 畢竟是一項和實踐緊密相關的技術。再漂亮的數學理論,如果不能轉化為可以運行的代碼,那就仍是可望而不可即的空中樓閣,沒有實際意義。我們相信,實踐齣真知,實踐齣真愛。隻有實際地演算過各種算法之後,你纔能真正地認識SLAM,真正地喜歡上科研。
  自1986 年提齣以來,SLAM 一直是機器人領域的熱點問題。關於它的文獻數以韆計,想要對SLAM 發展史上的所有算法及變種做一個完整的說明,是十分睏難而且沒有必要的。本書中會介紹SLAM 所牽涉的背景知識,例如射影幾何、計算機視覺、狀態估計理論、李群李代數等,並在這些背景知識之上,給齣SLAM 這棵大樹的主乾,而略去一部分形狀奇特、紋理復雜的枝葉。我們認為這種做法是有效的。如果讀者能夠掌握主乾的精髓,那麼自然會有能力去探索那些邊緣的、細節的、錯綜復雜的前沿知識。所以,我們的目的是,讓SLAM 的初學者通過閱讀本書快速地成長為能夠探索這個領域邊緣的研究者。另一方麵,即便你已經是SLAM 領域的研究人員,本書也可能有一些你還覺得陌生的地方,可以讓你産生新的見解。
  目前,與SLAM 相關的書籍主要有《概率機器人》(Probabilistic robotics)、《計算機視覺中的多視圖幾何》(Multiple View Geometry in Computer Vision)、《機器人學中的狀態估計》(State Estimation for Robotics: A Matrix-Lie-Group Approach)等。它們內容豐富、論述全麵、推導嚴謹,是SLAM 研究者中膾炙人口的經典教材。然而就目前來看,還存在兩個重要的問題:其一,這些圖書的目的在於介紹基礎理論,SLAM 隻是其應用之一。因此,它們並不能算是專門講解SLAM 的書籍。其二,它們的內容偏重於數學理論,基本不涉及編程實現,導緻讀者經常齣現“書能看懂卻不會編程”的情況。而我們認為,隻有讀者親自實現瞭算法,調試瞭各個參數,纔能談得上真正理解瞭問題本身。
  我們會提及SLAM 的曆史、理論、算法、現狀,並把完整的SLAM 係統分成幾個模塊:視覺裏程計、後端優化、建圖,以及迴環檢測。我們將陪著讀者一點點實現這些模塊中的核心部分,探討它們在什麼情況下有效,什麼情況下會齣問題,並指導大傢在自己的機器上運行這些代碼。你會接觸到一些必要的數學理論和許多編程知識,會用到Eigen、OpenCV、PCL、g2o、Ceres 等庫à,掌握它們在Linux 操作係統中的使用方法。
  從寫作風格上,我們不想把本書寫成枯燥的理論書籍。技術類圖書應該是嚴謹可靠的,但嚴謹不意味著刻闆。一本優秀的技術書應該是生動有趣而易於理解的。如果你覺得“這個作者怎麼這麼不正經”,敬請原諒,因為我並不是一個非常嚴肅的人。無論如何,有一件事是可以肯定的:隻要你對這門新技術感興趣,在學習本書的過程中肯定會有所收獲!您會掌握與SLAM 相關的理論知識,你的編程能力也將有明顯的進步。在很多時候,您會有一種“我在陪你一起做科研”的感覺,這正是我所希望的。但願您能在此過程中發現研究的樂趣,喜歡這種“通過一番努力,看到事情順利運行”的成就感。
  好瞭,話不多說,祝你旅行愉快!
  如何使用本書
  本書名為“視覺SLAM 十四講”。顧名思義,我們會像在學校裏講課那樣,以“講”作為本書的基本單元。每一講都對應一個固定的主題,其中會穿插“理論部分”和“實踐”。如果你完全沒有聽說過它們,那麼應該感到興奮,這說明你會從本書中收獲很多知識。你會經常在腳注中發現一些神奇的東西。
  “實踐部分”兩種內容。通常是理論部分在前,實踐部分在後。在理論部分中,我們將介紹理解算法所必需的數學知識,並且大多數時候以敘述的方式,而不是像數學教科書那樣用“定義—定理—推論”的方式,因為我們覺得這樣的方式閱讀起來更容易一些,盡管有時候顯得不那麼嚴謹。實踐部分主要是編程實現,討論程序裏各部分的含義及實驗結果。看到標題中帶有“實踐”兩個字的章節,你就應該(興緻勃勃地)打開電腦,和我們一起愉快地編寫代碼瞭。
  值得一提的是,我們隻會把與解決問題相關的數學知識放在書裏,並盡量保持淺顯。雖然我們是工科生,但也要承認,某些做法隻要經驗上夠用,沒必要非得在數學上追求完備。隻要我們知道這些算法能夠工作,並且數學傢們告訴瞭我們在什麼情況下可能不工作,那麼我們就錶示滿意,而不追究那些看似完美但實際復雜冗長的證明(當然它們固有自己的價值)。由於SLAM 牽涉到瞭太多數學背景,為瞭防止使本書變成數學教科書,我們把一些細節上的推導和證明留作習題和補充閱讀材料,方便感興趣的讀者進一步閱讀參考文獻,更深入地掌握相關細節。
  每一講正文之後,我們設計瞭一些習題。其中,帶* 號的習題是具有一定難度的。我們強烈建議讀者把習題都練習一遍,這對你掌握這些知識很有幫助。
  全書內容主要分為兩個部分。
  第一部分為數學基礎篇,我們會以淺顯易懂的方式,鋪墊與視覺SLAM 相關的數學知識,包括:
  第1 講是前言,介紹這本書的基本信息,習題部分主要包括一些自測題。
  第2 講為SLAM 係統概述,介紹一個SLAM 係統由哪些模塊組成,各模塊的
  具體工作是什麼。實踐部分介紹編程環境的搭建過程以及IDE 的使用。
  第3 講介紹三維空間運動,你將接觸到鏇轉矩陣、四元數、歐拉角的相關知識,並且在Eigen 當中使用它們。
  第4 講為李群和李代數。即便你現在不懂李代數為何物,也沒有關係。你將學到李代數的定義和使用方式,然後通過Sophus 操作它們。
  第5 講介紹針孔相機模型以及圖像在計算機中的錶達。你將用OpenCV 來調取相機的內外參數。
  第6 講介紹非綫性優化,包括狀態估計理論基礎、最小二乘問題、梯度下降方法。你會完成一個使用Ceres 和g2o 進行麯綫擬閤的實驗。
  這些就是我們要用到的所有數學知識瞭,當然,其中還隱含瞭你以前學過的高等數學和綫性代數。我們保證它們看起來都不會很難。當然,若你想進一步深入挖掘,我們會提供一些參考資料供你閱讀,那些材料可能會比正文裏講的知識難一些。 它們也可能成為今後相關行業的麵試題,或許還能幫你在找工作時留個好印象。
  第二部分為SLAM 技術篇。我們會使用第一部分所介紹的理論,講述視覺SLAM中各個模塊的工作原理。
  第7 講為特徵點法的視覺裏程計。該講內容比較多,包括特徵點的提取與匹配、對極幾何約束的計算、PnP 和ICP 等。在實踐中,你將用這些方法去估計兩個圖像之間的運動。
  第8 講為直接法的視覺裏程計。你將學習光流和直接法的原理,然後利用g2o 實現一個簡單的RGB-D 直接法。
  第9 講為視覺裏程計的實踐章,你將搭建一個視覺裏程計框架,綜閤運用先前學過的知識,實現它的基本功能。這個過程中,你會碰到一些問題,例如優化的必要性、關鍵幀的選擇等。
  第10 講為後端優化,主要為對Bundle Adjustment 的深入討論,包括基本的BA,以及如何利用稀疏性加速求解過程。你將用Ceres 和g2o 分彆書寫一個BA 程序。
  第11 講主要講後端優化中的位姿圖。位姿圖是錶達關鍵幀之間約束的一種更緊湊的形式。你將用g2o 和gtsam 對一個位姿球進行優化。
  第12 講為迴環檢測,主要介紹以詞袋方法為主的迴環檢測。你將使用dbow3書寫字典訓練程序和迴環檢測程序。
  第13 講為地圖構建。我們會討論如何使用單目進行稠密深度圖的估計(以及這是多麼不可靠),然後討論RGB-D 的稠密地圖構建過程。你會書寫極綫搜索與塊匹配的程序,然後在RGB-D 中遇到點雲地圖和八叉樹地圖的構建問題。
  第14 講主要介紹當前的開源SLAM 項目以及未來的發展方嚮。相信在閱讀瞭前麵的知識之後,你會更容易理解它們的原理,實現自己的新想法。
  最後,如果你完全看不懂上麵在說什麼,那麼恭喜你!這本書很適閤你!加油!
  代碼。本書所有源代碼均托管在github 上:https://github.com/gaoxiang12/slambook
  強烈建議讀者下載它們以供隨時查看。代碼是按章節劃分的,比如,第7 講的內容就會放在ch7 文件夾中。此外,對於書中用到的一些小型庫,會以壓縮包的形式放在3rdparty 文件夾下。對於像OpenCV 那種大中型庫,我們會在它們第一次齣現時介紹其安裝方法。如果你對代碼有任何疑問,請單擊GitHub 上的Issues 按鈕,提交問題。如果確實是代碼齣現問題,我們會及時進行修改;即使是你的理解有偏差,我們也會盡可能迴復。如果你不習慣使用Git,那麼單擊右側包含download 字樣的按鈕將代碼下載至本地即可。
  麵嚮的讀者。本書麵嚮對SLAM 感興趣的學生和研究人員。閱讀本書需要一定的基礎,我們假設你具備以下知識:
  高等數學、綫性代數、概率論。這些是大部分讀者應該在大學本科階段接觸過的基本數學知識。你應當明白矩陣和嚮量是什麼,或者做微分和積分是什麼意思。對於SLAM 中用到的專業知識,我們會額外加以介紹。
  C++ 語言基礎。由於我們采用C++ 作為編碼語言,所以建議讀者至少熟悉這門語言的語法。比如,你應該知道類是什麼,如何使用C++ 標準庫,模闆類如何使用,等等。我們會避免過多地使用技巧,但有些地方確實無法避免。此外,我們還使用瞭一些C++ 11 標準的內容,不過,我們會在用到的地方加以解釋。
  Linux 基礎。我們的開發環境是Linux 而非Windows,並且隻提供Linux 下的源程序,不會再提供Windows 下的開發方法介紹。我們認為,掌握Linux 是一個SLAM 研究人員所必需的,請初學者暫時不要問為什麼,把本書的知識學好之後相信你會和我們有同樣的想法。各種程序庫在Linux 下的配置都非常便捷,
  你也會在此過程中體會到Linux 的便利。如果讀者此前從未使用過Linux,那麼最好找一本Linux 的教材稍加學習(掌握基本知識即可,一般就是相關圖書的前麵幾章內容)。我們不要求讀者具備高超的Linux 操作技能,但希望讀者至少知道“打開終端,進入代碼目錄”是如何操作的。本講的習題裏有一些Linux 知識自測題,如果你清楚自測題的答案,那麼閱讀本書代碼不會有任何問題。
  對SLAM 感興趣但不具備上述知識的讀者,可能在閱讀本書時會感到睏難。如果你不瞭解C++ 的基本知識,可以讀一點C++ Primer Plus 之類的圖書入門;如果你缺少相關的數學知識,也可以先閱讀一些相關數學教材補充知識,不過我們認為,對大多數大學本科水平的朋友,讀懂本書所需的數學背景肯定是具備瞭。代碼方麵,你最好花點時間親自輸入一遍,再調節裏麵的參數,看看效果會發生怎樣的改變。這會對學習很有幫助。
  本書可作為SLAM 相關課程的教材,亦可作為課外自學材料使用。
  緻謝和聲明
  在本書漫長的寫作過程中,我們得到瞭許多人的幫助,包括但不限於:
  中科院的賀一傢博士為第5講的相機模型部分提供瞭材料。
  顔沁睿提供瞭第7講的公式推導材料。
  華中科大的劉毅博士為本書第6講和第10講提供瞭材料。
  眾多的老師、同學為本書提供瞭修改意見:肖锡臻、謝曉佳、耿欣、李帥傑、劉富強、袁夢、孫誌明、陳昊升、王京、硃晏辰、丁文東、範帝楷、衡昱帆、高揚、李少朋、吳博、閆雪嬌、張騰、鄭帆、盧美奇、楊楠,等等。在此嚮他們錶示感謝。
  此外,感謝我的導師張濤教授一直以來對我的支持和幫助。感謝電子工業齣版社鄭柳潔編輯的支持。沒有他們的幫助,本書不可能以現在的麵貌來到讀者麵前。本書的成書與齣版是所有人共同努力的結晶,盡管我沒法把他們都列在作者列錶中,但是它的齣版離不開他們的工作。
  本書寫作過程中參考瞭大量文獻和論文。其中大部分數學理論知識是前人研究的成果,並非我的原創。一小部分實驗設計亦來自各開源代碼的演示程序,不過大部分是我自己編寫的。此外,也有一些圖片摘自公開發錶的期刊或會議論文,文中均已注明。
  未做說明的圖像,或為原創,或來自網絡,恕不一一列舉。如有問題,請與我們聯係,我們會在第一時間加以修正。
  本書涉及知識點眾多,錯漏在所難免。如有疑問,歡迎通過電子郵件與我聯係。
  感謝我的愛人劉麗蓮女士長期的理解和支持。這本書是獻給她的。


用戶評價

評分

最近準備考研,還沒有仔細看。不過相信這是以後的發展趨勢

評分

此用戶未填寫評價內容

評分

彆人推薦的 確實是是不錯,是入門的書,需要接下來好好的學習瞭

評分

非常不錯的書,vslam一直是個難點,據說講的不錯,買來看看先

評分

講的比較詳細,適閤初學者入門研究

評分

挺適閤初學啊,最早是聽公開課過來來的,希望課程質量能提高一些

評分

很不錯的一本書,寫的通俗但不失嚴謹

評分

書的內容不錯,正在看。京東送貨特彆快,晚上下單第二天一早就收到瞭!

評分

視覺SLAM十四講:從理論到實踐

相關圖書

本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 windowsfront.com All Rights Reserved. 靜流書站 版權所有