Considerable efforts have been devoted to Oriented Object Detection (OOD). However, one lasting issue regarding the discontinuity in Oriented Bounding Box (OBB) representation remains unresolved, which is an inherent bottleneck for extant OOD methods. This paper endeavors to completely solve this issue in a theoretically guaranteed manner and puts an end to the ad-hoc efforts in this direction. Prior studies typically can only address one of the two cases of discontinuity: rotation and aspect ratio, and often inadvertently introduce decoding discontinuity, e.g. Decoding Incompleteness (DI) and Decoding Ambiguity (DA) as discussed in literature. Specifically, we propose a novel representation method called Continuous OBB (COBB), which can be readily integrated into existing detectors e.g. Faster-RCNN as a plugin. It can theoretically ensure continuity in bounding box regression which to our best knowledge, has not been achieved in literature for rectangle-based object representation. For fairness and transparency of experiments, we have developed a modularized benchmark based on the open-source deep learning framework Jittor's detection toolbox JDet for OOD evaluation. On the popular DOTA dataset, by integrating Faster-RCNN as the same baseline model, our new method outperforms the peer method Gliding Vertex by 1.13% mAP50 (relative improvement 1.54%), and 2.46% mAP75 (relative improvement 5.91%), without any tricks.
(accepted by CVPR 2024)
git clone https://github.com/514flowey/JDet-cobb.git
cd JDet
python -m pip install -r requirements.txt
python setup.py develop
It's suggested to run
JITTOR_HOME=build/ python -m jittor_utils.install_cuda
to install cuda for jittor.
Please refer to JDet for more information.
The following datasets are supported in JDet, please check the corresponding document before use.
DOTA1.0/DOTA1.5/DOTA2.0 Dataset: dota.md.
You can also build your own dataset by convert your datas to DOTA format.
JDet defines the used model, dataset and training/testing method by config-file
, please check the config.md to learn how it works.
CUDA_VISIBLE_DEVICES=0 JITTOR_HOME=build/ python tools/run_net.py \
--config-file configs/faster_rcnn/faster_rcnn_obb_r50_fpn_1x_dota.py
If you want to test the downloaded trained models, please use --load_from {you_checkpointspath}
.
CUDA_VISIBLE_DEVICES=0 JITTOR_HOME=build/ python tools/run_net.py \
--config-file configs/roi_transformer/roi_transformer_obb_r50_fpn_1x_dota.py \
--load_from weights/checkpoints/roi_transformer_obb_r50_fpn_1x_dota_ckpt12.pkl \
--task test
Models | Dataset | Sub_Image_Size/Overlap | Train Aug | Test Aug | mAP | Config | Download |
---|---|---|---|---|---|---|---|
Faster R-CNN | DOTA1.0 | 1024/200 | flip | - | 73.01 | config | Tsinghua Baidu Disk |
Faster R-CNN + COBB-sig |
DOTA1.0 | 1024/200 | flip | - | 74.00 | config | Tsinghua Baidu Disk |
Faster R-CNN + COBB-ln |
DOTA1.0 | 1024/200 | flip | - | 74.44 | config | Tsinghua Baidu Disk |
RoI Transformer | DOTA1.0 | 1024/200 | flip | - | 75.59 | config | Tsinghua Baidu Disk |
RoI Transformer + COBB-ln-sig |
DOTA1.0 | 1024/200 | flip | - | 76.55 | config | Tsinghua Baidu Disk |
RoI Transformer + COBB-ln-ln |
DOTA1.0 | 1024/200 | flip | - | 76.53 | config | Tsinghua Baidu Disk |
Email: [email protected]
If there is any problem about JDet or Jittor, please refer to Jittor and JDet
@article{xiao2024theoretically,
title={Theoretically Achieving Continuous Representation of Oriented Bounding Boxes},
author={Xiao, Zikai and Yang, Guo-Ye and Yang, Xue and Mu, Tai-Jiang and Yan, Junchi and Hu, Shi-min},
journal={arXiv preprint arXiv:2402.18975},
year={2024}
}