HardNet

Mishchuk 2017 · 論文

一行要約 — 各バッチ内でマッチングペアと最も難しいネガティブとの間のマージンを最大化することで、コンパクトな128次元ローカルパッチ記述子を学習する手法。サンプリング戦略が損失関数やアーキテクチャの複雑さよりも重要であることを示している。

問題

SIFTのような古典的記述子は手作りであり、強い見た目の変化に対する識別力に限界があるが、当時の研究では、実際の画像マッチングや3D再構成においてSIFTのバリアントが学習された記述子(MatchNet、DeepCompare、TFeat)をなお上回ることが示されていた — それらの手法は、対比損失やトリプレット損失をランダムにサンプリングされたネガティブに対して学習させており、既に分離が容易なペアに大半の勾配を浪費していた。HardNetの出発点は、SIFTのマッチング基準(Loweの最近傍・第2近傍比によるテスト)である:良い記述子とは、正しいマッチが最も近い不正解のマッチよりも近い記述子であり、学習はまさにそれを最適化すべきだというものである。

手法とアーキテクチャ

バッチ内最難ネガティブサンプリング。 マッチングするパッチペア(アンカー、ポジティブ;各3D点につき正確に1ペア)のバッチX=(Ai,Pi)i=1..n\mathcal{X}=(A_i,P_i)_{i=1..n}がネットワークに通され、GPU上で完全なn×nn \times nのL2距離行列が計算される。単位長の記述子に対しては

d(ai,pj)=22aipjd(a_i,p_j)=\sqrt{2-2a_ip_j}

となる。各ペアについて、両方向で最も近い非マッチング記述子が見つけられる:jmin=argminjid(ai,pj)j_{min}=\arg\min_{j\neq i} d(a_i,p_j)によるpjminp_{j_{min}}、およびkmin=argminkid(ak,pi)k_{min}=\arg\min_{k\neq i} d(a_k,p_i)によるakmina_{k_{min}}である。この2つのうち難しい方がトリプレットを形成する。

トリプレットマージン損失。 nn個の最難トリプレットが、マージン1の損失に投入される:

L=1ni=1nmax(0,  1+d(ai,pi)min(d(ai,pjmin),d(akmin,pi)))L=\frac{1}{n}\sum_{i=1}^{n}\max\Bigl(0,\;1+d(a_i,p_i)-\min\bigl(d(a_i,p_{j_{min}}),\,d(a_{k_{min}},p_i)\bigr)\Bigr)

必要なのは(3ストリームではなく)2ストリームのシャムネットワークのみであり、標準的なトリプレット学習に比べて約30%のメモリを節約できる;ランダムサンプリングに対する唯一のオーバーヘッドは距離行列とその行・列の最小値である。

アーキテクチャ。 L2Netと同一である:32×3232\times32の平均/標準偏差正規化されたグレースケールパッチに対する全層畳み込みネットワークであり、空間サイズはストライド付き畳み込みで縮小される(プーリングなし — 性能を損なうため)。最終層を除く各層の後にバッチ正規化+ReLU、最終畳み込み前にドロップアウトがあり、出力は128次元単位長記述子にL2正規化される — 意図的にSIFT互換になっている。L2Netと異なり、補助損失(深層教師あり、記述子相関ペナルティ)は不要であり、有意な過学習は観測されなかった。

学習。 UBC Phototour(Brown)データセット — Liberty/Notre Dame/Yosemite、それぞれ約40万個のDoGパッチ — であり、1つのサブセット(Liberty、標準プロトコル)で学習される。SGDと重み減衰を用いる。性能はネガティブプールが増えるバッチサイズの増加とともに向上し、512を超えると飽和する。

実験結果

SLAMにおける意義

HardNetの記述子は、SfMやSLAMパイプラインにおけるSIFTの人気の代替として普及した:同じ128次元インターフェースを持ちながら、見た目の変化に対する頑健性が向上している。より大きな影響として、そのバッチ内最難マイニングは記述子学習の標準的な学習レシピとなり、SOSNet、HyNet、DISKのような検出器・記述子統合ネットワークの記述子ブランチに採用された。これは、完全に学習されたフロントエンドへの進化における「古典的なキーポイント上の学習済み記述子」というステップを示す。

関連ノート