Skip to main content

Visual Odometry

Visual Odometry(VO)は、camera image の連続 frame から camera motion を推定する task です。Robot や vehicle がどのように動いたかを、visual input から逐次的に推定します。

SLAM との違い

VO は主に odometry、つまり frame 間の motion estimation に焦点を当てます。一方で、SLAM は camera pose estimation に加えて map construction と loop closure を含みます。

項目Visual OdometrySLAM
主目的逐次的な camera motion 推定自己位置推定と map 構築
Loop closure通常は含まない重要な component
Drift 修正限定的Loop closure と global optimization で修正

Feature-based VO

Feature-based VO は、frame 間で feature を matching し、epipolar geometry、PnP、triangulation などを使って motion を推定します。

frame t, frame t+1
-> feature matching
-> essential matrix / PnP
-> pose estimation
-> local optimization

Direct VO

Direct VO は、feature descriptor を使わず、pixel intensity の photometric error を直接最小化します。

xIt(x)It+1(w(x;T))2\sum_{\mathbf{x}} \|I_t(\mathbf{x}) - I_{t+1}(w(\mathbf{x}; \mathbf{T}))\|^2

ここで、ww は pose T\mathbf{T} による warp です。Direct method は texture の多い領域全体を使える一方で、illumination change に敏感です。

RGB-D / LiDAR / Visual-Inertial Odometry

VO は camera だけに限りません。RGB-D camera を使えば depth が直接得られ、LiDAR を使えば 3D scan matching ができます。IMU を組み合わせる Visual-Inertial Odometry(VIO)では、短時間の motion constraint が強くなり、rapid motion や motion blur に頑健になります。

関連ページ

主なソース