There is a newer version of the record available.

Published December 24, 2025 | Version v0.7.0

Geo-trax: A Comprehensive Framework for Georeferenced Vehicle Trajectory Extraction from Drone Imagery

Authors/Creators

  • 1. EPFL

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

  1. Vehicle Detection: Utilizes a pre-trained YOLO model to detect vehicles (cars, buses, trucks, and motorcycles) in the video frames.
  2. Vehicle Tracking: Implements a selected tracking algorithm to follow detected vehicles, ensuring robust trajectory data and continuity across frames.
  3. 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.
  4. Georeferencing: Maps stabilized trajectories to real-world coordinates using an orthophoto and image registration technique.
  5. Dataset Creation: Compiles trajectory and related metadata (e.g., velocity, acceleration, dimension estimates) into a structured dataset.
  6. Visualization Tools: Visualizes extracted trajectories, overlays paths on video frames, and generates plots for traffic data analysis.
  7. Auxiliary Tools: Data wrangling, analysis, and model training scripts/tools provided to support dataset preparation, advanced analytics, and custom model development.
  8. 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:

  1. 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}
    }
     
  2. 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

https://github.com/rfonod/geo-trax/compare/v0.6.0...v0.7.0

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-24
Updated from v0.6.0 to v0.7.0

Software

Repository URL
https://github.com/rfonod/geo-trax
Programming language
Python
Development Status
Active