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 Augment Images for Deep Learning Workflows Using Image Processing Toolbox (Deep Learning Toolbox)
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.
To perform semantic segmentation of images by using DeepLabv3+ deep learning network, download the pretrained DeepLabv3+ model from the Pretrained DeepLabv3+ Semantic Segmentation Network GitHub repository. The network is trained on Pascal VOC dataset and can segment 20 different object classes that include airplane, bus, car, train, person, and horse.
For a list of all the latest MathWorks pretrained models and examples, see MATLAB Deep Learning (GitHub).
- Augment Pixel Labels for Semantic Segmentation (Deep Learning Toolbox)
- 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)