This chapter introduces you to the framework of MMSegmentation, and the basic conception of semantic segmentation. It also provides links to detailed tutorials about MMSegmentation.
Semantic segmentation is the task of clustering parts of an image together that belong to the same object class. It is a form of pixel-level prediction because each pixel in an image is classified according to a category. Some example benchmarks for this task are Cityscapes, PASCAL VOC and ADE20K. Models are usually evaluated with the Mean Intersection-Over-Union (Mean IoU) and Pixel Accuracy metrics.
MMSegmentation is a toolbox that provides a framework for unified implementation and evaluation of semant ic segmentation methods, and contains high-quality implementations of popular semantic segmentation methods and datasets.
MMSeg consists of 7 main parts including apis, structures, datasets, models, engine, evaluation and visualization.
-
apis provides high-level APIs for model inference.
-
structures provides segmentation data structure
SegDataSample
. -
datasets supports various datasets for semantic segmentation.
- transforms contains a lot of useful data augmentation transforms.
-
models is the most vital part for segmentors and contains different components of a segmentor.
- segmentors defines all of the segmentation model classes.
- data_preprocessors works for preprocessing the input data of the model.
- backbones contains various backbone networks that transform an image to feature maps.
- necks contains various neck components that connect the backbone and heads.
- decode_heads contains various head components that take feature map as input and predict segmentation results.
- losses contains various loss functions.
-
engine is a part for runtime components that extends function of MMEngine.
- optimizers provides optimizers and optimizer wrappers.
- hooks provides various hooks of the runner.
-
evaluation provides different metrics for evaluating model performance.
-
visualization is for visualizing segmentation results.
Here is a detailed step-by-step guide to learn more about MMSegmentation:
-
For installation instructions, please see get_started.
-
For beginners, MMSegmentation is the best place to start the journey of semantic segmentation as there are many SOTA and classic segmentation models, and it is easier to carry out a segmentation task by plugging together building blocks and convenient high-level apis. Refer to the tutorials below for the basic usage of MMSegmentation:
-
If you would like to learn about the fundamental classes and features that make MMSegmentation work, please refer to the tutorials below to dive deeper:
-
MMSegmentation also provide tutorials for customization and advanced research, please refer to the below guides to build your own segmentation project:
-
If you are more familiar with MMSegmentation v0.x, there is documentation about migration from MMSegmentation v0.x to v1.x