braun-steven / DAFNe

Code for our paper "DAFNe: A One-Stage Anchor-Free Deep Model for Oriented Object Detection".
MIT License
61 stars 12 forks source link
anchor-free deep-learning machine-learning object-detection one-stage-detector oriented-object-detection

DAFNe: A One-Stage Anchor-Free Approach for Oriented Object Detection

Code for our Paper DAFNe: A One-Stage Anchor-Free Approach for Oriented Object Detection.

PWC
PWC
PWC

Datasets

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