The proposed network implements the following things:
- Dense blocks
- U-Net architecture
The dense block provides a low increase of parameters while keeping a good feature extraction.
The U-Net is well-known to have a good performance on various image segmentation datasets.
The network architecture is a straight U-Net with more convolution stages in each step.
In the following table, \(m\) represents the number of feature maps output, DB means dense block, TD means transition down and TU means transition up.
Here is the internal description of all the blocks defined above.
Overall the model is as accurate than the other state-of-the-art models while having much fewer parameters (100x less for some of them).
Even if the model has fewer parameters than the others models, you should keep in mind that it still has far more layers than a regular U-Net so the memory footprint is huge when you want to train it.
If you run it on theano you should use some
optimizer_including=fusion to decrease the memory footprint and use a smaller batch_size.
Theano/Lasagne implementations of the paper can be found here FC-DenseNet.
This is my personal
Keras/notebook contribution implementation.