SuperGlue:使用圖神經網絡學習特征匹配

摘要

本文提出了 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:使用圖神經網絡學習特征匹配

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/87115.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/87115.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/87115.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ssh -T git@github.com失敗后解決方案

這個錯誤表示你的 SSH 連接無法到達 GitHub 服務器。以下是詳細解決方案,按照優先級排序: 首選解決方案:使用 SSH over HTTPS(端口 443) 這是最有效的解決方案,因為許多網絡會阻止 22 端口: …

從蘋果事件看 ARM PC市場的未來走向

最近,蘋果宣布部分搭載 Intel 處理器的 Mac 不再支持最新的 macOS 系統更新,這一消息猶如一顆石子投入平靜湖面,激起層層漣漪。它不僅讓 Intel 芯片在 Mac 產品線上徹底成為歷史,也促使我們重新審視 PC 行業的發展脈絡&#xff0c…

vue + element ui 實現超出寬度展示..,鼠標移入顯示完整內容

vue element ui 實現超出寬度展示…&#xff0c;鼠標移入顯示完整內容 代碼理念&#xff1a; 當高度大于對應行數的高度 則說明需要展示"…" 子組件 <template><div class"tooltip"><div ref"tooltipRef" :class"[tooltip…

HarmonyOSNext應用無響應全解析:從機制到實戰的卡死問題排查

HarmonyOSNext應用無響應全解析&#xff1a;從機制到實戰的卡死問題排查 ##Harmony OS Next ##Ark Ts ##教育 本文適用于教育科普行業進行學習&#xff0c;有錯誤之處請指出我會修改。 喂喂喂&#xff01;應用卡成PPT了&#xff1f;點啥都沒反應&#xff1f;別慌&#xff01…

git 遷移之獲取原庫所有分支

以下是一個安全的 Bash 腳本&#xff0c;用于將遠程 Git 倉庫的所有分支檢出到本地&#xff08;自動跳過已存在的分支&#xff09;&#xff1a; #!/bin/bash# 獲取所有遠程分支&#xff08;排除 HEAD&#xff09; remote_branches$(git branch -r | grep -v HEAD\|->)# 循環…

設計模式 | 適配器模式

適配器模式&#xff08;Adapter Pattern&#xff09; 是結構型設計模式中的連接器大師&#xff0c;它允許不兼容接口的類能夠協同工作。本文將深入探索適配器模式的核心思想、實現技巧以及在C中的高效實踐&#xff0c;解決現實開發中的接口兼容性問題。 為什么需要適配器模式 …

RTL 級機器人電機控制器的 FPGA 設計

借助Verilog&#xff0c;在FPGA中實現了帶編碼器的兩臺電機的電機控制系統的RTL級設計。 介紹 借助硬件描述語言 (HDL) Verilog 和 AMD Vivado 設計套件&#xff0c;在 AMD Spartan-7 FPGA 中實現帶編碼器的兩個電機的控制器系統的 RTL 設計。 在這個項目中&#xff0c;使用了搭…

4_Flink CEP

Flink CEP 1、何為CEP&#xff1f; CEP&#xff0c;全稱為復雜事件處理&#xff08;Complex Event Processing&#xff09;&#xff0c;是一種用于實時監測和分析數據流的技術。 CEP詳細講解&#xff1a; CEP是基于動態環境的事件流的分析技術&#xff0c;事件是狀態變化&am…

容器基礎知識2-K8s 和 Docker 的關系與管理邏輯詳解

K8s 和 Docker 的關系與管理邏輯詳解 一、先搞懂&#xff1a;Docker 和 K8s 分別是做什么的&#xff1f; Docker&#xff08;容器工具&#xff09;&#xff1a;好比「集裝箱工廠」&#xff0c;負責把應用和依賴打包成標準化容器&#xff08;類似集裝箱&#xff09;&#xff0…

QT MaintenanceTool 登錄無法找到 QtAccount 憑據

親測有效&#xff1a;QT6 Maintenance Tool 登錄問題_qt6 maintenancetool-CSDN博客 將ini這個配置文件移出文件夾后&#xff0c;在切換自己賬戶登錄即可

華為云Flexus+DeepSeek征文|利用華為云一鍵部署 Dify 平臺并接入 DeepSeek 大模型,構建長篇文章生成助手

