ORB-SLAM论文翻译
ORB-SLAM: a Versatile and Accurate Monocular SLAM System
原文發(fā)表于:IEEE Transactions on Robotics (Impact Factor: 2.43). 10/2015
摘要:
本文主要講了ORB-SLAM,一個基于特征識別的單目slam系統(tǒng),可以實時運行,適用于各種場合,室內(nèi)的或者室外的,大場景或小場景。系統(tǒng)具有很強的魯棒性,可以很好地處理劇烈運動圖像、可以有比較大的余地自由處理閉環(huán)控制、重定位、甚至全自動位置初始化。基于近年來的優(yōu)秀算法,我們對系統(tǒng)做了精簡,采用了所有SLAM相同功能:追蹤,地圖構(gòu)建,重定位和閉環(huán)控制。選用了比較適合的策略,地圖重構(gòu)的方法采用云點和關(guān)鍵幀技術(shù),具有很好的魯棒性,生成了精簡的、可追蹤的地圖,當場景的內(nèi)容改變時,地圖構(gòu)建可持續(xù)工作。我們用最流行的圖像數(shù)據(jù)集測試了27個圖像序列。相比最新的單目SLAM,ORB SLAM性能優(yōu)勢明顯。我們在網(wǎng)站上公布了源代碼。
一 ?簡介
由于比較強的匹配網(wǎng)絡(luò)和初始化位置估計,BA廣泛應(yīng)用于相機位置的準確估計和離散幾何重構(gòu)。在一段比較長的時間里,這種方法被認為不適合實時圖像系統(tǒng),比如vSLAM。vSLAM系統(tǒng)在構(gòu)建環(huán)境的同時需要估計相機的軌跡。基于現(xiàn)有的硬件設(shè)備,現(xiàn)在可以獲得比較好的計算結(jié)果,將BA應(yīng)用于實時SLAM系統(tǒng)中:
- 在候選圖像幀子集中(關(guān)鍵幀)匹配觀測的場景特征(地圖云點)。
- 由于關(guān)鍵幀數(shù)量的增長,需要做篩選避免冗余。
- 關(guān)鍵幀和云點的網(wǎng)絡(luò)配置可以產(chǎn)生精確的結(jié)果,也就是,分布良好的關(guān)鍵幀集合和有明顯視差、大量閉環(huán)匹配的觀測云點。
- 關(guān)鍵幀和云點位置的初始估計,采用非線性優(yōu)化的方法。
- 在構(gòu)建局部地圖的過程中,優(yōu)化的關(guān)鍵是獲得良好的穩(wěn)定性。
- 本系統(tǒng)可以實時執(zhí)行快速全局優(yōu)化(比如位置地圖)閉環(huán)回路。
B A出現(xiàn)于PTAM中,第一次實時應(yīng)用是視覺里程。盡管受制于小場景的應(yīng)用,這個算法對關(guān)鍵幀的選擇,特征匹配,云點三角化,每幀相機位置估計,追蹤失敗后的重定位非常有效。不幸的是幾個關(guān)鍵因素限制了它的應(yīng)用:缺少閉環(huán)控制和足夠的阻塞處理,較差的視圖不變特性和在形成地圖過程中需要人工干預(yù)。
為了完成這些工作,我們采用的技術(shù)來源于,PTAM、place recognization、scale-aware loop closing和大場景的視圖關(guān)聯(lián)信息。
單目ORB SLAM系統(tǒng)包含:
- 對所有的任務(wù)采用相同的特征,追蹤、地圖構(gòu)建、重定位和閉環(huán)控制。這使得我們的系統(tǒng)更有效率、簡單可靠。ORB特征,在沒有GPU的情況下可以應(yīng)用于實時圖像系統(tǒng)中,具有很好的旋轉(zhuǎn)不變特性。
- 可應(yīng)用于實時戶外環(huán)境操作。由于其視圖內(nèi)容關(guān)聯(lián)的特性,追蹤和地圖構(gòu)建可在局部視圖關(guān)聯(lián)中處理,這可以獨立于全局視圖進行工作。
- 基于位置優(yōu)化的實時閉環(huán)控制,我們稱作Essential Graph。它通過生成樹構(gòu)建,生成樹由系統(tǒng)、閉環(huán)控制鏈接和視圖內(nèi)容關(guān)聯(lián)強邊緣進行維護。
- 實時相機重定位具有明顯的旋轉(zhuǎn)不變特性。這就使得跟蹤丟失可以重做,地圖也可以重復(fù)使用。
- 選擇不同的模型可以創(chuàng)建不同的平面或者非平面的初始化地圖;自動的、具有良好魯棒性的初始化過程也是基于模型而選擇。
- 大量地圖云點和關(guān)鍵幀,需要經(jīng)過嚴格的挑選,必須找到一個最合適的辦法。好的挑選方法可以增強追蹤的魯棒性,同時去除冗余的關(guān)鍵幀以增強程序的可操作性。
我們在公共數(shù)據(jù)集上對程序在室內(nèi)和室外環(huán)境進行了評估,包括手持設(shè)備、汽車和機器人。相機的位置比現(xiàn)在最新的方法更精確,它通過像素擴展集進行優(yōu)化、而不是特征的重映射。我們還討論了提高基于特征的方法的準確性的原因。
閉環(huán)控制和重定位的方法是基于我們之前的工作論文11。系統(tǒng)最初的版本是論文12。本文中我們添加了初始化的方法,Essential graph 和其他方法。我們詳細了描述了系統(tǒng)的各個板塊,并且做了實驗進行驗證。就我們所知,這是目前最完整最可靠的單目SLAM系統(tǒng)。視頻演示和源代碼放在我們的項目網(wǎng)站上。
二? 相關(guān)工作
A.???? 位置識別
論文13比較幾種基于圖像處理技術(shù)的位置識別的方法,其中有圖像到圖像的匹配,在大環(huán)境下比地圖到地圖或圖像到地圖方法尺度特性更好。圖像方法中,詞袋模型的效率更高,比如基于概率論的FAB-MAP。由BRIEF特征描述子和FAST特征檢測產(chǎn)生的二進制詞袋可以用DBoW2獲得。與SURF和SIFT相比,它的特征提取運算時間減小一個數(shù)量級。盡管系統(tǒng)運行效率高、魯棒性好,采用BRIEF不具有旋轉(zhuǎn)不變性和尺度不變性,系統(tǒng)只能運行在平面軌跡中,閉環(huán)檢測也只能從相似的視角中獲得。在我們之前的工作中,我們用DBoW2生成了基于ORB的詞袋模型位置識別器。ORB是具有旋轉(zhuǎn)不變和尺度不變特性的二進制特征,它是一種高效的具有良好針對視圖不變的識別器。我們在4組不同的數(shù)據(jù)集上演示了位置識別功能,復(fù)用性好,魯棒性強,從10K圖像數(shù)據(jù)庫中提取一個候選閉合回路的運算時間少于39毫秒。在我們的工作中,我們提出了一種改進版本的位置識別方法,采用內(nèi)容相關(guān)的視圖,檢索數(shù)據(jù)庫時返回幾個前提而不是最好的匹配。
B.???? 地圖初始化
單目SLAM通過圖像序列生成初始化地圖,單一圖像并不能重建深度圖。解決這個問題的一種方法是一開始跟蹤一個已知的圖像結(jié)構(gòu)。在濾波方法中,用概率論方法從逆深度參數(shù)方法得到深度圖中,初始化地圖云點,與真實的位置信息融合。論文10中,采用類似的方法初始化像素的深度信息得到隨機數(shù)值。
通過兩個局部平面場景視圖進行初始化的方法,從兩個相關(guān)相機(視圖)位姿進行3D重構(gòu),相機的位姿關(guān)系用單映射表示,或者計算一個基本矩陣,通過5點算法構(gòu)建平面模型或者一般場景模型。兩種方法都不會受到低視差的約束,平面上的所有的點也不需要靠近相機中心。另外,非平面場景可以通過線性8點算法來計算基本矩陣,相機的位姿也可以重構(gòu)。
第四章詳細講述了一個全新的自動方法,它基于平面單映射或非平面的基本矩陣。模型選擇的統(tǒng)計方法如論文28詳細描述。基于相似變換理論,我們開發(fā)了初始化算法,選擇退化二次曲線例子中基本矩陣,或單映射矩陣。在平面例子中,為了程序穩(wěn)定性,如果選擇情況模糊不清,我們盡量避免做初始化,否則方案可能崩潰。我們會延遲初始化過程,直到所選的方案產(chǎn)生明顯的視差。
C.???? Monocular SLAM (單目SLAM)
Mono-SLAM可以通過濾波方案初始化。在這種方案,每一幀都通過濾波器估計地圖特征位置和相機位姿,將其關(guān)聯(lián)。處理連續(xù)的圖像幀需要進行大量運算,線性誤差會累積。由于地圖構(gòu)建并不依賴于幀率,基于關(guān)鍵幀的方法,用篩選的關(guān)鍵幀估計地圖,采用精確的BA優(yōu)化。論文31演示了基于關(guān)鍵幀的地圖方法比濾波器方法在相同的運算代價上更精確。
基于關(guān)鍵幀技術(shù)最具代表性的SLAM系統(tǒng)可能是PTAM。它第一次將相機追蹤和地圖構(gòu)建分開,并行計算,在小型場合,如增強現(xiàn)實領(lǐng)域非常成功。PTAM中的地圖云點通過圖像區(qū)塊與FAST角點匹配。云點適合追蹤但不適合位置識別。實際上,PTAM并不適合檢測大的閉合回路,重定位基于低分辨率的關(guān)鍵幀小圖像塊,對視圖不變性較差。
論文6展示了大場景的單目SLAM系統(tǒng),前端用GPU光流,用FAST特征匹配和運動BA;后端用滑動窗口BA。閉環(huán)檢測通過7自由度約束的相似變換位姿圖優(yōu)化,能夠校正單目系統(tǒng)中的尺度偏移。我們采用這種7自由度的位姿圖優(yōu)化方法,應(yīng)用到我們的Essential Graph方法中,如第三章D節(jié)里面詳細描述。
論文7用,PTAM的前端,通過內(nèi)容相關(guān)的視圖提取局部地圖執(zhí)行追蹤。他們使用兩個窗口優(yōu)化后端,在內(nèi)部窗口中采用BA,在外部一個限制大小的窗口做位姿圖。只有在外部窗口尺寸足夠大可以包含整個閉環(huán)回路的情況下,閉環(huán)控制才能起作用。我們采用了基于內(nèi)容相關(guān)的視圖構(gòu)建局部地圖的方法,并且通過內(nèi)容相關(guān)的視圖構(gòu)建位姿圖,同時用它們設(shè)計前端和后端。另一個區(qū)別是,我們并沒有用特別的特征提取方法做閉合回路檢測(比如SURF方法),而是在相同的追蹤和建圖的特征上進行位置識別,獲得具有魯棒性的重定位和閉環(huán)檢測。
論文33 提出了CD-SLAM方法,一個非常復(fù)雜的系統(tǒng),包括閉環(huán)控制,重定位,動態(tài)環(huán)境、大場景下運行。但它的地圖初始化并沒有講。所以沒法做精確性、魯棒性和大場景下的測試對比。
論文34的視覺里程計方法使用了ORB特征做追蹤,處理BA后端滑動窗口。相比之下,我們的方法更具一般性,他們沒有全局重定位,閉環(huán)回路控制,地圖也不能重用。他們使用了相機到地面的真實距離限制單目尺度漂移。
論文25與我們之前的工作論文12一樣,也采用的相同的特征做追蹤,地圖構(gòu)建和閉環(huán)檢測。由于選擇BRIEF,系統(tǒng)受限于平面軌跡。從上一幀追蹤云點,訪問過的地圖不能重用,與視覺里程計很像,因此系統(tǒng)不能擴展。我們在第三章E小節(jié)里面定性地做了比較。
論文10里的LSD-SLAM,可以構(gòu)建大場景的半稠密地圖,特征提取并沒有采用BA方法,而是直接方法(優(yōu)化也是直接通過圖像像素)。沒有用GPU加速,構(gòu)建了半稠密地圖,可以運行在實時應(yīng)用中,非常適合機器人應(yīng)用,比其他基于特征的稀疏地圖SLAM效果好。但它們?nèi)匀恍枰卣髯鲩]環(huán)檢測,相機定位的精度也明顯比PTAM和我們的系統(tǒng)慢,我們將在第8章B小節(jié)演示實驗結(jié)果。在IX章B小節(jié)進行討論。
論文22提出了介于直接方式和基于特征的方法之間的半直接視覺里程SVO方法。不需要每幀都提取特征點,可以運行在較高的幀率下,在四軸飛行器上效果很好。然而,沒有閉環(huán)檢測,而且只使用了視角向下的攝像頭。
最后,我們想討論關(guān)鍵幀的選擇。所有的的視覺SLAM用所有的云點和圖像幀運行BA是不可行的。論文31在保留了盡可能多地非冗余關(guān)鍵幀和云點,性價比較高。PTAM方法非常謹慎插入關(guān)鍵幀避免運算量增長過大。這種嚴格限制關(guān)鍵幀插入策略可能在未知地圖追蹤使失敗。比較好的策略是在不同的場景下快速插入關(guān)鍵幀,然后再移除那些冗余的圖像幀,避免額外的運算成本。
三? 系統(tǒng)架構(gòu)
A.???? 特征選擇
我們系統(tǒng)設(shè)計的中心思想是對這些功能采用相同的特征,構(gòu)建地圖、追蹤、位置識別、基于圖像幀率的重定位和閉環(huán)回路檢測。這使得我們的系統(tǒng)更有效率,沒有必要極化特征識別的深度圖,如論文6,7里討論的。我們每張圖像的特征提取遠少于33毫秒,SIFT(~300ms),SURF(~300ms),A-KAZE(~100ms)。為了獲得一般性的位置識別方法,我們需要特征提取的旋轉(zhuǎn)不變性,而BRIEF和LDB不具備這樣的特性。
我們選擇了我們選擇了ORB,它是旋轉(zhuǎn)多尺度FAST角點檢測,具有256位特征描述子。他們計算和匹配的速度非常快,同時對視角具有旋轉(zhuǎn)不變的特性。這樣可以在更寬的基準線上匹配他們,增強了BA的精度。我們已經(jīng)在論文11中演示了ORB位置識別的性能。本文的方案中也采用ORB。
B.???? 三個線程:追蹤、局部地圖構(gòu)建和閉環(huán)控制
我們的系統(tǒng)如圖一所示,整合了三個并行的線程:追蹤、局部地圖構(gòu)建和閉環(huán)回路控制。追蹤線程通過每幀圖像定位相機位置,決定什么時候插入一個新的關(guān)鍵幀。我們先通過前一幀圖像幀初始化特征匹配,采用運動B A優(yōu)化位姿。如果追蹤丟失,位置識別模塊執(zhí)行全局重定位。一旦獲得最初的相機位姿估計和特征匹配,通過內(nèi)容相似視圖的關(guān)鍵幀提取一個局部可視化地圖,如圖2a,b所示。然后進行映射搜索局部地圖云點的匹配,根據(jù)匹配優(yōu)化相機位姿。最后,追蹤線程決定是否插入新的關(guān)鍵幀。所有的追蹤步驟將在第5章詳細解釋。創(chuàng)建初始化地圖將在第4章進行說明。
局部地圖構(gòu)建處理新的關(guān)鍵幀,在相機位姿的環(huán)境中執(zhí)行局部BA優(yōu)化重構(gòu)。根據(jù)交互視圖中已經(jīng)連接的關(guān)鍵幀,搜索新關(guān)鍵幀中未匹配的ORB特征的對應(yīng)關(guān)系,來三角化新的云點。有時盡管已經(jīng)創(chuàng)建了新的云點,基于追蹤線程過程中新收集的信息,為了獲得高質(zhì)量的云點,根據(jù)云點篩選策略可能會臨時刪除一些點。局部地圖構(gòu)建也負責(zé)刪除冗余關(guān)鍵幀。我們將在第6章詳細說明局部地圖構(gòu)建的步驟。
對每個新的關(guān)鍵幀都要進行閉環(huán)搜索,以確認是否形成閉環(huán)。如果閉環(huán)被偵測到,我們就計算相似變換來查看閉環(huán)的累積誤差。這樣閉環(huán)的兩端就可以對齊,重復(fù)的云點就可以被融合。最后,相似約束的位姿圖優(yōu)化確保全局地圖一致性。本文主要通過關(guān)鍵圖像(Essential Graph)進行優(yōu)化,它是一個交互視圖中離散的子圖像,第三章D小節(jié)詳細描述。閉環(huán)檢測和校驗步驟將在第7章詳細描述。
我們使用g2o庫中的Levenverg-Marquardt算法執(zhí)行全局優(yōu)化。我們在附錄中描述了每個優(yōu)化的誤差,計算成本和變量。
A.???? 地圖云點、關(guān)鍵幀和選擇標準
每個地圖云點pi保存:
- 它在世界坐標系中的3D位置Xw,i
- 視圖方向ni,也就是所有視圖方向的平均單位向量(這個方向是以觀察關(guān)鍵幀的光學(xué)中心到云點的方向)
- ORB特征描述子Di,已經(jīng)觀測到云點的關(guān)鍵幀與它關(guān)聯(lián)的所有其他特征描述子相比,它漢明距離最小
- 根據(jù)ORB特征尺度不變性約束,可觀測的云點的最大距離dmax和最小距離dmin
每個關(guān)鍵幀Ki保存:
- 相機位姿Tiw,從世界坐標轉(zhuǎn)換成相機坐標
- 相機內(nèi)參,包括主點和焦點距離
- 所有從圖像幀提取的ORB特征,不管是否已經(jīng)關(guān)聯(lián)了地圖云點,云點的坐標經(jīng)過校準模型矯正過
地圖云點和關(guān)鍵幀通過多重策略創(chuàng)建,在稍后挑選機制上將檢測冗余的關(guān)鍵幀和錯誤匹配的云點或不可追蹤的地圖云點。系統(tǒng)在運行的過程中,地圖擴展的彈性就比較好,在比較惡劣的環(huán)境下(比如視圖旋轉(zhuǎn),快速移動)還是需要增強魯棒性,在同一環(huán)境的重復(fù)訪問情況下地圖的大小是有限的,可以控制的。另外,與PTAM相比,由于包含的云點比較少,我們的地圖包含的無效數(shù)據(jù)也更少一些。地圖云點和關(guān)鍵幀的篩選過程將在第6章B節(jié)和E節(jié)分別解釋。
B.???? 內(nèi)容關(guān)聯(lián)視圖和重要視圖
關(guān)鍵幀之間的視圖內(nèi)容相關(guān)信息在系統(tǒng)的幾個功能上都非常有用,如論文7所述,它表示了一個間接的權(quán)重圖像。每個節(jié)點都是一個關(guān)鍵幀,關(guān)鍵幀之間存在一個邊緣,幀上面可以觀察到相同的地圖云點(至少有15個),對于邊緣上相同的云點的數(shù)量我們賦予權(quán)重θ。
為了矯正閉環(huán)回路,我們像論文6那樣做位姿圖優(yōu)化,優(yōu)化方法將閉環(huán)回路的誤差分散到圖像里。為了排除內(nèi)容相關(guān)視圖的邊緣,可能非常密集,我們構(gòu)建了關(guān)鍵圖像(Essential Graph)保留所有的節(jié)點(關(guān)鍵幀),但是邊緣更少,這可以保持一個比較強的網(wǎng)絡(luò)以獲得精確的結(jié)果。系統(tǒng)增量式地構(gòu)建一個生成樹,從第一個關(guān)鍵幀開始,它連接了邊緣數(shù)量最少的內(nèi)容相關(guān)視圖的子圖像。當新的關(guān)鍵幀插入時,它加入樹中連接到老的關(guān)鍵幀上,新舊關(guān)鍵幀具有最多的相同的云點,但一個關(guān)鍵幀通過篩選策略刪除時,系統(tǒng)會根據(jù)關(guān)鍵幀所在的位置更新鏈接。關(guān)鍵圖像(Essential Graph)包含了一個生成樹,具有高視圖相關(guān)性(θmin=100)的相關(guān)視圖的邊緣子集,閉環(huán)回路邊緣產(chǎn)生一個相機的強網(wǎng)絡(luò)。圖2是一個相關(guān)視圖的例子,生成樹和關(guān)聯(lián)的關(guān)鍵圖像。第8章E節(jié)的實驗里,運行位姿圖優(yōu)化時,方案效果精確BA優(yōu)化幾乎沒有增強系統(tǒng)效果。關(guān)鍵圖像的效果和θmin的效果如第8章E節(jié)所示。
C.???? 基于圖像詞袋模型的位置識別
采用DBoW2,系統(tǒng)嵌入了圖像詞袋位置識別模塊,執(zhí)行閉環(huán)檢測和重定位。視覺單詞離散分布于特征描述子空間,視覺單詞組成視覺字典。視覺字典是離線創(chuàng)建的,用ORB特征描述子從大量圖像中提取。如果圖像都比較多,相同的視覺字典在不同的環(huán)境下也能獲得很好的性能,如論文11那樣。系統(tǒng)增量式地構(gòu)建一個數(shù)據(jù)庫,包括一個逆序指針,存儲每個視覺字典里的視覺單詞,關(guān)鍵幀可以通過視覺字典查看,所以檢索數(shù)據(jù)庫效率比較高。當關(guān)鍵幀通過篩選程序刪除時,數(shù)據(jù)庫也會更新。
關(guān)鍵幀在視圖上可能會存在重疊,檢索數(shù)據(jù)庫時,可能不止一個高分值的關(guān)鍵幀。DBoW2認為是圖像重疊的問題,就將時間上接近的所有圖像的分值相加。但這并沒有包括同一地點不同時間的關(guān)鍵幀。我們將這些與內(nèi)容相關(guān)視圖的關(guān)鍵幀進行分類。另外,我們的數(shù)據(jù)庫返回的是分值高于最好分值75%的所有關(guān)鍵幀。
詞袋模型表示的特征匹配的另外一個優(yōu)勢在論文5里詳細介紹。如果我們想計算兩個ORB特征的對應(yīng)關(guān)系,我們可以通過暴力匹配視覺字典樹上某一層(6層里面選第2層)的相同節(jié)點(關(guān)鍵幀)里的特征,這可以加快搜索。在閉環(huán)回路檢測和重定位中,我們通過這個方法搜索匹配用作三角化新的云點。我們還通過方向一致性測試改進對應(yīng)關(guān)系,具體如論文11,這可以去掉無效數(shù)據(jù),保證所有對應(yīng)關(guān)系的內(nèi)在方向性。
四全自動地圖初始化
地圖初始化的目的是計算兩幀之間的相關(guān)位姿來三角化一組初始地圖云點。這個方法與場景圖像不相關(guān)(平面的或一般的)而且不需要人工干預(yù)去選擇一個好的兩個視圖對應(yīng)關(guān)系,比如具有明顯視差。我們建議并行計算兩個幾何模型,平面視圖的單映射和非平面視圖的基本矩陣。我們用啟發(fā)式的方法選擇模型,并從相關(guān)位姿中進行重構(gòu)。當個視圖之間的關(guān)系比較確定時,我們才發(fā)揮作用,檢測低視差的情況或已知兩部分平面模糊的情況(如論文27所示),避免生成一個有缺陷的地圖。這個算法的步驟是:
- 查找最初的對應(yīng)關(guān)系:
從當前幀F(xiàn)c提取ORB特征(只在最好的尺度上),與參考幀F(xiàn)r搜索匹配Xc<-->Xr。如果找不到足夠的匹配,就重置參考幀。
- 并行計算兩個模型:
在兩個線程上并行計算單映射Hcr和基本矩陣Fcr:
Xc=HcrXr???????????????????????????????? XcTFcrXr=0 ??????????????????????????? (1)
在《多視圖幾何》里詳細解釋了分別使用歸一化直接線性變換DLT和8點算法計算原理,通過RANSAC計算。為了使兩個模型的計算流程盡量一樣,將兩個模型的迭代循環(huán)次數(shù)預(yù)先設(shè)置成一樣,每次迭代的云點也一樣,8個基本矩陣,4個單映射。每次迭代我們給每一個模型M(H表示單映射,F表示基本矩陣)計算一個數(shù)值SM:
其中,dcr2和drc2是幀和幀之間對稱的傳遞誤差。TM是無效數(shù)據(jù)的排除閾值,它的依據(jù)是X2的95%(TH=5.99, TF=3.84,假設(shè)在測量誤差上有1個像素的標準偏差)。τ等于TH,兩個模型在有效數(shù)據(jù)上對于同一誤差d的分值相同,同樣使得運算流程保持一致。
單映射和基本矩陣的分值最高。如果沒有足夠的有效數(shù)據(jù),模型沒有找到,算法流程重啟,從第一步開始重新尋找。
- 模型的選擇:
如果場景是平面的,靠近平面有一個低視差,可以通過單映射來描述。同樣地,我們也可以找到一個基本矩陣,但問題不能很好地約束表示,從基本矩陣重構(gòu)運動場景可能會導(dǎo)致錯誤的結(jié)果。我們應(yīng)該選擇單映射作為重構(gòu)的方法,它可以從二維圖像正確初始化或者檢測到的低視差的情況而不進行初始化工作。另外一方面,非平面場景有足夠的視差可以通過基本矩陣來表示,但單映射可以用來表示二維平面或者低視差的匹配子集。在這種情況下我們應(yīng)該選擇基本矩陣。我們用如下公式進行計算:
如果RH>0.45 , 這表示二維平面和低視差的情況。其他的情況,我們選擇基本矩陣。
- 運動和運動結(jié)構(gòu)重構(gòu)
一旦選擇好模型,我們就可以獲得運動狀態(tài)。在單映射的例子中,我們通過論文23的方法,提取8種運動假設(shè)。這個方法通過測試選擇有效的方案。如果在低視差的情況下,云點跑到相機的前面或后面,測試就會出現(xiàn)錯誤從而選擇一個錯的方案。我們建議直接三角化8種方案,檢查兩個相機前面具有較少的重投影誤差情況下,在視圖低視差情況下是否大部分云點都可以看到。如果沒有一個明確的方案勝出,我們就不執(zhí)行初始化,重新從第一步開始。這種方法就提供了一個清晰的方案,在低視差和兩個交叉的視圖情況下,初始化程序更具魯棒性,這是我們方案魯棒性的關(guān)鍵所在。在基本矩陣的情況下,我們用校準矩陣和本證矩陣進行轉(zhuǎn)換:我們通過論文2中的單值分解方法提取四種運動假設(shè)。針對單映射,我們?nèi)腔姆N方案進行重構(gòu)。
- 捆集調(diào)整
最后我們執(zhí)行一個全局捆集調(diào)整,如附錄所示,用來優(yōu)化初始化重構(gòu)。
圖3所示的論文39,室外環(huán)境下初始化工作具有很大挑戰(zhàn)。PTAM和LSD-SLAM初始化二維平面所有云點,我們的方法是有足夠視差才進行初始化,從基本矩陣正確地初始化。
五追蹤
這章我們詳細介紹追蹤線程通過相機圖像每一幀執(zhí)行的具體步驟。相機的位置優(yōu)化,如前幾步提到的,由局部捆集調(diào)整構(gòu)成,如附錄中詳細描述。
A.???? ORB特征提取
我們在8層圖像金字塔,提取FAST角點,尺度因子為1.2。如果圖像分辨率從512*384到752*480,我們發(fā)現(xiàn)提取1000個角點比較合適,如果分辨率提高,如KITTI數(shù)據(jù)集,論文40,我們提取2000個角點。為了確保單映射分布,我們將每層分成網(wǎng)格,每格提取至少5個角點。檢測每格角點的時候,如果角點數(shù)量不夠,就提高閾值。角點的數(shù)量根據(jù)單元格變化,即使單元格檢測不出角點(沒有紋理或?qū)Ρ榷鹊偷那闆r)。再根據(jù)保留FAST的角點計算方向和ORB特征描述子。ORB特征描述子用于所有的特征匹配,而不是像P T A M那樣根據(jù)圖像區(qū)塊關(guān)聯(lián)性進行搜索。
B.???? 前一圖像幀作初始位姿估計
如果上一幀的追蹤成功,我們就用同樣的速率運動模型計算相機位置,搜索上一幀觀測到的地圖云點。如果沒有找到足夠的匹配(比如,運動模型失效),我們就加大搜索范圍搜索上一幀地圖云點附近的點。通過尋找到的對應(yīng)關(guān)系優(yōu)化相機位姿。
C.???? 初始化位姿估計與全局重定位
如果跟蹤丟失,我們把當前幀轉(zhuǎn)換成圖像詞袋,檢索圖像數(shù)據(jù)庫,為全局重定位查找關(guān)鍵幀。我們計算ORB特征和每個關(guān)鍵幀的地圖云點的對應(yīng)關(guān)系,如第三章E節(jié)描述。接著,我們對每個關(guān)鍵幀執(zhí)行RANSAC迭代計算,用PnP算法找出相機位置。如果通過足夠的有效數(shù)據(jù)找到相機位姿,我們優(yōu)化它的位姿,搜索候選關(guān)鍵幀的地圖云點的更多的匹配。最后,相機位置被進一步優(yōu)化,如果有足夠的有效數(shù)據(jù),跟蹤程序?qū)⒊掷m(xù)執(zhí)行。
D.??? 局部地圖追蹤
一旦我們獲得了相機位姿和一組初始特征匹配的估計,我們可以將地圖和圖像幀對應(yīng)起來,搜索更多地圖云點的對應(yīng)關(guān)系。為了減少大地圖的復(fù)雜性,我們只映射局部地圖。局部地圖包含一組關(guān)鍵幀K1,它們和當前關(guān)鍵幀有相同的地圖云點,與相鄰的關(guān)鍵幀組K2圖像內(nèi)容相關(guān)。局部地圖有一個參考關(guān)鍵幀Kref∈K1,它與當前幀具有最多相同的地圖云點。針對K1, K2可見的每個地圖云點,我們通過如下步驟,在當前幀中進行搜索:
- 計算當前幀中的地圖云點映射集x。如果位于圖像邊緣外面的點,就丟掉。
- 計算當前視圖射線v和地圖云點平均視圖方向n的夾角。如果n< cos(60o),就丟掉。
- 計算地圖云點到相機中心的距離d。如果它不在地圖云點的尺度不變區(qū)間,即d?[dmin,dmax],就丟掉。
- 計算每幀圖像的尺度因子,比值為d/dmin。
- 對比地圖云點的特征描述子D和當前幀中還未匹配的ORB特征,在尺度因子,和靠近x的云點作最優(yōu)匹配。
相機位姿最后通過當前幀中獲得所有的地圖云點進行優(yōu)化。
E.????? 新關(guān)鍵幀的判斷標準
最后一步是決定當前幀是否可以作為關(guān)鍵幀。局部地圖構(gòu)建的過程中有一個機制去篩選冗余的關(guān)鍵幀,我們盡可能快地插入關(guān)鍵幀,這可以使跟蹤線程對相機的運動更具魯棒性,尤其是旋轉(zhuǎn)。我們根據(jù)以下要求插入新的關(guān)鍵幀:
- 每次全局重定位過程需要超過20個圖像幀。
- 局部地圖構(gòu)建處于空閑狀態(tài),或者上一個關(guān)鍵幀插入時,已經(jīng)有超過20個關(guān)鍵幀。
- 當前幀跟蹤至少50個地圖云點。
- 當前幀跟蹤少于參考關(guān)鍵幀云點的90%。
與PTAM中用關(guān)鍵幀的距離作為判斷標準不同,我們加入一個最小的視圖變換,如條件4要求。條件1 確保一個好的重定位,條件3保證好的跟蹤。當局部地圖構(gòu)建處于忙狀態(tài)(條件2的后半部分)的同時插入關(guān)鍵幀的時候,就會發(fā)信號去暫停局部捆集調(diào)整,這樣就可以盡可能快地去處理新的關(guān)鍵幀。
六局部地圖構(gòu)建
這章我們將描述根據(jù)每個新的關(guān)鍵幀Ki構(gòu)建局部地圖的步驟。
A.關(guān)鍵幀插入
我們先更新內(nèi)容相關(guān)的視圖,添加節(jié)點Ki,更新關(guān)鍵幀間具有相同地圖云點產(chǎn)生的邊緣。我們還要更新生成樹上Ki和其他關(guān)鍵幀的鏈接。然后,計算表示關(guān)鍵幀的詞袋,用于數(shù)據(jù)關(guān)聯(lián)來三角化新的云點。
B.地圖云點篩選
保留在地圖里的地圖云點,在最初創(chuàng)建的3個關(guān)鍵幀上,需要經(jīng)過嚴格的檢測,保證它們可以被跟蹤,不會由于錯誤的數(shù)據(jù)被錯誤地被三角化。一個云點必須滿足如下條件:
- 跟蹤線程必須要找到超過25%的關(guān)鍵幀。
- 如果超過一個關(guān)鍵幀完成地圖云點創(chuàng)建過程,它必須至少是能夠被其他3個關(guān)鍵幀可被觀測到。
一旦一個地圖云點通過測試,它只能在被少于3個關(guān)鍵幀觀測到的情況下移除。在局部捆集調(diào)整刪除無效觀測數(shù)據(jù)的情況下,關(guān)鍵幀才能被篩除掉。這個策略使得我們的地圖包含很少的無效數(shù)據(jù)。
C.新地圖云點標準
在內(nèi)容相關(guān)的視圖Kc之間三角化ORB特征向量,可以創(chuàng)建新的地圖云點。對Ki中每個未匹配的ORB特征,和其他關(guān)鍵幀中沒有匹配的云點,我們查找一個匹配。這個匹配過程在第三章E節(jié)詳細解釋,丟掉那些不滿足極對約束的匹配。ORB特征對三角化后,將要獲得新的云點,這時要檢查兩個相機視圖的景深,視差,重映射誤差,和尺度一致性。起初,一個地圖云點通過2個關(guān)鍵幀進行觀測,但它卻是和其他關(guān)鍵幀匹配,所以它可以映射到其他相連的關(guān)鍵幀,按照第5章D節(jié)的方法搜索對應(yīng)關(guān)系。
A.???? 局部捆集調(diào)整
局部捆集調(diào)整優(yōu)化當前處理的關(guān)鍵幀Ki, 在交互視圖集Kc中所有連接到它的關(guān)鍵幀,和所有被這些關(guān)鍵幀觀測到的地圖云點。所有其他能夠觀測到這些云點的關(guān)鍵幀但沒有連接到當前處理的關(guān)鍵幀的這些關(guān)鍵幀會被保留在優(yōu)化線程中,但會被修復(fù)。被標記為無效數(shù)據(jù)的觀測將在優(yōu)化中間階段和最后階段被丟棄。附錄有詳細的優(yōu)化細節(jié)。
B.???? 局部關(guān)鍵幀篩選
為了使重構(gòu)保持簡潔,局部地圖構(gòu)建盡量檢測冗余的關(guān)鍵幀,刪除它們。這會大有幫助,隨著關(guān)鍵幀數(shù)量的增加,捆集調(diào)整的復(fù)雜度增加,但關(guān)鍵幀的數(shù)量也不會無限制地增加,因為它要在同一環(huán)境下在整個運行執(zhí)行操作,除非場景內(nèi)容發(fā)生變化。我們會刪除Kc中所有90%的地圖云點可以至少被其他3個關(guān)鍵幀在同一或更好的尺度上觀測到的關(guān)鍵幀。
七閉環(huán)控制
閉環(huán)控制線程獲取Ki,上一個局部地圖構(gòu)建的關(guān)鍵幀,用于檢測和閉合回環(huán)。具體步驟如下所示:
A.??????? 候選回環(huán)檢測
我們先計算Ki的詞袋向量和它在視圖內(nèi)容相關(guān)的所有鄰近圖像(θmin=30)中計算相似度,保留最低分值Smin。然后,我們檢索圖像識別數(shù)據(jù)庫,丟掉那些分值低于Smin的關(guān)鍵幀。這和DBoW2中均值化分值的操作類似,可以獲得好的魯棒性,它計算的是前一幀圖像,而我們是使用的內(nèi)容相關(guān)信息。另外,所有連接到Ki的關(guān)鍵幀都會從結(jié)果中刪除。為了獲得候選回環(huán),我們必須檢測3個一致的候選回環(huán)(內(nèi)容相關(guān)圖像中的關(guān)鍵幀)。如果對Ki來說環(huán)境樣子都差不多,就可能有幾個候選回環(huán)。
B.??????? 計算相似變換
單目SLAM系統(tǒng)有7個自由度,3個平移,3個旋轉(zhuǎn),1個尺度因子,如論文6。因此,閉合回環(huán),我們需要計算從當前關(guān)鍵幀Ki到回環(huán)關(guān)鍵幀Kl的相似變換,以獲得回環(huán)的累積誤差。計算相似變換也可以作為回環(huán)的幾何驗證。
我們先計算ORB特征關(guān)聯(lián)的當前關(guān)鍵幀的地圖云點和回環(huán)候選關(guān)鍵幀的對應(yīng)關(guān)系,具體步驟如第3章E節(jié)所示。此時,對每個候選回環(huán),我們有了一個3D到3D的對應(yīng)關(guān)系。我們對每個候選回環(huán)執(zhí)行RANSAC迭代,通過Horn方法(如論文42)找到相似變換。如果我們用足夠的有效數(shù)據(jù)找到相似變換Sil,我們就可以優(yōu)化它,并搜索更多的對應(yīng)關(guān)系。如果Sil有足夠的有效數(shù)據(jù),我們再優(yōu)化它,直到Kl回環(huán)被接受。
C.?????? 回環(huán)融合
回環(huán)矯正的第一步是融合重復(fù)的地圖云點,插入與回環(huán)閉合相關(guān)的相似視圖的新邊緣。先通過相似變換Sil矯正當前關(guān)鍵幀位姿Tiw,這種矯正方法應(yīng)用于所有Ki相鄰的關(guān)鍵幀,執(zhí)行相似變換,這樣回環(huán)兩端就可以對齊。回環(huán)關(guān)鍵幀所有的地圖云點和它的近鄰映射到Ki,通過映射在較小的區(qū)域內(nèi)搜索它的近鄰和匹配,如第5章D節(jié)所述。所有匹配的地圖云點和計算Sil過程中的有效數(shù)據(jù)進行融合。融合過程中所有的關(guān)鍵幀將會更新它們的邊緣,這些視圖內(nèi)容相關(guān)的圖像創(chuàng)建的邊緣用于回環(huán)控制。
D.????? 本征圖像優(yōu)化
為了有效地閉合回環(huán),我們通過本征矩陣優(yōu)化位姿圖,如第三章D節(jié)所示,這樣可以將回環(huán)閉合的誤差分散到圖像中去。優(yōu)化程序通過相似變換校正尺度偏移,如論文6。誤差和成本計算如附錄所示。優(yōu)化過后,每一個地圖云點都根據(jù)關(guān)鍵幀的校正進行變換。
八實驗
我們對實驗進行了系統(tǒng)的評估,用Newcollege大場景機器圖像序列,評估整個系統(tǒng)性能;用TUM RGB-D的16個手持式室內(nèi)圖像序列,評估定位精度,重定位和程序運行能力;用KITTI的10個汽車戶外圖像數(shù)據(jù)集,評估實時大場景操作,定位精度和位姿圖優(yōu)化效率。
我們的電腦配置為Intel Core i7-4700MQ (4核@2.40GHz)和8GB RAM,用于實時處理圖像。ORB-SLAM有3個主線程,它和其他ROS線程并行處理。
A.???? Newcollege
Newcollege是一個2.2公里的校園和相鄰的公園的機器人圖像序列。它是雙目相機,幀率20fps,分辨率512x38。它包含幾個回環(huán)和快速的旋轉(zhuǎn),這對單目視覺非常具有挑戰(zhàn)性。據(jù)我們所知,沒有單目系統(tǒng)可以處理整個圖像序列。例如論文7,可以形成回環(huán),也可以應(yīng)用于大場景環(huán)境,但對單目結(jié)果只能顯示序列的一小部分。
圖4顯示的回環(huán)閉合線程通過有效數(shù)據(jù)支持相似變換。圖5對比了回環(huán)閉合前后的重構(gòu)狀況。紅色是局部地圖,回環(huán)閉合延伸回環(huán)的兩端后的狀況。圖6是實時幀率狀態(tài)下處理圖像序列的整個地圖。后邊的大回環(huán)并沒有完全閉合,它從另外一個方向穿過,位置識別程序沒能發(fā)現(xiàn)閉合回環(huán)。
我們統(tǒng)計了每個線程所用時間。表1顯示了追蹤和局部地圖構(gòu)建所用的時間。跟蹤的幀率大概在25-30Hz,在做局部地圖跟蹤時的要求最高。如有必要,這個時間可以減少,需要限制局部地圖關(guān)鍵幀的數(shù)量。局部地圖構(gòu)建線程中要求最高的是局部捆集調(diào)整。局部捆集調(diào)整的時間根據(jù)機器人的狀態(tài)變動,向未知環(huán)境運動或在一個已經(jīng)建好地圖的區(qū)域運動是不同的,因為在未知環(huán)境中如果跟蹤線程插入一個新的關(guān)鍵幀,捆集調(diào)整會被中斷,如第5章E節(jié)所示。如果不需要插入新的關(guān)鍵幀,局部捆集調(diào)整會執(zhí)行大量已經(jīng)設(shè)置的迭代程序。
表2顯示了6個閉合回路的結(jié)果。可以看到回環(huán)檢測是如何亞線性地增加關(guān)鍵幀的數(shù)量。主要是由于檢索數(shù)據(jù)庫的效率高,它值比較了具有相同圖像單詞的圖像子集,由此可見用于位置識別的詞袋模型的作用。我們的本征圖像包含的邊緣是關(guān)鍵幀數(shù)量的5倍,它是一個稀疏圖。
B.???? TUM RGB-D定位精度對比
論文38里,評測的TUM RGB-D數(shù)據(jù)集,用于評估相機定位精度,它通過外部運動捕捉系統(tǒng)提供了具有精確基準的幾個圖像序列。我們?nèi)サ裟切┎贿m合純單目SLAM系統(tǒng)的圖像序列,這些序列包含強烈的旋轉(zhuǎn),沒有紋理或沒有運動。
為了方便比較,我們還運行了直接的半稠密LSD-SLAM(論文10)和PTAM(論文4)作為對比。我們還比較了RGBD-SLAM(論文43)軌跡作為對比。為了在相同的基準下比較ORB-SLAM,LSD-SLAM和PTAM,我們用相似變換對齊關(guān)鍵幀軌跡,在尺度未知的情況下,檢測軌跡的絕對誤差(論文38)。對RGBD-SLAM我們通過相機坐標變換對齊軌跡,同樣的方法檢測尺度是否覆蓋良好。LSD-SLAM從隨機深度值進行初始化,執(zhí)行聚類,因此與基準對比的時候,我們會丟掉前10個關(guān)鍵幀。對于PTAM,我們從一個好的初始化中,手動選擇兩個關(guān)鍵幀。表3 是對16個圖像序列運行5次的中等結(jié)果。
ORB-SLAM可以運行所有的圖像序列,除了fr3 nostructure texture far (fr3 nstr tex far)以外。這是一個平面的場景,相機的軌跡可能有兩種解釋,比如論文20中的描述。我們的初始化方法檢測到模糊的視圖,為了安全而不進行初始化。PTAM初始化有時會選擇對的方案,有些可能會選擇錯的方案,但導(dǎo)致的錯誤可能不能接受。我們沒有注意到LSD-SLAM的2種不同的重構(gòu)方案,但在這個圖像序列出現(xiàn)的錯誤非常多。其他的圖像序列,PTAM和LSD-SLAM的魯棒性比我們的方法差,容易跟蹤丟失。
關(guān)于精度問題,ORB-SLAM和PTAM非常相似,ORB-SLAM在圖像序列fr3 nostructure texture near withloop (fr3 nstr tex near)中檢測大的閉環(huán)時,可以獲得更高精度。非常意外的一個結(jié)果是PTAM和ORB-SLAM都非常明顯地表現(xiàn)出精度高于LSD-SLAM和RGBD-SLAM。一個可能的原因是它們沒有用傳感器的測量優(yōu)化位姿圖從而減少了對地圖的優(yōu)化,但我們采用捆集調(diào)整,同時通過傳感器測量優(yōu)化相機和地圖,通過運動結(jié)構(gòu)的經(jīng)典算法來解決傳感器測量,如論文2所示。我們在第9章B節(jié)進一步討論了這個結(jié)果。另一個有趣的結(jié)果是在圖像序列fr2 desk with person?和?fr3 walking xyz中,LSD-SLAM對動態(tài)物體的魯棒性相比ORB-SLAM差一些。
我們注意到RGBD-SLAM在圖像序列fr2上尺度上有偏差,可以用7個自由度對齊軌跡明顯減少誤差。最后我們注意到論文10提到在f2_xyz上PTAM的精度比LSD-SLAM低,RMSE是24.28cm。然而,論文沒有給出足夠的細節(jié)說明如何獲得這些結(jié)果的,我們沒有辦法復(fù)現(xiàn)它。
? ?TUM RGB-D重定位性能比較
我們在TUM RGB-D數(shù)據(jù)集上進行了重定位性能的對比實驗。在第一個實驗中,我們通過fr2_xyz的前30秒構(gòu)建了一個地圖,執(zhí)行了全局重定位,評估了位姿精度。對PTAM進行了相同的實驗。圖7是創(chuàng)建初始地圖的關(guān)鍵幀,重定位的圖像幀位姿和這些幀的基準。可以看出PTAM由于重定位方法較少的不變性而只重定位關(guān)鍵幀附件的圖像幀。表4顯示了相對基準的調(diào)用和誤差。ORB-SLAM比PTAM可以更精準地多定位2倍的圖像幀。在第2個實驗中,我們采用fr3_sitting_xyz初始化地圖,從fr3_walking_xyz重定位所有的圖像幀。這是一個頗具挑戰(zhàn)性的實驗,由于圖像中有人移動造成了阻塞。這里,PTAM并沒有重定位,而ORB-SLAM重定位78%的圖像幀,如表4所示。圖8顯示了ORB-SLAM重定位的一些挑戰(zhàn)。
D.???? TUM RGB-D系統(tǒng)運行實驗對比
之前的重定位實驗表明我們的系統(tǒng)可以從不同的視角定位地圖,在中等動態(tài)環(huán)境中的魯棒性也較好。這個特性和關(guān)鍵幀篩選程序可以在不同的視角和局部動態(tài)環(huán)境中一直運行到程序結(jié)束。
在全靜態(tài)場景情況下,即使相機從不同視角觀測場景,ORB-SLAM也可以使關(guān)鍵幀數(shù)量保持在一個有限的水平內(nèi)。我們演示了一個圖像序列,相機93秒以內(nèi)都在拍攝同一張桌子,但視角一直變換,形成一個軌跡。我們對比了我們地圖的關(guān)鍵幀數(shù)量和PTAM生成的關(guān)鍵幀,如圖9所示。可以看到PTAM一直插入關(guān)鍵幀,ORB-SLAM會刪除冗余的關(guān)鍵幀。
然,在整個程序運行過程中,靜態(tài)環(huán)境下的正常操作是任何SLAM系統(tǒng)的一個基本要求,更引人注意的是動態(tài)環(huán)境下的狀況。我們在幾個fr3的圖像序列中分析了ORB-SLAM系統(tǒng)的狀況,圖像序列有:sitting xyz, sitting halfsphere, sitting rpy, walking xyz, walking halfspehere?和walking rpy。所有的視頻中,相機都對著桌子,但運動軌跡不同,有人在移動,椅子也被移動了。圖10(a)是地圖中所有關(guān)鍵幀的總數(shù)量,圖10(b)顯示從圖像幀中創(chuàng)建或刪除關(guān)鍵幀,從關(guān)鍵幀到地圖構(gòu)建需要多久時間。可以看到前2個圖像序列中新看到(增加)場景時地圖的大小一直在增加。圖10(b)是前2個視頻中創(chuàng)建的關(guān)鍵幀。在視頻sitting_rpy和walking_xyz中,地圖沒有增加,地圖是通過已有場景創(chuàng)建。相反,在最后兩個視頻中,有更多的關(guān)鍵幀插入但沒有在場景中表示出來,可能由于場景的動態(tài)變化。圖10(C)關(guān)鍵幀的柱狀圖,它們是從視頻中挑選出來的。大部分的關(guān)鍵幀被篩選程序刪除了,只有一小部分留下來了。ORB-SLAM有大量關(guān)鍵幀的生成策略,在未知環(huán)境下非常有用;后面系統(tǒng)會生成一個小的子集來代表這些關(guān)鍵幀。
在整個實驗中,我們系統(tǒng)的地圖根據(jù)場景上內(nèi)容來增加,而不是根據(jù)時間,它可以存儲場景的動態(tài)變化,對場景的理解非常有用。
E.???? KITTI大場景大回環(huán)行性能對比
里程計通過KITTI數(shù)據(jù)集的11個視頻對比,它是在住宅區(qū)駕駛汽車,基準精度非常高,有一個GPS和一個Velodyne Laser Scanner。對單目系統(tǒng)非常有調(diào)整性,它里面有快速旋轉(zhuǎn),區(qū)域內(nèi)有大量樹葉,這使數(shù)據(jù)關(guān)聯(lián)變得更困難,車速比較快,視頻的幀率只有10fps。除了視頻01外,ORB-SLAM可以處理其他所有的視頻,01是高速路上的視頻,可追蹤的物體非常少。視頻00,02,05,06,07,09,有閉環(huán)回路,系統(tǒng)可以檢測到,并使它閉合。視頻09的閉環(huán)只能在視頻的最后幾個圖像幀里檢測到,并不是每次都能成功檢測到。
于軌跡和基準的定性比較如圖11和12所示。在TUMRGB-D對比中,我們可以通過相似變換對齊軌跡的關(guān)鍵幀和基準。圖11是定性比較的結(jié)果,圖12是論文25中的最新單目SLAM在視頻00,05,06,07和08上執(zhí)行的結(jié)果。除了08有一些偏移以外,ORB-SLAM在這些視頻上的軌跡都很精準。
轉(zhuǎn)存失敗重新上傳取消表5顯示了每個視頻的關(guān)鍵幀軌跡的中等RMSE誤差。我們基于地圖尺寸提供了軌跡的誤差。結(jié)果表明我們的軌跡誤差吃地圖尺寸的1%左右。大致范圍低的是視頻03的0.3%高的是視頻08的5%。視頻08中沒有閉環(huán),漂移也沒辦法糾正,因為閉環(huán)控制需要獲得更精確的重構(gòu)。
我們還確認了全局捆集調(diào)整的20層迭代如何增強地圖重構(gòu),在每個視頻的最后,細節(jié)如附錄所示。我們還注意到全局捆集調(diào)整可以稍微增加閉環(huán)軌跡的精度,但這對開環(huán)軌跡有負面影響,這意味著我們的系統(tǒng)已經(jīng)非常精確了。在有些應(yīng)用中,如果需要非常精確的結(jié)果我們的算法會提供一組匹配,需要定義一個比較強的相機網(wǎng)絡(luò),一個初始估計,這樣全局捆集調(diào)整迭代次數(shù)就會變少。
最后講一下閉環(huán)控制和用于本征圖像的邊緣的θmin的效率。視頻09是個閉環(huán),時間長。我們評估的不同的閉環(huán)策略。表6是關(guān)鍵幀軌跡RMSE和不同情況下沒有閉環(huán)控制優(yōu)化所用的時間,如果直接采用全局捆集調(diào)整(20層或100層迭代),如果只用位姿圖優(yōu)化(10層迭代不同數(shù)量的邊緣),如果先用位姿圖優(yōu)化再執(zhí)行全局捆集調(diào)整。結(jié)果表明,在閉環(huán)控制之前,方案就比較糟糕,以至于捆集調(diào)整會有融合問題。100層迭代后誤差就非常大。本征圖像優(yōu)化融合速度更快,結(jié)果也更精確。θmin對精度影響并不大,減少邊緣的數(shù)量會明顯降低精度。位姿圖優(yōu)化后再執(zhí)行一個捆集調(diào)整可以增加精度,但時間也增加了。
九結(jié)論和討論
A.???? 結(jié)論
通過實驗,我們的系統(tǒng)可以應(yīng)用于室內(nèi)和室外場景,用在汽車、機器人和手持設(shè)備上。室內(nèi)小場景的精度在1厘米,室外大場景的應(yīng)用是幾個厘米。
PTAM被認為是目前最精準的單目SLAM。根據(jù)離線運動結(jié)構(gòu)問題,PTAM后端捆集調(diào)整不能同時加載。PTAM的主要貢獻是給機器人SLAM的研究帶來了新的技術(shù),具有良好的實時性。我們的主要貢獻是擴張了PTAM對于應(yīng)用環(huán)境的多樣性和對系統(tǒng)的交互性。因此,我們挑選了新的方法和算法,整合了前人優(yōu)秀的地方,如論文5的閉環(huán)檢測,論文6,7的閉環(huán)控制程序和內(nèi)容關(guān)聯(lián)視圖,論文37的g2o優(yōu)化框架,論文9的ORB特征。目前所知,我們的精度最高,是最可靠最完整的單目SLAM系統(tǒng)。我們的生成和挑選關(guān)鍵幀策略可以創(chuàng)建較少的關(guān)鍵幀。彈性的地圖探測在條件較差的軌跡上非常有用,比如旋轉(zhuǎn)和快速移動。在相同場景的情況下,地圖在只有新內(nèi)容的情況下才會增長,保存了不同的視圖外觀。
最后,ORB特征可識別劇烈的視角變換的位置。也可以快速提取特征和匹配特征,使得實時追蹤和地圖構(gòu)建更精確。
B.???? 基于離散/特征方法與稠密/直接方法對比
論文44的DTAM和論文10的LSD-SLAM可以進行環(huán)境的稠密或半稠密重構(gòu),相機位姿可以通過圖像像素的亮度直接優(yōu)化。直接方法不需要特征提取,可以避免人工匹配。他們對圖像模糊,低紋理環(huán)境和論文45的高頻紋理的魯棒性更好。稠密的重構(gòu),對比稀疏的地圖云點,比如ORB-SLAM或PTAM,對相機定位更有效。
然而,直接方法有他們自己的局限。首先,這些方法采用一個表面反饋模型。光電描記法的一致性要求限制了匹配的基準,這要比其他特征窄得多。這對重構(gòu)的精度影響很大,需要更寬的觀測減少深度的不確定。直接方法,如果準確的建模,可能會受到快門,自動增益和自動曝光的影響(如TUM RGB-D 的對比測試)。最后,由于直接方法計算要求較高,像DTAM中地圖增量式地擴張,或像LSD-SLAM丟掉傳感器測量,根據(jù)位姿圖優(yōu)化地圖。
相反,基于特征的方法可以在更寬的基準上匹配特征,主要得益于其較好地視圖不變特性。捆集調(diào)整和相機位姿優(yōu)化,地圖云點通過傳感器測量進行融合。在運動結(jié)構(gòu)估計中,論文46已經(jīng)指出了基于特征的方法相比直接方法的優(yōu)勢。在我們的實驗中,直接提供了證據(jù),第8章B節(jié),表明精度更高。未來單目SLAM應(yīng)該會整合兩種最好的方法。
C.???? 后續(xù)工作
系統(tǒng)精度可以進一步增強。這些云點,如果沒有足夠的視差是不放入地圖中的,但對相機的旋轉(zhuǎn)非常有用。
另外一種方法是將稀疏地圖更新到稠密地圖,重構(gòu)更有作用。由于我們關(guān)鍵幀的選擇機制,關(guān)鍵幀有高精度位姿和更多的內(nèi)容相關(guān)視圖信息。所以,ORB-SLAM稀疏地圖是一個非常優(yōu)秀的初始估計框架,比稠密地圖更好。論文47有詳細描述。
[1] B. Triggs, P. F. McLauchlan, R. I. Hartley, and A. W. Fitzgibbon,“Bundle adjustment a modern synthesis,” in Vision algorithms: theoryand practice, 2000, pp. 298–372.
[2] R. Hartley and A. Zisserman,?Multiple View Geometry in ComputerVision, 2nd ed. Cambridge University Press, 2004.
[3] E. Mouragnon, M. Lhuillier, M. Dhome, F. Dekeyser, and P. Sayd, “Realtime localization and 3d reconstruction,” in Computer Vision and PatternRecognition, 2006 IEEE Computer Society Conference on, vol. 1, 2006,pp. 363–370.
[4] G. Klein and D. Murray, “Parallel tracking and mapping for small ARworkspaces,” in IEEE and ACM International Symposium on Mixed andAugmented Reality (ISMAR), Nara, Japan, November 2007, pp. 225–234.
[5] D. G′alvez-L′opez and J. D. Tard′os, “Bags of binary words for fastplace recognition in image sequences,” IEEE Transactions on Robotics,vol. 28, no. 5, pp. 1188–1197, 2012.
[6] H. Strasdat, J. M. M. Montiel, and A. J. Davison, “Scale drift-awarelarge scale monocular SLAM.” in Robotics: Science and Systems (RSS),Zaragoza, Spain, June 2010.
[7] H. Strasdat, A. J. Davison, J. M. M. Montiel, and K. Konolige,“Double window optimisation for constant time visual SLAM,” in IEEEInternational Conference on Computer Vision (ICCV), Barcelona, Spain,November 2011, pp. 2352–2359.
[8] C. Mei, G. Sibley, and P. Newman, “Closing loops without places,” inIEEE/RSJ International Conference on Intelligent Robots and Systems(IROS), Taipei, Taiwan, October 2010, pp. 3738–3744.
[9] E. Rublee, V. Rabaud, K. Konolige, and G. Bradski, “ORB: an efficientalternative to SIFT or SURF,” in IEEE International Conference onComputer Vision (ICCV), Barcelona, Spain, November 2011, pp. 2564–2571.
[10] J. Engel, T. Sch¨ops, and D. Cremers, “LSD-SLAM: Large-scale directmonocular SLAM,” in European Conference on Computer Vision(ECCV), Zurich, Switzerland, September 2014, pp. 834–849.
[11] R. Mur-Artal and J. D. Tard′os, “Fast relocalisation and loop closing inkeyframe-based SLAM,” in IEEE International Conference on Roboticsand Automation (ICRA), Hong Kong, China, June 2014, pp. 846–853.
[12] ——, “ORB-SLAM: Tracking and mapping recognizable features,” inMVIGRO Workshop at Robotics Science and Systems (RSS), Berkeley,USA, July 2014.
[13] B. Williams, M. Cummins, J. Neira, P. Newman, I. Reid, and J. D.Tard′os, “A comparison of loop closing techniques in monocular SLAM,”Robotics and Autonomous Systems, vol. 57, no. 12, pp. 1188–1197, 2009.
[14] D. Nister and H. Stewenius, “Scalable recognition with a vocabularytree,” in IEEE Computer Society Conference on Computer Vision andPattern Recognition (CVPR), vol. 2, New York City, USA, June 2006,pp. 2161–2168.
[15] M. Cummins and P. Newman, “Appearance-only SLAM at large scalewith FAB-MAP 2.0,” The International Journal of Robotics Research,vol. 30, no. 9, pp. 1100–1123, 2011.
[16] M. Calonder, V. Lepetit, C. Strecha, and P. Fua, “BRIEF: BinaryRobust Independent Elementary Features,” in European Conference onComputer Vision (ECCV), Hersonissos, Greece, September 2010, pp.778–792.
[17] E. Rosten and T. Drummond, “Machine learning for high-speed cornerdetection,” in European Conference on Computer Vision (ECCV), Graz,Austria, May 2006, pp. 430–443.
[18] H. Bay, T. Tuytelaars, and L. Van Gool, “SURF: Speeded Up RobustFeatures,” in European Conference on Computer Vision (ECCV), Graz,Austria, May 2006, pp. 404–417.
[19] D. G. Lowe, “Distinctive image features from scale-invariant keypoints,”International Journal of Computer Vision, vol. 60, no. 2, pp. 91–110,2004.
[20] A. J. Davison, I. D. Reid, N. D. Molton, and O. Stasse, “MonoSLAM:Real-time single camera SLAM,” IEEE Transactions on Pattern Analysisand Machine Intelligence, vol. 29, no. 6, pp. 1052–1067, 2007.
[21] J. Civera, A. J. Davison, and J. M. M. Montiel, “Inverse depthparametrization for monocular SLAM,” IEEE Transactions on Robotics,vol. 24, no. 5, pp. 932–945, 2008.
[22] C. Forster, M. Pizzoli, and D. Scaramuzza, “SVO: Fast semi-directmonocular visual odometry,” in Proc. IEEE Intl. Conf. on Robotics andAutomation, Hong Kong, China, June 2014, pp. 15–22.
[23] O. D. Faugeras and F. Lustman, “Motion and structure from motionin a piecewise planar environment,” International Journal of PatternRecognition and Artificial Intelligence, vol. 2, no. 03, pp. 485–508, 1988.
[24] W. Tan, H. Liu, Z. Dong, G. Zhang, and H. Bao, “Robust monocularSLAM in dynamic environments,” in IEEE International Symposium onMixed and Augmented Reality (ISMAR), Adelaide, Australia, October2013, pp. 209–218.
[25] H. Lim, J. Lim, and H. J. Kim, “Real-time 6-DOF monocular visualSLAM in a large-scale environment,” in IEEE International Conferenceon Robotics and Automation (ICRA), Hong Kong, China, June 2014, pp.1532–1539.
[26] D. Nist′er, “An efficient solution to the five-point relative pose problem,”IEEE Transactions on Pattern Analysis and Machine Intelligence,vol. 26, no. 6, pp. 756–770, 2004.
[27] H. Longuet-Higgins, “The reconstruction of a plane surface from twoperspective projections,” Proceedings of the Royal Society of London.Series B. Biological Sciences, vol. 227, no. 1249, pp. 399–410, 1986.
[28] P. H. Torr, A. W. Fitzgibbon, and A. Zisserman, “The problem ofdegeneracy in structure and motion recovery from uncalibrated imagesequences,” International Journal of Computer Vision, vol. 32, no. 1,pp. 27–44, 1999.
[29] A. Chiuso, P. Favaro, H. Jin, and S. Soatto, “Structure from motioncausally integrated over time,” IEEE Transactions on Pattern Analysisand Machine Intelligence, vol. 24, no. 4, pp. 523–535, 2002.
[30] E. Eade and T. Drummond, “Scalable monocular SLAM,” in IEEE ComputerSociety Conference on Computer Vision and Pattern Recognition(CVPR), vol. 1, New York City, USA, June 2006, pp. 469–476.
[31] H. Strasdat, J. M. M. Montiel, and A. J. Davison, “Visual SLAM: Whyfilter?” Image and Vision Computing, vol. 30, no. 2, pp. 65–77, 2012.
[32] G. Klein and D. Murray, “Improving the agility of keyframe-basedslam,” in European Conference on Computer Vision (ECCV), Marseille,France, October 2008, pp. 802–815.
[33] K. Pirker, M. Ruther, and H. Bischof, “CD SLAM-continuous localizationand mapping in a dynamic world,” in IEEE/RSJ InternationalConference on Intelligent Robots and Systems (IROS), San Francisco,USA, September 2011, pp. 3990–3997.
[34] S. Song, M. Chandraker, and C. C. Guest, “Parallel, real-time monocularvisual odometry,” in IEEE International Conference on Robotics andAutomation (ICRA), 2013, pp. 4698–4705.
[35] P. F. Alcantarilla, J. Nuevo, and A. Bartoli, “Fast explicit diffusion foraccelerated features in nonlinear scale spaces,” in British Machine VisionConference (BMVC), Bristol, UK, 2013.
[36] X. Yang and K.-T. Cheng, “LDB: An ultra-fast feature for scalableaugmented reality on mobile devices,” in IEEE International Symposiumon Mixed and Augmented Reality (ISMAR), 2012, pp. 49–57.
[37] R. Kuemmerle, G. Grisetti, H. Strasdat, K. Konolige, and W. Burgard,“g2o: A general framework for graph optimization,” in IEEE InternationalConference on Robotics and Automation (ICRA), Shanghai, China,May 2011, pp. 3607–3613.
[38] J. Sturm, N. Engelhard, F. Endres, W. Burgard, and D. Cremers, “Abenchmark for the evaluation of RGB-D SLAM systems,” in IEEE/RSJInternational Conference on Intelligent Robots and Systems (IROS),Vilamoura, Portugal, October 2012, pp. 573–580.
[39] M. Smith, I. Baldwin, W. Churchill, R. Paul, and P. Newman, “The newcollege vision and laser data set,” The International Journal of RoboticsResearch, vol. 28, no. 5, pp. 595–599, 2009.[40] A. Geiger, P. Lenz, C. Stiller, and R. Urtasun, “Vision meets robotics:The KITTI dataset,” The International Journal of Robotics Research,vol. 32, no. 11, pp. 1231–1237, 2013.
[41] V. Lepetit, F. Moreno-Noguer, and P. Fua, “EPnP: An accurate O(n)solution to the PnP problem,” International Journal of Computer Vision,vol. 81, no. 2, pp. 155–166, 2009.
[42] B. K. P. Horn, “Closed-form solution of absolute orientation using unitquaternions,” Journal of the Optical Society of America A, vol. 4, no. 4,pp. 629–642, 1987.
[43] F. Endres, J. Hess, J. Sturm, D. Cremers, and W. Burgard, “3-d mappingwith an rgb-d camera,” IEEE Transactions on Robotics, vol. 30, no. 1,pp. 177–187, 2014.
[44] R. A. Newcombe, S. J. Lovegrove, and A. J. Davison, “DTAM: Densetracking and mapping in real-time,” in IEEE International Conference onComputer Vision (ICCV), Barcelona, Spain, November 2011, pp. 2320–2327.
[45] S. Lovegrove, A. J. Davison, and J. Ibanez-Guzm′an, “Accurate visualodometry from a rear parking camera,” in IEEE Intelligent VehiclesSymposium (IV), 2011, pp. 788–793.
[46] P. H. Torr and A. Zisserman, “Feature based methods for structureand motion estimation,” in Vision Algorithms: Theory and Practice.Springer, 2000, pp. 278–294.
[47] R. Mur-Artal and J. D. Tardos, “Probabilistic semi-dense mapping fromhighly accurate feature-based monocular SLAM,” in Robotics: Scienceand Systems (RSS), Rome, Italy, July 2015.
[48] H. Strasdat, “Local Accuracy and Global Consistency for EfficientVisual SLAM,” Ph.D. dissertation, Imperial College, London, October2012.
總結(jié)
以上是生活随笔為你收集整理的ORB-SLAM论文翻译的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 妄想山海外卖小哥怎么召唤?
- 下一篇: SLAM的开源以及在移动端AR的适用分析