作者:泡椒味的口香糖
0. 筆者個人體會
特征匹配包括稀疏匹配和稠密匹配,這方面的深度模型這兩年很多了,效果也都很好。但是同時實現(xiàn)稀疏匹配和稠密匹配的通用模型還比較少,主要是因為聯(lián)合訓(xùn)練會引入大量噪聲,模型架構(gòu)不好設(shè)計。而且相關(guān)的訓(xùn)練數(shù)據(jù)不好找,直接把幾個數(shù)據(jù)集堆一起訓(xùn)練又會出現(xiàn)各種各樣的域問題。
最近,浙大就開源了一項工作,以一個通用模型同時實現(xiàn)稀疏匹配和稠密匹配。筆者認(rèn)為,這篇文章的意義不是提出了一個最新的匹配模型,而在于通用模型的設(shè)計+訓(xùn)練思路。學(xué)習(xí)了這種思路,就可以將這種框架泛化到其他任務(wù)上。
1. 效果展示
浙大最新發(fā)布的RGM實現(xiàn)了一個通用模型,具體效果是同時實現(xiàn)稠密匹配和稀疏匹配。這里面的稠密匹配也就是光流匹配,還可以根據(jù)匹配關(guān)系投影RGB圖像做兩視角重建。
與其他SOTA方法相比,RGM估計的光流更細(xì)膩,邊緣更完整。
目前這篇文章已經(jīng)開放了github,但是暫時代碼還沒有開源,感興趣的小伙伴可以跟蹤一下。下面來看一下具體的論文信息。
2. 摘要
在一對圖像中尋找匹配的像素是具有各種應(yīng)用的基本計算機視覺任務(wù)。由于光流估計和局部特征匹配等不同任務(wù)的特定要求,以前的工作主要分為稠密匹配和稀疏特征匹配,側(cè)重于特定的體系結(jié)構(gòu)和特定任務(wù)的數(shù)據(jù)集,這可能在一定程度上阻礙了特定模型的泛化性能。在本文中,我們提出了一個稀疏和稠密匹配的深度模型,稱為RGM (魯棒通用匹配)。特別地,我們精心設(shè)計了一個級聯(lián)的GRU模塊,通過在多個尺度上迭代地探索幾何相似性來進(jìn)行細(xì)化,然后使用一個附加的不確定性估計模塊來進(jìn)行稀疏化。為了縮小合成訓(xùn)練樣本和真實世界場景之間的差距,我們通過以更大的間隔生成光流監(jiān)督,來構(gòu)建具有稀疏匹配真值的新的大規(guī)模數(shù)據(jù)集。因此,我們能夠混合各種稠密和稀疏匹配數(shù)據(jù)集,顯著提高訓(xùn)練多樣性。通過在大規(guī)模混合數(shù)據(jù)上以兩階段的方式學(xué)習(xí)匹配和不確定性估計,我們提出的RGM的泛化能力得到了極大的提高??缍鄠€數(shù)據(jù)集的zero-shot匹配和下游幾何估計實現(xiàn)了卓越的性能,大大超過了以前的方法。
3. 算法解析
RGM這篇文章的目的是要設(shè)計一個統(tǒng)一的框架來同時實現(xiàn)稠密匹配和稀疏匹配,但本身兩個任務(wù)的特性不同,直接設(shè)計多任務(wù)網(wǎng)絡(luò)效果不好。所以作者的思想就很巧妙,先設(shè)計一個光流稠密匹配網(wǎng)絡(luò),再緊跟一個稀疏化網(wǎng)絡(luò)。
整個Pipeline很直觀,可以分成特征提取、稠密匹配、稀疏化三個部分。首先將輸入圖像利用CNN和Transformer提取特征金字塔,然后使用級聯(lián)GRU的網(wǎng)絡(luò)進(jìn)行稠密匹配,之后通過不確定性估計來過濾得到稀疏匹配,匹配結(jié)果就可以直接用于位姿估計、兩視角重建等下游任務(wù)。
這里面還有幾個細(xì)節(jié)需要注意:
1、為什么要提取特征金字塔,而不是使用某個特征層?
雖然感受野更大,但在1/8分辨率下會損失很多細(xì)節(jié)。作者這里使用的是{1/8,1/4,1/2}分辨率的三層金字塔,其中前兩層使用Swin-Transformer的自我注意和交叉注意進(jìn)行特征增強。
2、這個GRU模塊是啥?
這里也是一個trick,就是不在每個尺度上都建立圖像對的關(guān)聯(lián),而在金字塔的兩個底層建立局部關(guān)聯(lián)。對于1/8的低分辨率層執(zhí)行點積運算:
其中Fr和Ft是特征金字塔,D是維度。然后再用平均池化作為RAFT來構(gòu)建相關(guān)金字塔,給定當(dāng)前的光流估計f和半徑r,就可以構(gòu)建兩個高分辨率的特征融合計算:
給定相關(guān)性和上下文信息,就可以估計運動信息并將其饋送給GRU優(yōu)化光流殘差,然后迭代得優(yōu)化光流:
3、稀疏化如何實現(xiàn)?
在獲得稠密匹配之后,可以直接凍結(jié)匹配網(wǎng)絡(luò)并開始稀疏化。根據(jù)估計出的光流可以warp特征圖和RGB圖計算差異。然后將差值送給CNN計算損失,具體是根據(jù)mask真值計算的二進(jìn)制交叉熵:
4、為什么要解耦訓(xùn)練?
具體訓(xùn)練過程是先訓(xùn)練匹配網(wǎng)絡(luò),然后凍結(jié)這部分,再單獨訓(xùn)練稀疏化網(wǎng)絡(luò)。作者認(rèn)為直接聯(lián)合訓(xùn)練的話,會引入大量噪聲,導(dǎo)致光流預(yù)測不準(zhǔn)確。
4. 實驗
RGM的訓(xùn)練分匹配學(xué)習(xí)+不確定學(xué)習(xí)兩階段進(jìn)行,也就是所謂的解耦訓(xùn)練。
在匹配學(xué)習(xí)階段,首先使用帶稀疏匹配真值的MegaDepth(1.4 M對圖像)來訓(xùn)練(200k次迭代),然后使用ScanNet+FlyingThings3D+TartanAir+MegaDepth的混合數(shù)據(jù)集(4 M對圖像)進(jìn)行增強學(xué)習(xí)(240k次迭代)。Batch size為16,學(xué)習(xí)率從2e-4余弦退火至1e-5。在不確定學(xué)習(xí)階段,直接凍結(jié)稠密匹配網(wǎng)絡(luò)的參數(shù)。在MegaDepth和ScanNet上訓(xùn)練了2個epoch,batch size為4,學(xué)習(xí)率固定1e-4。注意,為了平衡不同數(shù)據(jù)集之間的差異,還對TartanAir進(jìn)行了大間距采樣。
評估也是一個零樣本泛化實驗。匹配估計使用ETH3D+HPatches+KITTI+TUM數(shù)據(jù)集,位姿估計(下游任務(wù))使用TUM+YFCC數(shù)據(jù)集,光流估計使用Sintel數(shù)據(jù)集。
首先是解耦訓(xùn)練和聯(lián)合訓(xùn)練的對比,證明他們做提出的解耦訓(xùn)練是有效的??吹竭@里筆者也有個疑問,有的模型是聯(lián)合訓(xùn)練效果更好,有的模型卻是解耦訓(xùn)練更好,希望有小伙伴能傳授一下經(jīng)驗。
訓(xùn)練使用數(shù)據(jù)集的對比,顯然使用的數(shù)據(jù)集越多效果越好。
特征匹配最直觀的定性對比,相同顏色代表預(yù)測的匹配關(guān)系。相較于之前的SOTA方法可以取得更多的匹配關(guān)系,而且語義預(yù)測也更好(大部分匹配關(guān)系都集中在摩托車和人上)。
光流估計的對比,也是一個zero-shot實驗。對比方案包括光流專用模型、稠密幾何估計方法,還有通用匹配模型,RDM效果最優(yōu)。這里也推薦「3D視覺工坊」新課程如何學(xué)習(xí)相機模型與標(biāo)定?(代碼+實戰(zhàn))》。
最后是一個在TUM和YFCC上進(jìn)行位姿估計的zero-shot評估,也是匹配性能的進(jìn)一步驗證。
5. 總結(jié)
一句話總結(jié):RGM以一個通用模型同時實現(xiàn)了稀疏和稠密匹配。具體創(chuàng)新點是級聯(lián)GRU細(xì)化模塊+用于稀疏化的不確定性估計模塊+解耦訓(xùn)練機制。除了評估特征匹配的精度,作者還做了很多下游任務(wù)的評估,比如位姿估計、兩視角重建。感覺這篇文章還在審稿中,后續(xù)應(yīng)該會上傳新版本的文章和代碼。
審核編輯:黃飛
-
Gru
+關(guān)注
關(guān)注
0文章
12瀏覽量
7471 -
特征提取
+關(guān)注
關(guān)注
1文章
29瀏覽量
9803 -
匹配網(wǎng)絡(luò)
+關(guān)注
關(guān)注
0文章
13瀏覽量
9603
原文標(biāo)題:浙大最新開源RGM | 魯棒且通用的特征匹配!
文章出處:【微信號:3D視覺工坊,微信公眾號:3D視覺工坊】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論