• Stars
    star
    219
  • Rank 181,133 (Top 4 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created about 4 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

[AAAI 2021] Official implementation of "Dynamic Anchor Learning for Arbitrary-Oriented Object Detection".

DAL

This project hosts the official implementation for our AAAI 2021 paper:

Dynamic Anchor Learning for Arbitrary-Oriented Object Detection [paper] [comments].

Abstract

In this paper, we propose a dynamic anchor learning (DAL) method, which utilizes the newly defined matching degree to comprehensively evaluate the localization potential of the anchors and carry out a more efficient label assignment process. In this way, the detector can dynamically select high-quality anchors to achieve accurate object detection, and the divergence between classification and regression will be alleviated.

Getting Started

The codes build Rotated RetinaNet with the proposed DAL method for rotation object detection. The supported datasets include: DOTA, HRSC2016, ICDAR2013, ICDAR2015, UCAS-AOD, NWPU VHR-10, VOC.

Installation

Insatll requirements:

pip install -r requirements.txt
pip install git+git://github.com/lehduong/torch-warmup-lr.git

Build the Cython and CUDA modules:

cd $ROOT/utils
sh make.sh
cd $ROOT/utils/overlaps_cuda
python setup.py build_ext --inplace

Installation for DOTA_devkit:

cd $ROOT/datasets/DOTA_devkit
sudo apt-get install swig
swig -c++ -python polyiou.i
python setup.py build_ext --inplace

Inference

You can use the following command to test a dataset. Note that weight, img_dir, dataset,hyp should be modified as appropriate.

python demo.py

Train

  1. Move the dataset to the $ROOT directory.
  2. Generate imageset files for daatset division via:
cd $ROOT/datasets
python generate_imageset.py
  1. Modify the configuration file hyp.py and arguments in train.py, then start training:
python train.py

Evaluation

Different datasets use different test methods. For UCAS-AOD/HRSC2016/VOC/NWPU VHR-10, you need to prepare labels in the appropriate format in advance. Take evaluation on HRSC2016 for example:

cd $ROOT/datasets/evaluate
python hrsc2gt.py

then you can conduct evaluation:

python eval.py

Note that :

  • the script needs to be executed only once, but testing on different datasets needs to be executed again.
  • the imageset file used in hrsc2gt.py is generated from generate_imageset.py.

Main Results

Method Dataset Bbox Backbone Input Size mAP/F1
DAL DOTA OBB ResNet-101 800 x 800 71.78
DAL UCAS-AOD OBB ResNet-101 800 x 800 89.87
DAL HRSC2016 OBB ResNet-50 416 x 416 88.60
DAL ICDAR2015 OBB ResNet-101 800 x 800 82.4
DAL ICDAR2013 HBB ResNet-101 800 x 800 81.3
DAL NWPU VHR-10 HBB ResNet-101 800 x 800 88.3
DAL VOC 2007 HBB ResNet-101 800 x 800 76.1

Detections

DOTA_results

Citation

If you find our work or code useful in your research, please consider citing:

@inproceedings{ming2021dynamic,
  title={Dynamic Anchor Learning for Arbitrary-Oriented Object Detection},
  author={Ming, Qi and Zhou, Zhiqiang and Miao, Lingjuan and Zhang, Hongwei and Li, Linhao},
  booktitle={Proceedings of the AAAI Conference on Artificial Intelligence},
  volume={35},
  number={3},
  pages={2355--2363},
  year={2021}
}

If you have any questions, please contact me via issue or email.

More Repositories

1

CV_PaperDaily

CV 论文笔记
720
star
2

mmdetection-annotated

mmdetection源码注释
Python
653
star
3

toolbox

various cv tools, such as label tools, data augmentation, label conversion, etc.
Jupyter Notebook
416
star
4

rotate-yolov3

Arbitrary oriented object detection implemented with yolov3 (attached with some tricks).
Python
222
star
5

yolov3-polygon

Arbitrary-oriented object detection based on yolov3.
Python
131
star
6

UCAS-AOD-benchmark

A benchmark of UCAS-AOD dataset.
Python
91
star
7

Rotated-RetinaNet

Rotation RetinaNet for arbitrary-oriented object detection.
Python
72
star
8

HRSC2016_SOTA

Fair comparison of different algorithms on the HRSC2016 dataset.
70
star
9

CFC-Net

[TGRS 2021] Official implementation of "CFC-Net: A Critical Feature Capturing Network for Arbitrary-Oriented Object Detection in Remote Sensing Images".
Python
64
star
10

RIDet

[GRSL 2021] Official code for paper "Optimization for Oriented Object Detection via Representation Invariance Loss".
Python
57
star
11

OBBDet_Swin

The sixth place winning solution (6/220) in 2021 Gaofen Challenge.
Python
50
star
12

yolov3-pytorch

annotation and specification for yolov3
Jupyter Notebook
48
star
13

CUDA

useful cuda code .
Cuda
39
star
14

TIOE

[ISPRS&RS 2023]Official implementation of "Task Interleaving and Orientation Estimation for High-Precision Oriented Object Detection in Aerial Images".
Python
23
star
15

GCIoU-loss

[CVPR 2023] Official implementation of "Deep Dive into Gradients: Better Optimization for 3D Object Detection with Gradient-Corrected IoU Supervision".
Python
17
star
16

Cascade-Rotated-RetinaNet

cascade rotated RetinaNet for arbitrary-oriented object detection
Python
12
star
17

SLA

[RS 2021] Official implementation of "Sparse Label Assignment for Oriented Object Detection inAerial Images"
Python
12
star
18

PGM

notes
7
star
19

GCL

GCL implementation
Python
6
star