/DoubleU-Net

DoubleU-Net for Semantic Image Segmentation in TensorFlow Keras

Primary LanguagePython

DoubleU-Net

DoubleU-Net starts with a VGG19 as encoder sub-network, which is followed by decoder sub-network. In the network, the input image is fed to the modified UNet(UNet1), which generates predicted masks (i.e., output1). We then multiply the input image and the produced masks (i.e., output1), which acts as an input for the second modified U-Net(UNet2) that produces another the generated mask (output2). Finally, we concatenate both the masks (output1 and output2) to get the final predicted mask (output).

Architecture

Datasets:

The following datasets are used in this experiment:

  1. MICCAI 2015 Segmentation challenge(CVC-ClinicDB for training and ETIS-Larib for Testing)
  2. CVC-ClinicDB
  3. Lesion Boundary segmentation challenge/li>
  4. 2018 Data Science Bowl challenge

Hyperparameters:

  1. Batch size = 16
  2. Number of epoch = 300
Dataset Name Loss Optimizer Learning Rate
MICCAI 2015 Challenge Dataset Binary crossentropy Nadam 1e-5
CVC-ClinicDB Binary crossentropy Nadam 1e-5
Lesion Boundary segmentation challenge Dice loss Adam 1e-4
2018 Data Science Bowl challengeDice loss Nadam 1e-4

Results

The model is trained on CVC-ClinicDB and tested on the ETIS-Larib polyps dataset.