Skip to content

Commit 940b917

Browse files
committed
Updated example and README
1 parent 46167c5 commit 940b917

File tree

3 files changed

+40
-12
lines changed

3 files changed

+40
-12
lines changed

README.md

Lines changed: 34 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,37 @@
11
# aero-vloc
2-
aero-vloc is a tool for UAVs localization using different VPR systems and feature matchers.
3-
VPR systems AnyLoc, CosPlace, EigenPlaces, MixVPR, NetVLAD are now supported as well as LightGlue and SuperGlue keypoint matchers.
2+
[![Lint&Tests](https://github.com/prime-slam/aero-vloc/actions/workflows/ci.yml/badge.svg)](https://github.com/prime-slam/aero-vloc/actions/workflows/ci.yml)
3+
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
44

5-
## Weights
6-
Weights for MixVPR, NetVLAD and SuperGlue as well as cluster centers for AnyLoc can be downloaded [here](https://drive.google.com/file/d/1JJWjbaY59XNICiXfQYdwoTYC6pIbzc_4/view?usp=sharing).
7-
All other necessary files for CosPlace, EigenPlaces and SuperPoint will be downloaded automatically via TorchHub.
5+
This is the official repository for the paper "Visual place recognition for aerial imagery: A survey".
86

9-
## Usage
10-
Please check `example.ipynb` for an example of downloading the satellite map, localizing and using the Recall metric.
7+
<img src="teaser.png">
8+
9+
## Summary
10+
This paper introduces a methodology tailored for evaluating VPR techniques specifically
11+
in the domain of aerial imagery, providing a comprehensive assessment of various methods and their performance. However, we
12+
not only compare various VPR methods, but also demonstrate the importance of selecting appropriate zoom and overlap levels
13+
when constructing map tiles to achieve maximum efficiency of VPR algorithms in the case of aerial imagery.
14+
15+
Our benchmark tool supports AnyLoc, CosPlace, EigenPlaces, MixVPR, NetVLAD, SALAD and SelaVPR VPR systems
16+
as well as LightGlue, SelaVPR and SuperGlue re-ranking techniques.
17+
18+
## Getting started
19+
The tool has been tested on Python 3.10 with versions of the libraries from `requirements.txt`.
20+
We recommend using the same parameters for creating a virtual environment.
21+
22+
Please check `example.ipynb` for an example of downloading the satellite map, localizing of aerial imagery and using the Recall metric.
23+
Weights for MixVPR, NetVLAD, SuperGlue and SelaVPR as well as cluster centers for AnyLoc can be downloaded [here](https://drive.google.com/file/d/1D10Ulavy9VNXZb-0GTCngbheLyfIkrf-/view?usp=sharing).
24+
To use SelaVPR you will also have to download the pre-trained DINOv2 model [here](https://dl.fbaipublicfiles.com/dinov2/dinov2_vitl14/dinov2_vitl14_pretrain.pth).
25+
All other necessary files for CosPlace, EigenPlaces, LightGlue and SALAD will be downloaded automatically via TorchHub.
26+
27+
## Datasets
28+
We used the [VPAir](https://github.com/AerVisLoc/vpair) datasets (from the [Anyloc repo](https://github.com/AnyLoc/AnyLoc?tab=readme-ov-file#included-datasets))
29+
as well as [ALTO](https://github.com/MetaSLAM/ALTO) and [MARS-LVIG](https://mars.hku.hk/dataset.html) for our experiments.
30+
31+
However, you can use any dataset as a query sequence, please check `aero-vloc/primitives/uav_seq.py` for the test data format.
32+
33+
## Citation
34+
If this repository aids your research, please consider starring it ⭐️ and citing the paper:
35+
```
36+
SOON!
37+
```

example.ipynb

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
"source": [
2727
"map_downloader = avl.MapDownloader(north_west_lat=46.066412, north_west_lon=38.121383, \n",
2828
" south_east_lat=45.999099, south_east_lon=38.250987,\n",
29-
" zoom=17, overlap_level=0.25, api_key=\"YOUR API KEY HERE\", \n",
29+
" zoom=17, api_key=\"YOUR API KEY HERE\", \n",
3030
" folder_to_save=Path('test_map'))\n",
3131
"map_downloader.download_map()"
3232
]
@@ -35,7 +35,8 @@
3535
"cell_type": "markdown",
3636
"metadata": {},
3737
"source": [
38-
"Specify paths to satellite map and UAV queries"
38+
"Specify paths to satellite map and aerial queries.\n",
39+
"You can also specify arbitrary zoom level and overlap level between frames."
3940
]
4041
},
4142
{
@@ -54,7 +55,7 @@
5455
"cell_type": "markdown",
5556
"metadata": {},
5657
"source": [
57-
"Create a VPR system as well as a key point matcher. EigenPlaces and SuperGlue are used in the example"
58+
"Create a VPR system as well as a re-ranking method. EigenPlaces and SuperGlue are used in the example"
5859
]
5960
},
6061
{
@@ -76,7 +77,7 @@
7677
"cell_type": "markdown",
7778
"metadata": {},
7879
"source": [
79-
"The Recall metric can now be evaluated"
80+
"Now you can run provided metrics"
8081
]
8182
},
8283
{
@@ -85,7 +86,7 @@
8586
"metadata": {},
8687
"outputs": [],
8788
"source": [
88-
"recall_value, _ = avl.reference_recall(drone_images, localization_pipeline, k_closest=50, threshold=100)\n",
89+
"recall_value = avl.reference_recall(drone_images, localization_pipeline, k_closest=50, threshold=100)\n",
8990
"print(recall_value)"
9091
]
9192
}

teaser.png

2.36 MB
Loading

0 commit comments

Comments
 (0)