2021年12月29日 星期三

論文筆記:SuperPoint: Self-Supervised Interest Point Detection and Description

SuperPoint [1] 也是用深度學習的方法找出圖片的特徵點位置以及對應的特徵向量。與前文介紹過的 TILDE 相比可用整張圖片當成輸入而不只是個 patch,並且也包含了 feature descriptor 的生成;與 LIFT 相比一樣可用整張圖片當成輸入,並且在 inference 的階段只需要一個類神經網路即可。

首先先介紹主要類神經網路的架構:

Superpoint

首先是 encoder,本文用的是 VGG 的 encoder,其中包含三組 maxpooling 因此輸出層為 (W/8, H/8)。Interesting point decoder 是將前面 encoder 的輸出層轉換成 (W/8, H/8, 65) 的 tensor,其中 65 維的 64 維為其對應的 8*8 grid 哪些點為特徵點,而多的一維是指完全沒有特徵點。經由此 65 維的向量可將 (W/8, H/8, 65) 再轉化成 (W, H, 1) 的輸出層,代表每個像素是否為特徵。Feature descriptor 為了速度考量為 (W/8, H/8, D) 的 tensor,再利用 bi-cubic interpolation 估計每個像素對應的 descriptor,加上 L2 normalization。

Loss function

本文用的 loss function 如下:

Loss function 1
 
Loss function 2

Loss function 3

在訓練時一次有一張圖 X、對應的特徵點位置 Y、以及其 homography 轉換後的圖片與特徵點 X' 與 Y'。Feature detector 的 loss function 只看 interest point decoder 的結果與 ground-truth 的差異(下一節會提到如何產生 ground-truth)。(2) 式中的 \(l_p\) 為一個 softmax 函數,目的是只留下特徵點。Feature descriptor 的 loss function 想要達成的是讓兩個 descriptor d 與 d' 越近越好,其中函數 s 包含了對於特徵點經由 homography 轉換後的座標位置的對應關係,目的是只留下對應的特徵向量。

訓練過程

下圖為本文的訓練過程:

Training

接下來介紹如何用 self-supervised learning 的方法找出圖片特徵點的位置。第一個步驟是用合成的圖片訓練一個 base detector,稱作 MagicPoint。接下來利用 homographic adaptation 的方法來得到更穩定的特徵點位置。

homographic adaptation

上圖為 homographic adaptation 的示意圖。大意是產生許多 homography 來變換一張圖片、利用 MagicPoint 的類神經網路取出特徵點的位置、再轉換成原圖,於是得到了在不同 homography 變換下取出的特徵點的位置,將它們疊加起來即可當成訓練過程中的 ground-truth。

參考資料

[1] SuperPoint: Self-Supervised Interest Point Detection and Description

沒有留言:

張貼留言