一篇BMVC18的論文,關於semantic keypoints matching、dense matching的工作,感覺比純patch matching有意思,記錄一下。
1. 摘要
提出一種針對correspondence matching的直接解決方案。沒有采用一貫的基於正負樣本對(一般需要困難負樣本挖掘)的解決方案,本文提出了一種相似性熱圖生成器(similarity heatmap generator )來直接處理。對於所有query points直接在目標圖像中生成相似性熱圖。結果大部分做到了SOTA。
2. 介紹
Correspondence search在好多領域都很重要。這一任務可以有很多變體:finding exact matches, e.g., in stereo matching, to finding semantic correspondence。早期工作肯定依賴於SIFT,SURF,近來都用siamese net做,例如用預訓練VGG做image-to-image semantic keypoint matching ,其共同點都是要不利用一個matching 框架或在描述子空間搜索最近鄰。然而作者認為這些工作都沒有直接針對精確對應點定位而訓練。

作者以精確對應匹配為目標,端到端搭建了包括feature generator和match network兩個組成部分的網絡。heatmap的峰值就是目標圖像的位置。heatmaps based representation可以實現 N-pairs based metric learning, 也即無需困難負樣本采樣。
本文的框架可以用來預測稀疏抑或稠密的視覺對應關系。利用多類分類損失來訓練網絡,且不含有spatial transformer layers。且我們的方法直接在raw images上操作,不需region proposals。評估數據集有:PF-Pascal , PF-Willow , Pascal-Parts , the KITTI-Flow 2015 [19] and MPI Sintel [4] datasets 。網絡trained from sctatch。
總結貢獻如下:
- 提出一個端到端的方法來解決correspondence search問題。
- 所提出的matching network可以被擴展到任何標准的深度網絡來端到端解決精確對應匹配問題。
- 基於熱圖的表示enables N-pairs based metric learning,且無需困難負樣本采樣(triplet、contrastive divergence based metric learning)。
3. 相關工作
Correspondence search是一個CV中的基礎問題,早期有SIFT\SURF\DAISY。接着Siamese net被用來patch similarity、face embedding、stereo matching,又有人利用預訓練的net來做semantic correspondence search。利用triplet loss做fine-grained 圖像ranking。又有Siamese net利用內積layer和多分類loss 做高效視差估計。盡管表現都很好,但之前的方法都是估計patch-patch或patch-image相似性,且對於多關鍵點的匹配相似性需要訓練測試時多次前向傳播。

![]()
近來的方法,基於image-image的semantic keypoints matching被提出。Choy提出的“Universal Correspondence Network”+spatial transformer layers利用metric learning方法高效訓練,對於匹配多個關鍵點在預測時需要一次單向傳播。然而因為是metric learning,需要額外的困難負樣本挖掘。所以額外引入了distance measure和k近鄰超參數。與之相比我們提出的端到端網絡不需困難負樣本挖掘。Kim提出了一個全卷積自相似性描述子對於稠密語義關鍵點匹配,然鵝他們的方法仍需要在頂端利用matching framework來實現對應關系。相比我們的方法是self contained且直接預測correspondences。【10】提出利用appearances和geometry匹配一對圖像中的region proposals。我們的方法只需要利用appearances,無需region proposals。
我們思路來源於論文Improved Deep Metric Learning with Multi-class N-pair Loss Objective。文中提出了N-pairs loss,比contrastive divergence和triplet loss實現了更好的結果。然而他們的方法是為了實現patched based matching。而本文利用N-pairs loss是為了解決key points matching。
4. Correspendence Search
解釋Correspendence Search:給定source image I1,I1中有query points pn,此外目標target image I2,目標很明確就是要找target image中與I1中每個關鍵點匹配的關鍵點qn。框架如圖1,包括feature generator和matching network。
feature generator即以source image I1和target image I2為輸入,生成特征F1和F2。matching network以F1、F2為輸入生成N個相似性熱圖,對於N個query points而言。
1) Feature Generator
如圖1,兩個siamese分支都是feature generator,包含了兩份google-net拷貝。輸入圖片,輸出特征圖F1,F2。
2) Matching Network
用來生成peaked similarity熱圖,對於目標image中的每個query point而言。訓練時最小化預測的相似圖與gt的差異,無需困難負樣本挖掘,因為這個網絡已將其作為訓練的一部分來產生所有query point的負樣本的不相似特征。網絡結構在圖2。包含一系列簡單層,無可訓練參數。圖很直觀了,不多做解釋。
從圖2可以看到matching network主要有7個操作:Crop layer、Reshape R1、Copy、Reshape R2、Dot Product、SoftMax、Reshape R3。很好理解,這里直接粘過來:

內積操作就是對兩個特征處理結果的結合:

內積層高效計算每個cropped特征與F2中的每個特征的相似度。

訓練:
為每個query point賦ground truth:

訓練樣本:![]()
最小化預測S與真值S之間的交叉熵損失:

測試:
為每個query點pn預測一個對應的匹配點qn:

qn即為所預測的相似度圖中的峰值peak。在定位peak之前利用bilinear-sampling來上采樣相似度圖。
5. 實驗
在semantic keypoints matching 和 dense matching兩個任務上做實驗。
1)semantic keypoints matching
數據集:PF-PASCAL [9], PF-Willow [9] and Pascal-Parts [30] datasets
評價指標:PCK

2)dense correspondences
數據集: KITTI-Flow 2015 [19] and MPI Sintel [4] benchmarks

DAISY [27], DSP [12], and DM [20],這些傳統方法 應用 global optimization作為預處理步驟,實現了更精准的對應。本文沒有采用任何預處理,和spatial transformer layers,沒有明顯的過擬合。達到了SOTA。
