2020-07-07 20:52:19 +08:00
< div align = "center" >
< img src = "resources/mmseg-logo.png" width = "600" / >
< / div >
2020-07-10 16:55:47 +08:00
< br / >
2021-09-02 09:39:44 +08:00
[](https://pypi.org/project/mmsegmentation/)
2020-07-14 14:41:52 +08:00
[](https://pypi.org/project/mmsegmentation)
2020-07-10 16:55:47 +08:00
[](https://mmsegmentation.readthedocs.io/en/latest/)
[](https://github.com/open-mmlab/mmsegmentation/actions)
[](https://codecov.io/gh/open-mmlab/mmsegmentation)
[](https://github.com/open-mmlab/mmsegmentation/blob/master/LICENSE)
2020-09-29 19:54:32 +08:00
[](https://github.com/open-mmlab/mmsegmentation/issues)
[](https://github.com/open-mmlab/mmsegmentation/issues)
2020-07-10 16:55:47 +08:00
Documentation: https://mmsegmentation.readthedocs.io/
2020-07-07 20:52:19 +08:00
2021-02-22 03:11:28 +08:00
English | [简体中文 ](README_zh-CN.md )
2020-07-07 20:52:19 +08:00
## Introduction
MMSegmentation is an open source semantic segmentation toolbox based on PyTorch.
It is a part of the OpenMMLab project.
2021-11-26 01:40:29 +08:00
The master branch works with **PyTorch 1.5+** .
2020-07-07 20:52:19 +08:00

### Major features
- **Unified Benchmark**
We provide a unified benchmark toolbox for various semantic segmentation methods.
- **Modular Design**
We decompose the semantic segmentation framework into different components and one can easily construct a customized semantic segmentation framework by combining different modules.
- **Support of multiple methods out of box**
The toolbox directly supports popular and contemporary semantic segmentation frameworks, *e.g.* PSPNet, DeepLabV3, PSANet, DeepLabV3+, etc.
- **High efficiency**
The training speed is faster than or comparable to other codebases.
## License
This project is released under the [Apache 2.0 license ](LICENSE ).
2020-07-13 20:54:32 +08:00
## Changelog
2021-12-15 16:49:42 +08:00
v0.20.2 was released in 12/15/2021.
2022-01-11 01:05:09 +08:00
Please refer to [changelog.md ](docs/en/changelog.md ) for details and release history.
2020-07-13 20:54:32 +08:00
2020-07-07 20:52:19 +08:00
## Benchmark and model zoo
2021-12-16 18:56:45 +08:00
Results and models are available in the [model zoo ](docs/en/model_zoo.md ).
2020-07-07 20:52:19 +08:00
Supported backbones:
2020-10-07 19:50:16 +08:00
2021-04-25 00:58:15 +08:00
- [x] ResNet (CVPR'2016)
- [x] ResNeXt (CVPR'2017)
2021-07-01 23:41:55 +08:00
- [x] [HRNet (CVPR'2019) ](configs/hrnet )
- [x] [ResNeSt (ArXiv'2020) ](configs/resnest )
- [x] [MobileNetV2 (CVPR'2018) ](configs/mobilenet_v2 )
- [x] [MobileNetV3 (ICCV'2019) ](configs/mobilenet_v3 )
- [x] [Vision Transformer (ICLR'2021) ](configs/vit )
2021-12-09 19:18:10 +08:00
- [x] [Swin Transformer (ICCV'2021) ](configs/swin )
- [x] [Twins (NeurIPS'2021) ](configs/twins )
2020-07-07 20:52:19 +08:00
Supported methods:
2020-10-07 19:50:16 +08:00
2021-04-25 00:58:15 +08:00
- [x] [FCN (CVPR'2015/TPAMI'2017) ](configs/fcn )
2021-12-02 15:54:39 +08:00
- [x] [ERFNet (T-ITS'2017) ](configs/erfnet )
2021-04-25 00:58:15 +08:00
- [x] [UNet (MICCAI'2016/Nat. Methods'2019) ](configs/unet )
- [x] [PSPNet (CVPR'2017) ](configs/pspnet )
2021-05-19 00:44:41 +08:00
- [x] [DeepLabV3 (ArXiv'2017) ](configs/deeplabv3 )
2021-09-29 02:12:57 +08:00
- [x] [BiSeNetV1 (ECCV'2018) ](configs/bisenetv1 )
2021-04-25 00:58:15 +08:00
- [x] [PSANet (ECCV'2018) ](configs/psanet )
- [x] [DeepLabV3+ (CVPR'2018) ](configs/deeplabv3plus )
- [x] [UPerNet (ECCV'2018) ](configs/upernet )
2021-10-01 00:31:57 +08:00
- [x] [ICNet (ECCV'2018) ](configs/icnet )
2021-04-25 00:58:15 +08:00
- [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] [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 )
2021-10-01 02:41:24 +08:00
- [x] [FastFCN (ArXiv'2019) ](configs/fastfcn )
2021-04-25 00:58:15 +08:00
- [x] [Fast-SCNN (ArXiv'2019) ](configs/fastscnn )
2021-09-09 12:13:53 +08:00
- [x] [ISANet (ArXiv'2019/IJCV'2021) ](configs/isanet )
2021-04-25 00:58:15 +08:00
- [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 )
2021-10-13 11:35:58 +08:00
- [x] [BiSeNetV2 (IJCV'2021) ](configs/bisenetv2 )
2021-12-10 23:09:32 +08:00
- [x] [STDC (CVPR'2021) ](configs/stdc )
2021-06-24 13:25:06 +08:00
- [x] [SETR (CVPR'2021) ](configs/setr )
2021-09-28 16:25:37 +08:00
- [x] [DPT (ArXiv'2021) ](configs/dpt )
2021-12-09 19:18:10 +08:00
- [x] [SegFormer (NeurIPS'2021) ](configs/segformer )
2020-07-07 20:52:19 +08:00
2021-08-29 02:51:05 +08:00
Supported datasets:
2021-12-16 18:56:45 +08:00
- [x] [Cityscapes ](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/en/dataset_prepare.md#cityscapes )
- [x] [PASCAL VOC ](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/en/dataset_prepare.md#pascal-voc )
- [x] [ADE20K ](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/en/dataset_prepare.md#ade20k )
- [x] [Pascal Context ](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/en/dataset_prepare.md#pascal-context )
- [x] [COCO-Stuff 10k ](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/en/dataset_prepare.md#coco-stuff-10k )
- [x] [COCO-Stuff 164k ](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/en/dataset_prepare.md#coco-stuff-164k )
- [x] [CHASE_DB1 ](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/en/dataset_prepare.md#chase-db1 )
- [x] [DRIVE ](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/en/dataset_prepare.md#drive )
- [x] [HRF ](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/en/dataset_prepare.md#hrf )
- [x] [STARE ](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/en/dataset_prepare.md#stare )
- [x] [Dark Zurich ](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/en/dataset_prepare.md#dark-zurich )
- [x] [Nighttime Driving ](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/en/dataset_prepare.md#nighttime-driving )
- [x] [LoveDA ](https://github.com/open-mmlab/mmsegmentation/blob/master/docs/en/dataset_prepare.md#loveda )
2021-08-29 02:51:05 +08:00
2020-07-07 20:52:19 +08:00
## Installation
2021-12-16 18:56:45 +08:00
Please refer to [get_started.md ](docs/en/get_started.md#installation ) for installation and [dataset_prepare.md ](docs/en/dataset_prepare.md#prepare-datasets ) for dataset preparation.
2020-07-07 20:52:19 +08:00
## Get Started
2021-12-16 18:56:45 +08:00
Please see [train.md ](docs/en/train.md ) and [inference.md ](docs/en/inference.md ) for the basic usage of MMSegmentation.
There are also tutorials for [customizing dataset ](docs/en/tutorials/customize_datasets.md ), [designing data pipeline ](docs/en/tutorials/data_pipeline.md ), [customizing modules ](docs/en/tutorials/customize_models.md ), and [customizing runtime ](docs/en/tutorials/customize_runtime.md ).
We also provide many [training tricks ](docs/en/tutorials/training_tricks.md ) for better training and [useful tools ](docs/en/useful_tools.md ) for deployment.
2020-07-07 20:52:19 +08:00
2020-07-10 16:55:47 +08:00
A Colab tutorial is also provided. You may preview the notebook [here ](demo/MMSegmentation_Tutorial.ipynb ) or directly [run ](https://colab.research.google.com/github/open-mmlab/mmsegmentation/blob/master/demo/MMSegmentation_Tutorial.ipynb ) on Colab.
2021-01-05 15:52:40 +08:00
## Citation
If you find this project useful in your research, please consider cite:
```latex
@misc {mmseg2020,
2021-02-22 03:11:28 +08:00
title={{MMSegmentation}: OpenMMLab Semantic Segmentation Toolbox and Benchmark},
2021-01-05 15:52:40 +08:00
author={MMSegmentation Contributors},
howpublished = {\url{https://github.com/open-mmlab/mmsegmentation}},
year={2020}
}
```
2020-07-07 20:52:19 +08:00
## Contributing
We appreciate all contributions to improve MMSegmentation. Please refer to [CONTRIBUTING.md ](.github/CONTRIBUTING.md ) for the contributing guideline.
## Acknowledgement
MMSegmentation is an open source project that welcome any contribution and feedback.
We wish that the toolbox and benchmark could serve the growing research
community by providing a flexible as well as standardized toolkit to reimplement existing methods
and develop their own new semantic segmentation methods.
2021-01-11 10:25:39 +08:00
## Projects in OpenMMLab
- [MMCV ](https://github.com/open-mmlab/mmcv ): OpenMMLab foundational library for computer vision.
- [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.
- [MMSegmentation ](https://github.com/open-mmlab/mmsegmentation ): OpenMMLab semantic segmentation toolbox and benchmark.
- [MMAction2 ](https://github.com/open-mmlab/mmaction2 ): OpenMMLab's next-generation action understanding toolbox and benchmark.
- [MMTracking ](https://github.com/open-mmlab/mmtracking ): OpenMMLab video perception toolbox and benchmark.
- [MMPose ](https://github.com/open-mmlab/mmpose ): OpenMMLab pose estimation toolbox and benchmark.
- [MMEditing ](https://github.com/open-mmlab/mmediting ): OpenMMLab image and video editing toolbox.
2021-04-22 07:08:59 +08:00
- [MMOCR ](https://github.com/open-mmlab/mmocr ): A Comprehensive Toolbox for Text Detection, Recognition and Understanding.
2021-04-26 10:15:13 +08:00
- [MMGeneration ](https://github.com/open-mmlab/mmgeneration ): A powerful toolkit for generative models.
2021-07-27 15:43:32 +08:00
- [MIM ](https://github.com/open-mmlab/mim ): MIM Installs OpenMMLab Packages.
2021-11-18 21:57:30 +08:00
- [MMFlow ](https://github.com/open-mmlab/mmflow ): OpenMMLab optical flow toolbox and benchmark.
2021-11-24 19:40:00 +08:00
- [MMFewShot ](https://github.com/open-mmlab/mmfewshot ): OpenMMLab few shot learning toolbox and benchmark.
2021-12-07 15:51:18 +08:00
- [MMHuman3D ](https://github.com/open-mmlab/mmhuman3d ): OpenMMLab 3D human parametric model toolbox and benchmark.
2021-12-24 18:00:17 +08:00
- [MMSelfSup ](https://github.com/open-mmlab/mmselfsup ): OpenMMLab self-supervised learning toolbox and benchmark.
- [MMRazor ](https://github.com/open-mmlab/mmrazor ): OpenMMLab Model Compression Toolbox and Benchmark.
2021-12-30 17:27:59 +08:00
- [MMDeploy ](https://github.com/open-mmlab/mmdeploy ): OpenMMLab Model Deployment Framework.