【MMRotate 有三大特点】
为当下流行的基于深度学习的旋转目标检测算法提供了统一的训练、推理、评估的算法框架。
简洁的用户接口与高效、强大的基准模型,部分实现精度超出官方版本。
延续了 OpenMMLab 系列的模块化风格,继承了高度灵活 config 功能。
【首个统一的旋转目标检测工具箱】
MMRotate 中包含了 15 种旋转目标检测算法,从之前 Tensorflow 独占的 GWD、KLD,到目前在 DOTA 数据集上达到 SOTA 的 ReDet、Oriented RCNN 都有实现。
目前支持的算法一览:
- Rotated RetinaNet-OBB/HBB (ICCV'2017)
- Rotated FasterRCNN-OBB (TPAMI'2017)
- Rotated RepPoints-OBB (ICCV'2019)
- RoI Transformer (CVPR'2019)
- Gliding Vertex (TPAMI'2020)
- R3Det (AAAI'2021)
- S2A-Net (TGRS'2021)
- ReDet (CVPR'2021)
- Beyond Bounding-Box (CVPR'2021)
- Oriented R-CNN (ICCV'2021)
- GWD (ICML'2021)
- KLD (NeurIPS'2021)
- KFIoU (arXiv)
- G-Rep (stay tuned)
此外,MMRotate支持 OpenCV、长边135°、长边90° 3 种角度定义法,也支持 DOTA、SSDD、HRSID 3 个遥感数据集。
在OpenMMLab的MMCV中,实现了RiRoIAlignRotated, RotatedFeatureAlign 等高性能旋转框 CUDA 算子,因此 MMRotate 无愧是真正的史上最全、最统一的旋转目标检测算法框架。
【高效强大的基准模型】
在 MMRotate 中,复现了大量旋转目标检测算法,部分模型在 DOTA v1.0 数据集上甚至超越了官方公布的精度。
【模块化设计和丰富灵活的配置文件】
同 OpenMMLab 其他算法库一样,MMRotate使用统一框架和模块化设计实现了各个算法。一方面可以尽量实现代码复用,另一方面,方便大家基于此框架实现新的算法。
以下是 MMRotate 的大致框架:
MMRotate 主要由4个部分组成,datasets、models、core 和 apis。
datasets 用于数据集加载和预处理,其中包含训练所需的数据集,旋转框数据增广的 pipelines,和加载数据时的 samplers 。
models 是最关键的部分,包括旋转检测模型和损失函数。
在 apis 中,为模型训练、测试和推理配置了一键启动的接口。
core 中实现了用于模型训练的评估工具和定制的 hooks 。
另外,得益于 OpenMMLab 强大的且高度灵活的 config 模式和注册器机制, MMRotate 可以做到不改动代码只编辑配置文件便能自由切换不同的旋转框定义法。
项目地址:https://github.com/open-mmlab/mmrotate