目錄 前言 1 華為云一鍵部署 Dify 平臺 1.1 華為云 Dify 平臺介紹 1.2 部署過程介紹 1.3 登錄 Dify 平臺 2 接入華為云 ModelArts Studio 中的 DeepSeek 大模型 3 構建長篇文章生成助手 3.1 簡要介紹長篇文章生成助手 3.2 開始節點 3.3 生成標題和大綱&#xff08;LL…

js的一些基礎概念總結

1.變量聲明 首先js變量聲明有三種&#xff0c;var&#xff0c;const&#xff0c;let&#xff0c;這三種變量聲明中我們第一優先使用const&#xff0c;需要改變這個值的時候我們用ley&#xff0c;var是盡量不去使用。 那么我們現在來總結一下三種聲明變量的區別。首先是var let …

防 XSS和CSRF 過濾器(Filter)

會話管理存在問題&#xff1a; 1.服務集群部署或者是分布式服務如何實現會話共享 2.會話的不同存儲地方的安全性問題 答&#xff1a; 會話共享 可以使用后端集中管理(redis)或者客戶端管理 &#xff08;jwt&#xff09;&#xff1b; 存儲安全性 這個還真的沒有太好的方式&…

鴻蒙容器組件 WaterFlow、FlowItem解析:動態瀑布流布局實踐

一、引言&#xff1a;不規則布局的智能化解決方案 在圖片社交、電商導購、資訊聚合等現代應用場景中&#xff0c;瀑布流布局以其靈活的空間利用率和自然的視覺流動感成為界面設計的重要選擇。鴻蒙提供的 WaterFlow 與 FlowItem 組件&#xff0c;通過智能布局算法與聲明式語法&…

概率密度基本概念

概率密度&#xff08;Probability Density&#xff09;是概率論中用于描述隨機變量分布的一種方式&#xff0c;特別適用于連續隨機變量。它并不是一個概率值&#xff0c;而是表示單位范圍內的概率大小或“濃度”。更具體地說&#xff0c;概率密度表示在某個特定值附近&#xff…

10-1 MySQL 索引優化與查詢優化

10-1 MySQL 索引優化與查詢優化 文章目錄 10-1 MySQL 索引優化與查詢優化1. 數據準備2. 索引失效案例2.1 索引字段&#xff1a;全值匹配最優2.2 索引字段&#xff1a;最佳左前綴法則2.3 主鍵插入順序2.4 索引字段進行了&#xff1a;計算、函數、類型轉換(自動或手動)導致索引失…

基于目標驅動的分布式敏捷開發

研究結論 風險對項目目標的影響 時間目標&#xff1a;需求管理不當&#xff08;如需求優先級不明確、多產品負責人需求沖突&#xff09;、架構變更導致的返工、跨站點協調問題&#xff08;如第三方依賴、通信基礎設施不足&#xff09;是影響項目時間的主要風險因素。質量目標&…

高通手機跑AI系列之——穿衣試裝算法

環境準備 手機 測試手機型號&#xff1a;Redmi K60 Pro 處理器&#xff1a;第二代驍龍8移動--8gen2 運行內存&#xff1a;8.0GB &#xff0c;LPDDR5X-8400&#xff0c;67.0 GB/s 攝像頭&#xff1a;前置16MP后置50MP8MP2MP AI算力&#xff1a;NPU 48Tops INT8 &&…

opencv入門(5)圖像像素的讀寫操作和算術運算

文章目錄 1 圖像遍歷與修改1.1 使用數組1.2 使用指針 2 圖像的算術運算2.1 一般算術操作2.2 算術API 1 圖像遍歷與修改 C中支持 數組遍歷 和 指針方式遍歷 1.1 使用數組 訪問使用 image.at(row,col) 進行訪問 如果是單通道灰度圖&#xff0c;就使用image.at進行讀取 如果是三…

Stable Diffusion入門-ControlNet 深入理解-第三課:結構類模型大揭秘——深度、分割與法線貼圖

大家好,歡迎回到Stable Diffusion入門-ControlNet 深入理解系列的第三課! 在上一課中,我們深入探討了 ControlNet 文件的命名規則,以及線條類 ControlNet模型的控制方法。如果你還沒有看過第二篇,趕緊點這里補課:Stable Diffusion入門-ControlNet 深入理解 第二課:Contr…