We hope to integrate remote sensing related work based on MMLab, especially MMDetection and MMRotate.
Oriented Object Detection - Architecture
Oriented Object Detection - Loss
GWD (ICML'2021) |
KLD (NeurIPS'2021) |
KFIoU (ICLR'2023) |
Oriented Object Detection - Coder
CSL (ECCV'2020) |
Oriented R-CNN (ICCV'2021) |
PSC (CVPR'2023) |
ACM (CVPR'2024) |
GauCho (CVPR'2025) |
Oriented Object Detection - Backbone
ConvNeXt (CVPR'2022) |
LSKNet (ICCV'2023) |
ARC (ICCV'2023) |
PKINet (CVPR'2024) |
SARDet 100K (Nips'2024) |
Strip R-CNN (Arxiv'2025) |
LEGNet (ICCVW'2025) |
LWGANet (Arxiv'2025) |
Oriented Object Detection - Weakly Supervise
H2RBox (ICLR'2023) |
H2RBox-v2 (Nips'2023) |
Point2Rbox (CVPR'2024) |
Point2Rbox-v2 (CVPR'2025) |
WhollyWOOD (TPAMI'2025) |
SAR
SARDet 100K (Nips'2024) |
RSAR (CVPR'2025) |
SAM
MMRotate SAM |
To support H2rbox_v2, point2rbox, and mamba, we use pytorch-2.x
Step 1: Install Anaconda or Miniconda
Step 2: Create a virtual environment
conda create --name ai4rs python=3.10 -y
conda activate ai4rs
Step 3: Install Pytorch according to official instructions. For example:
conda install pytorch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 pytorch-cuda=12.1 -c pytorch -c nvidia
Verify whether pytorch supports cuda
python -c "import torch; print(torch.cuda.is_available())"
Step 4: Install MMEngine and MMCV, and we recommend using MIM to complete the installation
pip install -U openmim -i https://pypi.tuna.tsinghua.edu.cn/simple
mim install mmengine -i https://pypi.tuna.tsinghua.edu.cn/simple
mim install "mmcv>2.0.0rc4, <2.2.0" -i https://pypi.tuna.tsinghua.edu.cn/simple
Step 5: Install MMDetection
mim install 'mmdet>3.0.0rc6, <3.4.0' -i https://pypi.tuna.tsinghua.edu.cn/simple
Step 6: Install ai4rs
git clone https://github.com/wokaikaixinxin/ai4rs.git
cd ai4rs
pip install -v -e . -i https://pypi.tuna.tsinghua.edu.cn/simple
# "-v" means verbose, or more output
# "-e" means installing a project in editable mode,
# thus any local modifications made to the code will take effect without reinstallation.
Step 7: Version of NumPy
If the NumPy version is incompatible, downgrade the NumPy version to 1.x.
A module that was compiled using NumPy 1.x cannot be run in
NumPy 2.0.1 as it may crash. To support both 1.x and 2.x
versions of NumPy, modules must be compiled with NumPy 2.0.
Some module may need to rebuild instead e.g. with 'pybind11>=2.12'.
If you are a user of the module, the easiest solution will be to
downgrade to 'numpy<2' or try to upgrade the affected module.
We expect that some modules will need time to support NumPy 2.
pip install "numpy<2" -i https://pypi.tuna.tsinghua.edu.cn/simple
Please refer to data_preparation.md to prepare the data
DOTA | DIOR | SSDD | HRSC |
HRSID | SRSDD | RSDD | ICDAR2015 |
SARDet 100K | RSAR | FAIR1M |
Single-node single-GPU
python tools/train.py config_path
For example:
python tools/train.py projects/GSDet_baseline/configs/GSDet_r50_b900_h2h4_h2r1_r2r1_2x_dior.py
Single-node multi-GPU
bash tools/dist_train.sh config_path num_gpus
For example:
bash tools/dist_train.sh projects/GSDet_baseline/configs/GSDet_r50_b900_h2h4_h2r1_r2r1_2x_dior.py 2
Single-node single-GPU
python tools/test.py config_path checkpoint_path
For example:
python tools/test.py configs/h2rbox_v2/h2rbox_v2-le90_r50_fpn-1x_dota.py work_dirs/h2rbox_v2-le90_r50_fpn-1x_dota-fa5ad1d2.pth
Single-node multi-GPU
bash tools/dist_test.sh config_path checkpoint_path num_gpus
For example:
bash tools/dist_test.sh configs/h2rbox_v2/h2rbox_v2-le90_r50_fpn-1x_dota.py work_dirs/h2rbox_v2-le90_r50_fpn-1x_dota-fa5ad1d2.pth 2
Please see Overview for the general introduction of Openmmlab.
For detailed user guides and advanced guides, please refer to our documentation:
Please refer to FAQ for frequently asked questions.
If you use this toolbox or benchmark in your research, please cite this project ai4rs