Skip to content

Repository files navigation

Hybrid-Anchor Rotation Detector for Oriented Object Detection - ICCV'25 (SEA)

image

Introduction

Oriented object detection in aerial images poses a significant challenge due to their varying sizes and orientations. Current state-of-the-art detectors typically rely on either two-stage or one-stage approaches, often employing Anchor-based strategies, which can result in computationally expensive operations due to the redundant number of generated anchors during training. In contrast, Anchor-free mechanisms offer faster processing but suffer from a reduction in the number of training samples, potentially impacting detection accuracy. To address these limitations, we propose the Hybrid-Anchor Rotation Detector (HA-RDet), which combines the advantages of both anchor-based and anchor-free schemes for oriented object detection. By utilizing only one preset anchor for each location on the feature maps and refining these anchors with our Orientation-Aware Convolution technique, HA-RDet achieves competitive accuracies, including 75.41 mAP on DOTA-v1, 65.3 mAP on DIOR-R, and 90.2 mAP on HRSC2016, against current anchor-based state-of-the-art methods, while significantly reducing computational resources.

Installation

Data preparation and download

HA-RDet
├── mmrotate
├── tools
├── configs
├── data
│ ├── split_ss_dota
│ │ ├── trainval
│ │ │ ├── annfiles
│ │ │ ├── images
│ │ ├── test
│ │ │ ├── annfiles
│ │ │ ├── images
│ ├── DIOR-R
│ │ ├── trainval
│ │ ├── test
│ ├── HRSC
│ │ ├── ImageSets
│ │ ├── FullDataSets

Our experiment relies on the MMRotate framework provided by Open MMLab. MMRotate depends on PyTorch, MMCV and MMDetection. Quick steps for installation follows as:

  • Git clone
git clone https://github.com/PhucNDA/HA-RDet
  • Environment setup
conda create -n [NAME] python=3.7 pytorch==1.7.0 cudatoolkit=10.1 torchvision -c pytorch -y
conda activate [NAME]
pip install openmim
mim install mmcv-full
mim install mmdet
cd 'Hybrid-Anchor-Rotation-Detector'
pip install -r requirements/build.txt
pip install -v -e .

Training and Inference

  • Training command:
python tools/train.py ${CONFIG_FILE} [optional arguments]
# Example:
python tools/train.py configs/ha_rdet/hardet_baseline_r50_fpn_1x_dota_le90.py
  • Inference command for online submission:
python ./tools/test.py \
configs/ha_rdet/hardet_baseline_r50_fpn_1x_dota_le90.py \
checkpoints/SOME_CHECKPOINT.pth --format-only \
--eval-options submission_dir=[SAVE_FOLDER]
  • Visualize the results
python ./tools/test.py \
configs/ha_rdet/hardet_baseline_r50_fpn_1x_dota_le90.py \
checkpoints/SOME_CHECKPOINT.pth
--show-dir [SAVE_FOLDER]

Benchmark and Model Zoo

DOTA-v1.0 dataset

ModelBackbone#anchorsVRAM (GB)#paramsFPSmAPConfigDownload
S2A-NetResNet50+FPN14.6~39M15.574.19--
Oriented R-CNNResNet50+FPN2014.2~41M13.575.69--
HA-RDet (ours)ResNet50+FPN16.8~56M12.175.41configmodel / log
HA-RDet (ours)ResNet101+FPN1---76.02configmodel / log
HA-RDet (ours)ResNeXt101_DCNv2+FPN1---77.012configmodel / log

HRSC2016

ModelBackbone#anchorsmAP (VOC 07)mAP (VOC 12)
S2A-NetResNet101+FPN190.1795.01
AOPGResNet101+FPN190.3496.22
HA-RDet (ours)ResNeXt101_DCNv2+FPN190.295.32

DIOR-R

ModelBackbonemAP
HA-RDetResNeXt101_DCNv2+FPN65.3

Visualization

imageimageimage
imageimageimage
imageimageimage

About

Hybrid-Anchor Rotation Detector for Oriented Object Detection (ICCV'25)

Topics

Resources

Contributing

Stars

18 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages