How to train a Image Segmentation Neural Network on DIGITS
Image segmentation neural networks such as FCN-Alexnet are classification neural networks specialized in make class predictions at pixel level of image. As result on inference a colored mask is overlayed to source image where every single color represents the class of the object detected in the corresponding pixel of the input image.
In this post I will use DIGITS for train a FCN-Alexnet segmentation neural network using SYNTHIA-CITYSCAPES dataset.
You can dowload SYNTHIA-CITYSCAPES dataset here : http://synthia-dataset.net/downloads/
Once dataset is dowloaded choose crate a new Dataset / Segmentation on Digits :
Insert correct path to SYNTHIA DATASET for source images folder, label images folder and for two text files representing class labels and color map specification. In this case I preferred let DIGITS choose a percentage of source images to be used for validation during training (10%) but you can split your source image and crate a validation folder that fits your needing.
Next click Create to import SYNTHIA Dataset on DIGITS, once Dataset is loaded on digits create a new Image / Segmentation model.
In my tests I got better training accuracy results for FCN-Alexnet segmentation neural network on SYNTHIA-CITYSCAPES DATASET using SGD (Stochastic Gradient Descent) solver type cost function with a base learning rate of 0.0001.
Training epochs may variate depending on your DIGITS Machine in my case 120 epochs are fine to get good accuracy result on 4 GPU Geforce RTX 2080.
Select Custom Network Definition, copy and paste FCN-Alextnet segmentation neural network definition that you can find here : https://github.com/NVIDIA/DIGITS/blob/master/examples/semantic-segmentation/fcn_alexnet.prototxt
Dowload Fcn-AlexNet pretrained .caffemodel file wights here : http://dl.caffe.berkeleyvision.org/fcn-alexnet-pascal.caffemodel
You can dowload a caffemodel file also running the python script inside DIGITS ./net_sugrgery.ps as described in official NVIDIA DIGITS github here : https://github.com/NVIDIA/DIGITS/tree/master/examples/semantic-segmentation#fcn-alexnet
Select GPU’s you want to use for training batch and click on create to start training FCN-Alexnet with SYNTHIA-CITYSCAPES dataset.
After 120 epochs training finally got an accuracy score of : 92.017
Here it’s FCN-AlexNet segmentation neural network trained with SYNTHIA-CITYSCAPES Dataset inference results using NVIDIA Deepstream framework