Share
Embed
RAFT: Recurrent All-Pairs Field Transforms for Optical Flow
Presentation slide in 全日本コンピュータビジョン勉強会
Daigo HIROOKA
December 12, 2020
Transcript
25 slides
-
• 機械学習エンジニア @ブレインパッド • 関心 ◦ 動画、3Dビジョン ◦ 機械学習の運用 •
その他 ◦ 最近GoProを買いました ◦ 白金鉱業.FM(@shirokane_fm) podcastで配信中! 2 自己紹介:廣岡大吾(@daigo_hirooka) -
オプティカルフローのデータセット • MPI Sintel Flow Dataset ◦ アニメーション動画から作られたデータセット • KITTI
◦ 車載カメラによるデータセット ◦ 教師ラベルは疎に付与されている • FlyingChairs, FlyingThings3D ◦ 自然画像の背景に別の物体を合成したデータセット 5 FlowNet: Learning Optical Flow with Convolutional Networks Object Scene Flow for Autonomous Vehicles A Naturalistic Open Source Movie for Optical Flow Evaluation -
オプティカルフローの推定 画像ペアを入力として似たピクセルを結びつけるタスク • 古典的アプローチ ◦ 差分が小さいピクセルを対応づけるように最適化 ◦ Lucas-Kanade法:パッチごとにフローを推定 ◦ Horn-Schunck法:近傍フローを滑らかにする正則化を導入
◦ OpenCVからも利用可能 • 深層学習によるアプローチ ◦ セグメンテーションに類似したピクセルごとの予測 ◦ 入力画像間の物体の対応をどう捉えるかがポイント ◦ 代表手法:FlowNet、FlowNet2、PWC-Net 6 FlowNet: Learning Optical Flow with Convolutional Networks -
既存手法:FlowNet(Fischer et. al. 2015) • FlowNetSimple:シンプルに入力画像からフローを出力する構造 • FlowNetCorr:画像ペアの特徴量の相関( Correlation)を明示的に導入 7
[1504.06852] FlowNet: Learning Optical Flow with Convolutional Networks -
既存手法:FlowNet2(Ilg et. al. 2016) FlowNetのモジュールを複合することで精度向上(パラメータ数も増加) 8 [1612.01925] FlowNet 2.0: Evolution
of Optical Flow Estimation with Deep Networks -
既存手法:PWC-Net(Sun et. al. 2017) U-Netのようにマルチスケールな推定を取り入れることで精度向上・軽量化 • Pyramid:入力画像から複数解像度の特徴量を抽出・利用 • Warping:推定過程のフローをシミュレートして推論に取り入れる •
Cost Volume:画像ペアの特徴量の相関を計算 9 細かいスケールへ [1709.02371] PWC-Net: CNNs for Optical Flow Using Pyramid, Warping, and Cost Volume -
提案手法:RAFT RAFT:Recurrent All-Pairs Field Transforms • モデルの構成 ◦ Feature Extraction(特徴抽出)
◦ Computing Visual Similarity(特徴量の相関計算) ◦ Iterative Updates(反復更新) • 貢献 ◦ 精度改善:任意の回数のフロー更新が可能になり、既存手法より大きく誤差を改善 ◦ 汎化性能改善:学習時とは別のデータに対しても効果的に動作 ◦ 高効率性:多くの既存モデルより省パラメータかつ高速。 ▪ 参考:1088x436の画像を1080Ti GPUで10FPSで推論可能 11 -
RAFTの特徴抽出 2つのCNNを用いて入力画像の特徴抽出を行う • Feature Encoder:画像ペア(以降画像 1,2)からの特徴抽出 • Context Encoder:画像1からの特徴抽出 ◦
RNN(後述)の潜在特徴量の初期値として利用 • 空間解像度は縦横それぞれ 1/8になる 12 -
RAFTのピクセル相関(Correlarion Volumes)計算 特徴量のペア(以降特徴量 1,2)から各ピクセルの相関を計算する • 相関は特徴量1の全ピクセル×特徴量2の全ピクセルで計算 • さらにプーリングによってマルチスケールな相関を保持する • マルチスケールな相関を用いることで、画像内の多様な動きを捉えられる
• 計算した相関は以降の RNNで使いまわすため、 1回の推論で一度だけ計算すれば良い ◦ PWC-Netでは各スケールで毎回計算していた 13 -
RAFTのフロー更新 GRUを用いたネットワークによって推定フローを更新する • 入力 ◦ Lookupした相関値 ◦ 推定フロー ◦ Context
Encoderによる画像1の特徴量 ◦ 前ステップの潜在特徴量 • 出力 ◦ フローの更新差分 ◦ 新しい潜在特徴量 • 差分を足すことで推定フローを更新する 15 -
補足:Convex Upsampling 推定フローは特徴量と同様に縦横 1/8の解像度となるのでアップサンプリングを行う。 • バイリニア補間:近傍ピクセルとの距離に応じた重みによるアップサンプリング ◦ シンプルだがぼやけた補間になる傾向 • Convex
Upsampling:CNNによって計算した重みによってアップサンプリングを行う ◦ ぼやけを抑え、小さい物体のフロー推定に有効 16 https://youtu.be/ZmiBI4tPk_o -
実験設定 • 評価指標:end-point-error ◦ 予測と正解フローの差分の L2ノルム • 対象データ ◦ FlyingChairs、FlyingThings3Dデータセットで事前学習
◦ リーダーボードが存在する MPI-Sintel、KITTIデータセットで評価 • フロー更新回数(RNNの構造上、学習時と予測時でフロー更新回数を変えることが可能) ◦ 学習時:12回 ◦ MPI-Sintelの予測時:32回 ◦ KITTIの予測時:24回 • その他オプティマイザやデータ拡張の設定などは論文参照 18 https://youtu.be/ZmiBI4tPk_o -
実験結果:定量評価 既存のFlowNet2やPWCNetに比べて推定誤差を大幅に改善 19 https://youtu.be/ZmiBI4tPk_o Sintel、KITTIのデータを 学習せずに評価 Sintel、KITTIでfine-tuningして評価 複数のデータでfine-tuningして評価 • S:MPI-Sintel
• C:FlyingChairs • T:FlyingThings3D • K:KITTI • H:HD1K -
まとめ・感想 • まとめ ◦ オプティカルフローの推定過程を反復最適化として RNNによってモデル化 ◦ 任意の回数の反復更新が可能になりフロー推定精度向上 ◦ 入力画像ペアの相関(
correlation volume)を保持し、反復計算中に使いまわすことで 計算量を削減 ◦ 学習時とは異なるデータセットに対しても良好に予測可能 • 感想 ◦ 直球SOTA論文がbest paperになっているのは最近だと珍しい気がする ◦ 反復最適化をRNNによってモデル化するのは他でも利用できそう ▪ 学習時と予測時で異なる反復回数を設定できるのも面白い ◦ 再現実装時にはglobal gradient clippingを適用しないと学習がうまく進まなかった ▪ (一応論文にも1行くらいで記述されている) 23 https://youtu.be/ZmiBI4tPk_o -
• オプティカルフロー推定の既存手法 ◦ [1504.06852] FlowNet: Learning Optical Flow with Convolutional
Networks ◦ [1612.01925] FlowNet 2.0: Evolution of Optical Flow Estimation with Deep Networks ◦ [1709.02371] PWC-Net: CNNs for Optical Flow Using Pyramid, Warping, and Cost Volume • RAFT ◦ 論文:RAFT: Recurrent All-Pairs Field Transforms for Optical Flow ▪ 特に記載のない画像は本論文より引用(または自作) ◦ 公式実装:princeton-vl/RAFT ◦ 再現実装:daigo0927/tf-raft • オプティカルフローの基礎 ◦ Richard Szeliski. コンピュータビジョン アルゴリズムと応用 . 共立出版. 2013 24 References -
25 References • データセット ◦ MPI Sintel:A Naturalistic Open Source
Movie for Optical Flow Evaluation ◦ KITTI:Object Scene Flow for Autonomous Vehicles ◦ FlyingChairs:FlowNet: Learning Optical Flow with Convolutional Networks ◦ FlyingThings3D:A Large Dataset to Train Convolutional Networks for Disparity, Optical Flow, and Scene Flow Estimation