Skip to main content
All projects

Monocular visual odometry

Recovering a camera trajectory from a single moving camera on KITTI, aimed at the two things monocular pipelines actually fail on: metric scale, and a back end that survives bad matches.

  • Personal project
  • Solo
  • KITTI odometry benchmark
Estimated trajectories against KITTI ground truth.

Estimated trajectories against KITTI ground truth.

Problem

A single camera recovers motion only up to an unknown scale factor, and the essential matrix that gives you rotation and translation direction is estimated from correspondences that are routinely wrong. Both gaps are what separate a working pipeline from a trajectory plot that looks right for the first hundred frames.

Approach

  • Tracked ORB keypoints frame to frame with Lucas–Kanade optical flow, rather than re-detecting and matching descriptors every frame.
  • Estimated relative pose with the five-point algorithm under adaptive RANSAC, so the inlier threshold follows the match quality instead of being fixed.
  • Addressed metric-scale recovery directly, which is the subject of its own write-up.
  • Built an SE(3) pose-graph back end closed with bag-of-words loop detection, so drift is corrected rather than merely measured.
  • Treated calibration as a prerequisite for robustness rather than a formality, which is what the second write-up argues.

Results

  • Roughly 0.35°/frame rotational relative pose error on KITTI sequence 00.

My role and context

Personal project, solo. Two manuscripts in preparation come out of it: one on metric-scale recovery, one on the robust back end and loop closure.

Limitations and next steps

  • Evaluated on KITTI sequence 00. Performance across the full benchmark, and on anything that is not a car-mounted forward camera, is not characterised.
  • No translational relative pose error is quoted here. I have not re-run the evaluation to the point where I would stand behind a number.
  • Loop closure depends on revisiting a place under similar conditions; the bag-of-words front end has no appearance-change handling.

Links

Code to be released with the paper.