VimGeo: Efficient Cross-View Geo-Localization with Vision Mamba Architecture
November 28, 2025 · View on GitHub
[🔗 Project] [📘 Paper (IJCAI 2025)]
It has been accepted by IJCAI-25
This is a PyTorch implementation of the “VimGeo: Efficient Cross-View Geo-Localization with Vision Mamba Architecture”.
(a) Architecture of the proposed VimGeo model. (b) Visualization of the Channel Group Pooling (CGP) module.
Environment Setup for Pretraining
For NVIDIA GPUs:
-
Python Environment:
- Use Python 3.10.13:
conda create -n your_env_name python=3.10.13
- Use Python 3.10.13:
-
PyTorch Installation:
- Install PyTorch 2.1.1 with CUDA 11.8:
pip install torch==2.1.1 torchvision==0.16.1 torchaudio==2.1.1 --index-url https://download.pytorch.org/whl/cu118
- Install PyTorch 2.1.1 with CUDA 11.8:
General Requirements:
-
Install Required Packages:
- First, clone the following repository:
git clone https://github.com/hustvl/Vim.git - Install dependencies:
pip install -r vim/vim_requirements.txt
- First, clone the following repository:
-
Special Package Installation:
-
causal_conv1d:
- Choose the appropriate version based on your system, then install:
# Example command, replace with the correct version if needed pip install -e causal_conv1d>=1.1.0
- Choose the appropriate version based on your system, then install:
-
mamba:
- Ensure system compatibility and note that this library is modified in the Vim project.
- Installation steps:
# Example command, ensure system compatibility use the `mamba-1p1p1` files already included in our project folder to install - Important:
The modifications tomamba-1p1p1are based on our model's source project.
For details, please refer to https://github.com/hustvl/Vim/tree/main
-
Please adjust the steps based on your system and project needs, ensuring all paths and version numbers are correct.
Dataset
Please download CVUSA, CVACT and VIGOR. You may need to modify dataset path in "dataloader".
Model Zoo
| Dataset | R@1 | R@5 | R@10 | R@1% | Hit |
|---|---|---|---|---|---|
| CVUSA | 96.19% | 98.62% | 99.00% | 99.52% | - |
| CVACT_val | 87.62% | 94.88% | 96.06% | 98.06% | - |
| CVACT_test | 81.69% | 92.42% | 94.32% | 97.19% | - |
| VIGOR Same-Area | 55.24% | 80.75% | 76.12% | 97.30% | 57.43% |
| VIGOR Cross-Area | 19.31% | 37.50% | 46.03% | 86.96% | 20.72% |
Note
All related results are available at Hugging Face.
Usage
Training
To train our models on the respective datasets, simply run the following scripts:
-
For CVUSA:
bash train_CVUSA.sh -
For CVACT (validation set):
bash train_CVACT.sh -
For CVACT (test set):
bash train_CVACT_test.sh -
For VIGOR Same-Area:
bash train_VIGOR.sh -
For VIGOR Cross-Area:
bash train_VIGOR_cross.sh
These scripts contain all necessary parameters and configurations to train our method on each dataset for 50 epochs.
Evaluation
You should organize the downloaded pre-trained models in the following way:
./result_cvusa/model_best.pth.tarcheckpoint.pth.tar
./result_cvact/model_best.pth.tarcheckpoint.pth.tar
./result_vigor/model_best.pth.tarcheckpoint.pth.tar
./result_vigor_cross/model_best.pth.tarcheckpoint.pth.tar
Note:
To evaluate the models, simply add the -e option to the corresponding training script:
Modify the following files by adding -e to the command line in each script:
VimGeoTeam/VimGeo/train_VIGOR.shVimGeoTeam/VimGeo/train_CVUSA.shVimGeoTeam/VimGeo/train_CVACT.shVimGeoTeam/VimGeo/train_CVACT_test.shVimGeoTeam/VimGeo/train_VIGOR_cross.sh
#References and Acknowledgements
FRGeo,Vim,TransGeo,ConvNeXt,CVUSA,VIGOR,OriCNN,Deit,MoCo
Contact
If you have any questions, please feel free to reach out:
2112304047@mail2.gdut.edu.cn