Deep Image Retrieval

**深層画像検索(Deep image retrieval)**は、手作りのグローバル画像記述子(Bag of Visual Words、VLAD、Fisher vectors)を、ニューラルネットワークによって生成される埋め込みで置き換える。画像 IIf(I)RDf(I) \in \mathbb{R}^D というコンパクトなベクトルに写像され、同じ場所(あるいは同じ物体)の画像は埋め込み空間で近くに、異なる場所の画像は遠くに配置されるように学習される。検索は(近似)最近傍探索に帰着する — これはSLAMシステムがループ閉じ込みの候補生成やリローカライゼーションのために必要とする操作そのものである。

CNN特徴からグローバル記述子へ

畳み込みバックボーンを画像に適用すると、H×W×CH \times W \times C の活性化テンソルが得られる — 実質的には CC 次元の局所特徴の密なグリッドである。深層検索手法の違いは主に、このテンソルをどのように単一のベクトルにプーリングするかにある。

fc=(1XcxXcxp)1/pf_c = \left( \frac{1}{|\mathcal{X}_c|} \sum_{x \in \mathcal{X}_c} x^{\,p} \right)^{1/p}

ここで Xc\mathcal{X}_c はチャンネル cc における活性化の集合である。p=1p = 1 とすると平均プーリングになり、pp \to \infty とするとmaxプーリングになる。実際には学習された p3p \approx 3 程度がうまく機能する(Radenović et al.)。

V(j,k)=iaˉk(xi)(xi(j)ck(j))V(j,k) = \sum_i \bar{a}_k(\mathbf{x}_i)\,\big(x_i^{(j)} - c_k^{(j)}\big)

ここで aˉk\bar{a}_k はクラスタ類似度に対するソフトマックスである。行列 VV はイントラ正規化され、フラット化され、L2正規化される。

得られた記述子は通常、PCA + whiteningによって数百次元に圧縮され、画像同士はコサイン距離やL2距離で比較される。

学習:距離学習(メトリック学習)

この埋め込みは分類損失ではなく、ランキング目的関数で学習される。古典的な選択は、アンカー aa、ポジティブ pp(同じ場所)、ネガティブ nn(異なる場所)に対するトリプレット損失である。

L=max(0,  m+d(fa,fp)d(fa,fn))L = \max\big(0,\; m + d(f_a, f_p) - d(f_a, f_n)\big)

これはポジティブをアンカーに対して、少なくともマージン mm だけネガティブより近づけるように働く。教師信号は安価に得られる。

グローバル検索とローカル再ランキング

グローバル記述子だけでは、見た目が似ているが異なる場所(perceptual aliasing)を混同することがある。そのため現代のパイプラインは2段階構成を採用する。

  1. 検索(Retrieve): グローバル記述子の距離によってデータベース画像の上位 kk 件を取得する(高速でスケーラブル)。
  2. 再ランキング/検証: 局所特徴マッチングと幾何検証(例えば、エピポーラモデルやPnPモデルに対するRANSAC)で候補を検証する。

DELF/DELGは両段階を1つのネットワークに結合する(注意機構で選択された深層局所特徴とグローバルヘッド)。HF-Netはグローバル検索ヘッドとSuperPoint的な局所特徴を1つのネットワークに蒸留し、**階層的ローカライゼーション(hierarchical localization)**を実現する — これはhlocツールボックスや大規模な視覚リローカライゼーションシステムで使われるパターンである。Patch-NetVLADは代わりに、画像パッチのマルチスケールNetVLAD記述子で再ランキングを行う。

SLAMにおける意義

ループ閉じ込みの検出とリローカライゼーションは検索問題である。すなわち、現在のフレームが与えられたとき、同じ場所を写している以前にマッピングされたフレームを見つける問題である。古典的なBoW(DBoW2)は見た目が安定している場合はうまく機能するが、手作りの局所記述子で構築されているため、昼夜、季節、天候の変化のもとでは大きく性能が低下する。学習済みのグローバル記述子は、まさにそのような条件変化に対して不変になるように学習されており、キーフレームごとに単一のコンパクトなベクトルを生成する — キーフレームデータベースに安価に保存でき、高速に検索できる。検索してから検証するという構造を理解することは、最新のリローカライゼーションスタック(HF-Net/hloc、Patch-NetVLAD)や、複数のロボット間で場所をマッチングしなければならない協調SLAMシステムのアーキテクチャを説明することにもつながる。

ハンズオン

関連ノート