超越ORB-SLAM3! SL-SLAM:低光、嚴重抖動和弱紋理場景全搞定

WBOY
發布: 2024-05-30 09:35:24
原創
584 人瀏覽過

寫在前面

今天我們探討下深度學習技術如何改善在複雜環境中基於視覺的SLAM(同時定位與地圖建構)表現。透過將深度特徵提取和深度匹配方法相結合,這裡介紹了一種多功能的混合視覺SLAM系統,旨在提高在諸如低光條件、動態光照、弱紋理區域和嚴重抖動等挑戰性場景中的適應性。我們的系統支援多種模式,包括拓展單目、立體、單目-慣性以及立體-慣性配置。除此之外,也分析如何將視覺SLAM與深度學習方法結合,以啟發其他研究。透過在公共資料集和自採樣資料上的廣泛實驗,展示了SL-SLAM在定位精度和追蹤魯棒性方面優於最先進的SLAM演算法。

工程連結:https://github.com/zzzzxxxx111/SLslam.

(大拇指往上滑,點擊最上方的卡片追蹤我, #整個操作只會花你1.328 秒,然後帶走未來、所有、免費的干貨,萬一有內容對您有幫助呢~)

目前SLAM應用背景介紹

SLAM(同時定位與地圖建構)是機器人技術、自動駕駛和3D重建中的關鍵技術,它同時確定感測器的位置(定位)並建立環境的地圖。視覺和慣性感測器是最常用的感測設備,相關的解決方案已經被深入討論和探索。經過幾十年的發展,視覺(慣性)SLAM的處理框架已經形成了一個基本框架,包括追蹤、地圖建構和回環檢測。 在SLAM演算法中,追蹤模組負責估計機器人的運動軌跡,地圖建構模組用於產生和更新環境地圖,回環偵測則用來識別已經造訪過的位置。這些模組相互協作以實現對機器人狀態和環境的感知。 視覺SLAM常用的演算法包括特徵點法、直接法和半直接法。在特徵點法中,透過提取和匹配特徵點來估計相機位姿和三維點雲;直接法則透過最小化影像灰階差異來直接

近年來,相關研究集中在提高極端條件下的穩健性和適應性。由於SLAM技術的發展歷史悠久,因此有許多基於傳統幾何方法的SLAM代表性工作,如ORB-SLAM、VINS-Mono、DVO、MSCKF等。然而,仍然存在一些未解決的問題。在諸如低光或動態光照、嚴重抖動和弱紋理區域等挑戰性環境中,由於傳統特徵提取演算法只考慮影像局部訊息,而沒有考慮影像的結構和語義訊息,當遇到上述情況時,現有的SLAM系統的追蹤可能會變得不穩定和無效。 因此,在這些條件下,SLAM系統的追蹤可能會變得不穩定和無效。

深度學習的快速發展為電腦視覺領域帶來了革命性的改變。透過利用大量資料訓練,深度學習模型能夠模擬複雜的場景結構和語意訊息,從而提升SLAM系統對場景的理解和表達能力。這種方法主要分為兩種途徑。第一種是基於深度學習的端對端演算法,如Droid-slam、NICE-SLAM、DVI-SLAM。然而,這些方法需要大量的資料進行訓練,同時需要高運算資源和儲存空間,難以實現即時追蹤。第二種途徑稱為混合SLAM,它利用深度學習來增強SLAM中的特定模組。混合SLAM充分利用了傳統幾何方法和深度學習方法的優勢,能夠在幾乎任何限制和語義理解之間找到平衡。儘管目前該領域已有一些研究,但如何有效地整合深度學習技術仍是一個值得進一步研究的方向。

目前,現有的混合SLAM存在一些限制。 DXNet 只是簡單地將ORB特徵點替換為深度特徵點,但仍繼續使用傳統方法來追蹤這些特徵。因此,這可能導致深度特徵資訊的不連貫。 SP-Loop 僅將深度學習特徵點引入閉環模組,而在其他地方保留傳統的特徵點提取方法。因此,這些混合SLAM方法並沒有有效且全面地結合深度學習技術,導致在某些複雜場景下追蹤和建圖效果的下降。

為了解決這些問題,這裡提出了一個基於深度學習的多功能SLAM系統。將Superpoint特徵點提取模組整合到系統中,並將其作為唯一的表現形式貫穿始終。此外,在複雜環境中,傳統的特徵匹配方法經常表現出不穩定性,導致追蹤和建圖品質的下降。然而,最近基於深度學習的特徵匹配方法的進步已經顯示出在複雜環境中實現改進匹配性能的潛力。這些方法利用場景的先驗資訊和結構細節來增強配對的有效性。 Lightglue作為最新的SOTA(state-of-the-art)匹配方法,因其高效且輕量級的特性,對於需要高實時性能的SLAM系統具有優勢。因此,我們已將整體SLAM系統中的特徵匹配方法替換為Lightglue,相較於傳統方法,提高了穩健性和準確性。

在進行Superpoint特徵點描述子處理時,我們對其進行了預處理,以與相應的視覺詞袋的訓練保持一致。當Lightglue結合時,這種方法實現了精確的場景辨識效果。同時,為了保持準確性與效率之間的平衡,設計了一種特徵點選擇策略。考慮到可擴充性、可攜性和即時效能,我們利用ONNX Runtime函式庫來部署這些深度學習模型。最後,設計了一系列實驗來證明方法在多種具有挑戰性的場景中提高了SLAM演算法的軌跡預測精度和追蹤穩健性,如圖8所示。

超越ORB-SLAM3! SL-SLAM:低光、嚴重抖動和弱紋理場景全搞定

SL-SLAM系統框架

SL-SLAM的系統結構如圖2所示,該系統主要有四種感測器配置,即單目、單目慣性、雙眼和雙目慣性。系統基於ORB-SLAM3作為基線,包含三個主要模組:追蹤、局部建圖和回環偵測。為了將深度學習模型整合到系統中,使用了ONNX Runtime深度學習部署框架,結合了SuperPoint和LightGlue模型。

對於每個輸入影像,系統首先將其輸入到SuperPoint網路中,以取得特徵點的機率張量和描述符張量。然後,系統使用兩幀進行初始化,並對每個後續幀進行粗略追蹤。它進一步透過追蹤局部地圖來細化姿態估計。在跟踪失敗的情況下,系統要么使用參考幀進行跟踪,要么執行重定位以重新獲取姿態。請注意,在粗略追蹤、初始化、參考幀追蹤和重定位中,都使用了LightGlue進行特徵匹配。這確保了準確且穩健的匹配關係,從而提高了追蹤的有效性。

超越ORB-SLAM3! SL-SLAM:低光、嚴重抖動和弱紋理場景全搞定

在基準演算法中,局部建圖執行緒的主要作用是在即時動態地建構局部地圖,包括地圖點和關鍵影格。它利用局部地圖執行捆集調整最佳化,從而減少追蹤誤差並增強一致性。局部建圖線程使用追蹤線程輸出的關鍵幀,基於LightGlue的三角測量和自適應局部捆集調整(BA)最佳化來重建精確的地圖點。然後區分並移除冗餘的地圖點和關鍵影格。

閉環校正執行緒利用基於SuperPoint描述符訓練的關鍵影格資料庫和詞袋模型來檢索類似的關鍵影格。透過對SuperPoint描述符進行二值化來增強檢索效率。選定的關鍵影格使用LightGlue進行特徵匹配,以進行共同視圖幾何驗證,減少不匹配的可能性。最後,執行閉迴路融合和全域BA(Bundle Adjustment)來最佳化整體姿態。

1)Feature Extraction

