摘要
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 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 (ITS) 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 YOLOv8 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 will be provided in future releases 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 auxiliary tools for data wrangling, analysis, and (re-)training the detection model. Basic documentation and examples covering all core functionalities. 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. 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 = may, 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.5.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 https://github.com/rfonod/geo-trax/compare/v0.4.0...v0.5.0