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
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.
The steps for training a semantic segmentation network are as follows:
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).