摘要
本文提出了 SuperGlue,一種神經網絡,用于通過聯合尋找對應關系并排除不可匹配點來匹配兩組局部特征。匹配結果通過求解一個可微的最優傳輸問題來估計,該問題的代價由一個圖神經網絡預測。我們引入了一種基于注意力的靈活上下文聚合機制,使 SuperGlue 能夠聯合推理底層三維場景和特征匹配關系。相比傳統手工設計的啟發式方法,我們的方法通過圖像對的端到端訓練,學習幾何變換的先驗和三維世界的結構規律。SuperGlue 超越了其他學習方法,在具有挑戰性的真實室內和室外環境中的位姿估計任務上達到了最先進的效果。該方法在現代 GPU 上可實現實時匹配,并可方便地集成到現代的 SfM 或 SLAM 系統中。代碼與訓練權重已在 github.com/magicleap/SuperGluePretrainedNetwork 公開提供。
1. 引言
圖像間點的對應關系對于在幾何計算機視覺任務中估計三維結構和相機位姿至關重要,如同時定位與建圖(SLAM)和運動結構恢復(SfM)。這些對應關系通常通過匹配局部特征來估計,這一過程稱為數據關聯。視角和光照的大幅變化、遮擋、模糊以及紋理缺失是導致二維到二維數據關聯特別具有挑戰性的因素。
在本文中,我們提出了一種關于特征匹配問題的新思路。與其學習更好的通用局部特征并結合簡單的匹配啟發式方法與技巧,不如從已有局部特征中直接學習匹配過程。為此,我們設計了一種新穎的神經網絡架構——SuperGlue。在 SLAM 的語境下,該任務通常[8]被分解為視覺特征提取前端與束調整或位姿估計后端,而我們的網絡正處于這兩者之間——SuperGlue 是一個可學習的 middle-end(見圖1)。
在本工作中,特征匹配的學習被視為在兩組局部特征之間尋找部分匹配關系。我們重新審視了經典的基于圖的方法,通過求解一個線性分配問題來實現匹配,而當該問題被松弛為最優傳輸問題時,可以以可微的方式進行求解。該優化問題的代價函數由一個圖神經網絡(GNN)預測。受 Transformer [61] 成功的啟發,GNN 使用了自注意力(圖像內)和交叉注意力(圖像間)機制,從而利用關鍵點之間的空間關系及其視覺外觀。這種表述形式既強制了預測結果的匹配結構,又使得代價函數能夠學習復雜的先驗,有效處理遮擋和不可復現的關鍵點。我們的方法通過圖像對進行端到端訓練——我們從一個大規模標注數據集中學習位姿估計的先驗,從而使 SuperGlue 能夠聯合推理三維場景與匹配關系。我們的工作可以應用于各種需要高質量特征對應關系的多視角幾何問題中(見圖2)。
我們展示了 SuperGlue 相較于手工設計的匹配器以及學習型內點分類器的優越性。當與深度特征提取前端 SuperPoint [18] 結合使用時,SuperGlue 在室內和室外位姿估計任務上推動了當前技術的最前沿,并為實現端到端的深度 SLAM 奠定了基礎。
2. 相關工作
局部特征匹配通常包括以下幾個步驟:i)檢測興趣點,ii)計算視覺描述子,iii)通過最近鄰(Nearest Neighbor, NN)搜索進行匹配,iv)過濾錯誤匹配,最后 v)估計幾何變換。2000 年代發展的經典流水線往往基于 SIFT [31],使用 Lowe 的比值測試(ratio test)[31]、互查(mutual check)以及如鄰域一致性(neighborhood consensus)[59, 10, 6, 49] 等啟發式方法過濾匹配,然后使用如 RANSAC [21, 43] 等魯棒求解器估計變換。
近年來,深度學習在特征匹配方面的研究主要集中于使用卷積神經網絡(CNN)從數據中學習更好的稀疏檢測器和局部描述子 [18, 19, 37, 45, 69]。為了提升判別能力,一些工作顯式地利用更廣的上下文信息,例如區域特征 [32] 或對數極坐標圖像塊(log-polar patches)[20]。也有一些方法學習如何通過將匹配分類為內點和外點來進行過濾 [33, 44, 7, 71]。這些方法雖然對匹配集合進行操作,但仍是基于最近鄰搜索,因而忽略了匹配分配結構,并丟棄了視覺信息。已有嘗試學習匹配的工作多聚焦于稠密匹配 [46] 或 3D 點云 [65],但仍存在相同的局限性。相比之下,我們提出的可學習中端(middle-end)方法在一個端到端架構中同時實現上下文聚合、匹配以及過濾。
圖匹配問題通常被表述為二次分配問題(Quadratic Assignment Problems),這是一個 NP-困難問題,求解代價高昂、復雜,因而在實際中難以應用 [30]。對于局部特征,2000 年代的計算機視覺文獻 [5, 27, 57] 使用了大量啟發式規則手工設計匹配代價函數,使得整體方法既復雜又脆弱。Caetano 等人 [9] 針對更簡單的線性分配問題學習優化代價,但其模型較淺。而我們提出的 SuperGlue 則利用深度神經網絡學習一個靈活的代價函數。
與圖匹配相關的問題是最優傳輸(Optimal Transport)[63],它是一種廣義的線性分配問題,可以通過一種高效而簡潔的近似解法——Sinkhorn 算法 [55, 12, 39] 來求解。
面向點云等集合的深度學習方法,通常致力于設計排列等變(permutation equivariant)或不變(permutation invariant)的函數,通過聚合集合中元素的信息來實現。一些方法對所有元素一視同仁,例如使用全局池化 [70, 40, 15] 或實例歸一化 [60, 33, 32];另一些方法則關注于坐標或特征空間中的局部鄰域 [41, 66]。
注意力機制(Attention)[61, 64, 62, 26] 可以實現全局以及數據相關的局部信息聚合,通過聚焦于特定元素和屬性,從而更加靈活。值得注意的是,自注意力機制可以被視為一種在完全圖上的消息傳遞圖神經網絡(Message Passing Graph Neural Network)[23, 4] 的實例。因此,我們將注意力機制應用于具有多種邊類型的圖結構,類似于 [28, 72],使得 SuperGlue 能夠學習兩個局部特征集合之間的復雜關系推理。
3. SuperGlue 架構
動機:在圖像匹配問題中,我們可以利用一些現實世界中的規律:三維世界通常是平滑的,有時是平面的;如果場景是靜態的,對于某一圖像對,所有的匹配點應遵循一個單一的極幾何變換(epipolar transform);此外,一些相機位姿的組合更可能出現。同時,二維關鍵點往往是顯著三維點(如角點或斑點)的投影,因此圖像之間的關鍵點對應關系必須滿足某些物理約束:
i)一個關鍵點在另一張圖像中最多只能有一個對應點;
ii)由于遮擋或檢測器失敗,有些關鍵點不會有匹配。
一個有效的特征匹配模型應能夠識別所有源于同一三維點的重投影之間的匹配關系,并識別出無法匹配的關鍵點。
我們將 SuperGlue(見圖 3)建模為一個優化問題,其代價函數由一個深度神經網絡預測。這種做法無需依賴領域知識或手工啟發式規則,而是通過數據學習有用的先驗信息。
形式化描述:考慮兩張圖像 A 和 B,每張圖像都有一組關鍵點位置 p p p 和對應的視覺描述符 d d d —— 我們將二者合稱為“局部特征”(local features)。位置 p p p 包括圖像中的 x x x 和 y y y 坐標以及一個檢測置信度 c c c,即 p i : = ( x , y , c ) i p_i := (x, y, c)_i pi?:=(x,y,c)i?。視覺描述符 d i ∈ R D d_i \in \mathbb{R}^D di?∈RD 可以來自像 SuperPoint 這樣的卷積神經網絡,也可以是傳統描述符如 SIFT。圖像 A 和 B 分別有 M M M 和 N N N 個局部特征,索引集合分別為 A : = { 1 , . . . , M } \boldsymbol { A } : = \left\{ 1 , . . . , M \right\} A:={1,...,M} 和 B : = { 1 , . . . , N } \boldsymbol { B } : = \left\{ 1 , . . . ,N \right\} B:={1,...,N}。
部分分配(Partial Assignment): 約束 i)和 ii)意味著對應關系來自于兩個關鍵點集合之間的一個部分分配(partial assignment)。為了便于集成到下游任務中以及提升可解釋性,我們希望每一個可能的匹配都具有一個置信度值。因此,我們定義一個部分軟分配矩陣 P ∈ [ 0 , 1 ] M × N P \in [0, 1]^{M \times N} P∈[0,1]M×N:
P 1 N ≤ 1 M a n d P ? 1 M ≤ 1 N ( 1 ) \mathbf { P 1 } _ { N } \leq \mathbf { 1 } _ { M } \quad \mathrm { a n d } \quad \mathbf { P } ^ { \top } \mathbf { 1 } _ { M } \leq \mathbf { 1 } _ { N }\quad(1) P1N?≤1M?andP?1M?≤1N?(1)
我們的目標是設計一個神經網絡,用于從兩個局部特征集合中預測分配矩陣 P P P。
3.1. 注意力圖神經網絡
除了關鍵點的位置和視覺外觀之外,整合其他上下文信息直觀上可以增強其區分度。例如,我們可以考慮關鍵點與其他可見關鍵點之間的空間和視覺關系,比如顯著關鍵點[32]、自相似關鍵點[54]、統計共現關鍵點[73]或鄰近關鍵點[58]。另一方面,第二張圖像中關鍵點的信息可以通過比較候選匹配點,或基于全局且無歧義的線索估計相對的光度或幾何變換,幫助解決歧義。
當人類被要求匹配一個模糊的關鍵點時,會來回觀察兩張圖像:篩選候選匹配點,仔細檢查每一個,并尋找幫助區分真實匹配與其他自相似點的上下文線索[11]。這暗示了一個迭代過程,能夠將注意力集中在特定位置。
因此,我們設計了 SuperGlue 的第一個主要模塊——注意力圖神經網絡(見圖3)。給定初始的局部特征,該模塊通過讓特征之間相互通信,計算匹配描述符 f i ∈ R D f_i \in \mathbb{R}^D fi?∈RD。正如我們將展示的,圖像內及跨圖像的長距離特征聚合對穩健匹配至關重要。
關鍵點編碼器:每個關鍵點 ii 的初始表示 ( 0 ) x i { \bf \ } ^ { ( 0 ) } { \bf x } _ { i } ?(0)xi?結合了其視覺外觀和位置信息。我們通過一個多層感知機(MLP)將關鍵點的位置嵌入到高維向量中,具體表示為:
( 0 ) x i = d i + M L P e n c ( p i ) ( 2 ) { ^ { ( 0 ) } } { \bf x } _ { i } = { \bf d } _ { i } + { \bf M } { \bf L } { \bf P } _ { \mathrm { e n c } } \left( { \bf p } _ { i } \right)\quad(2) (0)xi?=di?+MLPenc?(pi?)(2)
該編碼器使得圖神經網絡能夠在后續階段同時考慮外觀和位置信息,特別是在結合注意力機制時,這相當于語言處理領域廣泛使用的“位置編碼器”的一種實現方式[22, 61]。
多層圖神經網絡(Multiplex Graph Neural Network):我們考慮一個完整的圖,其節點是兩幅圖像中的關鍵點。該圖包含兩種無向邊——這是一個多層(multiplex)圖[34, 36]。圖像內部的邊,稱為自邊(self edges) E self E_{\text{self}} Eself?,連接同一圖像中所有關鍵點之間的邊。圖像之間的邊,稱為交叉邊(cross edges) E cross E_{\text{cross}} Ecross?,連接一幅圖中的關鍵點與另一幅圖中所有關鍵點。我們采用消息傳遞的形式[23, 4],沿著這兩類邊傳播信息。得到的多層圖神經網絡對每個節點維持一個高維狀態,并在每一層計算通過對所有邊的消息進行聚合后更新的表示。
閱讀全文請訪問"AI深語解構" SuperGlue:使用圖神經網絡學習特征匹配