Icon

06_​Semantic_​Segmentation

Semantic Segmentation with Deep Learning in KNIME

This workflow shows how the new KNIME Keras integration can be used to train and deploy a specialized deep neural network for semantic segmentation.
This means that our network decides for each pixel in the input image, what class of object it belongs to.


In order to run the example, please make sure you have the following KNIME extensions installed:

* KNIME Deep Learning - Keras Integration (Labs)
* KNIME Image Processing (Community Contributions Trusted)
* KNIME Image Processing - Deep Learning Extension (Community Contributions Trusted)
* KNIME Streaming Execution (Beta) (Labs)
* KNIME Image Processing - Python Extension (Community Contributions Trusted)

You also need a local Python installation that includes Keras. Please refer to https://www.knime.com/deeplearning#keras for installation recommendations and further information.

Acknowledgements:

The network architecture we use is an adaptation of the U-Net proposed in [1].

The dataset we used is taken from [2]

[1] Ronneberger et al. in "U-Net: Convolutional Networks for Biomedical Image Segmentation" (https://arxiv.org/abs/1505.04597)

[2] Gould et al. "Decomposing a Scene into Geometric and Semantically Consistent Regions." (http://dags.stanford.edu/projects/scenedataset.html)

Semantic Segmentation with Deep Learning in KNIME This workflow shows how the new KNIME Keras integration can beused to train and deploy a specialized deep neural network forsemantic segmentation.This means that our network decides for each pixel in the input image,what class of object it belongs to. Evaluation Training Deployment PreprocessingWe use only the first 20 of the 183 classes for performance reasons (pixels with a higher class are considered asbackground). imageslabelingsUNetmodifiedstreaming forperformance andmemory reasonstrain/validation70/30predictedsegmentationtrain for 50 epochs(batch size 4) withAdamadd argmax ofprobabilities as additional modeloutputground-truthsegmentationstore networkfor deploymentload storedmodelread labelingsfrom .txt filesonly use first 20classes List Files(deprecated) Image Reader(Table) List Files(deprecated) Joiner Extract ID Extract ID DL PythonNetwork Creator Image Preprocessing Partitioning InteractiveSegmentation View Evaluate Network Image Viewer Keras NetworkLearner DL PythonNetwork Editor InteractiveSegmentation View Model Writer Model Reader Python Script Semantic Segmentation with Deep Learning in KNIME This workflow shows how the new KNIME Keras integration can beused to train and deploy a specialized deep neural network forsemantic segmentation.This means that our network decides for each pixel in the input image,what class of object it belongs to. Evaluation Training Deployment PreprocessingWe use only the first 20 of the 183 classes for performance reasons (pixels with a higher class are considered asbackground). imageslabelingsUNetmodifiedstreaming forperformance andmemory reasonstrain/validation70/30predictedsegmentationtrain for 50 epochs(batch size 4) withAdamadd argmax ofprobabilities as additional modeloutputground-truthsegmentationstore networkfor deploymentload storedmodelread labelingsfrom .txt filesonly use first 20classes List Files(deprecated) Image Reader(Table) List Files(deprecated) Joiner Extract ID Extract ID DL PythonNetwork Creator Image Preprocessing Partitioning InteractiveSegmentation View Evaluate Network Image Viewer Keras NetworkLearner DL PythonNetwork Editor InteractiveSegmentation View Model Writer Model Reader Python Script

Nodes

Extensions

Links