From e482e3a17c502592752f59ba37b953f41cfce71a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Haian=20Huang=28=E6=B7=B1=E5=BA=A6=E7=9C=B8=29?= Date: Thu, 29 Sep 2022 17:53:28 +0800 Subject: [PATCH] Add changelog for v0.1.1 (#111) * add changelog * update * update * update * update * update --- README.md | 15 +++++----- README_zh-CN.md | 16 ++++++----- docker/Dockerfile | 2 +- docs/en/get_started.md | 14 ++++++++-- docs/en/model_zoo.md | 4 +++ docs/en/notes/changelog.md | 27 ++++++++++++++++++ .../rtmdet_description.md | 18 ++++++------ docs/zh_cn/get_started.md | 14 ++++++++-- docs/zh_cn/model_zoo.md | 4 +++ docs/zh_cn/notes/changelog.md | 28 +++++++++++++++++++ mmyolo/__init__.py | 6 ++-- .../test_transforms/test_transforms.py | 4 +-- 12 files changed, 116 insertions(+), 36 deletions(-) diff --git a/README.md b/README.md index 75b28c7e8..41e327b53 100644 --- a/README.md +++ b/README.md @@ -69,12 +69,10 @@ The master branch works with **PyTorch 1.6+**. ## What's New -**v0.1.0** was released on 21/9/2022: +**v0.1.1** was released on 29/9/2022: -- Unified component interfaces based on [OpenMMLab 2.0](https://github.com/open-mmlab) and [MMDetection 3.0](https://github.com/open-mmlab/mmdetection/tree/3.x) -- Support YOLOv5/YOLOX training, support YOLOv6 inference. Deployment will be supported soon. -- Refactored YOLOX from MMDetection to accelerate training and inference. -- Detailed introduction and advanced tutorials are provided, see the [English tutorial](https://mmyolo.readthedocs.io/en/latest). +- Support [RTMDet](https://github.com/open-mmlab/mmyolo/blob/main/configs/rtmdet). +- Support for backbone customization plugins and update How-to documentation. For release history and update details, please refer to [changelog](https://mmyolo.readthedocs.io/en/latest/notes/changelog.html). @@ -87,8 +85,8 @@ conda create -n open-mmlab python=3.8 pytorch==1.10.1 torchvision==0.11.2 cudato conda activate open-mmlab pip install openmim mim install mmengine -mim install "mmcv>=2.0.0rc1" -mim install "mmdet>=3.0.0rc0" +mim install "mmcv>=2.0.0rc1,<2.1.0" +mim install "mmdet>=3.0.0rc1,<3.1.0" git clone https://github.com/open-mmlab/mmyolo.git cd mmyolo # Install albumentations @@ -135,6 +133,7 @@ Results and models are available in the [model zoo](docs/en/model_zoo.md). - [x] [YOLOv5](configs/yolov5) - [x] [YOLOX](configs/yolox) +- [x] [RTMDet](configs/rtmdet) - [ ] [YOLOv6](configs/yolov6)(Inference only) @@ -165,6 +164,7 @@ Results and models are available in the [model zoo](docs/en/model_zoo.md).
  • YOLOv5CSPDarknet
  • YOLOXCSPDarknet
  • EfficientRep
  • +
  • CSPNeXt
  • @@ -172,6 +172,7 @@ Results and models are available in the [model zoo](docs/en/model_zoo.md).
  • YOLOv5PAFPN
  • YOLOv6RepPAFPN
  • YOLOXPAFPN
  • +
  • CSPNeXtPAFPN
  • diff --git a/README_zh-CN.md b/README_zh-CN.md index a94d7a937..733c82dec 100644 --- a/README_zh-CN.md +++ b/README_zh-CN.md @@ -69,12 +69,11 @@ MMYOLO 是一个基于 PyTorch 和 MMDetection 的 YOLO 系列算法开源工具 ## 最新进展 -**v0.1.0** 版本已经在 2022.9.21 发布: +**v0.1.1** 版本已经在 2022.9.29 发布: -- 基于 [OpenMMLab 2.0](https://github.com/open-mmlab) 和 [MMDetection 3.0](https://github.com/open-mmlab/mmdetection/tree/3.x) 统一了各组件接口。 -- 支持 YOLOv5/YOLOX 训练,支持 YOLOv6 推理。即将支持部署。 -- 重构了 MMDetection 的 YOLOX,提供了更快的训练和推理速度。 -- 提供了详细入门和进阶教程,详见 [中文教程](https://mmyolo.readthedocs.io/zh_CN/latest)。 +- 支持了 [RTMDet](https://github.com/open-mmlab/mmyolo/blob/main/configs/rtmdet) +- 新增了 [RTMDet 原理和实现全解析中文文档](https://github.com/open-mmlab/mmyolo/blob/main/docs/zh_cn/algorithm_descriptions/rtmdet_description.md) +- 支持对 backbone 自定义插件,并且更新了 How-to 文档 发布历史和更新细节请参考 [更新日志](https://mmyolo.readthedocs.io/zh_CN/latest/notes/changelog.html) @@ -87,8 +86,8 @@ conda create -n open-mmlab python=3.8 pytorch==1.10.1 torchvision==0.11.2 cudato conda activate open-mmlab pip install openmim mim install mmengine -mim install "mmcv>=2.0.0rc1" -mim install "mmdet>=3.0.0rc0" +mim install "mmcv>=2.0.0rc1,<2.1.0" +mim install "mmdet>=3.0.0rc1,<3.1.0" git clone https://github.com/open-mmlab/mmyolo.git cd mmyolo # Install albumentations @@ -136,6 +135,7 @@ MMYOLO 用法和 MMDetection 几乎一致,所有教程都是通用的,你也 - [x] [YOLOv5](configs/yolov5) - [x] [YOLOX](configs/yolox) +- [x] [RTMDet](configs/rtmdet) - [ ] [YOLOv6](configs/yolov6)(仅推理) @@ -166,6 +166,7 @@ MMYOLO 用法和 MMDetection 几乎一致,所有教程都是通用的,你也
  • YOLOv5CSPDarknet
  • YOLOXCSPDarknet
  • EfficientRep
  • +
  • CSPNeXt
  • @@ -173,6 +174,7 @@ MMYOLO 用法和 MMDetection 几乎一致,所有教程都是通用的,你也
  • YOLOv5PAFPN
  • YOLOv6RepPAFPN
  • YOLOXPAFPN
  • +
  • CSPNeXtPAFPN
  • diff --git a/docker/Dockerfile b/docker/Dockerfile index 1afb755ff..39bafed80 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -26,7 +26,7 @@ RUN apt-get update \ # Install MMEngine , MMCV and MMDet RUN pip install --no-cache-dir openmim && \ - mim install --no-cache-dir mmengine "mmcv>=2.0.0rc1" "mmdet>=3.0.0rc0" + mim install --no-cache-dir mmengine "mmcv>=2.0.0rc1,<2.1.0" "mmdet>=3.0.0rc1,<3.1.0" # Install MMYOLO RUN git clone https://github.com/open-mmlab/mmyolo.git /mmyolo && \ diff --git a/docs/en/get_started.md b/docs/en/get_started.md index c15a4d680..c2bc4d895 100644 --- a/docs/en/get_started.md +++ b/docs/en/get_started.md @@ -2,6 +2,14 @@ ## Prerequisites +Compatible MMEngine, MMCV and MMDetection versions are shown as below. Please install the correct version to avoid installation issues. + +| MMYOLO version | MMDetection version | MMEngine version | MMCV version | +| :------------: | :----------------------: | :----------------------: | :---------------------: | +| main | mmdet>=3.0.0rc1, \<3.1.0 | mmengine>=0.1.0, \<0.2.0 | mmcv>=2.0.0rc0, \<2.1.0 | +| 0.1.1 | mmdet>=3.0.0rc1, \<3.1.0 | mmengine>=0.1.0, \<0.2.0 | mmcv>=2.0.0rc0, \<2.1.0 | +| 0.1.0 | mmdet>=3.0.0rc0, \<3.1.0 | mmengine>=0.1.0, \<0.2.0 | mmcv>=2.0.0rc0, \<2.1.0 | + In this section, we demonstrate how to prepare an environment with PyTorch. MMDetection works on Linux, Windows, and macOS. It requires Python 3.6+, CUDA 9.2+, and PyTorch 1.7+. @@ -42,8 +50,8 @@ conda install pytorch torchvision cpuonly -c pytorch ```shell pip install -U openmim mim install mmengine -mim install "mmcv>=2.0.0rc1" -mim install "mmdet>=3.0.0rc0" +mim install "mmcv>=2.0.0rc1,<2.1.0" +mim install "mmdet>=3.0.0rc1,<3.1.0" ``` **Note:** @@ -188,7 +196,7 @@ thus we only need to install MMEngine, MMCV, MMDetection, and MMYOLO with the fo !pip3 install openmim !mim install mmengine !mim install "mmcv>=2.0.0rc1,<2.1.0" -!mim install "mmdet>=3.0.0.rc0" +!mim install "mmdet>=3.0.0.rc1" ``` **Step 2.** Install MMYOLO from the source. diff --git a/docs/en/model_zoo.md b/docs/en/model_zoo.md index b1deeb3ad..b1a3c64a7 100644 --- a/docs/en/model_zoo.md +++ b/docs/en/model_zoo.md @@ -18,3 +18,7 @@ Please refer to [YOLOv6](https://github.com/open-mmlab/mmyolo/blob/main/configs/ ### YOLOX Please refer to [YOLOX](https://github.com/open-mmlab/mmyolo/blob/main/configs/yolox)。 + +### RTMDet + +Please refer to [RTMDet](https://github.com/open-mmlab/mmyolo/blob/main/configs/rtmdet)。 diff --git a/docs/en/notes/changelog.md b/docs/en/notes/changelog.md index 2cf98bb9d..704c93f31 100644 --- a/docs/en/notes/changelog.md +++ b/docs/en/notes/changelog.md @@ -1,5 +1,32 @@ # Changelog +## v0.1.1(29/9/2022) + +Based on MMDetection's RTMDet high precision and low latency object detection algorithm, we have also released RTMDet and provided a Chinese document on the principle and implementation of RTMDet. + +### Highlights + +1. Support [RTMDet](https://github.com/open-mmlab/mmyolo/blob/main/configs/rtmdet) +2. Support for backbone customization plugins and update How-to documentation (#75) + +### Bug Fixes + +1. Fix some documentation errors (#66, #72, #76, #83, #86) +2. Fix checkpoints link error (#63) +3. Fix the bug that the output of `LetterResize` does not meet the expectation when using `imscale` (#105) + +### Improvements + +1. Reducing the size of docker images (#67) +2. Simplifying `Compose` Logic in `BaseMixImageTransform` (#71) +3. Supports dump results in `test.py` (#84) + +#### Contributors + +A total of 13 developers contributed to this release. + +Thank @wanghonglie, @hhaAndroid, @yang-0201, @PeterH0323, @RangeKing, @satuoqaq, @Zheng-LinXiao, @xin-li-67, @suibe-qingtian, @MambaWong, @MichaelCai0912, @rimoire, @Nioolek + ## v0.1.0(21/9/2022) We have released MMYOLO open source library, which is based on MMEngine, MMCV 2.x and MMDetection 3.x libraries. At present, the object detection has been realized, and it will be expanded to multi-task in the future. diff --git a/docs/zh_cn/algorithm_descriptions/rtmdet_description.md b/docs/zh_cn/algorithm_descriptions/rtmdet_description.md index 493e49097..84f5a4a6e 100644 --- a/docs/zh_cn/algorithm_descriptions/rtmdet_description.md +++ b/docs/zh_cn/algorithm_descriptions/rtmdet_description.md @@ -76,10 +76,9 @@ MMDetection 开源库中已经对单图数据增强进行了封装,用户通 | MixUp | | 19.3 | | MixUp | √ | **12.4** | -| | RTMDet-s | RTMDet-l | -| --------------------------------------------- | -------- | -------- | -| Mosaic + MixUp + 20e finetune | 43.9 | **51.3** | -| **Small-cache** Mosaic + MixUp + 20e finetune | **44.2** | 51.1 | +| | RTMDet-s | RTMDet-l | +| ----------------------------- | -------- | -------- | +| Mosaic + MixUp + 20e finetune | 43.9 | **51.3** | #### 1.1.1 为图像混合数据增强引入 Cache @@ -180,12 +179,11 @@ Mosaic+MixUp 失真度比较高,持续用太强的数据增强对模型并不 为了使数据增强的方式更为通用,RTMDet 在前 280 epoch 使用不带旋转的 Mosaic+MixUp, 且通过混入 8 张图片来提升强度以及正样本数。后 20 epoch 使用比较小的学习率在比较弱的增强下进行微调,同时在 EMA 的作用下将参数缓慢更新至模型,能够得到比较大的提升。 -| | RTMDet-s | RTMDet-l | -| ----------------------------------------- | -------- | -------- | -| LSJ + rand crop | 42.3 | 46.7 | -| Mosaic+MixUp | 41.9 | 49.8 | -| Mosaic + MixUp + 20e finetune | 43.9 | **51.3** | -| Small-cache Mosaic + MixUp + 20e finetune | **44.2** | 51.1 | +| | RTMDet-s | RTMDet-l | +| ----------------------------- | -------- | -------- | +| LSJ + rand crop | 42.3 | 46.7 | +| Mosaic+MixUp | 41.9 | 49.8 | +| Mosaic + MixUp + 20e finetune | 43.9 | **51.3** | ### 1.2 模型结构 diff --git a/docs/zh_cn/get_started.md b/docs/zh_cn/get_started.md index 530cc1c49..a348ef232 100644 --- a/docs/zh_cn/get_started.md +++ b/docs/zh_cn/get_started.md @@ -2,6 +2,14 @@ ## 依赖 +下表为 MMYOLO 和 MMEngine, MMCV, MMDetection 依赖库的版本要求,请安装正确的版本以避免安装问题。 + +| MMYOLO version || MMDetection version | MMEngine version | MMCV version | +|:--------------:|:-------------------:|:-------------------:|:-------------------:| +| main | mmdet>=3.0.0rc1, \<3.1.0 | mmengine>=0.1.0, \<0.2.0 | mmcv>=2.0.0rc0, \<2.1.0| +| 0.1.1 | mmdet>=3.0.0rc1, \<3.1.0 | mmengine>=0.1.0, \<0.2.0 |mmcv>=2.0.0rc0, \<2.1.0| +| 0.1.0 | mmdet>=3.0.0rc0, \<3.1.0 | mmengine>=0.1.0, \<0.2.0 |mmcv>=2.0.0rc0, \<2.1.0| + 本节中,我们将演示如何用 PyTorch 准备一个环境。 MMYOLO 支持在 Linux,Windows 和 macOS 上运行。它需要 Python 3.6 以上,CUDA 9.2 以上和 PyTorch 1.7 以上。 @@ -42,8 +50,8 @@ conda install pytorch torchvision cpuonly -c pytorch ```shell pip install -U openmim mim install mmengine -mim install "mmcv>=2.0.0rc1" -mim install "mmdet>=3.0.0rc0" +mim install "mmcv>=2.0.0rc1,<2.1.0" +mim install "mmdet>=3.0.0rc1,<3.1.0" ``` **注意:** @@ -193,7 +201,7 @@ pip install "mmcv>=2.0.0rc1" -f https://download.openmmlab.com/mmcv/dist/cu116/t !pip3 install openmim !mim install mmengine !mim install "mmcv>=2.0.0rc1,<2.1.0" -!mim install "mmdet>=3.0.0.rc0" +!mim install "mmdet>=3.0.0.rc1" ``` **步骤 2.** 使用源码安装 MMYOLO: diff --git a/docs/zh_cn/model_zoo.md b/docs/zh_cn/model_zoo.md index 692e648ba..4ffb84980 100644 --- a/docs/zh_cn/model_zoo.md +++ b/docs/zh_cn/model_zoo.md @@ -18,3 +18,7 @@ ### YOLOX 请参考 [YOLOX](https://github.com/open-mmlab/mmyolo/blob/main/configs/yolox)。 + +### RTMDet + +请参考 [RTMDet](https://github.com/open-mmlab/mmyolo/blob/main/configs/rtmdet)。 diff --git a/docs/zh_cn/notes/changelog.md b/docs/zh_cn/notes/changelog.md index b57bebd69..30204d432 100644 --- a/docs/zh_cn/notes/changelog.md +++ b/docs/zh_cn/notes/changelog.md @@ -1,5 +1,33 @@ # 更新日志 +## v0.1.1(29/9/2022) + +基于 MMDetection 的 RTMDet 高精度低延时目标检测算法,我们也同步发布了 RTMDet,并提供了 RTMDet 原理和实现全解析中文文档 + +### 亮点 + +1. 支持了 [RTMDet](https://github.com/open-mmlab/mmyolo/blob/main/configs/rtmdet) +2. 新增了 [RTMDet 原理和实现全解析中文文档](https://github.com/open-mmlab/mmyolo/blob/main/docs/zh_cn/algorithm_descriptions/rtmdet_description.md) +3. 支持对 backbone 自定义插件,并更新了 How-to 文档 (#75) + +### Bug 修复 + +1. 修复一些文档错误 (#66, #72, #76, #83, #86) +2. 修复权重链接错误 (#63) +3. 修复 `LetterResize` 使用 `imscale` api 时候输出不符合预期的 bug (#105) + +### 完善 + +1. 缩减 docker 镜像尺寸 (#67) +2. 简化 BaseMixImageTransform 中 Compose 逻辑 (#71) +3. test 脚本支持 dump 结果 (#84) + +#### 贡献者 + +总共 13 位开发者参与了本次版本 + +谢谢 @wanghonglie, @hhaAndroid, @yang-0201, @PeterH0323, @RangeKing, @satuoqaq, @Zheng-LinXiao, @xin-li-67, @suibe-qingtian, @MambaWong, @MichaelCai0912, @rimoire, @Nioolek + ## v0.1.0(21/9/2022) 我们发布了 MMYOLO 开源库,其基于 MMEngine, MMCV 2.x 和 MMDetection 3.x 库. 目前实现了目标检测功能,后续会扩展为多任务。 diff --git a/mmyolo/__init__.py b/mmyolo/__init__.py index 46b906d7c..bcbf994aa 100644 --- a/mmyolo/__init__.py +++ b/mmyolo/__init__.py @@ -10,12 +10,12 @@ mmcv_maximum_version = '2.1.0' mmcv_version = digit_version(mmcv.__version__) -mmengine_minimum_version = '0.0.0' +mmengine_minimum_version = '0.1.0' mmengine_maximum_version = '0.2.0' mmengine_version = digit_version(mmengine.__version__) -mmdet_minimum_version = '3.0.0rc0' -mmdet_maximum_version = '4.0.0' +mmdet_minimum_version = '3.0.0rc1' +mmdet_maximum_version = '3.1.0' mmdet_version = digit_version(mmdet.__version__) diff --git a/tests/test_datasets/test_transforms/test_transforms.py b/tests/test_datasets/test_transforms/test_transforms.py index a1ccd9336..bfa63865a 100644 --- a/tests/test_datasets/test_transforms/test_transforms.py +++ b/tests/test_datasets/test_transforms/test_transforms.py @@ -84,7 +84,7 @@ def test_letter_resize(self): # Test transform = LetterResize(scale=(640, 640), pad_val=dict(img=144)) rng = np.random.RandomState(0) - for _ in range(20): + for _ in range(5): input_h, input_w = np.random.randint(100, 700), np.random.randint( 100, 700) output_h, output_w = np.random.randint(100, @@ -107,7 +107,7 @@ def test_letter_resize(self): # Test without batchshape transform = LetterResize(scale=(640, 640), pad_val=dict(img=144)) rng = np.random.RandomState(0) - for _ in range(20): + for _ in range(5): input_h, input_w = np.random.randint(100, 700), np.random.randint( 100, 700) data_info = dict(