Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jbwang1997/OBBDetection
OBBDetection is an oriented object detection library, which is based on MMdetection.
https://github.com/jbwang1997/OBBDetection
object-detection oriented-object-detection
Last synced: about 2 months ago
JSON representation
OBBDetection is an oriented object detection library, which is based on MMdetection.
- Host: GitHub
- URL: https://github.com/jbwang1997/OBBDetection
- Owner: jbwang1997
- License: apache-2.0
- Created: 2021-04-06T15:45:20.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2024-02-01T08:51:37.000Z (11 months ago)
- Last Synced: 2024-08-04T03:12:22.669Z (5 months ago)
- Topics: object-detection, oriented-object-detection
- Language: Python
- Homepage:
- Size: 12.9 MB
- Stars: 531
- Watchers: 7
- Forks: 114
- Open Issues: 108
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# 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](https://github.com/open-mmlab/mmdetection).
![demo image](demo/obbdet_show.jpg)
### 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](https://github.com/jbwang1997/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](LICENSE).
## Update
- (**2022-03-15**) Support oriented mask. Open source [Oriented R-CNN and Beyond](configs/obb/oriented_rcnn_beyond).
- (**2021-12-14**) Thanks [liuyanyi](https://github.com/liuyanyi) for reimplementing [S2ANet](configs/obb/s2anet) in OBBDetection.
- (**2021-11-29**) Discard mmcv-0.6.2 and support mmcv-full.
- (**2021-09-18**) Implement [Double Head OBB](configs/obb/double_heads_obb) in the OBBDetection.
- (**2021-09-01**) Implement [FCOS OBB](configs/obb/fcos_obb) in the OBBDetection.
- (**2021-08-21**) Reimplement the [PolyIoULoss](configs/obb/poly_iou_loss).## Benchmark and model zoo
Results and models are available in the [model zoo](docs/model_zoo.md).
Supported backbones:
- [x] ResNet
- [x] ResNeXt
- [x] VGG
- [x] HRNet
- [x] RegNet
- [x] Res2NetSupported oriented detection methods:
- [x] [S2ANet (TGRS)](configs/obb/s2anet)
- [x] [Oriented R-CNN (ICCV'2021)](configs/obb/oriented_rcnn)
- [x] [Oriented R-CNN and Beyond (IJCV 2024)](configs/obb/oriented_rcnn_beyond)
- [x] [Poly IoU Loss](configs/obb/poly_iou_loss)
- [x] [Faster R-CNN OBB](configs/obb/faster_rcnn_obb)
- [x] [Double Head OBB](configs/obb/double_heads_obb)
- [x] [RetinaNet OBB](configs/obb/retinanet_obb)
- [x] [Gliding Vertex](configs/obb/gliding_vertex)
- [x] [RoI Transformer](configs/obb/roi_transformer)
- [x] [FCOS OBB](configs/obb/fcos_obb)Supported horizontal detection methods:
- [x] [RPN](configs/rpn)
- [x] [Fast R-CNN](configs/fast_rcnn)
- [x] [Faster R-CNN](configs/faster_rcnn)
- [x] [Mask R-CNN](configs/mask_rcnn)
- [x] [Cascade R-CNN](configs/cascade_rcnn)
- [x] [Cascade Mask R-CNN](configs/cascade_rcnn)
- [x] [SSD](configs/ssd)
- [x] [RetinaNet](configs/retinanet)
- [x] [GHM](configs/ghm)
- [x] [Mask Scoring R-CNN](configs/ms_rcnn)
- [x] [Double-Head R-CNN](configs/double_heads)
- [x] [Hybrid Task Cascade](configs/htc)
- [x] [Libra R-CNN](configs/libra_rcnn)
- [x] [Guided Anchoring](configs/guided_anchoring)
- [x] [FCOS](configs/fcos)
- [x] [RepPoints](configs/reppoints)
- [x] [Foveabox](configs/foveabox)
- [x] [FreeAnchor](configs/free_anchor)
- [x] [NAS-FPN](configs/nas_fpn)
- [x] [ATSS](configs/atss)
- [x] [FSAF](configs/fsaf)
- [x] [PAFPN](configs/pafpn)
- [x] [Dynamic R-CNN](configs/dynamic_rcnn)
- [x] [PointRend](configs/point_rend)
- [x] [CARAFE](configs/carafe/README.md)
- [x] [DCNv2](configs/dcn/README.md)
- [x] [Group Normalization](configs/gn/README.md)
- [x] [Weight Standardization](configs/gn+ws/README.md)
- [x] [OHEM](configs/faster_rcnn/faster_rcnn_r50_fpn_ohem_1x_coco.py)
- [x] [Soft-NMS](configs/faster_rcnn/faster_rcnn_r50_fpn_soft_nms_1x_coco.py)
- [x] [Generalized Attention](configs/empirical_attention/README.md)
- [x] [GCNet](configs/gcnet/README.md)
- [x] [Mixed Precision (FP16) Training](configs/fp16/README.md)
- [x] [InstaBoost](configs/instaboost/README.md)
- [x] [GRoIE](configs/groie/README.md)
- [x] [DetectoRS](configs/detectors/README.md)
- [x] [Generalized Focal Loss](configs/gfl/README.md)## Installation
Please refer to [install.md](docs/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](docs/oriented_model_starting.md).
### How to use MMDetection
If you are not familiar with MMdetection, please see [getting_started.md](docs/getting_started.md) for the basic usage of MMDetection. There are also tutorials for [finetuning models](docs/tutorials/finetune.md), [adding new dataset](docs/tutorials/new_dataset.md), [designing data pipeline](docs/tutorials/data_pipeline.md), and [adding new modules](docs/tutorials/new_modules.md).
## Acknowledgement
We refered [S2ANet](https://github.com/csuhan/s2anet) and [AerialDetection](https://github.com/dingjiansw101/AerialDetection) when develping OBBDetection.
This toolbox is modified from [MMdetection](https://github.com/open-mmlab/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](configs/obb/oriented_rcnn). 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} }
``````
@ARTICLE{orcnn_beyond,
author={Xie, Xingxing and Cheng, Gong and Wang, Jiabao and Li, Ke and Han, Junwei},
journal={International Journal of Computer Vision},
title={Oriented R-CNN and Beyond},
year={2024},
pages={1-23},
doi={https://doi.org/10.1007/s11263-024-01989-w}
}
```