This is UAVLoc, a pipeline for 6-DoF uav visual localization.
- 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
The pipeline include 2 steps
- off-line dataset generation
- on-line uav localization (GPS-denied)
- 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)
python -m targetloc.generate_dataset.pipeline_dataset_generation_limit
- pose.txt (DB_pose)
- intrinsic.txt (DB_intrinsic)
- test (points corresponding to .obj)
- RGB images and depth images
- Baidu Netdisk (password:3dvv)(including render images, query images, query pose, DSM)
- 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
- 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.)
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.
- global descriptor .h5
- local descriptor .h5
- uav localization result .txt
- target localition result .txt (optimal)
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)
- 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.
@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:
- Main code framework is from: hloc
Please follow the license of the above repositories for usage of that part of the codebase.