An open API service indexing awesome lists of open source software.

https://github.com/sergio-alberto-dlm/visual_odometry

This repository showcases a Visual Odometry pipeline applied to the KITTI dataset, a benchmark in autonomous driving research. The project demonstrates the process of estimating a vehicle's trajectory by analyzing sequences of images using computer vision techniques.
https://github.com/sergio-alberto-dlm/visual_odometry

autonomous-driving computer-vision machine-learning slam

Last synced: 3 months ago
JSON representation

This repository showcases a Visual Odometry pipeline applied to the KITTI dataset, a benchmark in autonomous driving research. The project demonstrates the process of estimating a vehicle's trajectory by analyzing sequences of images using computer vision techniques.

Awesome Lists containing this project

README

          

# ๐Ÿงญ Monocular Visual Odometry with SLAM

Welcome to a minimal and modular implementation of a **Monocular Visual SLAM Frontend**! This project uses classical techniques for tracking camera motion from a single RGB input sequence.

> โš ๏ธ This project is designed for research and educational purposes on top of the KITTI dataset.

---

## ๐Ÿง  Main Features

- ๐Ÿ“ท **Monocular Tracking** โ€“ Supports RGB-only visual odometry with no depth sensors.
- ๐Ÿงฉ **ORB Feature Matching** โ€“ Classical feature extraction and matching for initial pose estimation.

- ๐ŸŽฅ **Live Visualizations** โ€“ Optionally render tracking video with visualized keypoints.
- ๐Ÿ“Š **ATE Evaluation** โ€“ Trajectory evaluation using Absolute Trajectory Error (ATE).
- ๐Ÿ”ฌ **WandB Integration** โ€“ Logs performance metrics like RMSE ATE and FPS.

## ๐Ÿš€ Getting Started

### 1. ๐Ÿ”ง Install Dependencies

Set up your environment (ideally with `conda`) and install:

```bash
pip install -r requirements.txt
```

### 2. โš™๏ธ Run the Tracker

```bash
python main.py --config configs/kitti_sequences/kitti_00.yaml
```

If you want to **evaluate** and log results:

```bash
python main.py --config configs/kitti_sequences/kitti_01.yaml --eval
```

---

## ๐Ÿ“ Configuration

Modify your YAML config file to point to the correct KITTI dataset path and tune parameters such as:

- `max_num_features`

- `render_video`, `save_results`, `use_wandb`

---

## ๐Ÿ“Š Example Output

Demo on the "01" kitti sequence

[![Watch the demo](assets/thumbnail.png)](https://www.youtube.com/watch?v=XsaM-IXATxI)

Tracking Example

---

## ๐Ÿงช Dataset

๐Ÿ“ฆ This project uses [KITTI Odometry Dataset](http://www.cvlibs.net/datasets/kitti/eval_odometry.php)
Make sure your sequence folder follows the expected format.

---

## ๐Ÿ™Œ Acknowledgements

This project was build on top of some very useful **OpenCV** functionalities.

---

## ๐Ÿ“Œ To-Do

- [ ] Add back-end mapping module
- [ ] Add keyframe-aware heuristics
- [ ] CUDA acceleration for faster tracking
- [ ] Monocular depth priors

---

## ๐Ÿง‘โ€๐Ÿ’ป Author

Made with โค๏ธ by a computer vision enthusiast.
Feel free to open an issue or pull request!