Xin Zhang Xue Yang Yuxuan Li Jian Yang Ming-Ming Cheng Xiang Li*
If you find our work helpful, please consider giving us a ⭐!
This dataset contains 95,842
images, including 78,837
in the training set, 8,467
in the validation set, and 8,538
in the test set. Instance statistics for each category are shown in the table below
Catagory | Train ins. | Val ins. | Test ins. |
---|---|---|---|
Ship (SH) | 92,950 | 10,492 | 10,700 |
Aircraft (AI) | 6,880 | 449 | 494 |
Car (CA) | 9,567 | 1,219 | 1,231 |
Tank (TA) | 9,479 | 1,000 | 886 |
Bridge (BR) | 27,512 | 3,300 | 3,272 |
Harbor (HA) | 3,304 | 400 | 399 |
Total | 149,692 | 16,860 | 16,982 |
The following figure provides a statistical analysis of the annotated instances for each category in the RSAR dataset
Please refer to mmrotate dev-1.x for more detailed instructions.
conda create --name mmrotate python=3.8 -y
conda activate mmrotate
conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.6 -c pytorch -c nvidia
pip install -U openmim
mim install mmcv-full
mim install mmdet
git clone https://github.com/zhasion/RSAR
cd RSAR
pip install -v -e .
Note: Install PyTorch please following official instructions.
Download the RSAR
dataset from the or
and extract the files to
$DATAROOT
. The directory structure should look like:
$DATAROOT
|-- train
| |-- annfiles # contains annotations :*.txt
| `-- images # contains sar images :*.jpg *.bmp *.png
|-- val
| |-- annfiles
| `-- images
`-- test
|-- annfiles
`-- images
Please refer to data_preparation.md to prepare the other datasets (e.g. DOTAv-1.0, HRSC). Please note that the dataset needs to be sliced accordingly after downloading, and all experiments in this repository are based on a single-size setting.
If you are using a single GPU, you can refer to the following commands:
python tools/train.py [your_config]
If you are using multiple GPUs, you can refer to the following commands:
sh tools/dist_train.sh [your_config] [available_GPU_num]
python tools/test.py [your_config]
Please note that if you need to output results for multiple iou thresholds and the precision of the results, you need to modify the configuration accordingly.
If you find the trained model very large, please refer to publish_model.py
python tools/model_converters/publish_model.py [your_model.pth] [your_new_model.pth]
The weakly supervised model is based on H2RBox-v2 with our UCR
. All Models utilize ResNet50 as the backbone and trained on one GPU.
Dataset | DM* | mAP | Angle | lr schd | BS | Config | Download |
---|---|---|---|---|---|---|---|
DOTA-v1.0 | 2 | 42.65 | le90 |
1x |
2 | config | ckpt | log |
DOTA-v1.0 | 3 | 43.10 | le90 |
1x |
2 | config | ckpt | log |
HRSC | 2 | 60.00 | le90 |
6x |
2 | config | ckpt | log |
HRSC | 3 | 61.74 | le90 |
6x |
2 | config | ckpt | log |
RSAR | 2 | 32.25 | le90 |
1x |
2 | config | ckpt | log |
RSAR | 3 | 32.64 | le90 |
1x |
2 | config | ckpt | log |
* denotes the dimension of mapping in UCR
.
Note: It is normal for the reproduction accuracy of the model to deviate slightly from the reported accuracy, but it should all be substantially improved from the baseline model.
Various detectors trained on RSAR
. All models are trained on 4 GPUs.
Backbone | Model | mAP | Angle | lr schd | BS | Config | Download |
---|---|---|---|---|---|---|---|
ResNet50 (800,800) | Rotated-RetinaNet | 27.65 | le90 |
1x |
2 | config | ckpt | log |
ResNet50 (800,800) | R3Det | 30.50 | le90 |
1x |
2 | config | ckpt | log |
ResNet50 (800,800) | S2ANet | 33.11 | le90 |
1x |
2 | config | ckpt | log |
ResNet50 (800,800) | Rotated-FCOS | 34.22 | le90 |
1x |
2 | config | ckpt | log |
ResNet50 (800,800) | Rotated-Faster RCNN | 30.46 | le90 |
1x |
2 | config | ckpt | log |
ResNet50 (800,800) | O-RCNN | 33.62 | le90 |
1x |
2 | config | ckpt | log |
ReResNet50 (800,800) | ReDet | 34.30 | le90 |
1x |
2 | config | ckpt | log |
ResNet50 (800,800) | RoI-Transformer | 35.02 | le90 |
1x |
2 | config | ckpt | log |
ResNet50 (800,800) | Deformable DETR | 19.63 | le90 |
1x * |
2 | config | ckpt | log |
ResNet50 (800,800) | ARS-DETR | 31.56 | le90 |
1x * |
2 | config | ckpt | log |
* denotes a special setting in the official repo (e.g. trained 36 epochs in practice), details see STAR-MMRotate.
If you find our paper or benchmark helpful for your research, please consider citing our paper and giving this repo a star ⭐. Thank you very much!
@article{zhang2025rsar,
title={RSAR: Restricted State Angle Resolver and Rotated SAR Benchmark},
author={Zhang, Xin and Yang, Xue and Li, Yuxuan and Yang, Jian and Cheng, Ming-Ming and Li, Xiang},
journal={arXiv preprint arXiv:2501.04440},
year={2025}
}
@inproceedings{li2024sardet,
title={Sardet-100k: Towards open-source benchmark and toolkit for large-scale sar object detection},
author={Li, Yuxuan and Li, Xiang and Li, Weijie and Hou, Qibin and Liu, Li and Cheng, Ming-Ming and Yang, Jian},
booktitle={The Thirty-eighth Annual Conference on Neural Information Processing Systems (NeurIPS)},
year={2024},
}
If you have any question, please feel free to contact us via [email protected]
or Github issues.
Licensed under a Creative Commons Attribution-NonCommercial 4.0 International for Non-commercial use only. Any commercial use should get formal permission first.