SuperPoint 網路結構:SuperPoint網路架構主要由三個部分組成:一個共享編碼器、一個特徵檢測解碼器和一個描述符解碼器。編碼器是一個VGG風格的網絡,能夠降低影像維度並提取特徵。特徵檢測解碼器的任務是計算影像中每個像素的機率,以確定其成為特徵點的可能性。描述符解碼網路利用子像素卷積來減輕解碼過程的運算複雜度。然後,網路輸出一個半密集描述符,接著應用雙三次插值演算法來取得完整的描述符。在獲取了網路輸出的特徵點張量和描述符張量之後,為了提高特徵提取的穩健性,我們採用了一種自適應閾值選擇策略來過濾特徵點,並進行後處理操作以獲取特徵點及其描述符。特徵提取模組的具體結構如圖3所示。

超越ORB-SLAM3! SL-SLAM:低光、嚴重抖動和弱紋理場景全搞定

自適應特徵選擇:首先,每個圖像,標記為I(W × H),在調整大小以匹配SuperPoint網路的輸入圖像尺寸(W′ × H′)之前,會先轉換為灰階影像。影像過小可能會阻礙特徵提取,從而降低追蹤效能,而影像過大則可能導致過高的運算需求和記憶體使用。因此,為了平衡特徵提取的準確性和效率,本文選擇W′ = 400和H′ = 300。隨後,一個大小為W′ × H′的張量被送入網絡,產生兩個輸出張量:得分張量S,以及描述符張量D。一旦獲得特徵點得分張量和特徵描述符,下一步就是設定一個閾值th來過濾特徵點。

