MonoDepth

Godard 2016 · 論文

一行要約 — ステレオ画像の左右フォトメトリック整合性を利用して学習する自己教師あり単眼深度推定手法。学習にはステレオ画像を用いるが、テスト時には単眼画像のみで深度を推定できる。

問題

教師あり単眼深度推定は深度推定を回帰問題として扱うため、大量の正解深度データを必要とするが、動きや反射のある自然なシーンでは高価なレーザースキャナーでさえ不正確な計測しか得られない。一方でステレオリグは安価で普及している。MonoDepthの着眼点は、学習時に深度推定を画像再構成問題として定式化することである。整流化された一方のビューをもう一方に歪ませる視差場 dd を予測することは、深度を d^=bf/d\hat{d}=bf/d(基線長 bb、焦点距離 ff)で予測することと等価であるため、画像再構成誤差が学習信号となり、深度ラベルは一切不要になる。

手法とアーキテクチャ

ネットワーク。 DispNetに着想を得た全層畳み込みのエンコーダ・デコーダ(パラメータ数3100万;ResNet50エンコーダ版は4800万)で、スキップ接続を持ち、4つのスケールで視差出力を行う。重要な点として、左画像のみから視差マップ dld^ldrd^r両方を予測する。右画像は損失計算にのみ使用される。バックワードワーピングには、空間変換ネットワーク由来の完全微分可能な双線形サンプラーを用いる:I~l=Ir(dl)\tilde{I}^l = I^r(d^l)。視差はスケール付きシグモイドにより [0,0.3×width][0, 0.3\times\text{width}] に制約される。ELUがReLU(中間スケールの視差を早期に固定してしまう)を置き換え、逆畳み込みは最近傍アップサンプル+畳み込みに置き換えられている。

損失関数。 全体損失 C=s=14CsC=\sum_{s=1}^4 C_s であり、各スケールは(左右)対をなす3つの項を組み合わせる:

Cs=αap(Capl+Capr)+αds(Cdsl+Cdsr)+αlr(Clrl+Clrr)C_s=\alpha_{ap}(C_{ap}^{l}+C_{ap}^{r})+\alpha_{ds}(C_{ds}^{l}+C_{ds}^{r})+\alpha_{lr}(C_{lr}^{l}+C_{lr}^{r})

単純に一方向のサンプリングのみを行うと、誤った画像に整合した視差や「テクスチャコピー」アーティファクト、深度不連続点での誤差が生じる。dld^ldrd^r の間で相互整合性を強制することで、両方の問題が解決される。重み:αap=αlr=1\alpha_{ap}=\alpha_{lr}=1、各スケールで αds=0.1/r\alpha_{ds}=0.1/r。Adam(学習率 10410^{-4}、バッチサイズ8)でTitan X上で約25時間、50エポック学習。フリップ・色調ジッターによるデータ拡張を実施。テスト時後処理(pp)では画像とその鏡像の視差を平均し、ステレオの遮蔽(disocclusion)によるランプ状アーティファクトを抑制する。テスト時には最も細かいスケールの dld^l のみが使用され、512×256画像に対して推論は35ms未満(28fps以上)で完了する。

実験結果

SLAMにおける意義

MonoDepthは自己教師あり深度推定の先駆けとなり、巨大な研究分野(Monodepth2、PackNetなど多数)を生み出した。その左右整合性とSSIM+L1フォトメトリック損失の仕組みは標準的な手法となった。SLAMにとっては、深度センサーを必要とせず、SLAMシステムがすでに収集している走行・ロボット映像と同種の生データから学習できる深度事前知識への道を開いた点が重要であり、これはD3VO、MonoRec、そして現代の単眼密な地図生成における自己教師あり深度系列の基盤となっている。

関連ノート