| --- |
| license: mit |
| pipeline_tag: other |
| datasets: |
| - MVRL/SeqGeo-VL |
| tags: |
| - retrieval |
| - cross-view |
| - geo-localizaiton |
| --- |
| |
| # TrajLoc: Trajectory-aware Cross-view Geo-localization with Sequential Observations |
|
|
| [π Project Page](https://humblegamer.github.io/trajloc/) | [π Paper](https://arxiv.org/abs/2607.15491) | [π» GitHub](https://github.com/mvrl/TrajLoc) | [π SeqGeo-VL Dataset](https://huggingface.co/datasets/jiayulin/SeqGeo-VL) |
|
|
| This repository contains the pre-trained weights for **TrajLoc**, presented at ECCV 2026. |
|
|
| TrajLoc is a unified framework for cross-view geo-localization that localizes a *trajectory* instead of a single ground image. Given a street-view video sequence, a natural-language route description, or both, it retrieves the matching geo-tagged satellite tile. |
|
|
| <p align="center"> |
| <img src="https://raw.githubusercontent.com/mvrl/TrajLoc/main/assets/teaser.png" width="85%" alt="TrajLoc concept teaser"/> |
| </p> |
|
|
| ## Highlights |
| - **Unified Multi-modal Query**: Supports querying with video frames, plain-language route descriptions, or a blend of both. |
| - **Spatially-grounded Embeddings**: Integrates **TrajMod**, a lightweight module that maps route geometry to modulate query embeddings for spatially-aware representations. |
| - **Agentic Tool Interface**: Includes a function-calling tool interface so multimodal agents can easily localize routes as part of broader spatial reasoning. |
|
|
| --- |
|
|
| ## Quickstart & Usage |
|
|
| Please refer to the official [TrajLoc GitHub repository](https://github.com/mvrl/TrajLoc) for installation instructions and dependencies. |
|
|
| ### Python API Example |
|
|
| You can use the model as a tool for trajectory localization: |
|
|
| ```python |
| from trajloc_tool import TrajLocTool |
| |
| # Initialize the tool with the pretrained checkpoint |
| tool = TrajLocTool( |
| checkpoint_path="checkpoints/trajloc_full.pth", |
| gallery_manifest="gallery.json", # satellite tiles to search over |
| gallery_cache="gallery_features.pt", # features cached here after the first run |
| ) |
| |
| # Localize a trajectory using a text-based route description |
| result = tool.localize_trajectory( |
| query_mode="text", |
| text="The route heads east along a tree-lined street, then turns right at the church.", |
| traj_coords=[[38.6488, -90.3108], [38.6495, -90.3089]], |
| traj_headings=[91.0, 92.5], |
| top_k=5, |
| ) |
| print(result) |
| ``` |
|
|
| --- |
|
|
| ## Citation |
|
|
| If you find TrajLoc or the SeqGeo-VL dataset useful in your research, please cite our paper: |
|
|
| ```bibtex |
| @inproceedings{gao2026trajloc, |
| title = {Trajectory-aware Cross-view Geo-localization with Sequential Observations}, |
| author = {Gao, Tianyi and Lin, Jiayu and Beaulieu, Danielle and Jacobs, Nathan}, |
| booktitle = {European Conference on Computer Vision}, |
| year = {2026} |
| } |
| ``` |