DPT

Ranftl 2021 · 論文

一行要約 — 密な予測(深度、セグメンテーション)のためにCNNバックボーンをVision Transformerに置き換え、すべての層でグローバルなself-attentionを活用することで、全体として整合性のある深度マップを生成する。

問題

全層畳み込みネットワークは密な予測タスクを支配しているが、そのエンコーダは段階的にダウンサンプリングを行う。深い段階で失われた特徴の解像度や粒度はデコーダで回復しにくく、個々の畳み込みの受容野は限られているため、広い文脈は非常に深い層スタックの終盤でしか獲得されない。単眼深度のようなピクセルレベルのタスクでは、これが局所的に不整合で全体としてぐらついた予測を引き起こす。DPTは、表現解像度が一定で、すべての段階でグローバルな受容野を持つVision Transformerバックボーンが、より細粒度で全体として整合性のある密な予測をもたらすかを問う。

手法とアーキテクチャ

Transformerエンコーダ。 画像はp2p^2ピクセル(p=16p=16)の重複しないパッチに分解され、それぞれが平坦化されて線形にトークンへ射影される。学習可能な位置埋め込みと特殊な*読み出しトークン(readout token)*が加えられ、トークンt0={t00,,tNp0}t^0 = \{t_0^0, \dots, t_{N_p}^0\}tn0RDt_n^0 \in \mathbb{R}^D(Np=HWp2N_p = \frac{HW}{p^2})が得られる。マルチヘッドself-attentionを持つLL個のtransformer層がこれらをtlt^lへ変換する。トークンはパッチと一対一で対応しているため、空間解像度はすべての段階で一定であり、すべてのトークンは最初の層から他のすべてのトークンにアテンションできる。バリアント:ViT-Base(D=768D=768、12層)、ViT-Large(D=1024D=1024、24層)、ViT-Hybrid(ResNet-50の特徴をトークンとして使用、12層)。

Reassemble(再構成)。 4つのtransformerの深さから取得したトークンは、3段階の操作によって画像のような特徴マップに戻される。

ReassemblesD^(t)=(ResamplesConcatenateRead)(t)\mathrm{Reassemble}_{s}^{\hat{D}}(t) = (\mathrm{Resample}_{s} \circ \mathrm{Concatenate} \circ \mathrm{Read})(t)

ここでRead:R(Np+1)×DRNp×D\mathrm{Read}: \mathbb{R}^{(N_p+1)\times D} \rightarrow \mathbb{R}^{N_p \times D}は読み出しトークンをパッチトークンに折り込む(デフォルトではトークンごとに連結mlp(cat(ti,t0))\mathrm{mlp}(\mathrm{cat}(t_i, t_0))を射影する)。Concatenate\mathrm{Concatenate}はトークンをパッチ位置によってHp×Wp×D\frac{H}{p}\times\frac{W}{p}\times Dのマップに再構成し、Resamples\mathrm{Resample}_s1×11{\times}1射影と(転置)畳み込みによってHs×Ws×D^\frac{H}{s}\times\frac{W}{s}\times\hat{D}へリスケールする(D^=256\hat{D}=256)。ViT-Largeでは取り出す層はl={5,12,18,24}l = \{5, 12, 18, 24\}(深い層ほど低解像度で組み立てられる)、ViT-Baseではl={3,6,9,12}l = \{3,6,9,12\}、ViT-Hybridでは最初の2つのResNetブロックとステージ{9,12}\{9, 12\}を使用する。

畳み込み融合デコーダ。 RefineNetスタイルの融合ブロック(残差畳み込みユニット付き)が連続する段階の特徴マップを段階的に結合し、各段で2倍にアップサンプリングする。最終的な表現は入力解像度の半分になり、タスク固有の出力ヘッドに供される。位置埋め込みはその場で線形補間されるため、DPTはFCNと同様に様々な画像サイズを扱える。

深度学習の学習レシピ。 MiDaSプロトコルに従う——逆深度に対するスケール・シフト不変のトリム損失に加え、マルチスケール勾配マッチング——ただしMIX 6(MIX 5に5つの追加データセットを加えた約140万枚のメタデータセット、当時最大の深度学習データセット)を用い、多目的(パレート)データセットミキシングで384×384384\times 384の解像度で60エポック学習する。

実験結果

ゼロショットのクロスデータセット転移(すべての指標は小さいほど良い):MIX 6で学習したDPT-LargeはDIW WHDR 10.82、ETH3D AbsRel 0.089、Sintel AbsRel 0.270、δ>1.25\delta > 1.25の外れ値率8.46(KITTI)、8.32(NYU)、9.97(TUM)に達し、これまで最良の全畳み込みMiDaS(MIX 5):12.46 / 0.129 / 0.327 / 23.90 / 9.55 / 14.29を上回る。平均相対改善はDPT-Largeで28%、DPT-Hybridで23%である。同じMIX 6で畳み込み型MiDaSを再学習してもわずかにしか改善せず、FCNがtransformerのように追加データを活用できないことを示している。ファインチューニングされたDPT-HybridはNYUv2(δ1\delta_1 0.904、AbsRel 0.110、RMSE 0.357)とKITTI(δ1\delta_1 0.959、AbsRel 0.062、RMSE 2.573)で新たな最高精度を達成した。セマンティックセグメンテーションでは、DPT-HybridはADE20Kで49.02% mIoUという新たな最高精度を達成し、Pascal Contextでもファインチューニング後に最高精度を記録した。

SLAMにおける意義

DPTはViTエンコーダを単眼深度のデフォルトにした。DPT-LargeはMiDaS v3とDepth Anything v1のバックボーンとなり、これらは単眼・密なSLAMシステムに最も一般的に注入される深度事前分布である。SLAMパイプラインが今日「相対深度ネットワーク」を利用する場合、その裏にはほぼ確実にDPTスタイルのアーキテクチャがある。その全体として整合性のある深度こそが、密なマッピングが必要とするものだ——局所的にぐらついた深度マップはTSDFやサーフェル融合を破綻させる。

関連ノート