本文要介紹兩篇關於用深度學習訓練 image patch 的 descriptor 的方法 MatchNet [1] 與 L2-Net [2]。
MatchNet
以下是 MatchNet 的架構圖:
類神經網路的架構相當單純:在訓練時兩個 patch 都經由 Feature Network,再由 Metric network 與 cross-entropy loss 來當 loss function;Label 即為這兩個輸入的 patch 是否為屬於同一個三維世界中的特徵點。而在 inference 階段則直接輸出 Feature network 的 Bottleneck 層。
本文提到了訓練樣本抽樣的方法。在訓練 patch feature descriptor 時 negative pair 的數目遠大於 positive pair 的數目,因此本文使用 reservoir sampling 的方法(如下圖)使得正負樣本的數目一樣多。
上圖中的 group 代表同一個三維空間特徵點對應的所有 patch,因此 \(p_i, p_j\) 為正樣本,而 \(p_u, p_v\) 為負樣本。
本文用的衡量標準為在演算法找出 95% 的配對 patch 時(recall),配對的錯誤率有多少(precision)。
L2-Net
L2-Net 加入了幾個新想法,包含用漸進式抽樣來增加負樣本的個數,以及利用 loss function 使類神經網路更能描述 descriptor 的特性。
漸進式抽樣
假設整個訓練資料中有 P 個三維空間的點對應的 patch,每次取 \(p_1\) 個點,另外 \(p_2\) 個點從 \(P - p_1\) 中取樣,令 \(p = p_1 + p_2\),將每一個 patch 找一個配對的,則一個 batch 中會有 2p 個 image patch。假設 Y 為 descriptor 對應的矩陣,本文用以下式子計算矩陣 D,而在 D 中對應的 descriptor(有 p 對)應該要很接近,而其他 \(p^2 - p\) 對的距離會比較遠。
Loss function
本文用了三個 loss function 相加:
- Error term for descriptor similarity:目的是讓矩陣 D 的對角線上越小越好。
- Error term for descriptor compactness:目的是讓 descriptor 越緊湊越好。
- Error term for intermediate feature maps:目的是讓中間的 feature map 也能夠達成使相同特徵點的 patch 的 descriptor 越相似越好。
實驗結果
可以看出比 MatchNet 好不少。
沒有留言:
張貼留言