# open-mmlab/mmsegmentation

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/open-mmlab-mmsegmentation).**

9,860 stars · 2,847 forks · Python · Apache-2.0

## Links

- GitHub: https://github.com/open-mmlab/mmsegmentation
- Homepage: https://mmsegmentation.readthedocs.io/en/main/
- awesome-repositories: https://awesome-repositories.com/repository/open-mmlab-mmsegmentation.md

## Topics

`deeplabv3` `image-segmentation` `medical-image-segmentation` `pspnet` `pytorch` `realtime-segmentation` `retinal-vessel-segmentation` `semantic-segmentation` `swin-transformer` `transformer` `vessel-segmentation`

## Description

MMSegmentation is an open-source semantic segmentation toolbox built on PyTorch that provides a modular, configurable framework for building, training, evaluating, and deploying segmentation models. At its core, it offers a config-driven pipeline that assembles training, evaluation, and inference workflows by parsing hierarchical configuration files, with a modular component registry that enables plug-and-play composition of neural network modules, optimizers, datasets, and metrics. The framework supports the full model lifecycle through a unified runner interface that controls training, testing, and inference loops, with hook-based lifecycle extension for attaching user-defined logic at specific events.

The toolbox distinguishes itself through its extensibility and breadth of capabilities. It supports open-vocabulary segmentation, allowing arbitrary text queries to be mapped to pixel labels by combining vision-language models with segmentation decoders. It also integrates monocular depth estimation as a first-class capability, adding depth prediction heads to segmentation backbones within the same architecture. The framework provides a standardized benchmark suite for comparing algorithms across multiple datasets and metrics, and includes a complete dataset management system that handles format conversion, folder structure organization, multi-dataset mixing, and even direct dataset downloads.

Beyond its core segmentation functionality, MMSegmentation offers deep customization at every level of the pipeline. Users can extend the framework with custom backbones, decode heads, loss functions, optimizers, data transforms, evaluation metrics, and training hooks, all through a consistent registry pattern. The toolbox manages the entire data lifecycle from raw annotation conversion through preprocessing pipeline assembly, and supports model conversion for production deployment with API-based serving. Training and evaluation are controlled through configurable loop configurations, with checkpoint resumption, real-time progress monitoring, and result visualization built in.

## Tags

### Artificial Intelligence & ML

