Awesome
DAFNe: A One-Stage Anchor-Free Approach for Oriented Object Detection
<img src="./res/header.png"/>Code for our Paper DAFNe: A One-Stage Anchor-Free Approach for Oriented Object Detection.
Datasets
- UCAS-AOD: https://hyper.ai/datasets/5419
- DOTA 1.0/1.5: https://captain-whu.github.io/DOTA/index.html
- Note: See ./tools/prepare_dota/ for instructions on how to prepare the DOTA datasets.
- HRSC2016: https://www.kaggle.com/guofeng/hrsc2016
Docker Setup
Use the Dockerfile
to build the necessary docker image:
docker build -t dafne .
Training
Check out ./configs/pre-trained/
for different pre-defined configurations for the DOTA 1.0, DOTA 1.5, UCAS-AOD, and HRSC2016 datasets. Use these paths as argument for the --config-file
option below.
With Docker
Use the ./tools/run.py
helper to start running experiments
./tools/run.py --gpus 0,1,2,3 --config-file ./configs/dota-1.0/1024.yaml
Without Docker
NVIDIA_VISIBLE_DEVICES=0,1,2,3 ./tools/plain_train_net.py --num-gpus 4 --config-file ./configs/dota-1.0/1024.yaml
Pre-Trained Weights
Dataset | mAP (%) | Config | Weights |
---|---|---|---|
UCAS-AOD | 89.65 | ucas_aod_r101_ms | ucas-aod-r101-ms.pth |
HRSC2016 | 89.76 | hrsc_r50_ms | hrsc-r50-ms.pth |
DOTA 1.0 | 76.95 | dota-1.0_r101_ms | dota-1.0-r101-ms.pth |
DOTA 1.5 | 71.99 | dota-1.5_r101_ms | dota-1.5-r101-ms.pth |
Pre-Trained Weights Usage with Docker
./tools/run.py --gpus 0 --config-file <CONFIG_PATH> --opts "MODEL.WEIGHTS <WEIGHTS_PATH>"
Pre-Trained Weights Usage without Docker
NVIDIA_VISIBLE_DEVICES=0 ./tools/plain_train_net.py --num-gpus 1 --config-file <CONFIG_PATH> MODEL.WEIGHTS <WEIGHTS_PATH>
Cite
@misc{lang2021dafne,
title={DAFNe: A One-Stage Anchor-Free Approach for Oriented Object Detection},
author={Steven Lang and Fabrizio Ventola and Kristian Kersting},
year={2021},
eprint={2109.06148},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
Acknowledgments
- Thanks to AdelaiDet for providing the initial FCOS implementation
- Thanks to Detectron2 for providing a general object detection framework