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

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

Datasets

Docker Setup

Use the Dockerfile to build the necessary docker image:

docker build -t dafne .

Training

Check out ./configs/ for different pre-defined configurations for the DOTA 1.0, DOTA 1.5 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
HRSC2016 87.76 hrsc_r101_ms hrsc-ms.pth
DOTA 1.0 76.95 dota-1.0_r101_ms dota-1.0-ms.pth
DOTA 1.5 71.99 dota-1.5_r101_ms dota-1.5-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 Deep Model 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
GitHub - steven-lang/DAFNe: DAFNe: A One-Stage Anchor-Free Deep Model for Oriented Object Detection
DAFNe: A One-Stage Anchor-Free Deep Model for Oriented Object Detection - GitHub - steven-lang/DAFNe: DAFNe: A One-Stage Anchor-Free Deep Model for Oriented Object Detection