- [PyTorch Semantic Segmentation Libraries](https://awesome-repositories.com/f/artificial-intelligence-ml/pytorch-semantic-segmentation-libraries.md) — A deep learning toolkit built on PyTorch for building and customizing segmentation architectures with interchangeable backbones and heads.
- [Segmentation Model Training](https://awesome-repositories.com/f/artificial-intelligence-ml/computer-vision-systems/image-segmentation/segmentation-model-training.md) — Trains semantic segmentation models on custom datasets using a unified pipeline with configurable backbones, decoders, and loss functions. ([source](https://mmsegmentation.readthedocs.io/en/latest/))
- [Custom Pipeline Assemblers](https://awesome-repositories.com/f/artificial-intelligence-ml/computer-vision-systems/image-segmentation/segmentation-model-training/custom-pipeline-assemblers.md) — Constructs tailored segmentation workflows by plugging together interchangeable components for backbone, head, and data processing. ([source](https://cdn.jsdelivr.net/gh/open-mmlab/mmsegmentation@main/README.md))
- [Segmentation Model Testing](https://awesome-repositories.com/f/artificial-intelligence-ml/computer-vision-systems/image-segmentation/segmentation-model-training/segmentation-model-testing.md) — Evaluates a trained segmentation model against a test dataset and reports standard performance metrics. ([source](https://mmsegmentation.readthedocs.io/en/latest/user_guides/index.html))
- [Semantic Segmentation Training](https://awesome-repositories.com/f/artificial-intelligence-ml/computer-vision-systems/image-segmentation/segmentation-model-training/semantic-segmentation-training.md) — Trains semantic segmentation models on custom datasets with configurable backbones, decoders, and loss functions.
- [Custom Segmentor Implementations](https://awesome-repositories.com/f/artificial-intelligence-ml/custom-model-training/custom-predictive-model-development/custom-segmentor-implementations.md) — Enables creating new segmentation algorithms by subclassing base segmentors and overriding core methods. ([source](https://mmsegmentation.readthedocs.io/en/latest/advanced_guides/add_models.html))
- [Segmentation Architecture Extensions](https://awesome-repositories.com/f/artificial-intelligence-ml/custom-model-training/custom-predictive-model-development/segmentation-architecture-extensions.md) — Extends segmentation architectures with custom backbones, decode heads, loss functions, or full segmentors.
- [Unified Runner Interfaces](https://awesome-repositories.com/f/artificial-intelligence-ml/machine-learning/infrastructure/model-training-and-tuning/data-and-checkpointing/model-loading/unified-runner-interfaces.md) — Controls training, testing, and inference loops through a single runner abstraction that manages lifecycle events and checkpointing.
- [Model Architectures](https://awesome-repositories.com/f/artificial-intelligence-ml/model-architectures.md) — Adds new neural network modules like backbones, decoders, or heads by implementing a single class and registering it. ([source](https://mmsegmentation.readthedocs.io/en/latest/advanced_guides/index.html))
- [Model Performance Evaluators](https://awesome-repositories.com/f/artificial-intelligence-ml/model-performance-evaluators.md) — Computes standard segmentation metrics such as mIoU and accuracy on a test dataset to quantify model quality. ([source](https://mmsegmentation.readthedocs.io/en/latest/))
- [Training Lifecycle Hooks](https://awesome-repositories.com/f/artificial-intelligence-ml/neural-training-pipelines/training-execution-loops/training-lifecycle-hooks.md) — Provides hook-based lifecycle extension for executing custom logic at specific training loop events. ([source](https://mmsegmentation.readthedocs.io/en/latest/advanced_guides/customize_runtime.html))
- [Segmentation Metrics](https://awesome-repositories.com/f/artificial-intelligence-ml/segmentation-metrics.md) — Computes segmentation performance metrics like mIoU by iterating over test batches and aggregating per-pixel predictions through a metric registry.
- [Image Segmentation Dataset Pipelines](https://awesome-repositories.com/f/artificial-intelligence-ml/training-dataset-preparation/image-segmentation-dataset-pipelines.md) — Converts raw image annotations into standardized label maps and assembles preprocessing pipelines for segmentation model training.
- [Training Loop Schedulers](https://awesome-repositories.com/f/artificial-intelligence-ml/training-loop-schedulers.md) — Controls the iteration logic for training, validation, and testing with separate loop configurations. ([source](https://mmsegmentation.readthedocs.io/en/latest/migration/interface.html))
- [Custom Backbone Registrations](https://awesome-repositories.com/f/artificial-intelligence-ml/backbone-integrations/custom-backbone-registrations.md) — Registers a new backbone network by subclassing a base module and declaring it in the model registry. ([source](https://mmsegmentation.readthedocs.io/en/latest/advanced_guides/add_models.html))
- [Segmentation Head Registrations](https://awesome-repositories.com/f/artificial-intelligence-ml/computer-vision-models/classifier-head-management/auxiliary-classification-heads/detection-head-registrations/segmentation-head-registrations.md) — Creates a new segmentation head by subclassing the base decode head and registering it for use in model configs. ([source](https://mmsegmentation.readthedocs.io/en/latest/advanced_guides/add_models.html))
- [Monocular Depth Estimators](https://awesome-repositories.com/f/artificial-intelligence-ml/computer-vision-systems/computer-vision/object-pose-estimations/monocular-depth-estimators.md) — Predicts a per-pixel depth map from one monocular image using dedicated depth estimation models. ([source](https://cdn.jsdelivr.net/gh/open-mmlab/mmsegmentation@main/README.md))
- [Depth Estimation](https://awesome-repositories.com/f/artificial-intelligence-ml/computer-vision-systems/computer-vision/object-pose-estimations/monocular-depth-estimators/multi-view-depth-estimators/depth-estimation.md) — Adds monocular depth prediction capability by attaching a specialized decode head to the segmentation backbone within the same model architecture.
- [Segmentation-Based Depth Estimators](https://awesome-repositories.com/f/artificial-intelligence-ml/computer-vision-systems/computer-vision/object-pose-estimations/monocular-depth-estimators/segmentation-based-depth-estimators.md) — Integrates monocular depth prediction as a first-class capability by adding depth prediction heads to segmentation backbones.
- [Language-Based Segmentation](https://awesome-repositories.com/f/artificial-intelligence-ml/computer-vision-systems/image-segmentation/language-based-segmentation.md) — Maps arbitrary text queries to pixel labels by combining a vision-language model with the segmentation decoder for flexible category inference.
- [Custom Data Transform Extensions](https://awesome-repositories.com/f/artificial-intelligence-ml/custom-data-transform-extensions.md) — Builds a custom data preprocessor that copies data to the target device and transforms it into model input format. ([source](https://mmsegmentation.readthedocs.io/en/latest/advanced_guides/add_models.html))
- [Pretrained Model Snapshots](https://awesome-repositories.com/f/artificial-intelligence-ml/custom-model-training/pretrained-model-integrations/pretrained-model-snapshots.md) — Runs pretrained segmentation models on new images to produce pixel-level class predictions without training. ([source](https://mmsegmentation.readthedocs.io/en/latest/user_guides/index.html))
- [Transform Sequence Assemblers](https://awesome-repositories.com/f/artificial-intelligence-ml/data-augmentation-pipelines/transform-sequence-assemblers.md) — Assembles sequences of transforms for loading, augmenting, and packing image and annotation data. ([source](https://mmsegmentation.readthedocs.io/en/latest/migration/interface.html))
- [Data Loaders](https://awesome-repositories.com/f/artificial-intelligence-ml/data-loaders.md) — Configures batch size, worker count, sampler type, and dataset separately for training, validation, and testing. ([source](https://mmsegmentation.readthedocs.io/en/latest/migration/interface.html))
- [Dataset Preparation Utilities](https://awesome-repositories.com/f/artificial-intelligence-ml/dataset-preparation-utilities.md) — Converts raw image and annotation data into the expected format for training or evaluation pipelines. ([source](https://mmsegmentation.readthedocs.io/en/latest/))
- [Dataset Registration Systems](https://awesome-repositories.com/f/artificial-intelligence-ml/dataset-registration-systems.md) — Registers new dataset classes for use in training and evaluation pipelines through a centralized registry. ([source](https://mmsegmentation.readthedocs.io/en/latest/advanced_guides/add_datasets.html))
- [Image Data Preprocessing](https://awesome-repositories.com/f/artificial-intelligence-ml/image-data-preprocessing.md) — Configures pixel normalization, padding, and color channel conversion for input images and segmentation maps. ([source](https://mmsegmentation.readthedocs.io/en/latest/migration/interface.html))
- [Multi-Source Dataset Integration](https://awesome-repositories.com/f/artificial-intelligence-ml/large-scale-model-training/training-datasets/multi-source-dataset-integration.md) — Combines, repeats, or interleaves several datasets during training to increase data diversity. ([source](https://mmsegmentation.readthedocs.io/en/latest/advanced_guides/add_datasets.html))
- [Loss Function Customization](https://awesome-repositories.com/f/artificial-intelligence-ml/loss-function-customization.md) — Defines a new loss by implementing a weighted loss function and registering it as a module in the model registry. ([source](https://mmsegmentation.readthedocs.io/en/latest/advanced_guides/add_models.html))
- [Training Runtime Configurations](https://awesome-repositories.com/f/artificial-intelligence-ml/machine-learning/infrastructure/machine-learning-training/training-configuration-management/training-hyperparameter-configurations/training-runtime-configurations.md) — Adjusts training hyperparameters, optimizer configuration, learning rate schedules, and logging via config files. ([source](https://mmsegmentation.readthedocs.io/en/latest/advanced_guides/index.html))
- [Training Runtime Hook Configurations](https://awesome-repositories.com/f/artificial-intelligence-ml/model-hook-configurations/training-runtime-hook-configurations.md) — Configures built-in hooks for checkpoint saving, logging, parameter scheduling, and visualization during training. ([source](https://mmsegmentation.readthedocs.io/en/latest/migration/interface.html))
- [Checkpoint Resume](https://awesome-repositories.com/f/artificial-intelligence-ml/next-sentence-prediction/trainers/checkpoint-resume.md) — Continues training from a saved checkpoint, either from a specific file or the latest in the work directory. ([source](https://mmsegmentation.readthedocs.io/en/latest/migration/interface.html))
- [Open-Vocabulary Segmentation](https://awesome-repositories.com/f/artificial-intelligence-ml/object-detection/small-object-detectors/open-vocabulary-detectors/open-vocabulary-segmentation.md) — Labels image regions using arbitrary text descriptions instead of a fixed set of predefined categories. ([source](https://cdn.jsdelivr.net/gh/open-mmlab/mmsegmentation@main/README.md))
- [Custom Optimizer Constructors](https://awesome-repositories.com/f/artificial-intelligence-ml/optimization-algorithms/adaptive-learning-rate-optimizers/custom-optimizer-constructors.md) — Provides a factory pattern for assembling optimizers with per-layer learning rates and weight decay settings. ([source](https://mmsegmentation.readthedocs.io/en/latest/advanced_guides/customize_runtime.html))
- [Custom Optimizer Registrations](https://awesome-repositories.com/f/artificial-intelligence-ml/optimizer-configurations/custom-optimizer-registrations.md) — Ships a registry pattern for adding custom optimizers alongside built-in options in training configs. ([source](https://mmsegmentation.readthedocs.io/en/latest/advanced_guides/customize_runtime.html))
- [Unified Optimization Wrappers](https://awesome-repositories.com/f/artificial-intelligence-ml/optimizer-configurations/unified-optimization-wrappers.md) — Provides a unified wrapper for configuring optimizer, gradient clipping, learning rate schedules, and warmup. ([source](https://mmsegmentation.readthedocs.io/en/latest/migration/interface.html))
- [Ground Truth Comparisons](https://awesome-repositories.com/f/artificial-intelligence-ml/segmentation-visualizations/ground-truth-comparisons.md) — Generates side-by-side comparisons of input images, ground truth, and model predictions for inspection. ([source](https://mmsegmentation.readthedocs.io/en/latest/))
- [Custom Metric Implementations](https://awesome-repositories.com/f/artificial-intelligence-ml/sequence-learning-models/evaluation-metrics/custom-metric-implementations.md) — Allows users to create new evaluation metrics by subclassing a base metric class and implementing custom computation logic. ([source](https://mmsegmentation.readthedocs.io/en/latest/advanced_guides/add_metrics.html))
- [Training Dataset Preparation](https://awesome-repositories.com/f/artificial-intelligence-ml/training-dataset-preparation.md) — Organizes raw images and annotation files into required directory structure with training/validation splits. ([source](https://github.com/open-mmlab/mmsegmentation/blob/main/docs/en/user_guides/2_dataset_prepare.md))

### Part of an Awesome List

- [Image Segmentation Benchmarks](https://awesome-repositories.com/f/awesome-lists/ai/3d-detection-and-segmentation/segmentation-evaluation-metrics/image-segmentation-benchmarks.md) — Benchmarks segmentation models against standard datasets and metrics to measure accuracy and compare methods. ([source](https://cdn.jsdelivr.net/gh/open-mmlab/mmsegmentation@main/README.md))
- [Model Evaluation and Benchmarking](https://awesome-repositories.com/f/awesome-lists/ai/model-evaluation-and-benchmarking.md) — Provides a standardized benchmark suite for comparing semantic segmentation algorithms across multiple datasets and metrics.
- [Toolkits](https://awesome-repositories.com/f/awesome-lists/ai/semantic-segmentation/toolkits.md) — An open-source framework for training, evaluating, and deploying semantic segmentation models with modular components.
- [Training Progress Monitors](https://awesome-repositories.com/f/awesome-lists/ai/model-visualization/training-progress-monitors.md) — Tracks loss, accuracy, and other metrics during training and displays them in real-time dashboards. ([source](https://mmsegmentation.readthedocs.io/en/latest/user_guides/index.html))
- [Segmentation Benchmarks](https://awesome-repositories.com/f/awesome-lists/learning/evaluation-benchmarks/standardized-benchmarks/segmentation-benchmarks.md) — Provides a standardized benchmark suite for comparing semantic segmentation algorithms across multiple datasets and metrics.

### Data & Databases

- [Segmentation Dataset Conversions](https://awesome-repositories.com/f/data-databases/structured-data-schemas/format-conversions/segmentation-dataset-conversions.md) — Transforms raw annotations into standardized label maps through a configurable sequence of data transforms and folder structure conventions.
- [Annotation Format Converters](https://awesome-repositories.com/f/data-databases/data-processing-pipelines/data-processing/dataset-formats/annotation-format-converters.md) — Transforms raw dataset annotations into the expected label format for training and evaluation. ([source](https://github.com/open-mmlab/mmsegmentation/blob/main/docs/en/user_guides/2_dataset_prepare.md))

### Software Engineering & Architecture

- [Segmentation Pipeline Assemblers](https://awesome-repositories.com/f/software-engineering-architecture/modular-design-patterns/modular-modeling-pipelines/segmentation-pipeline-assemblers.md) — Constructs tailored segmentation workflows by plugging together interchangeable components for backbone, head, and data processing.
- [Configuration-Driven Assembly](https://awesome-repositories.com/f/software-engineering-architecture/modular-design-patterns/pipeline-component-modularization/configuration-driven-assembly.md) — Assembles training, evaluation, and inference workflows by parsing hierarchical configuration files that wire together registered components.
- [Model Component Extensions](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/modular-decoupled-design/modular-design-patterns/extensible-component-architectures/model-component-extensions.md) — Replaces or extends individual modules such as backbones, heads, or losses to create a tailored architecture. ([source](https://mmsegmentation.readthedocs.io/en/latest/))
- [Training Lifecycle Hooks](https://awesome-repositories.com/f/software-engineering-architecture/training-lifecycle-hooks.md) — Extends the training loop by attaching user-defined hooks that execute at specific events such as epoch start, batch end, or checkpoint save.

### Web Development

- [ML](https://awesome-repositories.com/f/web-development/component-registries/ml.md) — Registers neural network modules, optimizers, datasets, and metrics via a centralized registry pattern for plug-and-play composition.

### Development Tools & Productivity

- [Training CLIs](https://awesome-repositories.com/f/development-tools-productivity/command-line-interfaces/training-clis.md) — Starts a model training run using a unified runner interface with simplified command-line arguments. ([source](https://mmsegmentation.readthedocs.io/en/latest/migration/interface.html))

### System Administration & Monitoring

- [Model Evaluation Launches](https://awesome-repositories.com/f/system-administration-monitoring/job-monitoring-tools/test-job-metadata/model-evaluation-launches.md) — Runs model evaluation with a streamlined set of command-line arguments for metrics and augmentation. ([source](https://mmsegmentation.readthedocs.io/en/latest/migration/interface.html))
