JRS

July 9, 2025 ยท View on GitHub

Introduction

JRS is an object detection benchmark based on Jittor, and mainly focus on aerial image object detection (oriented object detection).

Install

JRS environment requirements:

  • System: Linux(e.g. Ubuntu/CentOS/Arch), macOS, or Windows Subsystem of Linux (WSL)
  • Python version >= 3.7
  • CPU compiler (require at least one of the following)
    • g++ (>=5.4.0)
    • clang (>=8.0)
  • GPU compiler (optional)
    • nvcc (>=10.0 for g++ or >=10.2 for clang)
  • GPU library: cudnn-dev (recommend tar file installation, reference link)

Step 1: Install the requirements

git clone https://github.com/NK-JittorCV/nk-remote JRS
cd JRS
python -m pip install -r requirements.txt

If you have any installation problems for Jittor, please refer to Jittor

Step 2: Install JRS

cd JRS
# suggest this 
python setup.py develop
# or
python setup.py install

If you don't have permission for install,please add --user.

Or use PYTHONPATH: You can add export PYTHONPATH=$PYTHONPATH:{you_own_path}/JRS/python into .bashrc, and run

source .bashrc

Getting Started

Datasets

The following datasets are supported in JRS, please check the corresponding document before use.

DOTA1.0/DOTA1.5/DOTA2.0 Dataset: dota.md.

FAIR Dataset: fair.md

SSDD/SSDD+: ssdd.md

RSAR: rsar.md

You can also build your own dataset by convert your datas to DOTA format.

Config

JRS defines the used model, dataset and training/testing method by config-file, please check the config.md to learn how it works.

Train

python tools/run_net.py --config-file=configs/s2anet_r50_fpn_1x_dota.py --task=train

If you install cutlass error, please see issue#642 in jittor repository.

Test

If you want to test the downloaded trained models, please set resume_path={you_checkpointspath} in the last line of the config file.

python tools/run_net.py --config-file=configs/s2anet_r50_fpn_1x_dota.py --task=test

Test on images / Visualization

You can test and visualize results on your own image sets by:

python tools/run_net.py --config-file=configs/s2anet_r50_fpn_1x_dota.py --task=vis_test

You can choose the visualization style you prefer, for more details about visualization, please refer to visualization.md. Visualization

Build a New Project

In this section, we will introduce how to build a new project(model) with JRS. We need to install JRS first, and build a new project by:

mkdir $PROJECT_PATH$
cd $PROJECT_PATH$
cp $JRS_PATH$/tools/run_net.py ./
mkdir configs

Then we can build and edit configs/base.py like $JRS_PATH$/configs/retinanet.py. If we need to use a new layer, we can define this layer at $PROJECT_PATH$/layers.py and import layers.py in $PROJECT_PATH$/run_net.py, then we can use this layer in config files. Then we can train/test this model by:

python run_net.py --config-file=configs/base.py --task=train
python run_net.py --config-file=configs/base.py --task=test

Models

ModelsDatasetSub_Image_Size/OverlapTrain AugTest AugOptimLr schdmAPPaperConfigDownload
OrientedRCNN-LSKNet-S-FPNDOTA1.01024/200flip+ra90+bcssAdamW1x77.17IJCVconfigmodel
OrientedRCNN-R50-FPNDOTA1.01024/200Flip-SGD1x75.62ICCV21configmodel
S2ANet-R50-FPNDOTA1.01024/200flip-SGD1x74.11arxivconfigmodel
S2ANet-R50-FPNDOTA1.01024/200flip+ra90+bc-SGD1x76.40arxivconfigmodel
S2ANet-R50-FPNDOTA1.01024/200flip+ra90+bc+msmsSGD1x79.72arxivconfigmodel
S2ANet-R101-FPNDOTA1.01024/200Flip-SGD1x74.28arxivconfigmodel
Gliding-R50-FPNDOTA1.01024/200Flip-SGD1x72.93arxivconfigmodel
Gliding-R50-FPNDOTA1.01024/200Flip+ra90+bc-SGD1x74.93arxivconfigmodel
H2RBox-R50-FPNDOTA1.01024/200flip-AdamW1x67.62arxivconfigmodel
RetinaNet-hbb-R50-FPNDOTA1.01024/200flip-SGD1x68.02arxivconfigmodel
RetinaNet-obb-R50-FPNDOTA1.01024/200flip-SGD1x68.07arxivconfigmodel
GWD-R50-FPNDOTA1.01024/200flip-SGD1x68.88arxivconfigmodel
KLD-R50-FPNDOTA1.01024/200flip-SGD1x69.10arxivconfigmodel
KFIoU-R50-FPNDOTA1.01024/200flip-SGD1x69.36arxivconfigmodel
FasterRCNN-R50-FPNDOTA1.01024/200Flip-SGD1x69.631arxivconfigmodel
RoITransformer-R50-FPNDOTA1.01024/200Flip-SGD1x73.842arxivconfigmodel
FCOS-R50-FPNDOTA1.01024/200flip-SGD1x70.40ICCV19configmodel
ReDet-R50-FPNDOTA1.01024/200Flip-SGD1x76.23arxivconfigmodel pretrained
CSL-R50-FPNDOTA1.01024/200flip-SGD1x67.99arxivconfigmodel
RSDet-R50-FPNDOTA1.01024/200Flip-SGD1x68.41arxivconfigmodel
ATSS-R50-FPNDOTA1.01024/200flip-SGD1x72.44arxivconfigmodel
Reppoints-R50-FPNDOTA1.01024/200flip-SGD1x56.34arxivconfigmodel

