/OBBDetection

OBBDetection is an oriented object detection library, which is based on MMdetection.

Primary LanguagePythonApache License 2.0Apache-2.0

OBBDetection

note: If you have questions or good suggestions, feel free to propose issues and contact me.

introduction

OBBDetection is an oriented object detection toolbox modified from MMdetection v2.2.

demo image

Major features

  • MMdetection feature inheritance

    OBBDetection doesn't change the structure and codes of original MMdetection and the additive codes are under MMdetection logic. Therefore, our OBBDetection inherits all features from MMdetection.

  • Support of multiple frameworks out of box

    We implement multiple oriented object detectors in this toolbox (e.g. RoI Transformer, Gliding Vertex). Attributing to moudlar design of MMdetection, Many parts of detectors (e.g. backbone, RPN, sampler and assigner) have multiple options.

  • Flexible representation of oriented boxes

    Horizontal bounding boxes (HBB), oriented bounding boxes (OBB) and 4 point boxes (POLY) are supported in this toolbox. The program will confirm the type of bounding box by the tensor shape or the default setting.

We develop BboxToolkit to support oriented bounding boxes operations, which is heavily depended on by this toolbox.

License

This project is released under the Apache 2.0 license.

Update

  • (2021-11-29) Discard mmcv-0.6.2 and support mmcv-full.
  • (2021-09-18) Implement Double Head OBB in the OBBDetection.
  • (2021-09-01) Implement FCOS OBB in the OBBDetection.
  • (2021-08-21) Reimplement the PolyIoULoss.

Benchmark and model zoo

Results and models are available in the model zoo.

Supported backbones:

  • ResNet
  • ResNeXt
  • VGG
  • HRNet
  • RegNet
  • Res2Net

Supported oriented detection methods:

Supported horizontal detection methods:

Installation

Please refer to install.md for installation and dataset preparation.

Get Started

Oriented models training and testing

If you want to train or test a oriented model, please refer to oriented_model_starting.md.

How to use MMDetection

If you are not familiar with MMdetection, please see getting_started.md for the basic usage of MMDetection. There are also tutorials for finetuning models, adding new dataset, designing data pipeline, and adding new modules.

Acknowledgement

We refered S2ANet and AerialDetection when develping OBBDetection.

This toolbox is modified from MMdetection. If you use this toolbox or benchmark in your research, please cite the following information.

@article{mmdetection,
  title   = {{MMDetection}: Open MMLab Detection Toolbox and Benchmark},
  author  = {Chen, Kai and Wang, Jiaqi and Pang, Jiangmiao and Cao, Yuhang and
             Xiong, Yu and Li, Xiaoxiao and Sun, Shuyang and Feng, Wansen and
             Liu, Ziwei and Xu, Jiarui and Zhang, Zheng and Cheng, Dazhi and
             Zhu, Chenchen and Cheng, Tianheng and Zhao, Qijie and Li, Buyu and
             Lu, Xin and Zhu, Rui and Wu, Yue and Dai, Jifeng and Wang, Jingdong
             and Shi, Jianping and Ouyang, Wanli and Loy, Chen Change and Lin, Dahua},
  journal = {arXiv preprint arXiv:1906.07155},
  year={2019}
}

This is the official implement of Oriented R-CNN. if it is used in your research, please cite the following information.

@InProceedings{Xie_2021_ICCV,
  author = {Xie, Xingxing and Cheng, Gong and Wang, Jiabao and Yao, Xiwen and Han, Junwei},
  title = {Oriented R-CNN for Object Detection},
  booktitle = {Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)},
  month = {October},
  year = {2021},
  pages = {3520-3529} }