XFeat

Potje 2024 · 論文

一行要約 — コンパクトな64次元記述子を持つ超軽量な学習済みローカル特徴(CVPR 2024)であり、既存の深層特徴より最大5倍高速に動作する — ラップトップCPUでもリアルタイムで — 空間解像度を高く保ちつつチャンネル数を低く抑えることで、組み込みハードウェア上での学習済みマッチングを実用的にする。

問題

最先端の学習済み特徴(SuperPoint、DISK、ALIKE)は精度が高いが、ドローン、ARグラス、移動ロボットなど、ロボットが実際に搭載するハードウェアには重すぎる。ボトルネックはアーキテクチャにある:精度の高いマッチングには「十分に大きな画像解像度が必要」だが、小さなVGG風バックボーンであっても高解像度画像を通すと計算量が膨れ上がる。畳み込み層のFLOP数はFops=HiWiCiCi+1k2F_{ops}=H_i\cdot W_i\cdot C_i\cdot C_{i+1}\cdot k^2であり、空間項HiWiH_i W_iが初期層で支配的になるためである。XFeatは、厳しい計算予算の下でローカル特徴を検出・抽出・マッチングするための基本的なCNN設計選択を見直す。

手法とアーキテクチャ

極めて軽量なバックボーン。 グレースケール画像IRH×W×1\mathbf{I}\in\mathbb{R}^{H\times W\times 1}から、6つの畳み込みブロック(「basic layers」の23層:畳み込みk{1,3}k\in\{1,3\}+ReLU+バッチ正規化)が解像度を半分にしながら、チャンネル数を倍増ではなく3倍ずつ増やす — C=4C=4からH/32×W/32H/32\times W/32C=128C=128まで、{4,8,24,64,64,128}\{4,8,24,64,64,128\}。4チャンネルから始めることで、コストの高い高解像度の初期層を最小限に抑える;3倍のレートでの増加は、コストの低い低解像度層で容量を回復する。

3つのヘッド。 {1/8,1/16,1/32}\{1/8,1/16,1/32\}スケールの特徴ピラミッド融合により、密な64次元記述子マップFRH/8×W/8×64\mathbf{F}\in\mathbb{R}^{H/8\times W/8\times 64}Fi,j\mathbf{F}_{i,j}が確信を持ってマッチングできる確率をモデル化する信頼度マップR\mathbf{R}、そして分離された特徴点ブランチが得られる。特徴点ブランチでは、画像が8×88\times 8セル(64次元ベクトル)にリシェイプされ、高速な1×11\times1畳み込みが特徴点位置を64個のセル位置+ダストビンの中から分類する、KRH/8×W/8×65\mathbf{K}\in\mathbb{R}^{H/8\times W/8\times 65}(SuperPoint風だが分離されている — 同時学習はコンパクトなCNNにおいてセミデンスマッチングを劣化させる)。

セミデンスマッチ精緻化。 (LoFTR風の)詳細レベルの特徴マップの代わりに、MLPがマッチした粗い記述子ペアのみからピクセルオフセットを予測する:o=MLP(concat(fa,fb))\mathbf{o}=\text{MLP}(\text{concat}(\mathbf{f}_a,\mathbf{f}_b))、オフセットは次で選ばれる

(x,y)=arg maxi,j{1,,8}o(i,j)(x,y)=\operatorname*{arg\,max}_{i,j\in\{1,\dots,8\}}\mathbf{o}(i,j)

ここでoR8×8\mathbf{o}\in\mathbb{R}^{8\times 8}はオフセットのロジットを保持する — 高解像度の特徴を全く使わないセミデンスマッチングである。

学習。 MegaDepthと合成的にワーピングされたCOCO(6:4の混合、800×600)上でのピクセルレベルの対応関係によって教師される。マルチタスク損失はL=αLds+βLrel+γLfine+δLkp\mathcal{L}=\alpha\mathcal{L}_{ds}+\beta\mathcal{L}_{rel}+\gamma\mathcal{L}_{fine}+\delta\mathcal{L}_{kp}:記述子に対する類似度行列S=F1F2T\mathbf{S}=\mathbf{F}_1\mathbf{F}_2^{\mathsf T}上のデュアルソフトマックスNLL、信頼度をデュアルソフトマックスの確信度に結びつけるL1損失Lrel=σ(R1)Rˉ1Rˉ2+σ(R2)Rˉ1Rˉ2\mathcal{L}_{rel}=|\sigma(\mathbf{R}_1)-\bar{\mathbf{R}}_1\odot\bar{\mathbf{R}}_2|+|\sigma(\mathbf{R}_2)-\bar{\mathbf{R}}_1\odot\bar{\mathbf{R}}_2|、オフセットロジットに対するNLL、そしてALIKE-tinyから蒸留された特徴点。学習は1台のRTX 4090上で36時間、6.5GBのVRAMで収束する。推論:スパースモード(XFeat、Ki,jRi,j\mathbf{K}_{i,j}\cdot\mathbf{R}_{i,j}でスコアリングされた4,096個の特徴点+相互最近傍)またはセミデンスモード(XFeat*、上位1万個の信頼できる特徴+オフセット精緻化)。

実験結果

SLAMにおける意義

学習済み特徴は、ロバスト性の点で手作りの特徴(ORB、SIFT)を明らかに上回っていたが、その計算コストのために組み込みプラットフォーム上のリアルタイムSLAMフロントエンドから排除されていた。XFeatは、学習済み特徴がロボットが実際に搭載するようなハードウェア上のSLAMパイプラインに組み込むのに十分安価になった転換点である。LightGlueのような軽量なマッチャーと組み合わせることで、エッジデバイス上でフレームレートで動作する完全な学習済みフロントエンド(検出・記述・マッチング)を実現する。

関連ノート