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.
- Host: GitHub
- URL: https://github.com/sergio-alberto-dlm/visual_odometry
- Owner: sergio-alberto-dlm
- Created: 2024-08-24T21:45:34.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2025-03-22T00:15:25.000Z (over 1 year ago)
- Last Synced: 2025-03-22T00:26:26.292Z (over 1 year ago)
- Topics: autonomous-driving, computer-vision, machine-learning, slam
- Language: Jupyter Notebook
- Homepage:
- Size: 952 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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
[](https://www.youtube.com/watch?v=XsaM-IXATxI)

---
## ๐งช 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!