NEWS
—— 新聞中心 ——
【智能IoT】SLAM技術(shù)框架
發(fā)布時(shí)間:2019-12-29瀏覽次數(shù):0
SLAM技術(shù)框架
原作者: sixgod 來自: 計(jì)算機(jī)視覺life
通過《SLAM初識(shí)》,我們對(duì)SLAM有了個(gè)粗淺的認(rèn)識(shí),我們知道SLAM可以一邊建圖一邊定位,還可以用建立好的地圖進(jìn)行導(dǎo)航。
有同學(xué)問現(xiàn)在手機(jī)上的百度/高德/騰訊等地圖類App不就可以做到嗎,為什么還需要SLAM?這里解釋一下:目前地圖類App在室外定位、導(dǎo)航方面確實(shí)做的很不錯(cuò),而且衍生出很多基于地理位置的游戲、社交、生活類應(yīng)用。這是因?yàn)榈貓D類App背后使用的是GPS技術(shù),據(jù)說美國軍用GPS精度可以達(dá)到厘米級(jí)定位精度,而開放給大眾使用的民用GPS也可以達(dá)到米級(jí)的定位精度。但是,GPS只能在室外使用!而要想解決建筑物內(nèi)、洞穴、海底等在GPS失效地域的定位、建圖、姿態(tài)估計(jì)、路徑規(guī)劃,目前最有效的就是SLAM技術(shù)。下面這個(gè)視頻描述的是美國賓夕法尼亞大學(xué)的Vijay Kumar教授的團(tuán)隊(duì)在幾年前的工作,展示了搭載SLAM技術(shù)的無人機(jī)是如何快速的對(duì)復(fù)雜建筑物內(nèi)部建圖的。
搭載SLAM技術(shù)的無人機(jī)室內(nèi)建圖
最早的SLAM雛形是在軍事(核潛艇的海底定位)上的應(yīng)用,主要傳感器是軍用雷達(dá)。SLAM技術(shù)發(fā)展到如今已經(jīng)幾十年,目前以激光雷達(dá)作為主傳感器的SLAM技術(shù)比較穩(wěn)定、可靠,仍然是主流的技術(shù)方案。但隨著最近幾年計(jì)算機(jī)視覺技術(shù)的快速發(fā)展,SLAM技術(shù)越來越多的應(yīng)用于家用機(jī)器人、無人機(jī)、AR設(shè)備,基于視覺的Visual SLAM(簡稱VSLAM)逐漸開始嶄露頭角。
VSLAM技術(shù)架構(gòu)
本文主要介紹目前非常熱門的VSLAM的技術(shù)框架,未來會(huì)有非常好的前景。VSLAM的技術(shù)框架如下,主要包括傳感器數(shù)據(jù)預(yù)處理、前端、后端、回環(huán)檢測、建圖。
1、傳感器數(shù)據(jù)
傳感器數(shù)據(jù)預(yù)處理。這里的傳感器包括攝像頭、慣性測量單元(Inertial measurement unit,簡稱IMU)等,涉及傳感器選型、標(biāo)定、多傳感器數(shù)據(jù)同步等技術(shù)。
不同類型視覺傳感器的對(duì)比
2、前端
又稱為視覺里程計(jì)(visual odometry,簡稱VO)。主要是研究如何根據(jù)相鄰幀圖像定量估算幀間相機(jī)的運(yùn)動(dòng)。通過把相鄰幀的運(yùn)動(dòng)軌跡串起來,就構(gòu)成了相機(jī)載體(如機(jī)器人)的運(yùn)動(dòng)軌跡,解決了定位的問題。然后根據(jù)估算的每個(gè)時(shí)刻相機(jī)的位置,計(jì)算出各像素的空間點(diǎn)的位置,就得到了地圖。
VSLAM中,前端主要涉及計(jì)算機(jī)視覺相關(guān)的算法。典型做法一般是:首先提取每幀圖像特征點(diǎn),對(duì)相鄰幀進(jìn)行特征點(diǎn)粗匹配,然后利用RANSAC(隨機(jī)抽樣一致)算法去除不合理的匹配對(duì),然后得到位置和姿態(tài)信息。整個(gè)過程涉及到特征提取、特征匹配、對(duì)極幾何、PnP、剛體運(yùn)動(dòng)、李代數(shù)等多視圖幾何知識(shí)。
相鄰圖像特征點(diǎn)匹配
前面說視覺里程計(jì)只計(jì)算相鄰幀的運(yùn)動(dòng),進(jìn)行局部估計(jì),這會(huì)不可避免的出現(xiàn)累積漂移,這是因?yàn)槊看喂烙?jì)兩個(gè)圖像間的運(yùn)動(dòng)時(shí)都有一定的誤差,經(jīng)過相鄰幀多次傳遞,前面的誤差會(huì)逐漸累積,軌跡漂移(drift)的越來越厲害。
軌跡漂移現(xiàn)象
解決軌跡漂移的方法有兩個(gè):后端優(yōu)化、回環(huán)檢測。
3、后端
主要是對(duì)前端的結(jié)果進(jìn)行優(yōu)化,得到最優(yōu)的位姿估計(jì)。主要有兩種方法:
一種是基于濾波理論的優(yōu)化,主要有 EKF, PF, RBPF, UKF等方法,其中EKF(擴(kuò)展卡爾曼濾波)在早期是主流的方法。它的思路是將狀態(tài)估計(jì)模型線性化,并用高斯分布近似其噪聲,然后按照卡爾曼濾波進(jìn)行預(yù)測來更新。但是實(shí)際上,這種對(duì)噪聲的高斯分布大部分情況下是不成立的,此外,線性化過程中丟失了高階項(xiàng)。
另一種就是非線性優(yōu)化(圖優(yōu)化)。它的基本思想是將優(yōu)化的變量作為圖的節(jié)點(diǎn),誤差項(xiàng)作為圖的邊,在給定初值后,就可以迭代優(yōu)化更新。由于圖優(yōu)化的稀疏性,可以在保證精度的同時(shí),降低計(jì)算量。
后端優(yōu)化涉及到的數(shù)學(xué)知識(shí)比較多,具有較高的難度??偟膩碚f,從狀態(tài)估計(jì)的角度來講,SLAM是一個(gè)非線性非高斯系統(tǒng)。因此傳統(tǒng)的濾波理論已經(jīng)逐漸被拋棄,而圖優(yōu)化已經(jīng)成為主流方法。
4、回環(huán)檢測
主要目的是讓機(jī)器人能夠認(rèn)識(shí)自己曾經(jīng)去過的地方,從而解決位置隨時(shí)間漂移的問題。視覺回環(huán)檢測一般通過判斷圖像之間的相似性完成,這和我們?nèi)祟愑醚劬砼袛鄡蓚€(gè)相同的地點(diǎn)是一樣的道理。因?yàn)閳D像信息豐富,因此VSLAM在回環(huán)檢測中具有很大的優(yōu)勢。
回環(huán)檢測效果
當(dāng)回環(huán)檢測成功后,就會(huì)建立現(xiàn)在的圖像和過去曾經(jīng)見過圖像的對(duì)應(yīng)關(guān)系,后端優(yōu)化算法可以根據(jù)這些信息來重新調(diào)整軌跡和地圖,從而較大限度地消除累積誤差。
5、建立地圖
SLAM根據(jù)不同的傳感器類型和應(yīng)用需求建立不同的地圖。常見的有2D柵格地圖、2D拓?fù)涞貓D、3D點(diǎn)云地圖等。
比如前面提到過的掃地機(jī)器人,它只需要知道房屋內(nèi)部的簡單二維地圖就可以了,不需要知道房屋到底有多高;它只需要知道哪里可以通過,哪里是障礙物,而不需要知道這個(gè)障礙物到底是什么,長什么樣子;因此目前大部分具有SLAM功能的掃地機(jī)器人幾乎都是采用廉價(jià)的消費(fèi)級(jí)激光雷達(dá)方案,很少采用視覺SLAM方案(VSLAM也不夠穩(wěn)定)。
掃地機(jī)器人建立的2D地圖
2D拓?fù)涞貓D更強(qiáng)調(diào)地圖元素之間的連通關(guān)系,而對(duì)較精確的位置要求不高,去掉了大量地圖的細(xì)節(jié),是一種非常緊湊的地圖表達(dá)方式。如下所示:
2D拓?fù)涞貓D
3D點(diǎn)云地圖在VSLAM中用的比較多,主要用于真實(shí)場景的視覺重建,重建的地圖非常直觀漂亮。但是點(diǎn)云地圖通常規(guī)模很大,比如一張VGA分辨率(640 x 480)的點(diǎn)云圖像,就會(huì)產(chǎn)生30萬個(gè)空間點(diǎn),這會(huì)占據(jù)非常大的存儲(chǔ)空間,而且存在很多冗余信息。
3D點(diǎn)云地圖
總結(jié)
前面介紹了VSLAM的典型技術(shù)框架。我們可以看到,將SLAM算法拆解后,用到的技術(shù)多是傳統(tǒng)的計(jì)算機(jī)視覺算法,尤其是多視角幾何相關(guān)知識(shí)。與當(dāng)前大熱的深度學(xué)習(xí)“黑箱模型”不同,SLAM的各個(gè)環(huán)節(jié)基本都是白箱,能夠解釋得非常清楚。但SLAM算法并不是上述各種算法的簡單疊加,而是一個(gè)需要相互折中、密切配合的復(fù)雜系統(tǒng)工程。
歡迎加入本站公開興趣群
商業(yè)智能與數(shù)據(jù)分析群(QQ群:956787284,AI-人工智能交流群)
興趣范圍包括:各種讓數(shù)據(jù)產(chǎn)生價(jià)值的辦法,實(shí)際應(yīng)用案例分享與討論,分析工具,ETL工具,數(shù)據(jù)倉庫,數(shù)據(jù)挖掘工具,報(bào)表系統(tǒng)等全方位知識(shí)











