File size: 2,762 Bytes
a81a5d5 3589e02 6536df8 a81a5d5 3589e02 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | ---
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}
}
``` |