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__
|