Reinforcement Learning Meets Visual Odometry

Nico Messikommer, Giovanni Cioffi, Mathias Gehrig, Davide Scaramuzza
7/1/2024

No official code found. Best implementation: uzh-rpg/rl_vo (297 stars, GPL-3.0, last commit 2025-03-20).

Abstract

Visual Odometry (VO) is essential to downstream mobile robotics and augmented/virtual reality tasks. Despite recent advances, existing VO methods still rely on heuristic design choices that require several weeks of hyperparameter tuning by human experts, hindering generalizability and robustness. We address these challenges by reframing VO as a sequential decision-making task and applying Reinforcement Learning (RL) to adapt the VO process dynamically. Our approach introduces a neural network, operating as an agent within the VO pipeline, to make decisions such as keyframe and grid-size selection based on real-time conditions. Our method minimizes reliance on heuristic choices using a reward function based on pose error, runtime, and other metrics to guide the system. Our RL framework treats the VO system and the image sequence as an environment, with the agent receiving observations from keypoints, map statistics, and prior poses. Experimental results using classical VO methods and public benchmarks demonstrate improvements in accuracy and robustness, validating the generalizability of our RL-enhanced VO approach to different scenarios. We believe this paradigm shift advances VO technology by eliminating the need for time-intensive parameter tuning of heuristics.

View on arXivView PDF

Code Implementations(1)

uzh-rpg/rl_voCommunity100%
GPL-3.0

Repository relating to "Reinforcement Learning Meets Visual Odometry" (ECCV, 2024).

29734C, M4Jul 16, 20241 years agoGPL-3.0

Cite this paper

@article{messikommer2024reinforcement,
  title  = {Reinforcement Learning Meets Visual Odometry},
  author = {Nico Messikommer and Giovanni Cioffi and Mathias Gehrig and Davide Scaramuzza},
  year   = {2024},
  eprint = {2407.15626},
  archivePrefix = {arXiv},
  url    = {https://arxiv.org/abs/2407.15626},
  journal = {ECCV 2024 2024}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2407.15626.svg)](https://codeofpaper.com/paper/2407.15626)

Discussion