Geo-trax: A Comprehensive Framework for Georeferenced Vehicle Trajectory Extraction from Drone Imagery
Description
Geo-trax (GEO-referenced TRAjectory eXtraction) is a comprehensive pipeline for extracting high-accuracy georeferenced vehicle trajectories from high-altitude drone imagery. Designed specifically for quasi-stationary aerial monitoring in urban traffic scenarios, Geo-trax transforms raw, bird's-eye view (BEV) video footage into precise, real-world vehicle trajectories. The framework integrates state-of-the-art computer vision and deep learning modules for vehicle detection, tracking, and trajectory stabilization, followed by a georeferencing stage that employs image registration to align the stabilized video frames with an orthophoto. This registration enables the accurate mapping of vehicle trajectories to real-world coordinates. The resulting pipeline supports large-scale traffic studies by delivering spatially and temporally consistent trajectory data suitable for traffic behavior analysis and simulation. Geo-trax is optimized for urban intersections and arterial corridors, where high-fidelity vehicle-level insights are essential for intelligent transportation systems and digital twin applications.
📌 Important: If you use this code in your work, kindly acknowledge it by citing the following article:
Robert Fonod, Haechan Cho, Hwasoo Yeo, Nikolas Geroliminis (2025). Advanced computer vision for extracting georeferenced vehicle trajectories from drone imagery, Transportation Research Part C: Emerging Technologies, vol. 178, 105205. DOI: 10.1016/j.trc.2025.105205
Features
- Vehicle Detection: Utilizes a pre-trained YOLO model to detect vehicles (cars, buses, trucks, and motorcycles) in the video frames.
- Vehicle Tracking: Implements a selected tracking algorithm to follow detected vehicles, ensuring robust trajectory data and continuity across frames.
- Trajectory Stabilization: Corrects for unintentional drone movement by aligning trajectories to a reference frame, using bounding boxes of detected vehicles to enhance stability. Leverages the Stabilo 🌀 library, fine-tuned by Stabilo-Optimize 🎯, to achieve reliable, consistent stabilization.
- Georeferencing: Maps stabilized trajectories to real-world coordinates using an orthophoto and image registration technique.
- Dataset Creation: Compiles trajectory and related metadata (e.g., velocity, acceleration, dimension estimates) into a structured dataset.
- Visualization Tools: Visualizes extracted trajectories, overlays paths on video frames, and generates plots for traffic data analysis.
- Auxiliary Tools: Data wrangling, analysis, and model training scripts/tools provided to support dataset preparation, advanced analytics, and custom model development.
- Customization and Configuration: Flexible configuration options to adjust pipeline settings, including detection/tracking parameters, stabilization methods, and visualization modes.
Note: This is a preliminary version of the pipeline. Some functionalities, especially auxiliary tools for data wrangling, analysis, and model training, are under development (👷🏼) and will be included in future releases.
🚀 Planned Enhancements
Release Plan
-
Version >1.0.0
- Tools for comparing extracted trajectories with on-board sensor data.
- Release all auxiliary tools for data wrangling, analysis, and (re-)training the detection model.
- Basic documentation and examples covering all core functionalities.
- Sample data for testing and demonstration purposes.
-
Version >1.0.0
- Pre-processing tools for raw video input.
- Expanded documentation, tutorials (docs folder), and sample examples.
- List of known limitations, e.g., ffmpeg backend version discrepancies in OpenCV.
- Comprehensive unit tests for critical functions and end-to-end tests for the entire pipeline.
- Publishing on PyPI for simplified installation and distribution.
-
Version 2.0.0
- Upgrades to the latest ultralytics (>8.2) and numpy (>2.0) versions.
- Support for additional tracking algorithms and broader vehicle type recognition.
- Transition to a modular package layout for enhanced maintainability.
- Implementation of batch inference and multi-thread processing to improve scalability.
- Automated testing workflows with GitHub Actions.
🔗 Related Projects
Geo-trax integrates with and complements several specialized tools:
-
Stabilo 🌀 — Python library for video and trajectory stabilization using robust homography transformations. Supports various feature detectors, RANSAC algorithms, and user-defined masks. Used as Geo-trax's core stabilization engine.
-
Stabilo-Optimize 🎯 — Benchmarking and hyperparameter optimization framework for Stabilo. Evaluates stabilization performance through ground truth-free assessment using random perturbations. Used to fine-tune Geo-trax stabilization parameters.
-
HBB2OBB 📦 — Converts horizontal bounding boxes to oriented bounding boxes using SAM segmentation models. Can enhance Geo-trax outputs when object orientation is needed for downstream analysis.
Field Deployment
Geo-trax was validated in a large-scale urban traffic monitoring experiment conducted in Songdo, South Korea. In this study, Geo-trax was used to process aerial video data captured by a fleet of 10 drones, resulting in the creation of the Songdo Traffic dataset. The underlying vehicle detection model in Geo-trax was trained using the Songdo Vision dataset. Both datasets are described in detail in the associated publication, see the citation section below.
🎥 Demo video of Geo-trax applied to the Songdo field experiment: https://youtu.be/gOGivL9FFLk
Citation
If you use Geo-trax in your research, software, or to generate datasets, please cite the following resources appropriately:
-
Preferred Citation: Please cite the associated article for any use of the Geo-trax framework, including research, applications, and derivative work:
@article{fonod2025advanced, title = {Advanced computer vision for extracting georeferenced vehicle trajectories from drone imagery}, author = {Fonod, Robert and Cho, Haechan and Yeo, Hwasoo and Geroliminis, Nikolas}, journal = {Transportation Research Part C: Emerging Technologies}, volume = {178}, pages = {105205}, year = {2025}, publisher = {Elsevier}, doi = {10.1016/j.trc.2025.105205}, url = {https://doi.org/10.1016/j.trc.2025.105205} } -
Repository Citation: If you reference, modify, or build upon the Geo-trax software itself, please also cite the corresponding Zenodo release:
@software{fonod2025geo-trax, author = {Fonod, Robert}, license = {MIT}, month = dec, title = {Geo-trax: A Comprehensive Framework for Georeferenced Vehicle Trajectory Extraction from Drone Imagery}, url = {https://github.com/rfonod/geo-trax}, doi = {10.5281/zenodo.12119542}, version = {0.7.0}, year = {2025} }
Contributions
The georeferencing code was developed with contributions from Haechan Cho.
Contributions from the community are welcome! If you encounter any issues or have suggestions for improvements, please open a GitHub Issue or submit a pull request.
License
This project is distributed under the MIT License. See the LICENSE file for more details.
Full Changelog
Files
rfonod/geo-trax-v0.7.0.zip
Files
(76.2 MB)
| Name | Size | Download all |
|---|---|---|
|
md5:b924796c33683c3374e14880dd575a4a
|
76.2 MB | Preview Download |
Additional details
Dates
- Updated
-
2025-12-24Updated from v0.6.0 to v0.7.0
Software
- Repository URL
- https://github.com/rfonod/geo-trax
- Programming language
- Python
- Development Status
- Active