UNET 
A package to generate and train a UNET deep convolutional network for 2D and 3D image segmentation.
Some code was based on work by @Ali Hashmi, which was also dicussed in this post
The full version of the toolbox can be found on my github page.
Information
UNET is developed for Mathematica.
It contains the following toolboxes:
- UnetCore
- UnetSupport
Documentation of all functions and their options is fully integrated in the Mathematica documentation.
The toolbox always works within the latest version of Mathematica and does not support any backward compatibility.
All code and documentation is maintained and uploaded to github using Workbench.
Install toolbox
Install the toolbox in the Mathematica UserBaseDirectory > Applications.
FileNameJoin[{$UserBaseDirectory, "Applications"}]
Using the toolbox
The toolbox can be loaded by using <<UNET`
The notbook UNET.nb shows examples of how to use the toolbox on artificially generated 2D data.
There are also examples how to visualize the layer of your trained network and how to visualize the training itself.
Functionality
The network supports multi channel inputs and multi class segmentation.
- UNET generates a UNET convolutional network.
- 2D UNET
* 3D UNET
- Loss Layers: Training the data is done using three loss layers: a SoftDiceLossLayer, BrierLossLayer and a CrossEntropyLossLayer.
- Convolution Blocks: The toobox contains five different convolution blocks that build up the network: UNET, UResNet, RestNet, UDenseNet, DensNet.
- SplitTrainData splits the data and labels into training, validation and test data.
- TrainUNET trains the network.
Visualization
- Visualize the network and results.
- Visualize the features of the layers.
* Visualize the results.
* Animate the training process.


Example
- Example: 3D segmentation of lower legg muscles using MRI data.
UNET.nb (1.22 MB)
















