Open main menu
IT人
用基礎模型指導特徵傳播,首個泛化型影像匹配器OmniGlue搞定未見過域
机器之心
發表於
2024-05-27
模型
特徵
第一個以「泛化」能力為核心設計原則的可學習影像匹配器來了!
對於想要獲取兩張影像之間的細粒度視覺對應關係而言,區域性影像特徵匹配技術是高不錯的 xuanz,對於實現準確的相機
姿態估計
和 3D 重建至關重要。過去十年見證了從手工製作到基於學習的影像特徵的演變。
最近,研究社群又提出了新穎的可學習影像匹配器,在傳統
基準
上實現了效能的不斷改進。儘管已經取得了長足的進步,但這些進展忽略了一個重要方面:影像匹配模型的泛化能力。
如今,大多數區域性特徵匹配研究都集中在具有豐富訓練資料的特定視覺領域(如室外和室內場景),這就導致了模型高度專用於訓練領域。遺憾的是,這些方法的效能在域外資料(如以物件為中心或空中捕獲)上通常急劇下降,在某些情況下甚至可能並不比傳統方法好很多。
因此,傳統的域無關技術(如 SIFT)仍被廣泛用於獲取下游應用的姿態。並且由於收集高質量註釋的成本很高,在每個影像域都有豐富的訓練資料是不現實的,就像其他一些視覺任務一樣。因此,社群應該專注於開發架構改進,使得可學習的匹配方法具有泛化能力。
近日,受上述觀察的啟發,德克薩斯大學奧斯汀分校和谷歌研究院的研究者聯合提出了
OmniGlue,這是第一個以泛化為核心原則設計的可學習影像匹配器
。在與域無關的區域性特徵基礎上,他們引入了用於提高匹配層泛化效能的新技術:基礎模型指導和關鍵點位置注意力指導。
論文地址:https://arxiv.org/pdf/2405.12979
專案主頁:https://hwjiang1510.github.io/OmniGlue/
如圖 1 所示,透過引入的技術,OmniGlue 能夠在分佈外領域上實現更好泛化效能,同時保持源領域上的高質效能。
研究者首先
整合了基礎模型的廣泛視覺知識
。透過對大規模資料進行訓練,基礎視覺模型 DINOv2 在各種影像域中的各種任務(包括穩健的區域級匹配)中表現良好。儘管基礎模型所產生匹配結果的粒度有限,但當專門的匹配器無法處理域位移時,這些模型可以為潛在的匹配區域提供可泛化的指導。因此,他們使用 DINO 來指導影像間特徵傳播過程,降低不相關的關鍵點並鼓勵模型融合來自潛在可匹配區域的資訊。
接著
利用關鍵點位置資訊來指導資訊傳播過程
。研究者發現,當模型應用於不同領域時,以往的位置編碼策略會損害效能。這促使他們與用於估計對應關係的匹配描述符區分開來。研究者提出了一種新穎的關鍵點位置指導
注意力機制
,從而避免過於專注關鍵點的訓練分佈和相對姿態變換。
透過實驗,研究者評估了 OmniGlue 在各種視覺領域的泛化能力,包括合成影像和真實影像,從場景級到以物件為中心和空中資料集,期間使用小基線和寬基線相機。與以往工作相比,OmniGlue 展示出顯著的改進。
方法概覽
下圖 2 概述了 OmniGlue 方法,主要包括以下四個階段。
首先,研究者使用兩種互補型別的編碼器提取影像特徵,包括了專注於通用細粒度匹配的 SuperPoint 以及對粗略但廣泛的視覺知識進行編碼的視覺基礎模型 DINOv2。
其次,研究者使用這些
特徵構建
關鍵點關聯圖,包括影像內和影像間。
第三,研究者基於構建的圖在兩張影像中的關鍵點之間傳播資訊,分別使用
自注意力
層和交叉注意力層進行影像內和影像間通訊。
最後,一旦獲得改進後的描述符,研究者應用最佳匹配層來生成兩張影像中關鍵點之間的
對映
。
在具體細節上,OmniGlue 方法主要包含以下幾步。
特徵提取。輸入是兩張具有共享內容的影像,表示為 I_A 和 I_B。研究者將這兩張影像的 SuperPoint 關鍵點集表示為 A := {A_1, ..., A_N } 和 B := {B_1, ..., B_M}。N 和 M 分別是 I_A 和 I_B 的已識別關鍵點的數量。每個關鍵點都與其 SuperPoint 區域性描述符 d ∈ R^C 相關聯。
利用 DINOv2 構建圖形。研究者利用 DINOv2 特徵來指導影像間圖形的構建。如下圖 3(左)所示,他們以 G_B→A_i 為例。對於關鍵點集合 A 中的每個關鍵點 A_i,研究者計算其與集合 B 中所有關鍵點的 DINOv2 特徵相似度。
具有新穎指導的資訊傳播。研究者根據關鍵點圖執行資訊傳播,這一模組包含了多個塊,每個塊都有兩個注意力層。第一個基於影像內圖更新關鍵點,執行
自注意力
;第二個基於影像間圖更新關鍵點,執行交叉注意力。
匹配層和
損失函式
。使用改進的關鍵點表示來生成成對相似度矩陣:
對比 SuperGlue 和 LightGlue
SuperGlue 和 LightGlue 都使用注意力層進行資訊傳播。不同的是,OmniGlue 利用基礎模型來指導這個過程,這對遷移到訓練期間未觀察到的影像域有很大幫助。
在區域性描述符改進方面,與 SuperGlue 不同,OmniGlue 解耦了位置和外觀特徵。作為參考,SuperGlue 將關鍵點表示為 d + p,將兩個特徵糾纏在一起,其中位置特徵也用於產生匹配結果。
與 OmniGlue 的設計類似,LightGlue 消除了更新的描述符對位置特徵的依賴,但提出了一種非常具體的位置編碼公式,基於旋轉編碼,並且僅在
自注意力
層中。
總之,SuperGlue 是最接近 OmniGlue 的模型,可作為直接對比的參考。也因此,研究者使用 SuperGlue 作為實驗驗證的主要參考比較。
實驗結果
研究者在下表 1 中列出了用於評估 OmniGlue 的資料集和任務。
從 Synthetic Homography(SH)到 MegaDepth(MD)資料集,如下表 2 所示,與基礎方法 SuperGlue 相比,OmniGlue 不僅在領域內資料上表現出優異的效能,而且還表現出強大的泛化能力。
從 MegaDepth(MD)到其他領域,如下表 3 所示,OmniGlue 不僅在 MegaDepth-1500 上實現了與 SOTA 稀疏匹配器 LightGlue 相當的效能,而且與所有其他方法相比,在 6 個新領域中的 5 個領域中表現出更好的泛化能力。
研究者在下圖 5 和圖 4 中分別展示了新領域上的零樣本泛化效能以及在源領域上的效能。
最後如下表 4 所示,OmniGlue 更容易適應目標領域。
更多技術細節和實驗結果請參閱原論文。
相關文章
java 基礎 泛型
2019-02-26
Java
泛型
Java基礎-泛型
2022-02-10
Java
泛型
JavaSE基礎:泛型
2018-01-31
Java
泛型
TypeScript基礎--泛型
2018-03-11
TypeScript
泛型
【Java基礎】泛型
2016-06-27
Java
泛型
物件導向基礎(2)--抽象類 介面 集合 泛型
2014-03-14
物件
抽象
泛型
[.net 物件導向程式設計基礎] (18) 泛型
2015-06-10
物件
程式設計
泛型
一個小栗子聊聊 JAVA 泛型基礎
2016-11-29
Java
泛型
Go泛型基礎使用
2022-01-15
Go
泛型
java-基礎-泛型
2016-07-29
Java
泛型
Java基礎-泛型詳解
2019-01-19
Java
泛型
【Java反射】Java 泛型基礎
2019-01-19
Java
反射
泛型
java基礎複習-----泛型
2020-11-01
Java
泛型
Java基礎之泛型方法
2020-09-23
Java
泛型
corejava基礎知識(3)-泛型
2019-03-13
Java
泛型
C#基礎:泛型委託
2021-09-09
C#
泛型
Java基礎——深入理解泛型
2020-09-17
Java
泛型
Java基礎之淺談泛型
2022-04-06
Java
泛型
基礎才是重中之重~這時應該用泛型方法了
2014-09-29
泛型
【傳統影像處理】1 數字影像基礎
2020-11-07
26. 企業級開發基礎7:物件導向特徵(多型)
2017-05-23
物件
特徵
多型
JAVA基礎之九-泛型(通用型別)
2024-10-10
Java
泛型
型別
Java 基礎 一文搞懂泛型
2021-04-29
Java
泛型
java入門基礎學習----泛型
2018-10-06
Java
泛型
java基礎學習之十三:泛型
2016-06-10
Java
泛型
銀行業保險業數字化轉型指導意見下發,IT 基礎架構團隊如何應對挑戰?
2022-03-11
行業
架構
泛型類、泛型方法及泛型應用
2021-10-09
泛型
javascript基礎(事件的傳播)(三十五)
2017-02-14
JavaScript
事件
【一天一個基礎系列】- java之泛型篇
2021-02-09
Java
泛型
Java基礎知識掃盲(四)——泛型
2018-08-29
Java
泛型
C#基礎:泛型的理解和使用
2016-06-08
C#
泛型
ICLR 2024|影像匹配新突破!GIM:首個從網際網路影片中學習通用影像匹配器的框架
2024-03-06
ICLR
框架
【Java】瘋狂Java基礎(一)——物件導向的特徵:繼承、封裝和多型
2018-03-28
Java
物件
特徵
繼承
封裝
多型
Java中泛型的基礎到提高《精簡》
2015-08-16
Java
泛型
基礎篇:深入解析JAVA泛型和Type型別體系
2020-10-08
Java
泛型
型別
CVPR 2024 | 谷歌提出OmniGlue:特徵匹配新工作
2024-05-27
谷歌
特徵
C++ 泛型程式設計基礎:模板通識
2016-11-16
C++
泛型
程式設計
面試中Java泛型問題一文搞定
2020-12-27
面試
Java
泛型