{"id":19094814,"url":"https://github.com/sergio-alberto-dlm/visual_odometry","last_synced_at":"2026-04-15T20:03:55.759Z","repository":{"id":254635826,"uuid":"847107747","full_name":"sergio-alberto-dlm/visual_odometry","owner":"sergio-alberto-dlm","description":"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. ","archived":false,"fork":false,"pushed_at":"2025-03-22T00:15:25.000Z","size":975,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-22T00:26:26.292Z","etag":null,"topics":["autonomous-driving","computer-vision","machine-learning","slam"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sergio-alberto-dlm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-24T21:45:34.000Z","updated_at":"2025-03-22T00:15:28.000Z","dependencies_parsed_at":"2024-08-24T23:32:42.796Z","dependency_job_id":"1e50d982-77a5-4592-b1c1-f77bf9b7ac7c","html_url":"https://github.com/sergio-alberto-dlm/visual_odometry","commit_stats":null,"previous_names":["sergio-alberto-dlm/visual_odometry"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sergio-alberto-dlm/visual_odometry","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sergio-alberto-dlm%2Fvisual_odometry","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sergio-alberto-dlm%2Fvisual_odometry/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sergio-alberto-dlm%2Fvisual_odometry/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sergio-alberto-dlm%2Fvisual_odometry/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sergio-alberto-dlm","download_url":"https://codeload.github.com/sergio-alberto-dlm/visual_odometry/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sergio-alberto-dlm%2Fvisual_odometry/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279004069,"owners_count":26083667,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-10T02:00:06.843Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["autonomous-driving","computer-vision","machine-learning","slam"],"created_at":"2024-11-09T03:31:36.878Z","updated_at":"2025-10-10T13:44:01.198Z","avatar_url":"https://github.com/sergio-alberto-dlm.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🧭 Monocular Visual Odometry with SLAM\n\nWelcome 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. \n\n\u003e ⚠️ This project is designed for research and educational purposes on top of the KITTI dataset.\n\n---\n\n## 🧠 Main Features\n\n- 📷 **Monocular Tracking** – Supports RGB-only visual odometry with no depth sensors.\n- 🧩 **ORB Feature Matching** – Classical feature extraction and matching for initial pose estimation.\n\u003c!-- - 📌 **Keyframe-based SLAM Frontend** – Efficient tracking with on-the-fly keyframe insertion. --\u003e\n\u003c!-- - 🧠 **Pose Optimization** – Differentiable pose refinement using gradients and rendering losses. --\u003e\n- 🎥 **Live Visualizations** – Optionally render tracking video with visualized keypoints.\n- 📊 **ATE Evaluation** – Trajectory evaluation using Absolute Trajectory Error (ATE).\n- 🔬 **WandB Integration** – Logs performance metrics like RMSE ATE and FPS.\n\n\n## 🚀 Getting Started\n\n### 1. 🔧 Install Dependencies\n\nSet up your environment (ideally with `conda`) and install:\n\n```bash\npip install -r requirements.txt\n```\n\n### 2. ⚙️ Run the Tracker\n\n```bash\npython main.py --config configs/kitti_sequences/kitti_00.yaml\n```\n\nIf you want to **evaluate** and log results:\n\n```bash\npython main.py --config configs/kitti_sequences/kitti_01.yaml --eval\n```\n\n---\n\n## 📁 Configuration\n\nModify your YAML config file to point to the correct KITTI dataset path and tune parameters such as:\n\u003c!-- - `tracking_itr_num` --\u003e\n- `max_num_features`\n\u003c!-- - `kf_overlap`, `kf_translation`, `kf_min_translation` --\u003e\n- `render_video`, `save_results`, `use_wandb`\n\n---\n\n## 📊 Example Output\n\nDemo on the \"01\" kitti sequence\n\n[![Watch the demo](assets/thumbnail.png)](https://www.youtube.com/watch?v=XsaM-IXATxI)\n\n\u003cimg src=\"assets/evo_2dplot_final.png\" alt=\"Tracking Example\" width=\"400\"/\u003e\n\n---\n\n## 🧪 Dataset\n\n📦 This project uses [KITTI Odometry Dataset](http://www.cvlibs.net/datasets/kitti/eval_odometry.php)  \nMake sure your sequence folder follows the expected format.\n\n---\n\n## 🙌 Acknowledgements\n\nThis project was build on top of some very useful **OpenCV** functionalities.\n\n---\n\n## 📌 To-Do\n\n- [ ] Add back-end mapping module\n- [ ] Add keyframe-aware heuristics \n- [ ] CUDA acceleration for faster tracking\n- [ ] Monocular depth priors\n\n---\n\n## 🧑‍💻 Author\n\nMade with ❤️ by a computer vision enthusiast.  \nFeel free to open an issue or pull request!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsergio-alberto-dlm%2Fvisual_odometry","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsergio-alberto-dlm%2Fvisual_odometry","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsergio-alberto-dlm%2Fvisual_odometry/lists"}