NetVLAD

Arandjelović 2016 · 論文

一行要約 — 微分可能なVLADプーリング層を中心に構築された、大規模視覚的場所認識のためのエンドツーエンド学習可能なCNNであり、GPSタグ付きストリートビュー画像からの弱教師あり学習で訓練される。

問題

大規模視覚的場所認識——ある問い合わせ写真がどこで撮影されたかを高速かつ正確に認識すること——には、コンパクトで識別力の高い画像レベルの記述子が必要である。古典的なVLAD(Vector of Locally Aggregated Descriptors)は局所記述子を良好に集約するが、ハードなクラスタ割り当てを用いるためエンドツーエンドで学習できず、既製のCNN特徴量は場所認識タスク向けに最適化されていない(そのconv5活性化は、ユークリッド距離のもとで比較可能になるよう学習されてさえいない)。さらなる障害は教師信号である:どの画像が同じ場所を表しているかを人手でラベル付けする者はいないため、学習はノイズの多い弱教師あり付きのGPSタグ付きデータから行わなければならない。

手法とアーキテクチャ

ベースとなるCNN(VGG-16またはAlexNet、ReLU前のconv5で切り出す)が画像を NN 個のD次元局所記述子 xi\mathbf{x}_i に変換し、その後NetVLAD層がそれらを KK 個のクラスタ中心 ck\mathbf{c}_k に対して集約する。古典的なVLADはクラスタごとの残差和を保存する:V(j,k)=i=1Nak(xi)(xi(j)ck(j))V(j,k)=\sum_{i=1}^{N}a_{k}(\mathbf{x}_{i})\left(x_{i}(j)-c_{k}(j)\right)。ここでハード割り当て ak{0,1}a_k \in \{0,1\} が微分不可能性の原因である。NetVLADはこれを学習可能なソフト割り当て(中心までの距離に対するソフトマックスで、記述子ノルムの項は打ち消される)に置き換える:

aˉk(xi)=ewkTxi+bkkewkTxi+bk,V(j,k)=i=1Naˉk(xi)(xi(j)ck(j))\bar{a}_{k}(\mathbf{x}_{i})=\frac{e^{\mathbf{w}_{k}^{T}\mathbf{x}_{i}+b_{k}}}{\sum_{k'}e^{\mathbf{w}_{k'}^{T}\mathbf{x}_{i}+b_{k'}}}, \qquad V(j,k)=\sum_{i=1}^{N}\bar{a}_{k}(\mathbf{x}_{i})\left(x_{i}(j)-c_{k}(j)\right)

クラスタリングから初期化すると、wk=2αck\mathbf{w}_{k}=2\alpha\mathbf{c}_{k} および bk=αck2b_{k}=-\alpha\lVert\mathbf{c}_{k}\rVert^{2}α\alpha\to\infty でVLADを再現する;重要なのは、{wk},{bk},{ck}\{\mathbf{w}_k\},\{b_k\},\{\mathbf{c}_k\} が3つの分離された学習可能パラメータ集合であり、VLADよりも高い柔軟性を与える点である(アンカー点を移動させ、マッチしない画像の残差を非類似にすることができる)。この層は標準的な演算——1×11{\times}1畳み込み、ソフトマックス、残差集約のコア部分、イントラ正規化、最終的なL2正規化——に分解できるため、任意のCNNに組み込んで逆伝播できる。K=64K=64 の場合、出力は32k次元(VGG-16)であり、これをPCAホワイトニングして最近傍検索用の4096次元グローバル記述子とする。

学習にはGoogle Street ViewのTime Machineパノラマ画像を用いる:同じ場所を数年おきに撮影した画像は、各クエリ qq に対して、GPSに基づく候補正例 {piq}\{p_i^q\}(近くにあるが別方向を向いている可能性がある)と確実な負例 {njq}\{n_j^q\}(遠方にある)を与える。弱教師ありトリプレットランキング損失は、min演算により最良にマッチする正例を自動的に選ぶ:

Lθ=jl(minidθ2(q,piq)+mdθ2(q,njq))L_{\theta}=\sum_{j}l\Big(\min_{i}d_{\theta}^{2}(q,p_{i}^{q})+m-d_{\theta}^{2}(q,n_{j}^{q})\Big)

ここで l(x)=max(x,0)l(x)=\max(x,0) はヒンジ関数、mm はマージンである——これはノイズの多いGPSラベルを許容する、トリプレット損失に対するマルチプルインスタンス学習的な変形である。ネットワーク全体はSGDで学習される。

実験結果

評価には、Pittsburgh 250k(データベース画像25万枚、クエリ2.4万件)およびTokyo 24/7(データベース画像7.6万枚、昼間のデータベースに対する日没・夜間を含む携帯電話クエリ315件)でのrecall@N(上位N件のデータベース画像のいずれかが25m以内にあれば正解)を用いる。エンドツーエンド学習が決定的である:Pitts250k-testでは、学習済みAlexNet+NetVLADが81.0%のrecall@1を達成し、標準VLADを用いた既製AlexNet特徴量の55.0%に対して47%の相対的改善となる。4096次元のVGG-16 NetVLAD+ホワイトニング記述子は全ベンチマークで最先端を達成し、最良の局所特徴コンパクト記述子(密なRootSIFT+VLAD+ホワイトニング)やTorriiらの視点合成手法を上回る。NetVLADは優雅に性能が低下する:128次元NetVLADは512次元のMaxプーリングに匹敵する(Tokyo 24/7でrecall@1が42.9%対38.4%)。Time Machineデータ自体が決定的に重要である——Pitts30k-valでのAlexNet Maxプーリングでは、recall@1が33.5%(既製)→38.7%(Time Machineなしで学習)→68.5%(Time Machineで学習)と変化する。これは、同時刻に撮影されたクエリ・データベース対が、駐車中の車を記憶するといった近道をネットワークに教えてしまうためである。

SLAMにおける意義

ループ閉じ込み検出と再ローカライゼーションは場所認識問題であり、NetVLADの記述子は長年その事実上の標準であった——hlocパイプラインや数多くのSLAMシステムのグローバル検索段階として使われている。またNetVLADは、学習された場所認識の型(CNNバックボーン+学習可能な集約+弱い距離学習の教師信号)を確立し、Patch-NetVLAD、CosPlace、MixVPR、そして今日の基盤モデル系VPR手法もこの型を踏襲している。

ハンズオン

関連ノート