There is a newer version of the record available.

Published January 2, 2025 | Version v0.3.0
Software Open

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

Authors/Creators

  • 1. ROR icon École Polytechnique Fédérale de Lausanne

Description

Geo-trax (GEO-referenced TRAjectory eXtraction) is an end-to-end pipeline for extracting high-accuracy, georeferenced vehicle trajectories from high-altitude, bird’s-eye view drone footage, addressing critical challenges in urban traffic analysis and real-world georeferencing. Designed for quasi-stationary drone monitoring of intersections or road segments, Geo-trax utilizes advanced computer vision and deep learning methods to deliver high-quality data and support scalable, precise traffic studies. This pipeline transforms raw, top-down video data into georeferenced vehicle trajectories in real-world coordinates, enabling detailed analysis of vehicle dynamics and behavior in dense urban environments.

⚠️ Important: If you use the code in your work, please cite the following reference [1]:

Robert Fonod, Haechan Cho, Hwasoo Yeo, Nikolas Geroliminis (2025). Advanced computer vision for extracting georeferenced vehicle trajectories from drone imagery, arXiv preprint arXiv:2411.02136.

(Note: This manuscript shall be replaced by the published version once available.)

The pipeline includes the following key components:

  1. Vehicle Detection (✅): Utilizes a pre-trained YOLOv8 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 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 (✅/👷🏼): Provides tools to visualize the extracted trajectories, overlaying paths on video frames and generating various plots for traffic data analysis.
  7. Customization and Configuration (✅): Offers flexible configuration options to adjust the pipeline settings, including detection and tracking parameters, stabilization methods, and visualization modes.

This is a preliminary version of the pipeline with some functionalities not being implemented (👷🏼). Future releases will include more detailed documentation, a more user-friendly interface, and additional functionalities.

🚀 Planned Enhancements

Release Plan

  • Version 1.0.0

    • Complete georeferencing functionality (Point 4 above).
    • Comprehensive dataset creation with all metadata (Point 5 above).
    • Visualization and plotting tools (Point 6 above).
    • Tools for comparing extracted trajectories with on-board sensor data.
    • Basic documentation and examples covering all core functionalities.
  • Version >1.0.0

    • Release tools for (re-)training the detection model.
    • 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.

📝 Changes (v0.2.0 -> v0.3.0):

  1. Video Visualization and Batch Processing Enhancements

    • Added a script for visualizing video outputs with annotated trajectories.
    • Improved batch processing logic for better efficiency and robustness when handling multiple input files.
  2. Dependency and Delimiter Detection Updates

    • Updated the stabilo dependency to install directly from PyPI instead of GitHub.
    • Enhanced text file delimiter detection logic for better compatibility with various input formats.
  3. High-Precision Homography and Logging Improvements

    • Updated the code to save homography transformations at higher precision.
    • Enhanced logging functionality for more detailed and user-friendly feedback during execution.
  4. Code Streamlining

    • Performed general code optimizations and refactoring for better maintainability and performance.
    • Made minor updates to the README.md.

Full Changelog: https://github.com/rfonod/geo-trax/compare/v0.2.0...v0.3.0

Files

rfonod/geo-trax-v0.3.0.zip

Files (20.9 MB)

Name Size Download all
md5:ac38e1ab158b6c04419960ea36a199ef
20.9 MB Preview Download

Additional details

Related works

Is described by
Preprint: arXiv:2411.02136 (arXiv)
Is supplement to
Software: https://github.com/rfonod/geo-trax/tree/v0.3.0 (URL)
Is supplemented by
Software: https://github.com/rfonod/stabilo-optimize/ (URL)
Software: https://github.com/rfonod/stabilo/ (URL)

Dates

Updated
2025-01-02
Update from v0.2.0 to v0.3.0

Software

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