diff --git a/.circleci/docker/Dockerfile b/.circleci/docker/Dockerfile
index d014917af3..b1d40e0e14 100644
--- a/.circleci/docker/Dockerfile
+++ b/.circleci/docker/Dockerfile
@@ -5,8 +5,6 @@ ARG CUDNN="7"
FROM pytorch/pytorch:${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}-devel
-ARG DEBIAN_FRONTEND=noninteractive
-
# To fix GPG key error when running apt-get update
RUN apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub
RUN apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/7fa2af80.pub
diff --git a/.circleci/test.yml b/.circleci/test.yml
index b5d3e23a4d..622cdf9791 100644
--- a/.circleci/test.yml
+++ b/.circleci/test.yml
@@ -82,7 +82,7 @@ jobs:
type: string
cuda:
type: enum
- enum: ["10.1", "10.2", "11.1", "11.7", "11.8"]
+ enum: ["10.1", "10.2", "11.1"]
cudnn:
type: integer
default: 7
@@ -160,8 +160,9 @@ workflows:
- lint
- build_cpu:
name: maximum_version_cpu
- torch: 2.0.0
- torchvision: 0.15.0
+ # TODO: Fix torch 1.13 forward crush
+ torch: 1.12.0
+ torchvision: 0.13.0
python: 3.9.0
requires:
- minimum_version_cpu
@@ -171,10 +172,10 @@ workflows:
- maximum_version_cpu
- build_cuda:
name: mainstream_version_gpu
- torch: 2.0.0
+ torch: 1.8.1
# Use double quotation mark to explicitly specify its type
# as string instead of number
- cuda: "11.8"
+ cuda: "10.2"
requires:
- hold
merge_stage_test:
@@ -193,14 +194,3 @@ workflows:
only:
- dev-1.x
- main
- - build_cuda:
- name: maximum_version_gpu
- torch: 2.0.0
- # Use double quotation mark to explicitly specify its type
- # as string instead of number
- cuda: "11.8"
- cudnn: 8
- filters:
- branches:
- only:
- - main
diff --git a/README.md b/README.md
index 3c2b5998e4..5d63f49279 100644
--- a/README.md
+++ b/README.md
@@ -89,11 +89,17 @@ MMSegmentation v1.x brings remarkable improvements over the 0.x release, offerin
## What's New
-v1.1.2 was released on 09/20/2023.
-Please refer to [changelog.md](docs/en/notes/changelog.md) for details and release history.
+v1.2.0 was released on 10/12/2023, from 1.1.0 to 1.2.0, we have added or updated the following features:
-- Support monocular depth estimation task, please refer to [VPD](configs/vpd/README.md) for more details.
-- Add new projects: [CAT-Seg](projects/CAT-Seg/README.md), [PP-MobileSeg](projects/pp_mobileseg/README.md), [AdaBins](projects/Adabins/README.md)
+### Highlights
+
+- Support for the open-vocabulary semantic segmentation algorithm [SAN](configs/san/README.md)
+
+- Support monocular depth estimation task, please refer to [VPD](configs/vpd/README.md) and [Adabins](projects/Adabins/README.md) for more details.
+
+ ![depth estimation](https://github.com/open-mmlab/mmsegmentation/assets/15952744/07afd0e9-8ace-4a00-aa1e-5bf0ca92dcbc)
+
+- Add new projects: open-vocabulary semantic segmentation algorithm [CAT-Seg](projects/CAT-Seg/README.md), real-time semantic segmentation algofithm [PP-MobileSeg](projects/pp_mobileseg/README.md)
## Installation
@@ -192,45 +198,46 @@ Results and models are available in the [model zoo](docs/en/model_zoo.md).
Supported methods:
-- [x] [FCN (CVPR'2015/TPAMI'2017)](configs/fcn)
-- [x] [ERFNet (T-ITS'2017)](configs/erfnet)
-- [x] [UNet (MICCAI'2016/Nat. Methods'2019)](configs/unet)
-- [x] [PSPNet (CVPR'2017)](configs/pspnet)
-- [x] [DeepLabV3 (ArXiv'2017)](configs/deeplabv3)
-- [x] [BiSeNetV1 (ECCV'2018)](configs/bisenetv1)
-- [x] [PSANet (ECCV'2018)](configs/psanet)
-- [x] [DeepLabV3+ (CVPR'2018)](configs/deeplabv3plus)
-- [x] [UPerNet (ECCV'2018)](configs/upernet)
-- [x] [ICNet (ECCV'2018)](configs/icnet)
-- [x] [NonLocal Net (CVPR'2018)](configs/nonlocal_net)
-- [x] [EncNet (CVPR'2018)](configs/encnet)
-- [x] [Semantic FPN (CVPR'2019)](configs/sem_fpn)
-- [x] [DANet (CVPR'2019)](configs/danet)
-- [x] [APCNet (CVPR'2019)](configs/apcnet)
+- [x] [SAN (CVPR'2023)](configs/san/)
+- [x] [VPD (ICCV'2023)](configs/vpd)
+- [x] [DDRNet (T-ITS'2022)](configs/ddrnet)
+- [x] [PIDNet (ArXiv'2022)](configs/pidnet)
+- [x] [Mask2Former (CVPR'2022)](configs/mask2former)
+- [x] [MaskFormer (NeurIPS'2021)](configs/maskformer)
+- [x] [K-Net (NeurIPS'2021)](configs/knet)
+- [x] [SegFormer (NeurIPS'2021)](configs/segformer)
+- [x] [Segmenter (ICCV'2021)](configs/segmenter)
+- [x] [DPT (ArXiv'2021)](configs/dpt)
+- [x] [SETR (CVPR'2021)](configs/setr)
+- [x] [STDC (CVPR'2021)](configs/stdc)
+- [x] [BiSeNetV2 (IJCV'2021)](configs/bisenetv2)
+- [x] [CGNet (TIP'2020)](configs/cgnet)
+- [x] [PointRend (CVPR'2020)](configs/point_rend)
+- [x] [DNLNet (ECCV'2020)](configs/dnlnet)
+- [x] [OCRNet (ECCV'2020)](configs/ocrnet)
+- [x] [ISANet (ArXiv'2019/IJCV'2021)](configs/isanet)
+- [x] [Fast-SCNN (ArXiv'2019)](configs/fastscnn)
+- [x] [FastFCN (ArXiv'2019)](configs/fastfcn)
+- [x] [GCNet (ICCVW'2019/TPAMI'2020)](configs/gcnet)
+- [x] [ANN (ICCV'2019)](configs/ann)
- [x] [EMANet (ICCV'2019)](configs/emanet)
- [x] [CCNet (ICCV'2019)](configs/ccnet)
- [x] [DMNet (ICCV'2019)](configs/dmnet)
-- [x] [ANN (ICCV'2019)](configs/ann)
-- [x] [GCNet (ICCVW'2019/TPAMI'2020)](configs/gcnet)
-- [x] [FastFCN (ArXiv'2019)](configs/fastfcn)
-- [x] [Fast-SCNN (ArXiv'2019)](configs/fastscnn)
-- [x] [ISANet (ArXiv'2019/IJCV'2021)](configs/isanet)
-- [x] [OCRNet (ECCV'2020)](configs/ocrnet)
-- [x] [DNLNet (ECCV'2020)](configs/dnlnet)
-- [x] [PointRend (CVPR'2020)](configs/point_rend)
-- [x] [CGNet (TIP'2020)](configs/cgnet)
-- [x] [BiSeNetV2 (IJCV'2021)](configs/bisenetv2)
-- [x] [STDC (CVPR'2021)](configs/stdc)
-- [x] [SETR (CVPR'2021)](configs/setr)
-- [x] [DPT (ArXiv'2021)](configs/dpt)
-- [x] [Segmenter (ICCV'2021)](configs/segmenter)
-- [x] [SegFormer (NeurIPS'2021)](configs/segformer)
-- [x] [K-Net (NeurIPS'2021)](configs/knet)
-- [x] [MaskFormer (NeurIPS'2021)](configs/maskformer)
-- [x] [Mask2Former (CVPR'2022)](configs/mask2former)
-- [x] [PIDNet (ArXiv'2022)](configs/pidnet)
-- [x] [DDRNet (T-ITS'2022)](configs/ddrnet)
-- [x] [VPD (ICCV'2023)](configs/vpd)
+- [x] [Semantic FPN (CVPR'2019)](configs/sem_fpn)
+- [x] [DANet (CVPR'2019)](configs/danet)
+- [x] [APCNet (CVPR'2019)](configs/apcnet)
+- [x] [NonLocal Net (CVPR'2018)](configs/nonlocal_net)
+- [x] [EncNet (CVPR'2018)](configs/encnet)
+- [x] [DeepLabV3+ (CVPR'2018)](configs/deeplabv3plus)
+- [x] [UPerNet (ECCV'2018)](configs/upernet)
+- [x] [ICNet (ECCV'2018)](configs/icnet)
+- [x] [PSANet (ECCV'2018)](configs/psanet)
+- [x] [BiSeNetV1 (ECCV'2018)](configs/bisenetv1)
+- [x] [DeepLabV3 (ArXiv'2017)](configs/deeplabv3)
+- [x] [PSPNet (CVPR'2017)](configs/pspnet)
+- [x] [ERFNet (T-ITS'2017)](configs/erfnet)
+- [x] [UNet (MICCAI'2016/Nat. Methods'2019)](configs/unet)
+- [x] [FCN (CVPR'2015/TPAMI'2017)](configs/fcn)
diff --git a/README_zh-CN.md b/README_zh-CN.md
index 1aaa99f6bc..fa4c82a280 100644
--- a/README_zh-CN.md
+++ b/README_zh-CN.md
@@ -88,7 +88,7 @@ MMSegmentation v1.x 在 0.x 版本的基础上有了显著的提升,提供了
## 更新日志
-最新版本 v1.1.2 在 2023.09.20 发布。
+最新版本 v1.2.0 在 2023.10.12 发布。
如果想了解更多版本更新细节和历史信息,请阅读[更新日志](docs/en/notes/changelog.md)。
## 安装
@@ -187,45 +187,46 @@ MMSegmentation v1.x 在 0.x 版本的基础上有了显著的提升,提供了
已支持的算法:
-- [x] [FCN (CVPR'2015/TPAMI'2017)](configs/fcn)
-- [x] [ERFNet (T-ITS'2017)](configs/erfnet)
-- [x] [UNet (MICCAI'2016/Nat. Methods'2019)](configs/unet)
-- [x] [PSPNet (CVPR'2017)](configs/pspnet)
-- [x] [DeepLabV3 (ArXiv'2017)](configs/deeplabv3)
-- [x] [BiSeNetV1 (ECCV'2018)](configs/bisenetv1)
-- [x] [PSANet (ECCV'2018)](configs/psanet)
-- [x] [DeepLabV3+ (CVPR'2018)](configs/deeplabv3plus)
-- [x] [UPerNet (ECCV'2018)](configs/upernet)
-- [x] [ICNet (ECCV'2018)](configs/icnet)
-- [x] [NonLocal Net (CVPR'2018)](configs/nonlocal_net)
-- [x] [EncNet (CVPR'2018)](configs/encnet)
-- [x] [Semantic FPN (CVPR'2019)](configs/sem_fpn)
-- [x] [DANet (CVPR'2019)](configs/danet)
-- [x] [APCNet (CVPR'2019)](configs/apcnet)
+- [x] [SAN (CVPR'2023)](configs/san/)
+- [x] [VPD (ICCV'2023)](configs/vpd)
+- [x] [DDRNet (T-ITS'2022)](configs/ddrnet)
+- [x] [PIDNet (ArXiv'2022)](configs/pidnet)
+- [x] [Mask2Former (CVPR'2022)](configs/mask2former)
+- [x] [MaskFormer (NeurIPS'2021)](configs/maskformer)
+- [x] [K-Net (NeurIPS'2021)](configs/knet)
+- [x] [SegFormer (NeurIPS'2021)](configs/segformer)
+- [x] [Segmenter (ICCV'2021)](configs/segmenter)
+- [x] [DPT (ArXiv'2021)](configs/dpt)
+- [x] [SETR (CVPR'2021)](configs/setr)
+- [x] [STDC (CVPR'2021)](configs/stdc)
+- [x] [BiSeNetV2 (IJCV'2021)](configs/bisenetv2)
+- [x] [CGNet (TIP'2020)](configs/cgnet)
+- [x] [PointRend (CVPR'2020)](configs/point_rend)
+- [x] [DNLNet (ECCV'2020)](configs/dnlnet)
+- [x] [OCRNet (ECCV'2020)](configs/ocrnet)
+- [x] [ISANet (ArXiv'2019/IJCV'2021)](configs/isanet)
+- [x] [Fast-SCNN (ArXiv'2019)](configs/fastscnn)
+- [x] [FastFCN (ArXiv'2019)](configs/fastfcn)
+- [x] [GCNet (ICCVW'2019/TPAMI'2020)](configs/gcnet)
+- [x] [ANN (ICCV'2019)](configs/ann)
- [x] [EMANet (ICCV'2019)](configs/emanet)
- [x] [CCNet (ICCV'2019)](configs/ccnet)
- [x] [DMNet (ICCV'2019)](configs/dmnet)
-- [x] [ANN (ICCV'2019)](configs/ann)
-- [x] [GCNet (ICCVW'2019/TPAMI'2020)](configs/gcnet)
-- [x] [FastFCN (ArXiv'2019)](configs/fastfcn)
-- [x] [Fast-SCNN (ArXiv'2019)](configs/fastscnn)
-- [x] [ISANet (ArXiv'2019/IJCV'2021)](configs/isanet)
-- [x] [OCRNet (ECCV'2020)](configs/ocrnet)
-- [x] [DNLNet (ECCV'2020)](configs/dnlnet)
-- [x] [PointRend (CVPR'2020)](configs/point_rend)
-- [x] [CGNet (TIP'2020)](configs/cgnet)
-- [x] [BiSeNetV2 (IJCV'2021)](configs/bisenetv2)
-- [x] [STDC (CVPR'2021)](configs/stdc)
-- [x] [SETR (CVPR'2021)](configs/setr)
-- [x] [DPT (ArXiv'2021)](configs/dpt)
-- [x] [Segmenter (ICCV'2021)](configs/segmenter)
-- [x] [SegFormer (NeurIPS'2021)](configs/segformer)
-- [x] [K-Net (NeurIPS'2021)](configs/knet)
-- [x] [MaskFormer (NeurIPS'2021)](configs/maskformer)
-- [x] [Mask2Former (CVPR'2022)](configs/mask2former)
-- [x] [PIDNet (ArXiv'2022)](configs/pidnet)
-- [x] [DDRNet (T-ITS'2022)](configs/ddrnet)
-- [x] [VPD (ICCV'2023)](configs/vpd)
+- [x] [Semantic FPN (CVPR'2019)](configs/sem_fpn)
+- [x] [DANet (CVPR'2019)](configs/danet)
+- [x] [APCNet (CVPR'2019)](configs/apcnet)
+- [x] [NonLocal Net (CVPR'2018)](configs/nonlocal_net)
+- [x] [EncNet (CVPR'2018)](configs/encnet)
+- [x] [DeepLabV3+ (CVPR'2018)](configs/deeplabv3plus)
+- [x] [UPerNet (ECCV'2018)](configs/upernet)
+- [x] [ICNet (ECCV'2018)](configs/icnet)
+- [x] [PSANet (ECCV'2018)](configs/psanet)
+- [x] [BiSeNetV1 (ECCV'2018)](configs/bisenetv1)
+- [x] [DeepLabV3 (ArXiv'2017)](configs/deeplabv3)
+- [x] [PSPNet (CVPR'2017)](configs/pspnet)
+- [x] [ERFNet (T-ITS'2017)](configs/erfnet)
+- [x] [UNet (MICCAI'2016/Nat. Methods'2019)](configs/unet)
+- [x] [FCN (CVPR'2015/TPAMI'2017)](configs/fcn)
diff --git a/docker/serve/Dockerfile b/docker/serve/Dockerfile
index 8a6786f118..f461e35963 100644
--- a/docker/serve/Dockerfile
+++ b/docker/serve/Dockerfile
@@ -4,7 +4,7 @@ ARG CUDNN="8"
FROM pytorch/pytorch:${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}-devel
ARG MMCV="2.0.1"
-ARG MMSEG="1.1.2"
+ARG MMSEG="1.2.0"
ENV PYTHONUNBUFFERED TRUE
diff --git a/docs/en/notes/changelog.md b/docs/en/notes/changelog.md
index c26e4c2f5e..e05e465a50 100644
--- a/docs/en/notes/changelog.md
+++ b/docs/en/notes/changelog.md
@@ -1,5 +1,19 @@
# Changelog of v1.x
+## v1.2.0 (10/12/2023)
+
+### Features
+
+- Support Side Adapter Network ([#3232](https://github.com/open-mmlab/mmsegmentation/pull/3232))
+
+### Bug Fixes
+
+- fix wrong variables passing for `set_dataset_meta` ([#3348](https://github.com/open-mmlab/mmsegmentation/pull/3348))
+
+### Documentation
+
+- add documentation of Finetune ONNX Models (MMSegemetation) Inference for NVIDIA Jetson ([#3372](https://github.com/open-mmlab/mmsegmentation/pull/3372))
+
## v1.1.2(09/20/2023)
### Features
diff --git a/docs/en/notes/faq.md b/docs/en/notes/faq.md
index 426b70a8d5..fe3f21a846 100644
--- a/docs/en/notes/faq.md
+++ b/docs/en/notes/faq.md
@@ -10,6 +10,7 @@ The compatible MMSegmentation, MMCV and MMEngine versions are as below. Please i
| :--------------------: | :----------------------------: | :---------------: | :---------------------------------: | :----------------------------: |
| dev-1.x branch | mmcv >= 2.0.0 | MMEngine >= 0.7.4 | mmpretrain>=1.0.0rc7 | mmdet >= 3.0.0 |
| main branch | mmcv >= 2.0.0 | MMEngine >= 0.7.4 | mmpretrain>=1.0.0rc7 | mmdet >= 3.0.0 |
+| 1.2.0 | mmcv >= 2.0.0 | MMEngine >= 0.7.4 | mmpretrain>=1.0.0rc7 | mmdet >= 3.0.0 |
| 1.1.2 | mmcv >= 2.0.0 | MMEngine >= 0.7.4 | mmpretrain>=1.0.0rc7 | mmdet >= 3.0.0 |
| 1.1.1 | mmcv >= 2.0.0 | MMEngine >= 0.7.4 | mmpretrain>=1.0.0rc7 | mmdet >= 3.0.0 |
| 1.1.0 | mmcv >= 2.0.0 | MMEngine >= 0.7.4 | mmpretrain>=1.0.0rc7 | mmdet >= 3.0.0 |
diff --git a/docs/zh_cn/notes/faq.md b/docs/zh_cn/notes/faq.md
index bf3b341780..5ca3e3f9d5 100644
--- a/docs/zh_cn/notes/faq.md
+++ b/docs/zh_cn/notes/faq.md
@@ -10,6 +10,7 @@
| :--------------------: | :----------------------------: | :---------------: | :---------------------------------: | :----------------------------: |
| dev-1.x branch | mmcv >= 2.0.0 | MMEngine >= 0.7.4 | mmpretrain>=1.0.0rc7 | mmdet >= 3.0.0 |
| main branch | mmcv >= 2.0.0 | MMEngine >= 0.7.4 | mmpretrain>=1.0.0rc7 | mmdet >= 3.0.0 |
+| 1.2.0 | mmcv >= 2.0.0 | MMEngine >= 0.7.4 | mmpretrain>=1.0.0rc7 | mmdet >= 3.0.0 |
| 1.1.2 | mmcv >= 2.0.0 | MMEngine >= 0.7.4 | mmpretrain>=1.0.0rc7 | mmdet >= 3.0.0 |
| 1.1.1 | mmcv >= 2.0.0 | MMEngine >= 0.7.4 | mmpretrain>=1.0.0rc7 | mmdet >= 3.0.0 |
| 1.1.0 | mmcv >= 2.0.0 | MMEngine >= 0.7.4 | mmpretrain>=1.0.0rc7 | mmdet >= 3.0.0 |
diff --git a/mmseg/__init__.py b/mmseg/__init__.py
index 9f171ccb0a..5fcb84e8c4 100644
--- a/mmseg/__init__.py
+++ b/mmseg/__init__.py
@@ -8,7 +8,7 @@
from .version import __version__, version_info
MMCV_MIN = '2.0.0rc4'
-MMCV_MAX = '2.1.0'
+MMCV_MAX = '2.2.0'
MMENGINE_MIN = '0.5.0'
MMENGINE_MAX = '1.0.0'
diff --git a/mmseg/version.py b/mmseg/version.py
index a654604da7..5132f9c8c3 100644
--- a/mmseg/version.py
+++ b/mmseg/version.py
@@ -1,6 +1,6 @@
# Copyright (c) Open-MMLab. All rights reserved.
-__version__ = '1.1.2'
+__version__ = '1.2.0'
def parse_version_info(version_str):
diff --git a/requirements/mminstall.txt b/requirements/mminstall.txt
index df073e0c1b..5732d345bb 100644
--- a/requirements/mminstall.txt
+++ b/requirements/mminstall.txt
@@ -1,2 +1,2 @@
-mmcv>=2.0.0rc4
+mmcv>=2.0.0rc4,<2.2.0
mmengine>=0.5.0,<1.0.0
diff --git a/tests/test_models/test_forward.py b/tests/test_models/test_forward.py
index 7f72efae2a..bb3967f8dd 100644
--- a/tests/test_models/test_forward.py
+++ b/tests/test_models/test_forward.py
@@ -127,11 +127,6 @@ def test_gcnet_forward():
'gcnet/gcnet_r50-d8_4xb2-40k_cityscapes-512x1024.py')
-def test_ann_forward():
- _test_encoder_decoder_forward(
- 'ann/ann_r50-d8_4xb2-40k_cityscapes-512x1024.py')
-
-
def test_ccnet_forward():
if not torch.cuda.is_available():
pytest.skip('CCNet requires CUDA')
@@ -139,16 +134,6 @@ def test_ccnet_forward():
'ccnet/ccnet_r50-d8_4xb2-40k_cityscapes-512x1024.py')
-def test_danet_forward():
- _test_encoder_decoder_forward(
- 'danet/danet_r50-d8_4xb2-40k_cityscapes-512x1024.py')
-
-
-def test_nonlocal_net_forward():
- _test_encoder_decoder_forward(
- 'nonlocal_net/nonlocal_r50-d8_4xb2-40k_cityscapes-512x1024.py')
-
-
def test_upernet_forward():
_test_encoder_decoder_forward(
'upernet/upernet_r50_4xb2-40k_cityscapes-512x1024.py')
@@ -164,11 +149,6 @@ def test_ocrnet_forward():
'ocrnet/ocrnet_hr18s_4xb2-40k_cityscapes-512x1024.py')
-def test_psanet_forward():
- _test_encoder_decoder_forward(
- 'psanet/psanet_r50-d8_4xb2-40k_cityscapes-512x1024.py')
-
-
def test_sem_fpn_forward():
_test_encoder_decoder_forward(
'sem_fpn/fpn_r50_4xb2-80k_cityscapes-512x1024.py')
@@ -179,21 +159,6 @@ def test_mobilenet_v2_forward():
'mobilenet_v2/mobilenet-v2-d8_pspnet_4xb2-80k_cityscapes-512x1024.py')
-def test_dnlnet_forward():
- _test_encoder_decoder_forward(
- 'dnlnet/dnl_r50-d8_4xb2-40k_cityscapes-512x1024.py')
-
-
-def test_emanet_forward():
- _test_encoder_decoder_forward(
- 'emanet/emanet_r50-d8_4xb2-80k_cityscapes-512x1024.py')
-
-
-def test_isanet_forward():
- _test_encoder_decoder_forward(
- 'isanet/isanet_r50-d8_4xb2-40k_cityscapes-512x1024.py')
-
-
def get_world_size(process_group):
return 1
@@ -221,7 +186,7 @@ def _test_encoder_decoder_forward(cfg_file):
num_classes = segmentor.decode_head.num_classes
# batch_size=2 for BatchNorm
packed_inputs = _demo_mm_inputs(
- batch_size=2, image_shapes=(3, 32, 32), num_classes=num_classes)
+ batch_size=2, image_shapes=(3, 4, 4), num_classes=num_classes)
# convert to cuda Tensor if applicable
if torch.cuda.is_available():
segmentor = segmentor.cuda()