在具有挑戰性的場景中,每個特徵點的置信度會降低,如果採用固定的置信度閾值th,則可能導致提取的特徵數量減少。為了解決這個問題,我們引入了自適應的SuperPoint閾值設定策略。這種自適應方法根據場景動態調整特徵提取的閾值,從而在具有挑戰性的場景中實現更穩健的特徵提取。自適應閾值機制考慮了兩個因素:特徵內部關係和幀間特徵關係。

在具有挑戰性的場景中,每個特徵點的置信度會降低,如果採用固定的置信度閾值th,則可能導致提取的特徵數量減少。為了解決這個問題,引入了自適應的SuperPoint閾值設定策略。這種自適應方法根據場景動態調整特徵提取的閾值,從而在具有挑戰性的場景中實現更穩健的特徵提取。自適應閾值機制考慮了兩個因素:特徵內部關係和幀間特徵關係。

2)特徵匹配與前端

LightGlue網路結構:LightGlue模型由多個相同的層組成,這些層共同處理兩組特徵。每一層都包含自註意力和交叉注意力單元,用於更新點的表示。每一層中的分類器決定推斷的停止,避免了不必要的計算。最後,一個輕量級的頭部計算部分匹配得分。網路的深度會根據輸入影像的複雜性動態調整。如果影像對很容易匹配,由於標記的高置信度,可以實現早期終止。因此,LightGlue具有更短的運行時間和更低的記憶體消耗,使其適合整合到需要即時效能的任務中。

相鄰幀之間的時間間隔,通常只有幾十毫秒,ORB-SLAM3假設相機在這段短暫的時間內進行勻速運動。它利用前一幀的姿態和速度來估計當前幀的姿態,並使用這個估計的姿態進行投影匹配。然後,它在一定範圍內搜尋匹配點,並據此細化姿態。然而,在現實中,相機的運動可能並不總是均勻的。突然的加速、減速或旋轉都可能對這種方法的有效性產生不利影響。 Lightglue可以透過直接在當前幀和前一幀之間匹配特徵來有效解決這個問題。然後,它使用這些匹配的特徵來細化初始姿態估計,從而減少突然加速或旋轉的負面影響。

在先前影格中影像追蹤失敗的情況下,無論是由於突然的相機運動還是其他因素,都需要使用參考關鍵影格進行追蹤或重新定位。基準演算法採用詞袋(Bag-of-Words, BoW)方法來加速當前幀和參考幀之間的特徵匹配。然而,BoW方法將空間資訊轉換為基於視覺詞彙的統計訊息,可能會失去特徵點之間的準確空間關係。此外,如果BoW模型中使用的視覺詞彙不足或不夠代表性,它可能無法捕捉場景的豐富特徵,導致配對過程中的不準確。

結合Lightglue的追蹤:由於相鄰幀之間的時間間隔很短,通常只有幾十毫秒,ORB-SLAM3假設相機在這段時間內進行勻速運動。它使用前一幀的姿態和速度來估計當前幀的姿態,並使用這個估計的姿態進行投影匹配。然後,它在一定範圍內搜尋匹配點,並據此細化姿態。然而,在現實中,相機的運動可能並不總是均勻的。突然的加速、減速或旋轉都可能對這種方法的有效性產生不利影響。 Lightglue可以有效地解決這個問題,透過直接在當前幀和前一幀之間匹配特徵。然後,它使用這些匹配的特徵來細化初始姿態估計,從而減少突然加速或旋轉的負面影響。

在先前影格中影像追蹤失敗的情況下,無論是由於突然的相機運動還是其他因素,都需要使用參考關鍵影格進行追蹤或重新定位。基準演算法採用詞袋(Bag-of-Words, BoW)方法來加速當前幀和參考幀之間的特徵匹配。然而,BoW方法將空間資訊轉換為基於視覺詞彙的統計訊息,可能會失去特徵點之間的準確空間關係。此外,如果BoW模型中使用的視覺詞彙不足或不夠代表性,它可能無法捕捉場景的豐富特徵,導致配對過程中的不準確。

超越ORB-SLAM3! SL-SLAM:低光、嚴重抖動和弱紋理場景全搞定

為了解決這些問題,在整個系統中用Lightglue取代了BoW方法。這項改變顯著提高了在大規模變換下成功追蹤和重新定位的機率,從而增強了我們的追蹤過程的準確性和穩健性。圖4展示了不同匹配方法的有效性。可以觀察到,基於Lightglue的匹配方法相比ORB-SLAM3中使用的基於投影或詞袋(Bag-of-Words)的匹配方法,表現出了更優的匹配性能。因此,在SLAM操作過程中,它使得地圖點的追蹤更加均勻和穩定,如圖6所示。

