This is UAVLoc, a pipeline for 6-DoF uav visual localization.
conda
environment is available \
conda env create -f setup/environment.yml
conda activate uavloc
conda
environment is not readily available:
python3 -m venv venvuavloc
source venvuavloc/bin/activate
pip3 install pip -U && pip3 install -r setup/requirements.txt
The pipeline include 2 steps 1) off-line dataset generation 2) on-line uav localization (GPS-denied)
python -m targetloc.generate_dataset.pipeline_dataset_generation_limit
|--- 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 \
|--- 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
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)
@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}
}
This repository is built on top of the following amazing repositories:
Please follow the license of the above repositories for usage of that part of the codebase.