初學SLAM一之漫談

2021-08-26 17:58:13 字數 1676 閱讀 7710

工作一年來接觸與學習slam技術已經有一段時間了。之前一直從事攝影測量與地圖相關的學習,在無人駕駛火爆的當下,無人駕駛的一些核心技術例如高精度地圖,例如感知定位等都與slam緊密相關,而這也給了我這個地圖,測繪,攝影測量者乙個學習探索slam的乙個契機。關於攝影測量與計算機視覺之間的差異性,準確來說應該是近景攝影測量與計算機視覺,我想每乙個做過攝影測量的人且接觸計算機視覺都會有不同的體會。我這裡僅僅說一下自己近來直觀的感受:

1,攝影測量座標系的建立會更多的與測繪上已經建立好的大地座標系相聯絡,而計算機視覺求得的結果更多的是乙個相對的位姿,不會刻意的去和大地座標系相換換。但是在高精度地圖構建當中,計算機視覺的計算會與gps,imu甚至雷射雷達等多源感測器結合,會更多的轉換為大地座標系當中的絕對定位。

2,攝影測量對於相機位置的變換更多的傾向於尤拉角的表示,計算時採用旋轉矩陣,對於 尤拉角的旋轉位次關係(先繞y-x-z,還是先繞z-x-y),都總結好一套旋轉矩陣, 比較直觀,而且對於平移的表達也會單獨使用乙個平移向量。這樣,在攝影測量的計算過程中,每一步表示式都清晰明了。而計算機視覺當中對於相機位姿的表示更多的會採用四元數而在slam當中則是李代數。這是因為攝影測量當中相機旋轉移動幅度相對不大,而計算機視覺當中會考慮到相機360°旋轉的奇異性。且相機的旋轉平移會放到乙個齊次矩陣裡去計算。

關於二者更高層次與理論上的相似與聯絡,有一本書值得推薦,wolfgang forstner的《 photogrammetric computer vision》。

而slam技術則是以計算機視覺的為基礎,用優化的方法來進行區域性和全域性優化,將相機移動過程中各個位置上拍攝到的影象從2d轉換成乙個完整3d場景,同時相機軌跡可以構成場景當中的可通過路徑的技術流程。在slam發展過程中,也分為幾個發展路線:

1.用傳統特徵點法構建三維場景,用卡爾曼濾波為代表的線性濾波器進行全域性優化的slam框架。代表的開源專案有monoslam。

2.用傳統特徵點法構建三維場景,用非線性優化進行優化的slam框架,代表的開源專案有ptam,和orb-slam2(orb-slam)

上面兩種直接法的slam只能得到稀疏地圖,即由特徵點組建起來的三維場景,不能得到實際場景整個表面。

3.結合特徵點法和直接法構造三維場景,用非線性優化進行優化的slam框架,代表的有svo(semi-direct visual odoemtry)

4.只用直接法構造三維場景,用非線性優化進行優化的slam框架,代表的有lsd-slam.

採用直接法的slam,一般可以得到半稠密三維地圖甚至稠密地圖,由於半稠密或者稠密地圖的構建需要挨個計算挨個搜尋畫素,並且對所有畫素進行非線性優化計算,在cpu上不能夠實時的得到結果,但是,每個畫素的計算並不屎有明確的先後邏輯關係,因此可以採用gpu並行加速。

從上面slam框架的演變來看,以傳統特徵點法逐漸向直接法轉變,但是目前還是特徵點法還是佔主流,後端優化則是從卡爾曼為主的濾波器轉向非線性優化轉變,甚至是圖優化。

本人後續的文章會逐個深入學習各個模組的一些關鍵知識點。這裡總結一下本人經常翻看的一些好的學習slam書籍和網上資源。

1.計算機三維視覺的神作:《multiview geometry in computer vision》中英版都有,理論性強,按需索取原理

2.高博的《視覺slam十四講》,可以讓你快速入門slam領域

3.《probabilistic robotics》,分為四個部分,與slam的目的一致。

5. 2023年 浙大第一屆暑期slam夏令營 所有講課ppt   

視覺SLAM漫談 三 研究點介紹

在 slam for dummy 中,有一句話說的好 slam並不是一種演算法,而是乙個概念。slam is more like a concept than a single algorithm.所以,你可以和導師 師兄弟 以及師妹,如果有的話 說你在研究slam,但是,作為同行,我可能更關心 你...

視覺SLAM漫談 三 研究點介紹

在 slam for dummy 中,有一句話說的好 slam並不是一種演算法,而是乙個概念。slam is more like a concept than a single algorithm.所以,你可以和導師 師兄弟 以及師妹,如果有的話 說你在研究slam,但是,作為同行,我可能更關心 你...

視覺SLAM漫談 三 研究點介紹

在 slam for dummy 中,有一句話說的好 slam並不是一種演算法,而是乙個概念。slam is more like a concept than a single algorithm.所以,你可以和導師 師兄弟 以及師妹,如果有的話 說你在研究slam,但是,作為同行,我可能更關心 你...