ICCV 2023,最強(qiáng)特征匹配算法?github已1.4k Starts!
這篇文章提出了一種新的深度匹配器,LightGlue,基于深度神經(jīng)網(wǎng)絡(luò),用來匹配圖像中的局部特征。
作者:一杯紅茶 ?| 來源:3D視覺工坊
在公眾號(hào)「3D視覺工坊」后臺(tái),回復(fù)「原論文」即可獲取論文pdf。
添加微信:dddvisiona,備注:深度學(xué)習(xí),拉你入群。文末附行業(yè)細(xì)分群。
可以說,這個(gè)LightGlue是SuperGlue的加強(qiáng)版本,相比于SuperGlue,在內(nèi)存和計(jì)算方面更高效,同時(shí)結(jié)果更準(zhǔn)確,也更容易訓(xùn)練,SuperGlue是在其之前性能最好的特征匹配算法。
LightGlue通過適應(yīng)每幅圖像的難度來決定什么時(shí)候退出推理。圖像匹配的難度取決于兩幅圖像視覺重疊度、外觀變化程度。在直觀上容易匹配的圖像對(duì)上推理比在具有挑戰(zhàn)性的上要快得多,這是通過在每個(gè)計(jì)算塊之后預(yù)測一組對(duì)應(yīng)關(guān)系使模型能夠預(yù)測是否需要進(jìn)一步計(jì)算來實(shí)現(xiàn)最終目的。LigthGlue也會(huì)在早期階段丟棄不可匹配的點(diǎn),從而將注意力集中在共視區(qū)域。
簡單介紹特征匹配定義:特征匹配是尋找兩幅圖像之間的特征對(duì)應(yīng)關(guān)系,是許多計(jì)算機(jī)視覺應(yīng)用的基本組成部分,最常見的圖像匹配方法依賴于稀疏特征點(diǎn),通過對(duì)特征點(diǎn)局部視覺外觀編碼成高維向量進(jìn)行匹配。這里也推薦「3D視覺工坊」新課程《面向自動(dòng)駕駛領(lǐng)域目標(biāo)檢測中的視覺Transformer》
特征匹配的難點(diǎn)在于弱紋理、視點(diǎn)和照明變化而導(dǎo)致的外觀變化等,而且為了篩選由遮擋和缺失點(diǎn)引起的外點(diǎn),特征表示應(yīng)該是有區(qū)別的。要保證穩(wěn)健性和唯一性。
SuperGlue將Transformer的表達(dá)表示與最優(yōu)傳輸相結(jié)合以解決部分分配問題。它學(xué)習(xí)關(guān)于場景幾何和相機(jī)運(yùn)動(dòng)的強(qiáng)大先驗(yàn),因此對(duì)極端變化具有魯棒性,并能很好地在數(shù)據(jù)域中泛化。但是SuperGlue和其他基于Transformer的模型一樣,很難訓(xùn)練,需要一般人無法獲得的計(jì)算資源來訓(xùn)練。
之前SuperGlue用MLP對(duì)絕對(duì)點(diǎn)位置進(jìn)行編碼,并在網(wǎng)絡(luò)靠前的層將其與描述子融合,作者觀察到這樣做的話模型在層間傳遞時(shí)會(huì)忘記位置信息。而LightGlue依賴于一種相對(duì)編碼,這種編碼在圖像之間更具可比性,并添加到每個(gè)自注意力單元中,這樣可以更容易地利用位置,并提高更深層次的精度。
在預(yù)測頭方面,SuperGlue通過使用Sinkhorn算法解決可微最優(yōu)傳輸問題來預(yù)測匹配,包括行和列歸一化的多次迭代,這在計(jì)算和內(nèi)存方面都很昂貴,SuperGlue還添加了一個(gè)dustbin來拒絕無法匹配的點(diǎn),作者發(fā)現(xiàn)dustbin糾纏了所有點(diǎn)的相似性得分,從而產(chǎn)生了次優(yōu)的訓(xùn)練,而LightGlue將相似性和可匹配性解耦,這兩個(gè)問題的預(yù)測效率要高得多,產(chǎn)生了更清潔的梯度。
在訓(xùn)練監(jiān)督方面,由于Sinkhorn的價(jià)格昂貴,SuperGlue無法在每層之后進(jìn)行預(yù)測,只能在最后一層進(jìn)行監(jiān)督,LightGlue較輕的head使其能夠預(yù)測每一層的分配并對(duì)其進(jìn)行監(jiān)督,這加快了收斂速度,并使其能夠在任何層退出推理,這是LightGlue提高效率的關(guān)鍵。
LightGlue由一堆L個(gè)相同的層組成,這些層共同處理一對(duì)圖像,每一層都由自注意力單元和交叉注意力單元組成,它們更新每個(gè)點(diǎn)的表示。然后,分類器在每一層決定是否停止推理,從而避免不必要的計(jì)算。輕量級(jí)頭最終根據(jù)表示集計(jì)算匹配。
注意力單元:
在每個(gè)單元中,多層感知器(MLP)根據(jù)從圖像A,B聚合的信息更新狀態(tài)
在自注意單元中,每個(gè)圖像I從同一圖像的點(diǎn)提取信息,在交叉關(guān)注單元中,每個(gè)圖像從另一個(gè)圖像提取信息,該信息由注意力機(jī)制計(jì)算為圖像的所有狀態(tài)j的加權(quán)平均值:
其中W是投影矩陣,是圖像i和S的點(diǎn)i和j之間的注意力得分。對(duì)于自注意力單元和交叉注意力單元,該得分的計(jì)算方式不同。
對(duì)于自注意力單元,每個(gè)點(diǎn)都涉及同一圖像的所有點(diǎn)。首先通過不同的線性變換將當(dāng)前狀態(tài)xi分解為鍵向量和查詢向量ki和qi,然后,我們將點(diǎn)i和j之間的注意力得分定義為
其中是點(diǎn)之間相對(duì)位置的旋轉(zhuǎn)編碼,將空間劃分為d/2個(gè)2D子空間,并根據(jù)傅立葉特征將每個(gè)子空間旋轉(zhuǎn)一個(gè)對(duì)應(yīng)于投影的可學(xué)習(xí)的偏差角度:
位置編碼是注意力的關(guān)鍵部分,因?yàn)樗试S根據(jù)不同元素的位置對(duì)其進(jìn)行尋址,作者觀察到在投影相機(jī)幾何中,視覺觀察的位置與相機(jī)在圖像平面內(nèi)的平移是等變的:源于同一正面到平行平面上的3D點(diǎn)的2D點(diǎn)以相同的方式平移,并且它們的相對(duì)距離保持不變。這需要一種只捕捉點(diǎn)的相對(duì)位置而不捕捉點(diǎn)的絕對(duì)位置的編碼。所以旋轉(zhuǎn)編碼使模型能夠從i檢索位于學(xué)習(xí)的相對(duì)位置的點(diǎn)j。
針對(duì)交叉注意力,I中的每個(gè)點(diǎn)都涉及另一個(gè)圖像S的所有點(diǎn),為每個(gè)元素計(jì)算一個(gè)關(guān)鍵字ki,但沒有查詢。這允許將分?jǐn)?shù)表示為:
因此只需要為兩個(gè)I計(jì)算一次相似性信息,這被稱為雙向注意力。
設(shè)計(jì)了一個(gè)輕量級(jí)的head,它可以在任何層的更新狀態(tài)下預(yù)測匹配。
先計(jì)算兩個(gè)圖像的點(diǎn)之間的成對(duì)得分矩陣:
其中Linear(·)是一個(gè)學(xué)習(xí)的帶有偏差的線性變換,該分?jǐn)?shù)將每對(duì)點(diǎn)的親和性編碼為對(duì)應(yīng)的,即同一3D點(diǎn)的2D投影,還為每一點(diǎn)計(jì)算一個(gè)匹配性得分:
該分?jǐn)?shù)對(duì)i具有對(duì)應(yīng)點(diǎn)的可能性進(jìn)行編碼。在其他圖像中未檢測到的點(diǎn),例如被遮擋時(shí),是不可匹配的,因此為0.
將相似性和可匹配性得分組合到軟分配矩陣P中,如下所示:
當(dāng)兩個(gè)點(diǎn)都被預(yù)測為可匹配并且當(dāng)它們的相似性高于兩個(gè)圖像中的任何其他點(diǎn)時(shí),一對(duì)點(diǎn)(i,j)產(chǎn)生對(duì)應(yīng)關(guān)系,選擇Pij大于閾值τ并且在行和列上都大于任何其他元素的對(duì)。
作者添加了兩種機(jī)制來避免不必要的計(jì)算并節(jié)省推理時(shí)間:
i)根據(jù)輸入圖像對(duì)的難度來減少層數(shù);ii)刪除了早期被堅(jiān)定拒絕的點(diǎn)。
LightGlue的主干通過上下文增強(qiáng)了輸入視覺描述符,如果圖像對(duì)很容易,即具有高的視覺重疊和很少的外觀變化,則這些通常是可靠的,在這種情況下,早期層的預(yù)測是有信心的,并且與晚期層的預(yù)測相同,然后可以輸出這些預(yù)測并停止推理。
在每個(gè)層的末尾,LightGlue推斷每個(gè)點(diǎn)預(yù)測分配的置信度:
更高的值表示i的表示是可靠的。
對(duì)于給定層, 如果ci>λ,則認(rèn)為一個(gè)點(diǎn)是有信心的,如果所有點(diǎn)的充分率α是可信的,則停止推理:
當(dāng)不滿足退出標(biāo)準(zhǔn)時(shí),被預(yù)測為可信和不可匹配的點(diǎn)不太可能有助于后續(xù)層中其他點(diǎn)的匹配。例如,這些點(diǎn)位于圖像中明顯不可見的區(qū)域。因此在每一層都丟棄它們,只將剩余的點(diǎn)饋送到下一層??紤]到注意力的二次復(fù)雜性,這顯著減少了計(jì)算量,并且不會(huì)影響準(zhǔn)確性。
分兩個(gè)階段訓(xùn)練LightGlue:首先訓(xùn)練它來預(yù)測對(duì)應(yīng)關(guān)系,然后才訓(xùn)練置信度分類器。因此,后者不會(huì)影響最終層的準(zhǔn)確性或訓(xùn)練的收斂性。
監(jiān)督具有從兩個(gè)視圖變換估計(jì)的用真值標(biāo)注的分配矩陣P。給定單應(yīng)性或像素深度和相對(duì)姿態(tài),將點(diǎn)從圖像A wrap到B,反之亦然。
真值匹配M是在兩個(gè)圖像中具有低重投影誤差和一致深度的點(diǎn)對(duì)。當(dāng)一些點(diǎn)A和B的重投影或深度誤差與所有其他點(diǎn)足夠大時(shí),它們被標(biāo)記為不可匹配。然后最小化在每一層預(yù)測的分配的對(duì)數(shù)似然性?, 推動(dòng)LightGlue盡早預(yù)測正確的對(duì)應(yīng)關(guān)系:
然后訓(xùn)練MLP來預(yù)測每一層的預(yù)測是否與最后一層相同,最小化層的分類器的二進(jìn)制交叉熵。
評(píng)估了LightGlue在單應(yīng)性估計(jì)、相對(duì)姿態(tài)估計(jì)和視覺定位任務(wù)上的性能。
單應(yīng)估計(jì)
評(píng)估了LightGlue在HPatches數(shù)據(jù)集的平面場景上估計(jì)的對(duì)應(yīng)關(guān)系的質(zhì)量,該數(shù)據(jù)集由5個(gè)圖像對(duì)的序列組成。
報(bào)告了與GT匹配相比的精度和召回率,3個(gè)像素內(nèi)的重投影誤差。對(duì)于每個(gè)圖像對(duì),計(jì)算四個(gè)圖像的平均重投影誤差,并報(bào)告累積誤差曲線下的面積(AUC)。
從結(jié)果來看,LightGlue比SuperGlue和SGMNet有著更高的精度和相似的召回率,當(dāng)使用DLT估計(jì)單應(yīng)性時(shí),這導(dǎo)致比使用其他匹配器更準(zhǔn)確的估計(jì)。因此,LightGlue使DLT這樣一個(gè)簡單的求解器達(dá)到了與昂貴且較慢的MAGSAC相比的競爭力。在5px的粗略閾值下,LightGlue也比LoFTR更準(zhǔn)確。
相對(duì)位姿估計(jì)
評(píng)估了LightGlue在戶外場景中的姿勢(shì)估計(jì),這些場景表現(xiàn)出強(qiáng)烈的遮擋和具有挑戰(zhàn)性的照明和結(jié)構(gòu)變化。
使用MegaDepth-1500測試集的圖像對(duì)。該測試集包含來自兩個(gè)熱門攝影旅游目的地的1500對(duì)圖片,數(shù)據(jù)的收集方式是根據(jù)視覺重疊來平衡難度。這里也推薦「3D視覺工坊」新課程《面向自動(dòng)駕駛領(lǐng)域目標(biāo)檢測中的視覺Transformer》
從結(jié)果來看,LightGlue在SuperPoint特征上大大優(yōu)于現(xiàn)有的方法SuperGlue和SGMNet,并且可以大大提高DISK局部特征的匹配精度。它產(chǎn)生了更好的對(duì)應(yīng)關(guān)系和更準(zhǔn)確的相對(duì)姿態(tài),并將推理時(shí)間減少了30%。LightGlue通常比SuperGlue預(yù)測的匹配次數(shù)略少,但這些預(yù)測更準(zhǔn)確。通過在模型的早期檢測到有信心的預(yù)測,自適應(yīng)變體比SuperGlue和SGMNet快2倍以上,而且更準(zhǔn)確??紤]到準(zhǔn)確性和速度之間的權(quán)衡,LightGlue在很大程度上優(yōu)于所有方法
視覺定位任務(wù)
使用Aachen Day-Night數(shù)據(jù)集來評(píng)估在具有挑戰(zhàn)性的條件下的長期視覺定位。使用hloc遵循分層定位框架。首先使用COLMAP,在已知姿態(tài)和校準(zhǔn)的情況下,從4328幅日間參考圖像中對(duì)稀疏的3D點(diǎn)云進(jìn)行三角化。對(duì)于824個(gè)白天和98個(gè)夜間查詢中的每一個(gè),使用NetVLAD檢索50張圖像,對(duì)它們進(jìn)行匹配,并使用RANSAC和Perspective-n-Point解算器估計(jì)相機(jī)姿勢(shì)。報(bào)告了在多個(gè)閾值下的姿態(tài)召回以及在建圖和定位過程中匹配步驟的平均時(shí)間。
結(jié)果來看,LightGlue達(dá)到了與SuperGlue類似的精度,但時(shí)間少2.5倍。
優(yōu)化后的變體利用了有效的自注意力,使吞吐量增加了4倍。LightGlue因此可實(shí)時(shí)匹配多達(dá)4096個(gè)關(guān)鍵點(diǎn)。
介紹了一種用于特征匹配的深度神經(jīng)網(wǎng)絡(luò)LightGlue。在SuperGlue成功的基礎(chǔ)上,將注意力機(jī)制的力量與關(guān)于匹配問題的見解以及Transformer最近的創(chuàng)新相結(jié)合,賦予這個(gè)模型反思其自身預(yù)測可信度的能力,使計(jì)算量適應(yīng)每個(gè)圖像對(duì)的難度。LightGlue比之前表現(xiàn)最好的SuperGlue更快、更準(zhǔn)確、更容易訓(xùn)練!
目前工坊已經(jīng)建立了3D視覺方向多個(gè)社群,包括SLAM、工業(yè)3D視覺、自動(dòng)駕駛方向,細(xì)分群包括:[工業(yè)方向]三維點(diǎn)云、結(jié)構(gòu)光、機(jī)械臂、缺陷檢測、三維測量、TOF、相機(jī)標(biāo)定、綜合群;[SLAM方向]多傳感器融合、ORB-SLAM、激光SLAM、機(jī)器人導(dǎo)航、RTK|GPS|UWB等傳感器交流群、SLAM綜合討論群;[自動(dòng)駕駛方向]深度估計(jì)、Transformer、毫米波|激光雷達(dá)|視覺攝像頭傳感器討論群、多傳感器標(biāo)定、自動(dòng)駕駛綜合群等。[三維重建方向]NeRF、colmap、OpenMVS等。除了這些,還有求職、硬件選型、視覺產(chǎn)品落地等交流群。大家可以添加小助理微信: dddvisiona,備注:加群+方向+學(xué)校|公司, 小助理會(huì)拉你入群。