Notice:

  1. ms: multiscale
  2. flip: random flip
  3. ra: rotate aug
  4. ra90: rotate aug with angle 90,180,270
  5. 1x : 12 epochs
  6. bc: balance category
  7. mAP: mean Average Precision on DOTA1.0 test set

Supported Models

Baseline

  • :heavy_check_mark: S2ANet
  • :heavy_check_mark: RetinaNet
  • :heavy_check_mark: Rotated RetinaNet
  • :heavy_check_mark: Faster R-CNN
  • :heavy_check_mark: ROI Transformer
  • :heavy_check_mark: FCOS
  • :heavy_check_mark: Oriented R-CNN
  • :heavy_check_mark: YOLOv5

SOTA methods

  • :heavy_check_mark: Localization Distillation
  • :heavy_check_mark: LSKNet
  • :heavy_check_mark: Strip R-CNN

Supported Datasets

  • :heavy_check_mark: DOTA1.0
  • :heavy_check_mark: DOTA1.5
  • :heavy_check_mark: DOTA2.0
  • :heavy_check_mark: SSDD
  • :heavy_check_mark: SSDD+
  • :heavy_check_mark: FAIR
  • :heavy_check_mark: COCO
  • :heavy_check_mark: RSAR

The Team

JRS is currently maintained by the NKU Media Computing Lab. If you are also interested in JRS and want to improve it, Please join us!

Citation

@article{Li_2024_IJCV,
  title={LSKNet: A Foundation Lightweight Backbone for Remote Sensing},
  author={Li, Yuxuan and Li, Xiang and Dai, Yimain and Hou, Qibin and Liu, Li and Liu, Yongxiang and Cheng, Ming-Ming and Yang, Jian},
  journal={International Journal of Computer Vision},
  year={2024},
  doi = {https://doi.org/10.1007/s11263-024-02247-9},
  publisher={Springer}
}

@article{yuan2025strip,
  title={Strip R-CNN: Large Strip Convolution for Remote Sensing Object Detection},
  author={Yuan, Xinbin and Zheng, ZhaoHui and Li, Yuxuan and Liu, Xialei and Liu, Li and Li, Xiang and Hou, Qibin and Cheng, Ming-Ming},
  journal={arXiv preprint arXiv:2501.03775},
  year={2025}
}

@inproceedings{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},
  booktitle={Proceedings of the Computer Vision and Pattern Recognition Conference},
  year={2025}
}

@article{hu2020jittor,
  title={Jittor: a novel deep learning framework with meta-operators and unified graph execution},
  author={Hu, Shi-Min and Liang, Dun and Yang, Guo-Ye and Yang, Guo-Wei and Zhou, Wen-Yang},
  journal={Science China Information Sciences},
  volume={63},
  number={222103},
  pages={1--21},
  year={2020}
}

Reference

  1. Jittor
  2. mmrotate
  3. Detectron2
  4. mmdetection
  5. maskrcnn_benchmark
  6. RotationDetection
  7. s2anet
  8. gliding_vertex
  9. oriented_rcnn
  10. r3det
  11. AerialDetection
  12. DOTA_devkit
  13. OBBDetection
  14. LSKNet
  15. Strip R-CNN
  16. RSAR