Geo-trax: A Comprehensive Framework for Georeferenced Vehicle Trajectory Extraction from Drone Imagery
Description
Geo-trax (GEO-referenced TRAjectory eXtraction) is a comprehensive pipeline that extracts high-accuracy, georeferenced vehicle trajectories from high-altitude drone imagery. Built for quasi-stationary aerial monitoring of urban traffic, it turns raw bird's-eye view (BEV) drone footage into precise, real-world vehicle trajectories. The framework combines YOLO detection, multi-object tracking, and video stabilization with a robust orthophoto-based georeferencing stage, producing GNSS-tagged, lane-resolved trajectories that are spatially and temporally consistent and ready for large-scale traffic analysis and simulation. It is optimized for urban intersections and arterial corridors, where high-fidelity, vehicle-level insights drive 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
Why Geo-trax
- π°οΈ Real-world output: georeferenced, lane-resolved trajectories (WGS84 + local CRS) with per-vehicle speed, acceleration, and estimated dimensions, straight from raw BEV drone video.
- π― Accurate detection: YOLOv8s vehicle detector reaching 0.951 mAP@50, trained on more than 19,000 annotated aerial images.
- π Flexible tracking: four vehicle classes and six selectable multi-object trackers (BoT-SORT, ByteTrack, OC-SORT, and more).
- π Drone-motion robust: homography-based stabilization (Stabilo) plus orthophoto image registration for consistent, cross-flight coordinates.
- π Proven at scale: powered the Songdo Traffic dataset (roughly 700,000 trajectories across 20 intersections, fleet of 10 drones; see Real-World Deployment below).
- βοΈ One command, one config:
geotrax batchruns the whole pipeline; a single YAML drives every stage, with four tuned presets included.
Features
- Detection: YOLOv8s on aerial BEV imagery; detects car (incl. vans), bus, truck, and motorcycle.
- Tracking: six multi-object trackers (BoT-SORT default); see Tracking for a comparison; optional per-track frame-gap interpolation.
- Stabilization: homography-based trajectory correction via Stabilo π, tuned with Stabilo-Optimize π―.
- Georeferencing: frame-to-orthophoto registration; outputs lat/lon, local CRS, speed, acceleration, and lane assignment per vehicle.
- Visualization: track overlays on original, stabilized, or static-reference video, in five rendering modes (incl. oriented bounding boxes).
- Analysis: trajectory maps, kinematic distributions, and class/dimension charts, per-video or aggregated across drones and sessions.
- Scaling & tooling: batch-processes directory trees and aggregates multi-drone data; includes standalone utilities for end-to-end data preparation, training, evaluation, and validation.
π Planned Enhancements
- Comprehensive documentation in a dedicated
docs/folder. A tools/README.md index already covers the auxiliary scripts. - Modularized, OOP-based pipeline with custom reference frame support and georeferencing leveraging Stabilo's image-matching backend.
- Per-class confidence thresholds.
- SAHI-based small-object detection.
- Batch inference, GPU-accelerated image registration, and multi-thread processing.
- Real-world map visualization (e.g., MovingPandas, contextily) and interactive web app.
π 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.
Real-World Deployment: The Songdo Experiment
Geo-trax was validated in a large-scale urban traffic monitoring campaign in Songdo, South Korea, where it processed footage from a fleet of 10 drones to produce the Songdo Traffic dataset. The detection model was trained on the companion Songdo Vision dataset. Both are described in the associated publication.
| Songdo campaign | |
|---|---|
| π Location | Songdo International Business District, South Korea |
| π Duration | 4 days (October 4 to 7, 2022) |
| π Fleet | 10 drones (DJI Mavic 3), 140 to 150 m altitude, 4K at 29.97 fps |
| π Coverage | 20 busy intersections |
| π Result | ~700,000 georeferenced vehicle trajectories |
π₯ Demo of Geo-trax applied to the Songdo experiment: https://youtu.be/gOGivL9FFLk
Citation
If you use Geo-trax in your research or software, please cite:
-
Journal article (preferred for any use of the framework):
@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} } -
Software archive (when referencing or building on the code itself):
@software{fonod2026geo-trax, author = {Fonod, Robert}, title = {Geo-trax: A Comprehensive Framework for Georeferenced Vehicle Trajectory Extraction from Drone Imagery}, year = {2026}, month = jul, version = {1.1.0}, doi = {10.5281/zenodo.12119542}, url = {https://github.com/rfonod/geo-trax}, license = {MIT} }
Contributions
Early code received key contributions from Haechan Cho (georeferencing) and Sohyeong Kim (video/flight-log merging). Community contributions are welcome: 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-v1.1.0.zip
Files
(61.6 MB)
| Name | Size | Download all |
|---|---|---|
|
md5:366f09b8285e07b206c3ce8d81bfeb0c
|
61.6 MB | Preview Download |
Additional details
Dates
- Updated
-
2026-07-01Updated from v1.0.1 to v1.1.0
Software
- Repository URL
- https://github.com/rfonod/geo-trax