diff --git a/README.md b/README.md index d935ae2750a..361a685d0b8 100644 --- a/README.md +++ b/README.md @@ -74,10 +74,11 @@ This project is released under the [Apache 2.0 license](LICENSE). ## Changelog -**2.21.0** was released in 8/2/2022: +**2.22.0** was released in 24/2/2022: -- Support CPU training -- Allow to set parameters about multi-processing to speed up training and testing +- Support [MaskFormer](configs/maskformer), [DyHead](configs/dyhead), [OpenImages Dataset](configs/openimages) and [TIMM backbone](configs/timm_example) +- Support visualization for Panoptic Segmentation +- Release a good recipe of using ResNet in object detectors pre-trained by [ResNet Strikes Back](https://arxiv.org/abs/2110.00476), which consistently brings about 3~4 mAP improvements over RetinaNet, Faster/Mask/Cascade Mask R-CNN Please refer to [changelog.md](docs/en/changelog.md) for details and release history. @@ -162,6 +163,7 @@ Results and models are available in the [model zoo](docs/en/model_zoo.md). @@ -225,6 +227,7 @@ Results and models are available in the [model zoo](docs/en/model_zoo.md).
  • PVT (ICCV'2021)
  • Swin (CVPR'2021)
  • PVTv2 (ArXiv'2021)
  • +
  • ResNet strikes back (ArXiv'2021)
  • diff --git a/README_zh-CN.md b/README_zh-CN.md index 7f258b30a82..b8ea6070e3c 100644 --- a/README_zh-CN.md +++ b/README_zh-CN.md @@ -73,10 +73,11 @@ MMDetection 是一个基于 PyTorch 的目标检测开源工具箱。它是 [Ope ## 更新日志 -最新的 **2.21.0** 版本已经在 2022.02.08 发布: +最新的 **2.22.0** 版本已经在 2022.02.24 发布: -- 支持了 CPU 训练 -- 允许设置多进程相关的参数来加速训练与推理 +- 支持 [MaskFormer](configs/maskformer),[DyHead](configs/dyhead),[OpenImages Dataset](configs/openimages) 和 [TIMM backbone](configs/timm_example) +- 支持全景分割可视化 +- 发布了一个在目标检测任务中使用 ResNet 的好方法,它是由 [ResNet Strikes Back](https://arxiv.org/abs/2110.00476) 预训练的,并且能稳定的在 RetinaNet, Faster/Mask/Cascade Mask R-CNN 上带来约 3-4 mAP 的提升 如果想了解更多版本更新细节和历史信息,请阅读[更新日志](docs/changelog.md)。 @@ -224,6 +225,7 @@ MMDetection 是一个基于 PyTorch 的目标检测开源工具箱。它是 [Ope
  • PVT (ICCV'2021)
  • Swin (CVPR'2021)
  • PVTv2 (ArXiv'2021)
  • +
  • ResNet strikes back (ArXiv'2021)
  • diff --git a/docker/serve/Dockerfile b/docker/serve/Dockerfile index 9776ac43096..ffa81c82ceb 100644 --- a/docker/serve/Dockerfile +++ b/docker/serve/Dockerfile @@ -4,7 +4,7 @@ ARG CUDNN="7" FROM pytorch/pytorch:${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}-devel ARG MMCV="1.3.17" -ARG MMDET="2.21.0" +ARG MMDET="2.22.0" ENV PYTHONUNBUFFERED TRUE diff --git a/docs/en/changelog.md b/docs/en/changelog.md index 012557212ff..7a3b18fcfa2 100644 --- a/docs/en/changelog.md +++ b/docs/en/changelog.md @@ -1,5 +1,47 @@ ## Changelog +### v2.22.0 (24/2/2022) + +#### Highlights + +- Support MaskFormer: [Per-Pixel Classification is Not All You Need for Semantic Segmentation](https://arxiv.org/abs/2107.06278) (#7212) +- Support DyHead: [Dynamic Head: Unifying Object Detection Heads with Attentions](https://arxiv.org/abs/2106.08322) (#6823) +- Release a good recipe of using ResNet in object detectors pre-trained by [ResNet Strikes Back](https://arxiv.org/abs/2110.00476), which consistently brings about 3~4 mAP improvements over RetinaNet, Faster/Mask/Cascade Mask R-CNN (#7001) +- Support [Open Images Dataset](https://storage.googleapis.com/openimages/web/index.html) (#6331) +- Support TIMM backbone: [PyTorch Image Models](https://github.com/rwightman/pytorch-image-models) (#7020) + +#### New Features + +- Support [MaskFormer](configs/maskformer) (#7212) +- Support [DyHead](configs/dyhead) (#6823) +- Support [ResNet Strikes Back](configs/resnet_strikes_back) (#7001) +- Support [OpenImages Dataset](configs/openimages) (#6331) +- Support [TIMM backbone](configs/timm_example) (#7020) +- Support visualization for Panoptic Segmentation (#7041) + +#### Breaking Changes + +In order to support the visualization for Panoptic Segmentation, the `num_classes` can not be `None` when using the `get_palette` function to determine whether to use the panoptic palette. + +#### Bug Fixes + +- Fix bug for the best checkpoints can not be saved when the `key_score` is None (#7101) +- Fix MixUp transform filter boxes failing case (#7080) +- Add missing properties in SABLHead (#7091) +- Fix bug when NaNs exist in confusion matrix (#7147) +- Fix PALETTE AttributeError in downstream task (#7230) + +#### Improvements + +- Speed up SimOTA matching (#7098) +- Add Chinese translation of `docs_zh-CN/tutorials/init_cfg.md` (#7188) + +#### Contributors + +A total of 20 developers contributed to this release. +Thanks @ZwwWayne, @hhaAndroid, @RangiLyu, @AronLin, @BIGWangYuDong, @jbwang1997, @zytx121, @chhluo, @shinya7y, @LuooChen, @dvansa, @siatwangmin, @del-zhenwu, @vikashranjan26, @haofanwang, @jamiechoi1995, @HJoonKwon, @yarkable, @zhijian-liu, @RangeKing + + ### v2.21.0 (8/2/2022) ### Breaking Changes diff --git a/docs/en/compatibility.md b/docs/en/compatibility.md index 3d6b9459849..a4f297690d9 100644 --- a/docs/en/compatibility.md +++ b/docs/en/compatibility.md @@ -1,5 +1,10 @@ # Compatibility of MMDetection 2.x +## MMDetection 2.21.0 + +In order to support CPU training, the logic of scatter in batch collating has been changed. We recommend to use +MMCV v1.4.4 or higher. For more details, please refer to [MMCV PR #1621](https://github.com/open-mmlab/mmcv/pull/1621). + ## MMDetection 2.18.1 ### MMCV compatibility diff --git a/docs/en/get_started.md b/docs/en/get_started.md index 28bbefaad94..91a8ce6218d 100644 --- a/docs/en/get_started.md +++ b/docs/en/get_started.md @@ -9,35 +9,36 @@ Compatible MMDetection and MMCV versions are shown as below. Please install the correct version of MMCV to avoid installation issues. -| MMDetection version | MMCV version | -|:-------------------:|:-------------------:| -| master | mmcv-full>=1.3.17, <1.5.0 | -| 2.21.0 | mmcv-full>=1.3.17, <1.5.0 | -| 2.20.0 | mmcv-full>=1.3.17, <1.5.0 | -| 2.19.1 | mmcv-full>=1.3.17, <1.5.0 | -| 2.19.0 | mmcv-full>=1.3.17, <1.5.0 | -| 2.18.0 | mmcv-full>=1.3.17, <1.4.0 | -| 2.17.0 | mmcv-full>=1.3.14, <1.4.0 | -| 2.16.0 | mmcv-full>=1.3.8, <1.4.0 | -| 2.15.1 | mmcv-full>=1.3.8, <1.4.0 | -| 2.15.0 | mmcv-full>=1.3.8, <1.4.0 | -| 2.14.0 | mmcv-full>=1.3.8, <1.4.0 | -| 2.13.0 | mmcv-full>=1.3.3, <1.4.0 | -| 2.12.0 | mmcv-full>=1.3.3, <1.4.0 | -| 2.11.0 | mmcv-full>=1.2.4, <1.4.0 | -| 2.10.0 | mmcv-full>=1.2.4, <1.4.0 | -| 2.9.0 | mmcv-full>=1.2.4, <1.4.0 | -| 2.8.0 | mmcv-full>=1.2.4, <1.4.0 | -| 2.7.0 | mmcv-full>=1.1.5, <1.4.0 | -| 2.6.0 | mmcv-full>=1.1.5, <1.4.0 | -| 2.5.0 | mmcv-full>=1.1.5, <1.4.0 | -| 2.4.0 | mmcv-full>=1.1.1, <1.4.0 | -| 2.3.0 | mmcv-full==1.0.5 | -| 2.3.0rc0 | mmcv-full>=1.0.2 | -| 2.2.1 | mmcv==0.6.2 | -| 2.2.0 | mmcv==0.6.2 | -| 2.1.0 | mmcv>=0.5.9, <=0.6.1| -| 2.0.0 | mmcv>=0.5.1, <=0.5.8| +| MMDetection version | MMCV version | +|:-------------------:|:-------------------------:| +| master | mmcv-full>=1.3.17, <1.5.0 | +| 2.22.0 | mmcv-full>=1.3.17, <1.5.0 | +| 2.21.0 | mmcv-full>=1.3.17, <1.5.0 | +| 2.20.0 | mmcv-full>=1.3.17, <1.5.0 | +| 2.19.1 | mmcv-full>=1.3.17, <1.5.0 | +| 2.19.0 | mmcv-full>=1.3.17, <1.5.0 | +| 2.18.0 | mmcv-full>=1.3.17, <1.4.0 | +| 2.17.0 | mmcv-full>=1.3.14, <1.4.0 | +| 2.16.0 | mmcv-full>=1.3.8, <1.4.0 | +| 2.15.1 | mmcv-full>=1.3.8, <1.4.0 | +| 2.15.0 | mmcv-full>=1.3.8, <1.4.0 | +| 2.14.0 | mmcv-full>=1.3.8, <1.4.0 | +| 2.13.0 | mmcv-full>=1.3.3, <1.4.0 | +| 2.12.0 | mmcv-full>=1.3.3, <1.4.0 | +| 2.11.0 | mmcv-full>=1.2.4, <1.4.0 | +| 2.10.0 | mmcv-full>=1.2.4, <1.4.0 | +| 2.9.0 | mmcv-full>=1.2.4, <1.4.0 | +| 2.8.0 | mmcv-full>=1.2.4, <1.4.0 | +| 2.7.0 | mmcv-full>=1.1.5, <1.4.0 | +| 2.6.0 | mmcv-full>=1.1.5, <1.4.0 | +| 2.5.0 | mmcv-full>=1.1.5, <1.4.0 | +| 2.4.0 | mmcv-full>=1.1.1, <1.4.0 | +| 2.3.0 | mmcv-full==1.0.5 | +| 2.3.0rc0 | mmcv-full>=1.0.2 | +| 2.2.1 | mmcv==0.6.2 | +| 2.2.0 | mmcv==0.6.2 | +| 2.1.0 | mmcv>=0.5.9, <=0.6.1 | +| 2.0.0 | mmcv>=0.5.1, <=0.5.8 | **Note:** You need to run `pip uninstall mmcv` first if you have mmcv installed. If mmcv and mmcv-full are both installed, there will be `ModuleNotFoundError`. @@ -166,7 +167,7 @@ to [official documentation](https://albumentations.ai/docs/getting_started/insta MMDetection can be built for CPU only environment (where CUDA isn't available). -In CPU mode you can run the demo/webcam_demo.py for example. +In CPU mode you can train (requires MMCV version >= 1.4.4), test or inference a model. However some functionality is gone in this mode: - Deformable Convolution @@ -182,7 +183,7 @@ However some functionality is gone in this mode: - sigmoid_focal_loss_cuda - bbox_overlaps -If you try to run inference with a model containing above ops, an error will be raised. +If you try to train/test/inference a model containing above ops, an error will be raised. The following table lists affected algorithms. | Operator | Model | diff --git a/docs/en/model_zoo.md b/docs/en/model_zoo.md index 4ef4aacff45..15bb4894ae0 100644 --- a/docs/en/model_zoo.md +++ b/docs/en/model_zoo.md @@ -242,9 +242,21 @@ Please refer to [SOLO](https://github.com/open-mmlab/mmdetection/blob/master/con Please refer to [QueryInst](https://github.com/open-mmlab/mmdetection/blob/master/configs/queryinst) for details. +### PanopticFPN + +Please refer to [PanopticFPN](https://github.com/open-mmlab/mmdetection/blob/master/configs/panoptic_fpn) for details. + +### MaskFormer + +Please refer to [MaskFormer](https://github.com/open-mmlab/mmdetection/blob/master/configs/maskformer) for details. + +### DyHead + +Please refer to [DyHead](https://github.com/open-mmlab/mmdetection/blob/master/configs/dyhead) for details. + ### Other datasets -We also benchmark some methods on [PASCAL VOC](https://github.com/open-mmlab/mmdetection/blob/master/configs/pascal_voc), [Cityscapes](https://github.com/open-mmlab/mmdetection/blob/master/configs/cityscapes) and [WIDER FACE](https://github.com/open-mmlab/mmdetection/blob/master/configs/wider_face). +We also benchmark some methods on [PASCAL VOC](https://github.com/open-mmlab/mmdetection/blob/master/configs/pascal_voc), [Cityscapes](https://github.com/open-mmlab/mmdetection/blob/master/configs/cityscapes), [OpenImages](https://github.com/open-mmlab/mmdetection/blob/master/configs/openimages) and [WIDER FACE](https://github.com/open-mmlab/mmdetection/blob/master/configs/wider_face). ### Pre-trained Models diff --git a/docs/zh_cn/compatibility.md b/docs/zh_cn/compatibility.md index 80acf7f1a0e..73e1e628c7d 100644 --- a/docs/zh_cn/compatibility.md +++ b/docs/zh_cn/compatibility.md @@ -1,5 +1,10 @@ # MMDetection v2.x 兼容性说明 +## MMDection 2.21.0 + +为了支持 CPU 训练,MMCV 中进行批处理的 scatter 的代码逻辑已经被修改。我们推荐使用 MMCV v1.4.4 或更高版本, +更多信息请参考 [MMCV PR #1621](https://github.com/open-mmlab/mmcv/pull/1621). + ## MMDetection 2.18.1 ### MMCV compatibility diff --git a/docs/zh_cn/get_started.md b/docs/zh_cn/get_started.md index b606a0ad4d8..b6a2c60f396 100644 --- a/docs/zh_cn/get_started.md +++ b/docs/zh_cn/get_started.md @@ -9,36 +9,37 @@ MMDetection 和 MMCV 版本兼容性如下所示,需要安装正确的 MMCV 版本以避免安装出现问题。 -| MMDetection 版本 | MMCV 版本 | -| :--------------: | :----------------------: | -| master | mmcv-full>=1.3.17, <1.5.0 | -| 2.21.0 | mmcv-full>=1.3.17, <1.5.0 | -| 2.20.0 | mmcv-full>=1.3.17, <1.5.0 | -| 2.19.1 | mmcv-full>=1.3.17, <1.5.0 | -| 2.19.0 | mmcv-full>=1.3.17, <1.5.0 | -| 2.18.1 | mmcv-full>=1.3.17, <1.4.0 | -| 2.18.0 | mmcv-full>=1.3.14, <1.4.0 | -| 2.17.0 | mmcv-full>=1.3.14, <1.4.0 | -| 2.16.0 | mmcv-full>=1.3.8, <1.4.0 | -| 2.15.1 | mmcv-full>=1.3.8, <1.4.0 | -| 2.15.0 | mmcv-full>=1.3.8, <1.4.0 | -| 2.14.0 | mmcv-full>=1.3.8, <1.4.0 | -| 2.13.0 | mmcv-full>=1.3.3, <1.4.0 | -| 2.12.0 | mmcv-full>=1.3.3, <1.4.0 | -| 2.11.0 | mmcv-full>=1.2.4, <1.4.0 | -| 2.10.0 | mmcv-full>=1.2.4, <1.4.0 | -| 2.9.0 | mmcv-full>=1.2.4, <1.4.0 | -| 2.8.0 | mmcv-full>=1.2.4, <1.4.0 | -| 2.7.0 | mmcv-full>=1.1.5, <1.4.0 | -| 2.6.0 | mmcv-full>=1.1.5, <1.4.0 | -| 2.5.0 | mmcv-full>=1.1.5, <1.4.0 | -| 2.4.0 | mmcv-full>=1.1.1, <1.4.0 | -| 2.3.0 | mmcv-full==1.0.5 | -| 2.3.0rc0 | mmcv-full>=1.0.2 | -| 2.2.1 | mmcv==0.6.2 | -| 2.2.0 | mmcv==0.6.2 | -| 2.1.0 | mmcv>=0.5.9, <=0.6.1 | -| 2.0.0 | mmcv>=0.5.1, <=0.5.8 | +| MMDetection 版本 | MMCV 版本 | +|:--------------:|:-------------------------:| +| master | mmcv-full>=1.3.17, <1.5.0 | +| 2.22.0 | mmcv-full>=1.3.17, <1.5.0 | +| 2.21.0 | mmcv-full>=1.3.17, <1.5.0 | +| 2.20.0 | mmcv-full>=1.3.17, <1.5.0 | +| 2.19.1 | mmcv-full>=1.3.17, <1.5.0 | +| 2.19.0 | mmcv-full>=1.3.17, <1.5.0 | +| 2.18.1 | mmcv-full>=1.3.17, <1.4.0 | +| 2.18.0 | mmcv-full>=1.3.14, <1.4.0 | +| 2.17.0 | mmcv-full>=1.3.14, <1.4.0 | +| 2.16.0 | mmcv-full>=1.3.8, <1.4.0 | +| 2.15.1 | mmcv-full>=1.3.8, <1.4.0 | +| 2.15.0 | mmcv-full>=1.3.8, <1.4.0 | +| 2.14.0 | mmcv-full>=1.3.8, <1.4.0 | +| 2.13.0 | mmcv-full>=1.3.3, <1.4.0 | +| 2.12.0 | mmcv-full>=1.3.3, <1.4.0 | +| 2.11.0 | mmcv-full>=1.2.4, <1.4.0 | +| 2.10.0 | mmcv-full>=1.2.4, <1.4.0 | +| 2.9.0 | mmcv-full>=1.2.4, <1.4.0 | +| 2.8.0 | mmcv-full>=1.2.4, <1.4.0 | +| 2.7.0 | mmcv-full>=1.1.5, <1.4.0 | +| 2.6.0 | mmcv-full>=1.1.5, <1.4.0 | +| 2.5.0 | mmcv-full>=1.1.5, <1.4.0 | +| 2.4.0 | mmcv-full>=1.1.1, <1.4.0 | +| 2.3.0 | mmcv-full==1.0.5 | +| 2.3.0rc0 | mmcv-full>=1.0.2 | +| 2.2.1 | mmcv==0.6.2 | +| 2.2.0 | mmcv==0.6.2 | +| 2.1.0 | mmcv>=0.5.9, <=0.6.1 | +| 2.0.0 | mmcv>=0.5.1, <=0.5.8 | **注意:**如果已经安装了 mmcv,首先需要使用 `pip uninstall mmcv` 卸载已安装的 mmcv,如果同时安装了 mmcv 和 mmcv-full,将会报 `ModuleNotFoundError` 错误。 @@ -166,7 +167,7 @@ MIM 能够自动地安装 OpenMMLab 的项目以及对应的依赖包。 我们的代码能够建立在只使用 CPU 的环境(CUDA 不可用)。 -在CPU模式下,可以运行 `demo/webcam_demo.py` 示例,然而以下功能将在 CPU 模式下不能使用: +在CPU模式下,可以进行模型训练(需要 MMCV 版本 >= 1.4.4)、测试或者推理,然而以下功能将在 CPU 模式下不能使用: - Deformable Convolution - Modulated Deformable Convolution @@ -181,7 +182,7 @@ MIM 能够自动地安装 OpenMMLab 的项目以及对应的依赖包。 - sigmoid_focal_loss_cuda - bbox_overlaps -因此,如果尝试使用包含上述操作的模型进行推理,将会报错。下表列出了由于依赖上述算子而无法在 CPU 上运行的相关模型: +因此,如果尝试使用包含上述操作的模型进行训练/测试/推理,将会报错。下表列出了由于依赖上述算子而无法在 CPU 上运行的相关模型: | 操作 | 模型 | | :-----------------------------------------------------: | :----------------------------------------------------------: | diff --git a/mmdet/version.py b/mmdet/version.py index dd1bcd49098..7618b043734 100644 --- a/mmdet/version.py +++ b/mmdet/version.py @@ -1,6 +1,6 @@ # Copyright (c) OpenMMLab. All rights reserved. -__version__ = '2.21.0' +__version__ = '2.22.0' short_version = __version__