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:

  1. Python Environment:

    • Use Python 3.10.13:
      conda create -n your_env_name python=3.10.13
      
  2. 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
      

General Requirements:

  1. 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
      
  2. 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
        
    • 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 to mamba-1p1p1 are 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

DatasetR@1R@5R@10R@1%Hit
CVUSA96.19%98.62%99.00%99.52%-
CVACT_val87.62%94.88%96.06%98.06%-
CVACT_test81.69%92.42%94.32%97.19%-
VIGOR Same-Area55.24%80.75%76.12%97.30%57.43%
VIGOR Cross-Area19.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:

  1. For CVUSA:

    bash train_CVUSA.sh
    
  2. For CVACT (validation set):

    bash train_CVACT.sh
    
  3. For CVACT (test set):

    bash train_CVACT_test.sh
    
  4. For VIGOR Same-Area:

    bash train_VIGOR.sh
    
  5. 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.tar
    • checkpoint.pth.tar
  • ./result_cvact/
    • model_best.pth.tar
    • checkpoint.pth.tar
  • ./result_vigor/
    • model_best.pth.tar
    • checkpoint.pth.tar
  • ./result_vigor_cross/
    • model_best.pth.tar
    • checkpoint.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.sh
  • VimGeoTeam/VimGeo/train_CVUSA.sh
  • VimGeoTeam/VimGeo/train_CVACT.sh
  • VimGeoTeam/VimGeo/train_CVACT_test.sh
  • VimGeoTeam/VimGeo/train_VIGOR_cross.sh

#References and Acknowledgements

FRGeoVimTransGeoConvNeXtCVUSAVIGOROriCNNDeitMoCo

Contact

If you have any questions, please feel free to reach out:
2112304047@mail2.gdut.edu.cn

Citation