RAFT
Teed 2020 · 論文
一行要約 — 4Dのall-pairs相関ボリュームを構築し、重み共有ConvGRUで現在の推定値周辺の相関をルックアップしながら単一の高解像度オプティカルフローフィールドを反復的に精緻化する — ECCV 2020ベストペーパーであり、現代のオプティカルフローを定義するアーキテクチャ。
問題
主流の深層フローアーキテクチャ(PWC-Netおよびその系譜)は、古典的な粗から密へのピラミッドを継承していた: 低解像度でフローを推定し、その後ワーピングして精緻化する。この設計には構造的な死角がある — 各レベルのコストボリュームは小さな探索窓しか対象にしない、小さく速く動く物体は粗い解像度で消失する、ピラミッドの早い段階での誤りは元に戻すのが難しい、そしてマルチステージのカスケードはしばしば100万回を超える学習反復を必要とする。以前の反復的精緻化スキームは反復間で重みを共有していなかった(あるいは、IRRのように大きなリカレントユニットによって制約されていた)。RAFTは次のように問う: ネットワークがすべてのピクセルペア間のマッチングコストを事前計算し、軽量な学習済みオプティマイザが必要に応じてそのボリュームをクエリして単一の高解像度フローフィールドを精緻化したらどうなるか?
手法とアーキテクチャ
3段階、すべて微分可能でエンドツーエンドに学習される:
- 特徴抽出: エンコーダ (、6個の残差ブロック)が両フレームを符号化する。同一アーキテクチャのコンテキストネットワーク が のみを符号化する。両方ともペアごとに1回だけ実行される。
- All-pairs相関: 視覚的類似性は、すべてのピクセルペアに対して単一の行列積として事前計算される:
その後、最後の2次元がカーネル1、2、4、8で平均プーリングされ、ピラミッド になる。 側の次元のみをプーリングすることで、 側の次元はフル(1/8)解像度に保たれる — 大きな変位と小さな変位の両方が捉えられ、小さく速く動く物体を失わない。ルックアップ演算子 は、現在の対応関係 周辺のローカルグリッド上で各レベルをバイリニアサンプリングする:
各レベル において でインデックス付けされる — 一定の半径は粗いレベルほど広い文脈をカバーする(半径4は で元解像度の256ピクセルをカバーする)。 3. 反復更新: から開始し、リカレント更新演算子(わずか270万パラメータ、すべての反復で重みを共有)が相関ルックアップ、フロー特徴、コンテキスト特徴 を受け取り、畳み込みGRUを介して残差更新 を出力する:
この演算子は一次オプティマイザを模倣する — しかしテイラー線形化されたデータ項の代わりに、降下方向を提案することを学習する。有界な活性化関数は不動点への収束を促し、発散せずに100回以上反復を実行できる。フローは1/8解像度で予測され、各ピクセルの3x3粗い近傍上での学習された凸結合(softmaxによる重み)によってアップサンプリングされる。
教師信号は、指数的に増加する重みで推定値全系列をカバーする:
学習はFlyingChairsに続いてFlyingThings、その後ベンチマークでのファインチューニングという順序で行われる。映像に対しては、ウォームスタート初期化が前フレームのフローを前方投影する。
実験結果
- Sintel(finalパス、テスト): EPE 2.855px、公開されている最良結果(4.098px)から30%の誤差削減。cleanパスとfinalパスの両方で1位。KITTI: F1-all 5.10%、公開されている最良結果(6.10%)から16%削減、すべてのオプティカルフロー手法の中で1位。
- 汎化性能: 合成データC+Tのみで学習し、KITTI-15(train)でEPE 5.04px、これまでの最良の深層ネットワーク(8.36)から40%削減。Sintel train cleanでEPE 1.43、FlowNet2より29%低い。
- 効率性: GTX 1080Tiで1088x436の映像に対して10fps。他のアーキテクチャより10倍少ない反復回数で学習可能。100万パラメータのRAFT-Sは、6倍以上大きいPWC-NetおよびVCNの両方を上回る。アブレーションでは、RAFTは3回の更新反復後にPWC-Netを、6回後にFlowNet2を上回る。1080pのDAVIS映像にも拡張可能(12反復で550ms、そのうちall-pairs相関は95ms)。
- アブレーションはそれぞれの選択を裏付ける: GRUは単純な畳み込みより優れ、重み共有は非共有より優れ、all-pairsはウィンドウ相関やワーピングベースの精緻化より優れ、学習済みアップサンプリングはバイリニアより優れる。
SLAMにおける意義
RAFTの「相関ボリューム+反復的リカレント精緻化」というレシピは、SLAMにおける学習ベースのデータ対応付けの主力となった: DROID-SLAMとDPVOは本質的に、微分可能なバンドル調整層を包み込んだRAFTスタイルの更新演算子である。その後継(シーンフロー向けのRAFT-3D、リアルタイム向けのSEA-RAFT)はフローベンチマークを席巻し、RAFTが広めたアンロールされた学習済み最適化のパターンは、現在では密な予測やSLAMシステム全般に見られる。
関連ノート
- PWC-Net — 置き換えられた粗から密への前身
- RAFT-3D — 剛体運動埋め込みを用いた3Dシーンフローへの拡張
- SEA-RAFT — 単純で効率的、リアルタイムのRAFT変種
- FlowFormer — コストボリューム推論のためのTransformerベースの後継
- DROID-SLAM — RAFTの機構を完全なSLAMシステムに転用したもの
- DPVO — 同じ系譜からの疎パッチベースオドメトリ