Patch NetVLAD

Hausler 2021 · 論文

一行要約 — NetVLADの残差からマルチスケールのパッチレベルVLAD記述子を抽出し、空間的検証によって検索候補を再ランキングすることで、視覚的場所認識を視点変化やパーセプチュアルエイリアシングに対してはるかに頑健にする。

問題

視覚的場所認識は、常に変化する世界において見え方の変化(季節、構造、照明)と視点の変化という二つの問題を乗り越えなければならない。NetVLADのようなグローバル記述子は画像全体を単一のベクトルに圧縮し、空間的な配置情報を捨ててしまう——検索は高速だが視点変化・部分的な遮蔽・パーセプチュアルエイリアシングに弱い。完全な局所特徴マッチング(例えばSuperPoint+SuperGlue)は配置情報を保持するが、大規模データベースに対しては速度が遅すぎる。Patch-NetVLADは、局所記述子手法とグローバル記述子手法の両方の利点を、1つの設定可能なパイプラインの中で組み合わせる。

手法とアーキテクチャ

2段階検索。 まず素のNetVLADがクエリに対する上位kk個(k=100k{=}100)のデータベース候補を検索する;その後パッチレベルマッチングが空間整合性スコアでそのショートリストを再ランキングするため、クロスマッチングのコストは100枚の画像にのみ支払われ、データベース全体には決して支払われない。

パッチレベルVLAD記述子。 NetVLADの集約層は、CNN特徴量 xi\mathbf{x}_iKK 個の学習済みクラスタ中心 ck\mathbf{c}_k の間のソフト割り当て残差を合計する:

fVLAD(F)(j,k)=i=1Naˉk(xi)(xi(j)ck(j))f_{\mathrm{VLAD}}(F)(j,k) = \sum_{i=1}^{N} \bar{a}_k(\mathbf{x}_i)\,\big(x_i(j) - c_k(j)\big)

H×W×DH \times W \times D の特徴マップ全体(N=H×WN = H \times W、グローバルNetVLAD)を集約する代わりに、Patch-NetVLADは同じ集約+射影 fi=fproj(fVLAD(Pi))\mathbf{f}_i = f_{\mathrm{proj}}(f_{\mathrm{VLAD}}(P_i)) を、特徴空間グリッド上でストライド sps_p を持つ密な dx×dyd_x \times d_y パッチ集合に適用し、

np=Hdysp+1Wdxsp+1n_p = \Big\lfloor \tfrac{H-d_y}{s_p} + 1 \Big\rfloor \cdot \Big\lfloor \tfrac{W-d_x}{s_p} + 1 \Big\rfloor

個のパッチを画像ごとに得る——これはキーポイント検出を必要としない、空間位置に紐づいた「局所的にグローバル」な記述子である。

相互最近傍+空間スコアリング。 クエリ・参照のパッチ記述子は網羅的にクロスマッチングされる;相互最近傍のペア集合 P\mathcal{P} は、RANSAC(フィットされたホモグラフィのインライア数、インライア許容度 sps_pnpn_p で正規化)で、あるいはマッチしたパッチの水平・垂直変位 xd,ydx_d, y_d に対する高速空間スコアリングでスコア付けされる:

sspatial=1npiP(maxjxd,jxd,ixˉd)2+(maxjyd,jyd,iyˉd)2s_{\mathrm{spatial}} = \frac{1}{n_p} \sum_{i \in \mathcal{P}} \Big( \big|\max_j x_{d,j}\big| - \big|x_{d,i} - \bar{x}_d\big| \Big)^2 + \Big( \big|\max_j y_{d,j}\big| - \big|y_{d,i} - \bar{y}_d\big| \Big)^2

これは、平均的な動きから外れたオフセットを持つマッチにペナルティを課す——サンプリングを行わない空間的検証である。

IntegralVLADによるマルチスケール融合。 nsn_s 個のパッチサイズによるスコアは、凸結合 sspatial=iwisi,spatials_{\mathrm{spatial}} = \sum_i w_i\, s_{i,\mathrm{spatial}} によって融合される(採用された設定:正方形パッチサイズ2、5、8で wi=0.45,0.15,0.4w_i = 0.45, 0.15, 0.4;サイズ5のパッチは640×480画像のうち228×228ピクセルをカバーする)。1×11{\times}1パッチVLADの積分特徴マップ I(i,j)=i<i,j<jfi,j1\mathcal{I}(i,j) = \sum_{i' < i, j' < j} \mathbf{f}^1_{i',j'} により、任意のパッチサイズを4回の参照だけで復元できる。これはカーネル K=(1111)K = \begin{pmatrix} 1 & -1 \\ -1 & 1 \end{pmatrix} を用いた膨張深さ方向畳み込みとして実装される。パッチ記述子に対するPCA次元削減により、速度と精度のトレードオフを設定可能にする。

実験結果

6つのベンチマーク(Nordland、Pittsburgh 30k、Tokyo 24/7、Mapillary MSLS、RobotCar Seasons v2、Extended CMU Seasons)にわたる約30万枚の画像で評価し、RobotCar Seasons v2の学習データで一度だけチューニングした単一の設定を使用する:

SLAMにおける意義

SLAMにおけるループ閉じ込みと再ローカライゼーションは、まさに場所認識問題である:誤ったマッチはポーズグラフを破壊するため、生の検索速度よりもパーセプチュアルエイリアシングに対する頑健性の方が重要になる。Patch-NetVLADの「グローバル検索の後に空間的再ランキングを行う」というレシピは、SLAMのループ閉じ込みフロントエンドに実用的に組み込める手法である——論文自体も明確に「SLAMシステムの全体的な性能」の向上を目標としている——そして長期ローカライゼーションシステムで用いられる階層的検索設計にも影響を与えた。

関連ノート