超越ORB-SLAM3! SL-SLAM:低光、嚴重抖動和弱紋理場景全搞定

結合Lightglue的局部建圖:在局部建圖線程中,新地圖點的三角化是透過當前關鍵影格及其鄰近關鍵影格來完成的。為了獲得更精確的地圖點,需要與具有更大基線的關鍵影格進行配對。然而,ORB-SLAM3使用詞袋(Bag-of-Words, BoW)匹配來實現這一點,但當基線較大時,BoW特徵匹配的性能會降低。相較之下,Lightglue演算法非常適合與大基線進行匹配,並能無縫地整合到系統中。透過使用Lightglue進行特徵匹配並對匹配點進行三角化,可以恢復更全面、更高品質的地圖點。

這透過在關鍵影格之間建立更多連接,以及透過共同優化共同可見的關鍵影格和地圖點的姿態來穩定跟踪,從而增強了局部建圖能力。地圖點的三角化效果如圖6所示。可以觀察到,與ORB-SLAM3相比,我們的方法所建構的地圖點能更好地反映場景的結構資訊。此外,它們在空間上的分佈更加均勻和廣泛。

3)Loop closure

詞袋深度描述子:在閉環偵測中使用的詞袋方法是基於視覺詞彙的方法,借鑒了自然語言處理中詞袋的概念。它首先進行字典的離線訓練。最初,使用K-means演算法將訓練影像集中偵測到的特徵描述子聚集成k個集合,形成字典樹的第一級。隨後,在每個集合內進行遞歸操作,最終得到深度為L、分支數為k的最終字典樹,建立視覺詞彙表。每個葉節點都被視為一個詞彙。

一旦字典訓練完成,在演算法執行期間,會從當前圖像的所有特徵點中在線生成詞袋向量和特徵向量。主流SLAM框架傾向於使用手動設定的二進位描述符,因為它們具有較小的記憶體佔用和簡單的比較方法。為了進一步提高方法效率,SP-Loop 使用期望值為0、標準差為0.07的高斯分佈來表示超點描述符的值。因此,超點的256維浮點描述子可以進行二進位編碼,以提高視覺位置辨識的查詢速度。二進位編碼如等式4所示。

超越ORB-SLAM3! SL-SLAM:低光、嚴重抖動和弱紋理場景全搞定

基本流程:在SLAM中的閉環檢測通常涉及三個關鍵階段:尋找初始閉環候選關鍵影格、驗證閉環候選關鍵影格以及執行閉環校正和全域捆綁調整(Bundle Adjustment,BA)。

啟動過程的第一步是識別初始閉環候選關鍵影格。這透過利用先前訓練的DBoW3詞袋模型來實現。辨識出與目前幀Ka具有共同詞彙的關鍵幀,但排除與Ka共同可見的關鍵幀。計算與這些候選關鍵影格相關的共同可見關鍵影格的總分。從閉環候選關鍵影格中得分最高的前N組中,選擇得分最高的關鍵影格。這個選定的關鍵幀,表示為Km。

接下來,需要確定從Km到目前關鍵影格Ka的相對姿態變換Tam。在ORB-SLAM3中,使用基於詞袋的特徵匹配方法來匹配當前關鍵影格與候選關鍵影格Km及其共同可見的關鍵影格Kco。值得注意的是,由於lightglue演算法大大提高了匹配效率,因此將當前幀與候選幀Km進行匹配會產生高品質的地圖點對應。然後,應用RANSAC演算法消除異常值,並求解Sim(3)變換以確定初始相對姿態Tam。為了避免錯誤的位置識別,將對候選關鍵影格進行幾何驗證,後續步驟與ORB-SLAM3類似。

實驗比較分析

超越ORB-SLAM3! SL-SLAM:低光、嚴重抖動和弱紋理場景全搞定超越ORB-SLAM3! SL-SLAM:低光、嚴重抖動和弱紋理場景全搞定超越ORB-SLAM3! SL-SLAM:低光、嚴重抖動和弱紋理場景全搞定超越ORB-SLAM3! SL-SLAM:低光、嚴重抖動和弱紋理場景全搞定超越ORB-SLAM3! SL-SLAM:低光、嚴重抖動和弱紋理場景全搞定

超越ORB-SLAM3! SL-SLAM:低光、嚴重抖動和弱紋理場景全搞定

##### ####

以上是超越ORB-SLAM3! SL-SLAM:低光、嚴重抖動和弱紋理場景全搞定的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:51cto.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板