Skip to content

RingoWRW/UAVD4L

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A dataset for UAV localization

This is UAVLoc, a pipeline for 6-DoF uav visual localization.

Install dependencies

  • If conda environment is available \
conda env create -f setup/environment.yml
conda activate uavloc
  • Otherwise, if conda environment is not readily available:
python3 -m venv venvuavloc
source venvuavloc/bin/activate
pip3 install pip -U && pip3 install -r setup/requirements.txt

pipeline

The pipeline include 2 steps

  1. off-line dataset generation
  2. on-line uav localization (GPS-denied)

off-line dataset generation

Preparation

  • textured 3D mesh (.obj)
  • angle txt file (bamu_euler.txt --> pitch roll yaw)
  • digital surface model (DSM)
  • camera sensor parameter (sensor width, sensor height, focal lenght)

Run

python -m targetloc.generate_dataset.pipeline_dataset_generation_limit

output

  • pose.txt (DB_pose)
  • intrinsic.txt (DB_intrinsic)
  • test (points corresponding to .obj)
  • RGB images and depth images

dataset download

  • Baidu Netdisk (password:3dvv)(including render images, query images, query pose, DSM)

dataset structure

  • For generation synthetic dataset

|--- Render_all   # synthetic dataset
  |--- images   # synthetic RGB images
  |--- depths   # synthetic depth images
  |--- db_pose.txt   # database pose w2c (Quaternion, Position:wxyz,xyz)
  |--- db_intrinsics.txt   # database intrinsic \

  • For query image, unditorted image, generate IMU and intrinsic .txt

|--- Query   # query dataset
  |--- images   # RGB images
    |--- W (wide-angle)
    |--- Z (zoom-in)
  |--- intrinsics
    |-- w_intrinsic.txt
    |-- z_intrinsic.txt
  |--- poses
    |-- w_pose.txt
    |-- z_pose.txt
    |-- gt_pose.txt


on-line uav localization

Preparation

  • offline generation datasets
    • include RGB images, depths images, pose txt, intrinsic txt
  • query images
    • include RGB images, IMU sensor, intrinsic (sensor width, sensor height, focal length, calibrate coefficient)
    • if you want to localize the target position, you also should provide _Z.JPG and intrinsic, and .json file (2D coordinates.)

Run

python -m targetloc.localization_detection.pipeline_other_city
if you use with-gravity to solve PnP, you should compile poselib, and you can refer to poselib.
For more environmental configurations, please refer to hloc.

output

  • global descriptor .h5
  • local descriptor .h5
  • uav localization result .txt
  • target localition result .txt (optimal)

Attention

Our image coordinate system selected as 114E, if you want to use our code, please modified the image coordinate system.

read_EXIF.py  --> (108)
read_SRT.py  -->  (37)
eval.py  --> (272)

version

  • for uav localization
    We provide detector-based (SPP+SPG, SPP+NN, ...) and detector-free (LoFTR).
  • for target localization
    We provide mouse-based and .json file -based.

Citation

@inproceedings{Wu2023uav4l,
    title={UAVD4L: A Large-Scale Dataset for UAV 6-DoF Localization}, 
    author={Rouwan Wu and Xiaoya Cheng and Juelin Zhu and Xuxiang Liu and Maojun Zhang and Shen Yan},
    booktitle={International Conference on 3D Vision (3DV)},
    year={2024}
}

References

This repository is built on top of the following amazing repositories:

  • Main code framework is from: hloc

Please follow the license of the above repositories for usage of that part of the codebase.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published