In this project, I use an adaptation of U-Net with residual connections. This particular implementation of U-Net is lighter as well.
I utilized the general structure of the network with the same number of downsamples with 3 skip-connections. Both of my implementations will down sample by a factor of 32.
Each block additionally contains a residual connection as well to pass previous information along throughout the network for improvements. The general procedure for a residual connection can be found here:
I primilarily utilized Google Colab for training thus was restricted to utilizing a NVIDIA Tesla K80 GPU.
Run the training with the following:
python -m train -gpu -logdir training_logs/ --save-every 2 \
--model unet --epochs 10 --batch-size 64 -lr 1e-3 --optimizer Adam \
--scheduler Reduce --workers 2 --resize 256
Many ideas were formulated from the following papers:
Fully Convolutional Networks for Semantic Segmentation
Deep Residual Learning for Image Recognition
U-Net: Convolutional Networks for Biomedical
Image Segmentation