本發(fā)明涉及機器人領域的同步定位與地圖構建(slam)方法,具體涉及一種基于深度學習特征提取與匹配算法的雙目視覺slam方法。
背景技術:
1、同步定位與地圖構建(slam)是機器人、自動駕駛和增強現(xiàn)實等領域的核心技術之一。slam系統(tǒng)通過傳感器數(shù)據(jù)實時估計自身位姿并構建環(huán)境地圖,是實現(xiàn)自主導航與環(huán)境理解的基礎。視覺slam利用相機作為主要傳感器,具有成本低、信息豐富等優(yōu)勢,近年來得到了廣泛研究與應用。然而,傳統(tǒng)視覺slam系統(tǒng)在動態(tài)環(huán)境、弱紋理區(qū)域和光照變化等復雜場景中仍面臨諸多挑戰(zhàn),例如特征提取的魯棒性不足、匹配精度受限以及軌跡誤差的累積等問題。
2、近年來,深度學習技術在計算機視覺領域取得了顯著進展,為視覺slam系統(tǒng)的改進提供了新的思路?;谏疃葘W習的特征提取與匹配算法能夠從數(shù)據(jù)中自動學習魯棒的特征表示,顯著提升了在復雜場景中的性能。
3、傳統(tǒng)特征提取方法依賴于手工設計的特征描述符,而深度學習方法通過卷積神經(jīng)網(wǎng)絡(cnn)自動學習圖像中的特征表示。例如,superpoint和d2-net等網(wǎng)絡能夠提取高區(qū)分度的特征點及其描述符,在弱紋理和光照變化場景中表現(xiàn)出更強的魯棒性。此外,基于學習的特征提取方法還能夠生成密集的特征點,為slam系統(tǒng)提供更豐富的信息。
4、特征匹配是視覺slam中的關鍵步驟,傳統(tǒng)方法(如基于描述符的最近鄰匹配)容易受到噪聲和誤匹配的影響。深度學習方法通過學習特征點之間的幾何關系和語義關系,能夠顯著提高匹配的精度和魯棒性。例如,superglue和lightglue等網(wǎng)絡通過圖神經(jīng)網(wǎng)絡(gnn)和注意力機制,實現(xiàn)了高效且準確的特征匹配。
技術實現(xiàn)思路
1、(一)要解決的技術問題
2、為了克服現(xiàn)有技術很難同時保證視覺slam的準確性、魯棒性和效率以及現(xiàn)有的基于傳統(tǒng)特征點的視覺slam方法缺乏魯棒的特征提取與關聯(lián),本發(fā)明提出了一種基于深度學習特征提取與匹配算法的雙目視覺slam方法。
3、本發(fā)明的技術方案如下:一種基于深度學習特征提取與匹配算法的雙目視覺slam方法,雙目圖像幀經(jīng)前端跟蹤模塊得到相鄰幀之間的相機位姿與相鄰幀之間的匹配特征點對,經(jīng)局部建圖模塊得到局部優(yōu)化的關鍵幀位姿與局部優(yōu)化的局部地圖點,經(jīng)回環(huán)檢測模塊得到回環(huán)約束與全局位姿圖優(yōu)化后的相機軌跡和全局地圖。
4、進一步地,所述前端跟蹤模塊包括基于卷積神經(jīng)網(wǎng)絡進行特征提取、基于圖神經(jīng)網(wǎng)絡進行特征匹配、位姿估計和關鍵幀選擇;
5、將第一個雙目圖像幀設置為關鍵幀,并將其位姿設置為地圖的初始位姿,從所述第一個雙目圖像幀中提取所有特征點,創(chuàng)建為地圖點;
6、每一對雙目圖像中,對左目圖像基于卷積神經(jīng)網(wǎng)絡進行特征提取,得到特征點及其描述符;
7、左目圖像特征點與描述符與前一個關鍵幀的左目圖像,基于圖神經(jīng)網(wǎng)絡進行特征匹配,建立幀與幀之間的數(shù)據(jù)關聯(lián);
8、根據(jù)數(shù)據(jù)關聯(lián)結果進行位姿估計,得到當前幀的位姿;
9、結合當前幀的位姿,根據(jù)關鍵幀判定準則進行關鍵幀選擇,判斷當前幀是否為新的關鍵幀。
10、所述基于卷積神經(jīng)網(wǎng)絡進行特征提取具體過程如下:
11、所述卷積神經(jīng)網(wǎng)絡包括一個共享的vgg編碼器和兩個獨立的解碼器;
12、雙目圖像幀首先輸入到一個共享的vgg編碼器中;對于h×w的輸入圖像i,vgg編碼器將其映射為hc×wc×128的中間向量c,其中hc=h/8,wc=w/8;
13、兩個獨立的解碼器分別負責提取關鍵點像素位置與計算對應描述符;在提取關鍵點像素位置的解碼器中,中間向量c首先通過卷積層映射到x∈hc×wc×65;x的65個通道對應輸入圖像i上一個8×8的局部區(qū)域以及用于表示該區(qū)域沒有關鍵點的dustbin標記;經(jīng)過通道softmax和reshape后,恢復為原圖大小,得到一個概率圖m,其大小為h×w;所述概率圖m中的每個像素表示輸入圖像i上對應像素是關鍵點的概率,對概率圖m執(zhí)行nms去除冗余點,僅保留置信度高于設定閾值τ的點,這些高置信度的點為輸出的關鍵點像素位置p;
14、在計算對應描述符的解碼器中,中間向量c通過卷積層映射到半稠密的描述符網(wǎng)格d∈hc×wc×256,其中256表示輸出的描述符維度;描述符網(wǎng)格d中的每個網(wǎng)格表示輸入圖像i中8×8的像素塊共享的一個描述符,對描述符網(wǎng)格d進行雙線性插值以獲得輸入圖像i中每個像素的描述符;執(zhí)行l(wèi)2歸一化,得到與每個關鍵點對應的256維浮點型描述符d。
15、所述vgg編碼器主要由卷積層、池化層和非線性激活函數(shù)組成。
16、所述基于圖神經(jīng)網(wǎng)絡進行特征匹配具體過程如下:
17、圖神經(jīng)網(wǎng)絡主要由圖注意力機制層和最優(yōu)匹配層組成;考慮兩幅圖像a和b,每個圖像都有一組已經(jīng)提取到的局部特征和其中包含所述的關鍵點像素位置p和對應的描述符d;
18、在圖注意力機制層中,將關鍵點的像素位置和對應的描述符輸入到一個關鍵點編碼器中,以聚合為一個初始表示xi;關鍵點的像素位置被一個多層感知器mlp嵌入到一個高維向量中,用公式(1)表示為:
19、xi=di+mlpenc(pi)???????(1)
20、利用自注意力和交叉注意力多次增強初始表示xi;
21、設為圖像a在第l層中元素i的中間表示,信息mε→i是從所有關鍵點{j:(i,j)∈ε}聚合的結果,其中{ε∈{εself,εcross},則圖像a中所有元素i中的信息傳遞更新殘差表示為公式(2):
22、
23、其中,[·||·]表示聚合;
24、同時對圖像b中的所有關鍵點執(zhí)行與圖像a中相同更新;以不同參數(shù)的固定數(shù)量l的輪次進行迭代,并隨著自注意力和交叉注意力交替聚合,逐步細化匹配;
25、在注意力聚合完成之后,通過線性投影將注意力聚合后的特征表示轉化為一個向量f;所述向量f進入最優(yōu)匹配層;通過計算內(nèi)積得到匹配得分矩陣,用sinkhorn算法求解最優(yōu)分配矩陣p;每個元素pi,j表示圖像a中的特征i和圖像b中的特征j是一對正確匹配的概率,得到兩張圖像之間的特征點匹配關系,輸出匹配點對
26、所述位姿估計的具體過程如下:
27、通過提取第一幀圖像i0中的特征點并假設其位姿t0為單位矩陣來初始化地圖,同時利用相機的內(nèi)參矩陣k和深度信息將特征點反投影到三維空間,生成初始地圖點其計算過程用公式(3)表示:
28、
29、根據(jù)第二幀圖像i1的特征點與第一幀特征點匹配的匹配點對利用pnp算法計算兩幀之間的相對位姿t1,0=[r|t],其中r為旋轉矩陣,t為平移向量;通過三角化方法生成新的地圖點并驗證其重投影誤差是否在閾值內(nèi),完成初始化并驗證地圖點的合理性;
30、初始化成功后,進行持續(xù)跟蹤;對于每一幀新圖像,首先提取特征點并根據(jù)上一幀的位姿tt-1或勻速運動模型預測當前幀的位姿確定局部地圖區(qū)域;從全局地圖中選擇在當前幀視野范圍內(nèi)的地圖點{xn},構建稀疏局部地圖;當前幀特征點與局部地圖中的地圖點{xn}進行投影匹配或描述符匹配,得到的匹配點對通過幾何約束剔除誤匹配;基于匹配的特征點對,構建重投影誤差函數(shù):
31、
32、其中,π為投影函數(shù),k為相機內(nèi)參矩陣,rt和tt分別為當前幀的旋轉矩陣和平移向量;利用非線性優(yōu)化方法levenberg-marquardt優(yōu)化當前幀的位姿,最小化重投影誤差以提高位姿估計的精度。
33、所述關鍵幀判定的過程如下:
34、求解完當前幀的位姿,根據(jù)當前幀的特征點數(shù)量、匹配質(zhì)量以及運動幅度判斷是否將其設為新的關鍵幀;如果設為關鍵幀,則將其特征點添加到局部地圖中,并更新局部地圖;當圖像幀滿足以下任一條件時,認定為關鍵幀:
35、1)提取到的特征點數(shù)量多于60個;
36、2)與上一個關鍵幀的距離超過30幀;
37、3)與上一個關鍵幀的角度超過5度;
38、4)多于25%的特征點沒有被跟蹤到。
39、所述局部建圖模塊的過程如下:
40、局部建圖模塊只對關鍵幀進行處理;當新的關鍵幀ki被插入時,首先將其與共視圖中相鄰的關鍵幀{kj}進行特征匹配,建立地圖點{xk}的觀測關系,并通過三角化方法生成新的地圖點{xnew},其三維坐標計算為:
41、
42、其中和分別為關鍵幀ki中匹配的特征點和關鍵幀kj中匹配的特征點,ti和tj為關鍵幀ki的位姿和關鍵幀kj的位姿;
43、對局部地圖進行優(yōu)化,通過局部ba最小化重投影誤差:
44、
45、其中,k為相機內(nèi)參矩陣,ri,ti和rj,tj分別為關鍵幀ki和kj的旋轉矩陣和平移向量;在優(yōu)化過程中,剔除冗余的關鍵幀和異常的地圖點,以保持地圖的緊湊性和一致性;最終,局部建圖線程通過不斷插入關鍵幀、生成地圖點并優(yōu)化局部地圖,逐步構建出精確且稠密的局部環(huán)境表示。
46、所述回環(huán)檢測模塊的過程如下:
47、回環(huán)檢測模塊融合cnn深度特征與dbow3詞袋模型,包括離線訓練、詞袋檢索、相似性度量、幾何驗證和回環(huán)校正;
48、在離線訓練階段,采用自適應分層k-means++聚類算法,對cnn網(wǎng)絡在公開數(shù)據(jù)集提取的深度描述符進行聚類分析;首先通過pca降維將cnn提取的256維描述符壓縮至64維以提升計算效率,同時保留95%以上的特征信息;然后采用基于密度的初始中心選擇策略,避免傳統(tǒng)k-means可能導致的局部最優(yōu)問題;最終構建的視覺詞典包含105個視覺單詞,形成六層樹狀結構,在保證檢索效率的同時提供細粒度的特征區(qū)分能力;
49、構建視覺詞典的目標函數(shù)為:
50、
51、其中k為視覺單詞數(shù)量,μi為第i個聚類中心,λ為間距懲罰系數(shù);
52、在詞袋檢索階段,使用預構建的視覺詞典將cnn網(wǎng)絡提取的描述符量化為稀疏詞頻向量,并采用倒排索引技術進行快速檢索;維護一個基于時間滑窗的動態(tài)關鍵幀數(shù)據(jù)庫,通過布隆過濾器實現(xiàn)快速去重,確保檢索效率不受運行時間增長的影響;
53、在相似性度量階段,通過識別當前關鍵幀kt與歷史關鍵幀{kh}的相似性來檢測回環(huán)并優(yōu)化全局地圖的一致性;首先提取當前關鍵幀kt的詞袋描述符dt和歷史關鍵幀{kh}的詞袋描述符{dh},通過比較二者的詞頻向量進行相似性得分計算,篩選出候選回環(huán)幀接著,利用pnp算法計算相對位姿tt,h=[r|t],并驗證重投影誤差是否滿足閾值:
54、
55、其中k為相機內(nèi)參矩陣,為歷史關鍵幀kh對應的地圖點;
56、幾何驗證階段采用多階段漸進式驗證策略;首先通過prosac算法快速篩選出內(nèi)點率超過60%的候選對;然后構建基于本質(zhì)矩陣的幾何一致性約束,使用m估計量抑制異常值影響;隨后執(zhí)行3d-2d重投影驗證,將候選幀的地圖點投影至當前幀,要求至少50%的匹配點對重投影誤差小于1.5個像素;最后引入描述符一致性驗證,構建雙向最近鄰匹配,確保特征點對的描述符距離小于自適應閾值τ_d:
57、τ_d=μ+2σ???????(10)
58、其中μ和σ為當前幀描述符距離的均值和標準差;
59、在回環(huán)校正階段,當檢測到有效回環(huán)后,啟動分層優(yōu)化機制;先進行局部位姿圖優(yōu)化,使用dog-leg算法快速收斂;然后進行全局ba優(yōu)化,采用schur補技巧實現(xiàn)高效的大規(guī)模稀疏矩陣求解;為平衡精度與效率,動態(tài)調(diào)整優(yōu)化粒度;當回環(huán)間隔小于100幀時僅優(yōu)化局部窗口;當檢測到大范圍回環(huán)時,啟動全圖優(yōu)化,通過位姿圖優(yōu)化調(diào)整關鍵幀位姿{ti}和地圖點{xk},最小化全局誤差e({t},{x}),此時所有關鍵幀的位姿都被更新,機器人的運行軌跡也進行相應校正;
60、
61、其中l(wèi)表示回環(huán)約束集合,tij為回環(huán)幀之間的相對位姿。
62、本發(fā)明的有益效果:本發(fā)明提出了一種基于深度學習特征提取與匹配算法的雙目視覺slam方法。該方法主要包含三個模塊:前端跟蹤模塊,局部建圖模塊以及回環(huán)檢測模塊。前端跟蹤模塊:從輸入雙目幀圖像中提取特征點來進行姿態(tài)估計,通過幀與幀之間的數(shù)據(jù)關聯(lián)來實現(xiàn)對當前幀的跟蹤。局部建圖模塊:通過處理新增的關鍵幀來優(yōu)化局部地圖并擴展環(huán)境表示?;丨h(huán)檢測模塊:通過識別當前關鍵幀與歷史關鍵幀的相似性來檢測回環(huán)并優(yōu)化全局地圖的一致性。在公開數(shù)據(jù)集和機器人平臺上的實驗表明該系統(tǒng)具有較高的精度和良好的實時性表現(xiàn)。由于slam在無人駕駛和機器人上的重要性,該發(fā)明具有廣泛的應用前景。