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 / >
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
## Introduction
MMSegmentation is an open source semantic segmentation toolbox based on PyTorch.
It is a part of the OpenMMLab project.
2020-09-29 19:54:32 +08:00
The master branch works with **PyTorch 1.3 to 1.6** .
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-02-03 07:09:20 +08:00
v0.11.0 was released in 02/02/2021.
2020-08-11 19:23:35 +08:00
Please refer to [changelog.md ](docs/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
Results and models are available in the [model zoo ](docs/model_zoo.md ).
Supported backbones:
2020-10-07 19:50:16 +08:00
2020-07-07 20:52:19 +08:00
- [x] ResNet
- [x] ResNeXt
2020-08-17 00:54:01 +08:00
- [x] [HRNet ](configs/hrnet/README.md )
- [x] [ResNeSt ](configs/resnest/README.md )
2020-09-25 17:44:34 +08:00
- [x] [MobileNetV2 ](configs/mobilenet_v2/README.md )
2020-12-26 16:02:50 +08:00
- [x] [MobileNetV3 ](configs/mobilenet_v3/README.md )
2020-07-07 20:52:19 +08:00
Supported methods:
2020-10-07 19:50:16 +08:00
2020-07-07 20:52:19 +08:00
- [x] [FCN ](configs/fcn )
- [x] [PSPNet ](configs/pspnet )
- [x] [DeepLabV3 ](configs/deeplabv3 )
- [x] [PSANet ](configs/psanet )
- [x] [DeepLabV3+ ](configs/deeplabv3plus )
- [x] [UPerNet ](configs/upernet )
- [x] [NonLocal Net ](configs/nonlocal_net )
2020-07-10 16:55:47 +08:00
- [x] [EncNet ](configs/encnet )
2020-07-07 20:52:19 +08:00
- [x] [CCNet ](configs/ccnet )
- [x] [DANet ](configs/danet )
2020-12-18 15:23:45 +08:00
- [x] [APCNet ](configs/apcnet )
2020-07-07 20:52:19 +08:00
- [x] [GCNet ](configs/gcnet )
2020-12-24 14:16:34 +08:00
- [x] [DMNet ](configs/dmnet )
2020-07-07 20:52:19 +08:00
- [x] [ANN ](configs/ann )
- [x] [OCRNet ](configs/ocrnet )
2020-08-19 15:52:46 +08:00
- [x] [Fast-SCNN ](configs/fastscnn )
2020-09-07 16:22:00 +08:00
- [x] [Semantic FPN ](configs/sem_fpn )
2020-09-07 19:59:44 +08:00
- [x] [PointRend ](configs/point_rend )
2020-09-07 16:22:00 +08:00
- [x] [EMANet ](configs/emanet )
- [x] [DNLNet ](configs/dnlnet )
2020-11-03 16:05:25 +08:00
- [x] [CGNet ](configs/cgnet )
2020-07-20 15:17:18 +08:00
- [x] [Mixed Precision (FP16) Training ](configs/fp16/README.md )
2020-07-07 20:52:19 +08:00
## Installation
2021-01-05 15:52:40 +08:00
Please refer to [get_started.md ](docs/get_started.md#installation ) for installation and dataset preparation.
2020-07-07 20:52:19 +08:00
## Get Started
2021-01-05 15:52:40 +08:00
Please see [train.md ](docs/train.md ) and [inference.md ](docs/inference.md ) for the basic usage of MMSegmentation.
There are also tutorials for [customizing dataset ](docs/tutorials/customize_datasets.md ), [designing data pipeline ](docs/tutorials/data_pipeline.md ), [customizing modules ](docs/tutorials/customize_models.md ), and [customizing runtime ](docs/tutorials/customize_runtime.md ).
We also provide many [training tricks ](docs/tutorials/training_tricks.md ).
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,
title={MMSegmentation, an Open Source Semantic Segmentation Toolbox},
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.