Getting Started with Semantic Segmentation Using Deep Learning
Segmentation is essential for image analysis tasks. Semantic segmentation describes the process of associating each pixel of an image with a class label, (such as flower, person, road, sky, ocean, or car).
Applications for semantic segmentation include:
Classification of terrain visible in satellite imagery
Medical imaging analysis
Label Training Data for Semantic Segmentation
Large datasets enable faster and more accurate mapping to a particular input (or input aspect). Using data augmentation provides a means of leveraging limited datasets for training. Minor changes, such as translation, cropping, or transforming an image provides new distinct and unique images. See Preprocess Images for Deep Learning
You can use the Image Labeler, Video Labeler, or Ground Truth Labeler (Automated Driving Toolbox) (available in Automated Driving Toolbox™) apps to interactively label pixels and export label data for training. The app can also be used to label rectangular regions of interest (ROIs) and scene labels for image classification.
Train and Test a Semantic Segmentation Network
The steps for training a semantic segmentation network are as follows:
Segment Objects Using Pretrained DeepLabv3+ Network
MathWorks® GitHub repository provides implementations of the latest pretrained deep learning networks to download and use for performing out-of-the-box inference.
For a list of all the latest MathWorks pretrained semantic segmentation models and examples, see MATLAB Deep Learning (GitHub).
- Augment Pixel Labels for Semantic Segmentation
- Import Pixel Labeled Dataset For Semantic Segmentation
- Semantic Segmentation Using Deep Learning
- Label Pixels for Semantic Segmentation
- Define Custom Pixel Classification Layer with Tversky Loss
- Semantic Segmentation Using Dilated Convolutions
- Calculate Segmentation Metrics in Block-Based Workflow
- Explore Semantic Segmentation Network Using Grad-CAM
- Deep Learning in MATLAB (Deep Learning Toolbox)