README.md

December 12, 2025 · View on GitHub

Vision-Based UAV Self-Positioning in Low-Altitude Urban Environments

This repository contains code and dataset for the paper titled Vision-Based UAV Self-Positioning in Low-Altitude Urban Environments. In this paper, we propose a method for accurately self-positioning unmanned aerial vehicles (UAVs) in challenging low-altitude urban environments using vision-based techniques. We provide the DenseUAV dataset and a Baseline model implementation to facilitate research in this task. Thank you for your kind attention.

News

  • 2025/9/22: Released a new memory-efficient paradigm, SWA-PF, the video demo is Here.
  • 2024/8/28: Code and model released for a novel UAV self-localization paradigm named DRL.
  • 2023/12/18: Our paper is accepted by IEEE Trans on Image Process.
  • 2023/8/14: Our dataset and code are released.

Table of contents

About Dataset

The dataset split is as follows:

SubsetUAV-viewSatellite-viewClassesuniversities
Training6,76813,5362,25610
Query2,3314,6627774
Gallery909918198303314

More detailed file structure:

├── DenseUAV/
│   ├── Dense_GPS_ALL.txt           /* format as: path latitude longitude height
│   ├── Dense_GPS_test.txt
│   ├── Dense_GPS_train.txt
│   ├── train/
│       ├── drone/                   /* drone-view training images
│           ├── 000001
│               ├── H100.JPG
│               ├── H90.JPG
│               ├── H80.JPG
|           ...
│       ├── satellite/               /* satellite-view training images
│           ├── 000001
│               ├── H100_old.tif
│               ├── H90_old.tif
│               ├── H80_old.tif
│               ├── H100.tif
│               ├── H90.tif
│               ├── H80.tif
|           ...
│   ├── test/
│       ├── query_drone/             /* UAV-view testing images
│       ├── query_satellite/         /* satellite-view testing images

Prerequisites

  • Python 3.7+
  • GPU Memory >= 8G
  • Numpy 1.21.2
  • Pytorch 1.10.0+cu113
  • Torchvision 0.11.1+cu113

Installation

It is best to use cuda version 11.3 and pytorch version 1.10.0. You can download the corresponding version from this website and install it through pip install. Then you can execute the following command to install all dependencies.

pip install -r requirments.txt

Create the directory for saving the training log and ckpts.

mkdir checkpoints

Dataset & Preparation

Download DenseUAV HF_DATA.

Train & Evaluation

Training and Testing

You could execute the following command to implement the entire process of training and testing.

bash train_test_local.sh

The setting of parameters in train_test_local.sh can refer to Get Started.

Evaluation

The following commands are required to evaluate Recall and SDM separately.

cd checkpoints/<name>
python test.py --name <name> --test_dir <dir/to/testdir/of/dataset> --gpu_ids 0 --num_worker 4

the <name> is the dir name in your training setting, you can find in the checkpoints/.

For Recall

python evaluate_gpu.py

For SDM

python evaluateDistance.py --root_dir <dir/to/root/of/dataset>

We also provide the baseline checkpoints, quark one-drive.

unzip <file.zip> -d checkpoints
cd checkpoints/baseline
python test.py --test_dir <dataset_root>/test
python evaluate_gpu.py
python evaluateDistance.py --root_dir <dataset_root>

Supported Methods

AugmentBackboneHeadLoss
Random RotateResNetMaxPoolCrossEntropy Loss.
Random AffineEfficientNetAvgPoolFocal Loss
Random BrightnessConvNextMaxAvgPoolTriplet Loss
Random ErasingDeiTGlobalPoolHard-Mining Triplet Loss
PvTGemPoolSame-Domain Triplet Loss
SwinTransformerLPNSoft-Weighted Triplet Loss
ViTFSRAKL Loss

License

This project is licensed under the Apache 2.0 license.

Citation

@ARTICLE{DenseUAV,
  author={Dai, Ming and Zheng, Enhui and Feng, Zhenhua and Qi, Lei and Zhuang, Jiedong and Yang, Wankou},
  journal={IEEE Transactions on Image Processing},
  title={Vision-Based UAV Self-Positioning in Low-Altitude Urban Environments},
  year={2024},
  volume={33},
  number={},
  pages={493-508},
  doi={10.1109/TIP.2023.3346279}}