Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor READEME #566

Merged
merged 6 commits into from
Oct 26, 2022
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
86 changes: 49 additions & 37 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,17 +19,17 @@
<div>&nbsp;</div>

[![PyPI](https://img.shields.io/pypi/v/mmrotate)](https://pypi.org/project/mmrotate)
[![docs](https://img.shields.io/badge/docs-latest-blue)](https://mmrotate.readthedocs.io/en/latest/)
[![docs](https://img.shields.io/badge/docs-latest-blue)](https://mmrotate.readthedocs.io/en/1.x/)
[![badge](https://github.com/open-mmlab/mmrotate/workflows/build/badge.svg)](https://github.com/open-mmlab/mmrotate/actions)
[![codecov](https://codecov.io/gh/open-mmlab/mmrotate/branch/main/graph/badge.svg)](https://codecov.io/gh/open-mmlab/mmrotate)
[![license](https://img.shields.io/github/license/open-mmlab/mmrotate.svg)](https://github.com/open-mmlab/mmrotate/blob/main/LICENSE)
[![open issues](https://isitmaintained.com/badge/open/open-mmlab/mmrotate.svg)](https://github.com/open-mmlab/mmrotate/issues)
[![issue resolution](https://isitmaintained.com/badge/resolution/open-mmlab/mmrotate.svg)](https://github.com/open-mmlab/mmrotate/issues)

[📘Documentation](https://mmrotate.readthedocs.io/en/latest/) |
[🛠️Installation](https://mmrotate.readthedocs.io/en/latest/install.html) |
[👀Model Zoo](https://mmrotate.readthedocs.io/en/latest/model_zoo.html) |
[🆕Update News](https://mmrotate.readthedocs.io/en/latest/changelog.html) |
[📘Documentation](https://mmrotate.readthedocs.io/en/1.x/) |
[🛠️Installation](https://mmrotate.readthedocs.io/en/1.x/install.html) |
[👀Model Zoo](https://mmrotate.readthedocs.io/en/1.x/model_zoo.html) |
[🆕Update News](https://mmrotate.readthedocs.io/en/1.x/notes/changelog.html) |
[🚀Ongoing Projects](https://github.com/open-mmlab/mmrotate/projects) |
[🤔Reporting Issues](https://github.com/open-mmlab/mmrotate/issues/new/choose)

Expand Down Expand Up @@ -72,41 +72,49 @@ https://user-images.githubusercontent.com/10410257/154433305-416d129b-60c8-44c7-

## What's New

**0.3.2** was released in 6/7/2022:
**v1.0.0rc0** was released in 11/11/2022:

- Support Oriented Reppoints (CVPR'22) (#286)
- Support ConvNeXt backbone (CVPR'22) (#343)

Please refer to [changelog.md](docs/en/changelog.md) for details and release history.
- Unifies interfaces of all components based on [MMEngine](https://github.com/open-mmlab/mmengine).
- Faster training and testing speed with complete support of mixed precision training.

## Installation

MMRotate depends on [PyTorch](https://pytorch.org/), [MMCV](https://github.com/open-mmlab/mmcv) and [MMDetection](https://github.com/open-mmlab/mmdetection).
Below are quick steps for installation.
Please refer to [Install Guide](https://mmrotate.readthedocs.io/en/latest/install.html) for more detailed instruction.

```shell
conda create -n open-mmlab python=3.7 pytorch==1.7.0 cudatoolkit=10.1 torchvision -c pytorch -y
conda activate open-mmlab
pip install openmim
mim install mmcv-full
mim install mmdet
git clone https://github.com/open-mmlab/mmrotate.git
cd mmrotate
pip install -r requirements/build.txt
pip install -v -e .
```
Please refer to [Installation](https://mmrotate.readthedocs.io/en/1.x/get_started.html) for more detailed instruction.

## Getting Started

Please see [Overview](https://mmrotate.readthedocs.io/en/1.x/overview.html) for the general introduction of MMRotate.

For detailed user guides and advanced guides, please refer to our [documentation](https://mmrotate.readthedocs.io/en/1.x/):

- User Guides

<details>

- [Train & Test](https://mmrotate.readthedocs.io/en/1.x/user_guides/index.html#train-test)
- [Learn about Configs](https://mmrotate.readthedocs.io/en/1.x/user_guides/config.html)
- [Inference with existing models](https://mmrotate.readthedocs.io/en/1.x/user_guides/inference.html)
- [Dataset Prepare](https://mmrotate.readthedocs.io/en/1.x/user_guides/dataset_prepare.html)
- [Test existing models on standard datasets](https://mmrotate.readthedocs.io/en/1.x/user_guides/train_test.html)
- [Train predefined models on standard datasets](https://mmrotate.readthedocs.io/en/1.x/user_guides/train_test.html)
- [Test Results Submission](https://mmrotate.readthedocs.io/en/1.x/user_guides/test_results_submission.html)
- [Useful Tools](https://mmrotate.readthedocs.io/en/1.x/user_guides/index.html#useful-tools)

</details>

- Advanced Guides

<details>

- [Basic Concepts](https://mmrotate.readthedocs.io/en/1.x/advanced_guides/index.html#basic-concepts)
- [Component Customization](https://mmrotate.readthedocs.io/en/1.x/advanced_guides/index.html#component-customization)
- [How to](https://mmrotate.readthedocs.io/en/1.x/advanced_guides/index.html#how-to)

## Get Started
</details>

Please see [get_started.md](docs/en/get_started.md) for the basic usage of MMRotate.
We provide [colab tutorial](demo/MMRotate_Tutorial.ipynb), and other tutorials for:
We also provide [colab tutorial](demo/MMRotate_Tutorial.ipynb).

- [learn the basics](docs/en/intro.md)
- [learn the config](docs/en/tutorials/customize_config.md)
- [customize dataset](docs/en/tutorials/customize_dataset.md)
- [customize model](docs/en/tutorials/customize_models.md)
- [useful tools](docs/en/tutorials/useful_tools.md)
To migrate from MMRotate 0.x, please refer to [migration](https://mmdetection.readthedocs.io/en/1.x/migration.html).

## Model Zoo

Expand Down Expand Up @@ -144,27 +152,29 @@ Please refer to [data_preparation.md](tools/data/README.md) to prepare the data.

## FAQ

Please refer to [FAQ](docs/en/faq.md) for frequently asked questions.
Please refer to [FAQ](docs/en/notes/faq.md) for frequently asked questions.

## Contributing

We appreciate all contributions to improve MMRotate. Please refer to [CONTRIBUTING.md](.github/CONTRIBUTING.md) for the contributing guideline.

## Acknowledgement

MMRotate is an open source project that is contributed by researchers and engineers from various colleges and companies. We appreciate all the contributors who implement their methods or add new features, as well as users who give valuable feedbacks. We wish that the toolbox and benchmark could serve the growing research community by providing a flexible toolkit to reimplement existing methods and develop their own new methods.
MMRotate is an open source project that is contributed by researchers and engineers from various colleges and companies. We appreciate all the contributors who implement their methods or add new features, as well as users who give valuable feedbacks. We appreciate the [Student Innovation Center of SJTU](https://www.si.sjtu.edu.cn/) for providing rich computing resources at the beginning of the project. We wish that the toolbox and benchmark could serve the growing research community by providing a flexible toolkit to reimplement existing methods and develop their own new methods.

## Citation

If you use this toolbox or benchmark in your research, please cite this project.

```bibtex
@article{mmrotate2022,
@inproceedings{zhou2022mmrotate,
title = {MMRotate: A Rotated Object Detection Benchmark using PyTorch},
author = {Zhou, Yue and Yang, Xue and Zhang, Gefan and Wang, Jiabao and Liu, Yanyi and
Hou, Liping and Jiang, Xue and Liu, Xingzhao and Yan, Junchi and Lyu, Chengqi and
Zhang, Wenwei and Chen, Kai},
journal= {arXiv preprint arXiv:2204.13317},
booktitle={Proceedings of the 30th ACM International Conference on Multimedia},
pages = {7331–7334},
numpages = {4},
year={2022}
}
```
Expand All @@ -175,12 +185,14 @@ This project is released under the [Apache 2.0 license](LICENSE).

## Projects in OpenMMLab

- [MMEngine](https://github.com/open-mmlab/mmengine): OpenMMLab foundational library for training deep learning models.
- [MMCV](https://github.com/open-mmlab/mmcv): OpenMMLab foundational library for computer vision.
- [MIM](https://github.com/open-mmlab/mim): MIM installs OpenMMLab packages.
- [MMClassification](https://github.com/open-mmlab/mmclassification): OpenMMLab image classification toolbox and benchmark.
- [MMDetection](https://github.com/open-mmlab/mmdetection): OpenMMLab detection toolbox and benchmark.
- [MMDetection3D](https://github.com/open-mmlab/mmdetection3d): OpenMMLab's next-generation platform for general 3D object detection.
- [MMRotate](https://github.com/open-mmlab/mmrotate): OpenMMLab rotated object detection toolbox and benchmark.
- [MMYOLO](https://github.com/open-mmlab/mmyolo): OpenMMLab YOLO series toolbox and benchmark.
- [MMSegmentation](https://github.com/open-mmlab/mmsegmentation): OpenMMLab semantic segmentation toolbox and benchmark.
- [MMOCR](https://github.com/open-mmlab/mmocr): OpenMMLab text detection, recognition, and understanding toolbox.
- [MMPose](https://github.com/open-mmlab/mmpose): OpenMMLab pose estimation toolbox and benchmark.
Expand Down
80 changes: 46 additions & 34 deletions README_zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,10 @@
[![open issues](https://isitmaintained.com/badge/open/open-mmlab/mmrotate.svg)](https://github.com/open-mmlab/mmrotate/issues)
[![issue resolution](https://isitmaintained.com/badge/resolution/open-mmlab/mmrotate.svg)](https://github.com/open-mmlab/mmrotate/issues)

[📘使用文档](https://mmrotate.readthedocs.io/zh_CN/stable/) |
[🛠️安装教程](https://mmrotate.readthedocs.io/zh_CN/stable/get_started.html) |
[👀模型库](https://mmrotate.readthedocs.io/zh_CN/stable/model_zoo.html) |
[🆕更新日志](https://mmrotate.readthedocs.io/en/stable/changelog.html) |
[📘使用文档](https://mmrotate.readthedocs.io/zh_CN/1.x/) |
[🛠️安装教程](https://mmrotate.readthedocs.io/zh_CN/1.x/get_started.html) |
[👀模型库](https://mmrotate.readthedocs.io/zh_CN/1.x/model_zoo.html) |
[🆕更新日志](https://mmrotate.readthedocs.io/en/1.x/notes/changelog.html) |
[🚀进行中的项目](https://github.com/open-mmlab/mmrotate/projects) |
[🤔报告问题](https://github.com/open-mmlab/mmrotate/issues/new/choose)

Expand Down Expand Up @@ -68,39 +68,47 @@ https://user-images.githubusercontent.com/10410257/154433305-416d129b-60c8-44c7-

## 最新进展

最新的 **0.3.2** 版本已经在 2022.07.06 发布:
最新的 **v1.0.0rc0** 版本已经在 2022.11.11 发布:

- 支持了 Oriented Reppoints 模型 (CVPR'22) (#286)
- 支持了 ConvNeXt 骨干网络 (CVPR'22) (#343)

如果想了解更多版本更新细节和历史信息,请阅读[更新日志](docs/en/changelog.md)。
- 基于 [MMEngine](https://github.com/open-mmlab/mmengine) 统一了各组件接口。
- 全面支持混合精度,训练测试速度更快。

## 安装

MMRotate 依赖 [PyTorch](https://pytorch.org/), [MMCV](https://github.com/open-mmlab/mmcv) 和 [MMDetection](https://github.com/open-mmlab/mmdetection),以下是安装的简要步骤。
更详细的安装指南请参考 [安装文档](https://mmrotate.readthedocs.io/zh_CN/latest/install.html)。

```shell
conda create -n open-mmlab python=3.7 pytorch==1.7.0 cudatoolkit=10.1 torchvision -c pytorch -y
conda activate open-mmlab
pip install openmim
mim install mmcv-full
mim install mmdet
git clone https://github.com/open-mmlab/mmrotate.git
cd mmrotate
pip install -r requirements/build.txt
pip install -v -e .
```
请参考[快速入门文档](https://mmrotate.readthedocs.io/zh_CN/1.x/get_started.html)进行安装。

## 教程

请参考[快速入门文档](docs/zh_cn/get_started.md)学习 MMRotate 的基本使用。
我们提供了 [colab 教程](demo/MMRotate_Tutorial.ipynb),也为新手提供了完整的运行教程,其他教程如下
请阅读[概述](https://mmrotate.readthedocs.io/zh_CN/1.x/get_started.html)对 MMDetection 进行初步的了解。

为了帮助用户更进一步了解 MMDetection,我们准备了用户指南和进阶指南,请阅读我们的[文档](https://mmrotate.readthedocs.io/zh_CN/1.x/):

- 用户指南

<details>

- [训练 & 测试](https://mmrotate.readthedocs.io/zh_CN/1.x/user_guides/index.html#train-test)
- [学习配置文件](https://mmrotate.readthedocs.io/zh_CN/1.x/user_guides/config.html)
- [使用已有模型在标准数据集上进行推理](https://mmrotate.readthedocs.io/en/1.x/user_guides/inference.html)
- [数据集准备](https://mmrotate.readthedocs.io/zh_CN/1.x/user_guides/dataset_prepare.html)
- [测试现有模型](https://mmrotate.readthedocs.io/zh_CN/1.x/user_guides/train_test.html#test)
- [在标准数据集上训练预定义的模型](https://mmrotate.readthedocs.io/zh_CN/1.x/user_guides/train_test.html#train)
- [提交测试结果](https://mmrotate.readthedocs.io/zh_CN/1.x/user_guides/test_results_submission.html)
- [实用工具](https://mmrotate.readthedocs.io/zh_CN/1.x/user_guides/index.html#useful-tools)

</details>

- 进阶指南

<details>

- [基础概念](https://mmrotate.readthedocs.io/zh_CN/1.x/advanced_guides/index.html#basic-concepts)
- [组件定制](https://mmrotate.readthedocs.io/zh_CN/1.x/advanced_guides/index.html#component-customization)
- [How to](https://mmrotate.readthedocs.io/zh_CN/1.x/advanced_guides/index.html#how-to)

</details>

- [学习基础知识](docs/zh_cn/intro.md)
- [配置文件](docs/zh_cn/tutorials/customize_config.md)
- [添加数据集](docs/zh_cn/tutorials/customize_dataset.md)
- [添加新模型](docs/zh_cn/tutorials/customize_models.md)。
我们提供了 [旋转检测的 colab 教程](demo/MMRotate_Tutorial.ipynb)

## 模型库

Expand Down Expand Up @@ -138,28 +146,30 @@ pip install -v -e .

## 常见问题

请参考 [FAQ](docs/en/faq.md) 了解其他用户的常见问题。
请参考 [FAQ](docs/en/notes/faq.md) 了解其他用户的常见问题。

## 参与贡献

我们非常欢迎用户对于 MMRotate 做出的任何贡献,可以参考 [CONTRIBUTION.md](.github/CONTRIBUTING.md) 文件了解更多细节。

## 致谢

MMRotate 是一款由不同学校和公司共同贡献的开源项目。我们感谢所有为项目提供算法复现和新功能支持的贡献者,以及提供宝贵反馈的用户。
我们希望该工具箱和基准测试可以为社区提供灵活的代码工具,供用户复现现有算法并开发自己的新模型,从而不断为开源社区提供贡献。
MMRotate 是一款由不同学校和公司共同贡献的开源项目。我们感谢所有为项目提供算法复现和新功能支持的贡献者,以及提供宝贵反馈的用户。我们感谢 [SJTU 学生创新中心](https://www.si.sjtu.edu.cn/)在项目之初提供的大量计算资源。我们希望该工具箱和基准测试可以为社区提供灵活的代码工具,供用户复现现有算法并开发自己的新模型,从而不断为开源社区提供贡献。

## 引用

如果你在研究中使用了本项目的代码或者性能基准,请参考如下 bibtex 引用 MMRotate。

```bibtex
@article{mmrotate2022,
@inproceedings{zhou2022mmrotate,
title = {MMRotate: A Rotated Object Detection Benchmark using PyTorch},
author = {Zhou, Yue and Yang, Xue and Zhang, Gefan and Wang, Jiabao and Liu, Yanyi and
Hou, Liping and Jiang, Xue and Liu, Xingzhao and Yan, Junchi and Lyu, Chengqi and
Zhang, Wenwei and Chen, Kai},
journal= {arXiv preprint arXiv:2204.13317},
booktitle={Proceedings of the 30th ACM International Conference on Multimedia},
pages = {7331–7334},
numpages = {4},
year={2022}
}
```

Expand All @@ -169,12 +179,14 @@ MMRotate 是一款由不同学校和公司共同贡献的开源项目。我们

## OpenMMLab的其他项目

- [MMEngine](https://github.com/open-mmlab/mmengine): OpenMMLab 深度学习模型训练基础库
- [MMCV](https://github.com/open-mmlab/mmcv): OpenMMLab 计算机视觉基础库
- [MIM](https://github.com/open-mmlab/mim): MIM 是 OpenMMlab 项目、算法、模型的统一入口
- [MMClassification](https://github.com/open-mmlab/mmclassification): OpenMMLab 图像分类工具箱
- [MMDetection](https://github.com/open-mmlab/mmdetection): OpenMMLab 目标检测工具箱
- [MMDetection3D](https://github.com/open-mmlab/mmdetection3d): OpenMMLab 新一代通用 3D 目标检测平台
- [MMRotate](https://github.com/open-mmlab/mmrotate): OpenMMLab 旋转框检测工具箱与测试基准
- [MMYOLO](https://github.com/open-mmlab/mmyolo): OpenMMLab YOLO 系列工具箱与测试基准
- [MMSegmentation](https://github.com/open-mmlab/mmsegmentation): OpenMMLab 语义分割工具箱
- [MMOCR](https://github.com/open-mmlab/mmocr): OpenMMLab 全流程文字检测识别理解工具包
- [MMPose](https://github.com/open-mmlab/mmpose): OpenMMLab 姿态估计工具箱
Expand Down
4 changes: 2 additions & 2 deletions docs/en/notes/faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ Compatible MMCV, MMDetection and MMRotate versions are shown as below. Please in
| MMRotate version | MMCV version | MMDetection version |
| :--------------: | :-----------------------: | :-----------------: |
| dev-1.x | mmcv-full>=2.0.0rc1 | mmdet >= 3.0.0rc0 |
| main | mmcv-full>=1.5.0, \<1.6.0 | mmdet >= 2.22.0 |
| 0.3.2 | mmcv-full>=1.4.5, \<1.6.0 | mmdet >= 2.22.0 |
| main | mmcv-full>=1.5.3, \<1.7.0 | mmdet >= 2.25.1 |
| 0.3.2 | mmcv-full>=1.5.3, \<1.7.0 | mmdet >= 2.25.1 |
| 0.3.1 | mmcv-full>=1.4.5, \<1.6.0 | mmdet >= 2.22.0 |
| 0.3.0 | mmcv-full>=1.4.5, \<1.6.0 | mmdet >= 2.22.0 |
| 0.2.0 | mmcv-full>=1.4.5, \<1.5.0 | mmdet >= 2.19.0 |
Expand Down
4 changes: 2 additions & 2 deletions docs/zh_cn/notes/faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ MMRotate 和 MMCV, MMDet 版本兼容性如下所示,需要安装正确的版
| MMRotate 版本 | MMCV 版本 | MMDetection 版本 |
| :-----------: | :-----------------------: | :---------------: |
| dev-1.x | mmcv-full>=2.0.0rc1 | mmdet >= 3.0.0rc0 |
| main | mmcv-full>=1.4.5, \<1.6.0 | mmdet >= 2.22.0 |
| 0.3.2 | mmcv-full>=1.4.5, \<1.6.0 | mmdet >= 2.22.0 |
| main | mmcv-full>=1.5.3, \<1.7.0 | mmdet >= 2.25.1 |
| 0.3.2 | mmcv-full>=1.5.3, \<1.7.0 | mmdet >= 2.25.1 |
| 0.3.1 | mmcv-full>=1.4.5, \<1.6.0 | mmdet >= 2.22.0 |
| 0.3.0 | mmcv-full>=1.4.5, \<1.6.0 | mmdet >= 2.22.0 |
| 0.2.0 | mmcv-full>=1.4.5, \<1.5.0 | mmdet >= 2.19.0 |
Expand Down
2 changes: 1 addition & 1 deletion mmrotate/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
f'<= {mmcv_maximum_version} instead.'

mmengine_minimum_version = '0.0.0'
mmengine_maximum_version = '0.2.1'
mmengine_maximum_version = '1.0.0'
mmengine_version = digit_version(mmengine.__version__)

assert (mmengine_version >= digit_version(mmengine_minimum_version)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -230,6 +230,8 @@ def convex_overlaps(self, gt_rbboxes: Tensor, points: Tensor) -> Tensor:
overlaps (Tensor): Overlaps between k gt_bboxes and n \
bboxes, shape(k, n).
"""
if gt_rbboxes.size(0) == 0:
return gt_rbboxes.new_zeros((0, points.size(0)))
overlaps = convex_iou(points, gt_rbboxes)
overlaps = overlaps.transpose(1, 0)
return overlaps
1 change: 0 additions & 1 deletion tools/dist_train.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,4 @@ python -m torch.distributed.launch \
--master_port=$PORT \
$(dirname "$0")/train.py \
$CONFIG \
--seed 0 \
--launcher pytorch ${@:3}