Skip to content

Repository files navigation

Point2RBox-v2 for Jittor

Jittor/JDet implementation of Point2RBox-v2, a point-supervised oriented object detector based on spatial relationships between instances. This repository contains the end-to-end model, pseudo-label export, the rotated-FCOS second stage, DOTA evaluation utilities, checkpoint conversion tools, and numerical parity tests against the PyTorch reference.

Results

DOTA-v1.0 Task1, mAP50 on the official test server:

Model Paper Jittor Checkpoint
Point2RBox-v2 end-to-end 51.00 48.95 download
Point2RBox-v2 + rotated-FCOS 62.61 59.39 download

The corresponding local trainval-patch diagnostics are 54.5264 and 67.5088 mAP50. These local values are not the official test-server metric. Weights, official-format Task1 submissions, checksums, and the complete metric record are available in the Hugging Face repository.

Environment

The validated environment uses Python 3.10, Jittor 1.3.8.5, NumPy 1.26.4, Jittor's bundled CUDA 11.2, and g++-10. NumPy must remain below version 2 with this Jittor release.

bash scripts/setup_env.sh
conda activate p2r-jittor
export cc_path=/usr/bin/g++-10
export PYTHONPATH="$PWD:$PWD/python"

For an existing Python 3.10 environment, install requirements.txt, pin jittor==1.3.8.5 and numpy==1.26.4, then run python setup.py develop. See docs/environment.md for compiler and CUDA compatibility notes.

Data and weights

Prepare DOTA-v1.0 as 1024×1024 patches with gap 200. The recovered training run used 12,800 trainval patches and 2,709 test patches with this layout:

/path/to/split_ss_dota/
├── trainval/
│   ├── images/
│   └── annfiles/
└── test/
    └── images/

Update images_dir, annfiles_dir, and ann_json in the selected config when the dataset is stored elsewhere. Dataset preparation details are in docs/dota.md.

Download the final weights from Hugging Face:

huggingface-cli download Mingqian-233/Point2RBox-v2-jittor \
  stage1/point2rbox_v2_stage1_ckpt_12.pkl \
  stage2/rotated_fcos_stage2_ckpt_12.pkl \
  --local-dir weights

Training

Train the point-supervised end-to-end model:

CUDA_VISIBLE_DEVICES=0 python tools/run_net.py \
  --config-file configs/point2rbox_v2/point2rbox_v2_final_fixed.py \
  --task train

Generate rotated-box pseudo labels from the final stage-1 checkpoint:

CUDA_VISIBLE_DEVICES=0 python tools/generate_pseudo_labels.py \
  --config configs/point2rbox_v2/point2rbox_v2_pseudo_generator_dota.py \
  --ckpt work_dirs/point2rbox_v2_1x_dota_final_fixed/checkpoints/ckpt_12.pkl \
  --out /path/to/split_ss_dota/point2rbox_v2_pseudo_labels

Set ann_json in the stage-2 config to the generated .bbox.json, then train the rotated-FCOS detector:

CUDA_VISIBLE_DEVICES=0 python tools/run_net.py \
  --config-file configs/point2rbox_v2/rotated_fcos_1x_dota_using_pseudo.py \
  --task train

The configs reproduce the reference 12-epoch schedule, including 500-iteration linear warmup, epoch milestones 8 and 11, and gradient clipping at 35. The completed unattended stage-1 → pseudo-label → stage-2 workflow is recorded in tools/auto_stage2_pipeline.sh.

Evaluation

Set resume_path in the selected config to the downloaded checkpoint and run:

CUDA_VISIBLE_DEVICES=0 python tools/run_net.py \
  --config-file configs/point2rbox_v2/rotated_fcos_1x_dota_using_pseudo.py \
  --task val

CUDA_VISIBLE_DEVICES=0 python tools/run_net.py \
  --config-file configs/point2rbox_v2/rotated_fcos_1x_dota_using_pseudo.py \
  --task test

Testing writes patch predictions, merges them back to the original DOTA images, and creates a submission archive under submit_zips/. Official submissions must contain exactly 15 files named Task1_<class>.txt; the automated pipeline validates this layout before publishing.

Ready-to-submit archives are also available directly from Hugging Face:

Verification

The parity and smoke suites cover configuration values, geometry and rotated ops, losses and gradients, detector routing, checkpoint conversion, pseudo-label serialization, and dataset adapters.

export cc_path=/usr/bin/g++-10
export PYTHONPATH="$PWD:$PWD/python"
python -m pytest tests/parity tests/smoke -q

The release result is 65 passed, 2 skipped. Porting details are documented in docs/porting_notes.md, with exact configuration mappings in docs/config_parity.md.

Acknowledgements

This implementation is built on JDet, Wholly-WOOD for Jittor, and the original Point2RBox-v2.

Released under the Apache License 2.0. See LICENSE.txt.

Citation

@article{yu2025whollywood,
  title={Wholly-WOOD: Wholly Leveraging Diversified-quality Labels for Weakly-supervised Oriented Object Detection},
  author={Yi Yu and Xue Yang and Yansheng Li and Zhenjun Han and Feipeng Da and Junchi Yan},
  year={2025},
  journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},
}

@inproceedings{yu2025point2rboxv2,
  title={Point2RBox-v2: Rethinking Point-supervised Oriented Object Detection with Spatial Layout Among Instances},
  author={Yi Yu and Botao Ren and Peiyuan Zhang and Mingxin Liu and Junwei Luo and Shaofeng Zhang and Feipeng Da and Junchi Yan and Xue Yang},
  booktitle={IEEE/CVF Conference on Computer Vision and Pattern Recognition},
  pages={19283--19293},
  year={2025},
}

@inproceedings{yu2024point2rbox,
  title={Point2RBox: Combine Knowledge from Synthetic Visual Patterns for End-to-end Oriented Object Detection with Single Point Supervision},
  author={Yu, Yi and Yang, Xue and Li, Qingyun and Da, Feipeng and Dai, Jifeng and Qiao, Yu and Yan, Junchi},
  booktitle={IEEE/CVF Conference on Computer Vision and Pattern Recognition},
  pages={16783--16793},
  year={2024}
}

@inproceedings{yu2023h2rboxv2,
  author={Yi Yu and Xue Yang and Qingyun Li and Yue Zhou and Feipeng Da and Junchi Yan},
  title={H2RBox-v2: Incorporating Symmetry for Boosting Horizontal Box Supervised Oriented Object Detection},
  booktitle={Neural Information Processing Systems},
  year={2023},
}

@inproceedings{yang2023h2rbox,
  title={H2RBox: Horizontal Box Annotation is All You Need for Oriented Object Detection},
  author={Yang, Xue and Zhang, Gefan and Li, Wentong and Wang, Xuehui and Zhou, Yue and Yan, Junchi},
  booktitle={International Conference on Learning Representations},
  year={2023}
}

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages