Skip to main content

Scene Flow

Scene Flow は、3D scene 上の各点が時間とともにどのように動いたかを表す dense な 3D motion field です。Optical Flow が image plane 上の 2D motion を表すのに対して、Scene Flow は 3D 空間内の motion を表します。

Optical flow との違い

Optical flow は、pixel の 2D displacement を推定します。

(u,v)(u+Δu,v+Δv)(u, v) \mapsto (u + \Delta u, v + \Delta v)

Scene flow は、3D point の displacement を推定します。

XtXt+1=Xt+ΔX\mathbf{X}_t \mapsto \mathbf{X}_{t+1} = \mathbf{X}_t + \Delta \mathbf{X}

Depth が既知であれば、2D optical flow を 3D motion に lift できます。ただし、camera motion、object motion、occlusion、depth error を同時に扱う必要があります。

入力の種類

Scene Flow は、次のような入力から推定されます。

入力説明
Stereo video時刻 ttt+1t+1 の stereo pair から 3D motion を推定します。
RGB-D sequenceDepth sensor により各 frame の 3D point が得られます。
LiDAR sequencePoint cloud 間の 3D flow を推定します。
Monocular videoDepth と motion を同時に推定する必要があり、最も ill-posed です。

3D Reconstruction での役割

Scene Flow は、dynamic scene reconstruction において重要です。Static scene を仮定した SfM や SLAM では、moving object は outlier になりがちです。Scene Flow を使うと、scene の dynamic part を明示的に modeling できます。

応用例には、autonomous driving、dynamic object tracking、non-rigid reconstruction、video understanding があります。

難しいケース

  • Occlusion と disocclusion
  • Non-rigid motion
  • Sparse LiDAR point cloud
  • Reflective / transparent object
  • Camera ego-motion と object motion の分離
  • Long-range motion

関連ページ

主なソース