/STAR-MMRotate

Oriented object detection on STAR dataset.

Primary LanguagePythonApache License 2.0Apache-2.0

STAR: A First-Ever Dataset and A Large-Scale Benchmark for Scene Graph Generation in Large-Size Satellite Imagery

The official implementation of the oriented object detection part of the paper "STAR: A First-Ever Dataset and A Large-Scale Benchmark for Scene Graph Generation in Large-Size Satellite Imagery".

⭐️ Highlights

TL;DR: We propose STAR, the first large-scale dataset for scene graph generation in large-size VHR SAI. Containing more than 210,000 objects and over 400,000 triplets across 1,273 complex scenarios globally.

demo.mp4

📌 Abstract

Scene graph generation (SGG) in satellite imagery (SAI) benefits promoting understanding of geospatial scenarios from perception to cognition. In SAI, objects exhibit great variations in scales and aspect ratios, and there exist rich relationships between objects (even between spatially disjoint objects), which makes it attractive to holistically conduct SGG in large-size very-high-resolution (VHR) SAI. However, there lack such SGG datasets. Due to the complexity of large-size SAI, mining triplets <subject, relationship, object> heavily relies on long-range contextual reasoning. Consequently, SGG models designed for small-size natural imagery are not directly applicable to large-size SAI. This paper constructs a large-scale dataset for SGG in large-size VHR SAI with image sizes ranging from 512 × 768 to 27,860 × 31,096 pixels, named STAR (Scene graph generaTion in lArge-size satellite imageRy), encompassing over 210K objects and over 400K triplets. To realize SGG in large-size SAI, we propose a context-aware cascade cognition (CAC) framework to understand SAI regarding object detection (OBD), pair pruning and relationship prediction for SGG. We also release a SAI-oriented SGG toolkit with about 30 OBD and 10 SGG methods which need further adaptation by our devised modules on our challenging STAR dataset. The dataset and toolkit are available at: https://linlin-dev.github.io/project/STAR.

scatter

🛠️ Usage

More instructions on installation, pretrained models, training and evaluation, please refer to MMRotate 0.3.4.

  • Clone this repo:

    git clone https://github.com/yangxue0827/STAR-MMRotate
    cd STAR-MMRotate/
  • Create a conda virtual environment and activate it:

    conda create -n STAR-MMRotate python=3.8 -y
    conda activate STAR-MMRotate
  • Install Pytorch:

    pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu117
  • Install requirements:

    pip install openmim
    mim install mmcv-full
    mim install mmdet
    
    cd mmrotate
    pip install -r requirements/build.txt
    pip install -v -e .
    
    pip install timm
    pip install ipdb
    
    # Optional, only for G-Rep
    git clone git@github.com:KinglittleQ/torch-batch-svd.git
    cd torch-batch-svd/
    python setup.py install

🚀 Released Models

Oriented Object Detection

Detector mAP Configs Download Note
Deformable DETR 17.1 deformable_detr_r50_1x_star log | ckpt
ARS-DETR 28.1 dn_arw_arm_arcsl_rdetr_r50_1x_star log | ckpt
RetinaNet 21.8 rotated_retinanet_hbb_r50_fpn_1x_star_oc log | ckpt
ATSS 20.4 rotated_atss_hbb_r50_fpn_1x_star_oc log | ckpt
KLD 25.0 rotated_retinanet_hbb_kld_r50_fpn_1x_star_oc log | ckpt
GWD 25.3 rotated_retinanet_hbb_gwd_r50_fpn_1x_star_oc log | ckpt
KFIoU 25.5 rotated_retinanet_hbb_kfiou_r50_fpn_1x_star_oc log | ckpt
DCFL 29.0 dcfl_r50_fpn_1x_star_le135 log | ckpt
R3Det 23.7 r3det_r50_fpn_1x_star_oc log | ckpt
S2A-Net 27.3 s2anet_r50_fpn_1x_star_le135 log | ckpt
FCOS 28.1 rotated_fcos_r50_fpn_1x_star_le90 log | ckpt
CSL 27.4 rotated_fcos_csl_gaussian_r50_fpn_1x_star_le90 log | ckpt
PSC 30.5 rotated_fcos_psc_r50_fpn_1x_star_le90 log | ckpt
H2RBox-v2 27.3 h2rbox_v2p_r50_fpn_1x_star_le90 log | ckpt
RepPoints 19.7 rotated_reppoints_r50_fpn_1x_star_oc log | ckpt
CFA 25.1 cfa_r50_fpn_1x_star_le135 log | ckpt
Oriented RepPoints 27.0 oriented_reppoints_r50_fpn_1x_star_le135 log | ckpt
G-Rep 26.9 g_reppoints_r50_fpn_1x_star_le135 log | ckpt
SASM 28.2 sasm_reppoints_r50_fpn_1x_star_oc log | ckpt p_bs=2
Faster RCNN 32.6 rotated_faster_rcnn_r50_fpn_1x_star_le90 log | ckpt
Gliding Vertex 30.7 gliding_vertex_r50_fpn_1x_star_le90 log | ckpt
Oriented RCNN 33.2 oriented_rcnn_r50_fpn_1x_star_le90 log | ckpt
RoI Transformer 35.7 roi_trans_r50_fpn_1x_star_le90 log | ckpt
LSKNet-T 34.7 lsk_t_fpn_1x_star_le90 log | ckpt
LSKNet-S 37.8 lsk_s_fpn_1x_star_le90 log | ckpt
PKINet-S 32.8 pkinet_s_fpn_1x_star_le90 log | ckpt
ReDet 39.1 redet_re50_refpn_1x_star_le90 log | ckpt ReResNet50
Oriented RCNN 40.7 oriented_rcnn_swin-l_fpn_1x_star_le90 log | ckpt Swin-L

🖊️ Citation

If you find this work helpful for your research, please consider giving this repo a star ⭐ and citing our paper:

@article{li2024star,
  title={STAR: A First-Ever Dataset and A Large-Scale Benchmark for Scene Graph Generation in Large-Size Satellite Imagery},
  author={Li, Yansheng and Wang, Linlin and Wang, Tingzhu and Yang, Xue and Luo, Junwei and Wang, Qi and Deng, Youming and Wang, Wenbin and Sun, Xian and Li, Haifeng and Dang, Bo and Zhang, Yongjun and Yi, Yu and Yan, Junchi},
  journal={arXiv preprint arXiv: 2406.09410},
  year={2024}
}

📃 License

This project is released under the Apache license. Parts of this project contain code and models from other sources, which are subject to their respective licenses.