Docker Image
- tensorflow/tensorflow:tensorflow:2.4.0-gpu-jupyter
Library
- Pytorch : Stable (1.7.1) - Linux - Python - CUDA (11.0)
- Using Single GPU (not tested on cpu only)
- model.py : FCN_8s, FCN_16s, FCN_32s
- train.py : train model
- utils.py : calculate mIoU, pixel acc
- Used similar train settings of 2016 FCN paper but changed some of the settings cause of resource issues
- input
- train : (3, 224, 224)
- test : (3, 256, 256)
- batch size : 1
- learning rate : 0.0001
- momentum : 0.99
- weight decay : 0.0005
- input
- Not fixed final deconvolution layer to bilinear interpolation but learned
- mIoU score may be different with paper cause of dataset (if you want to reproduce, click here for reference)
- Make network with end-to-end, pixels-to-pixels for semantic segmentation
- Convolutionalization : classification network can get arbitrary image input
- Deconvolution : learnable upsampling
- Skip : fuse local information and global information
- Mean pixel intersection over union with the mean taken over all classes, including background
- Initialization
- final deconvolution layers : fixed to bilinear interpolation
- intermediate upsampling layer : bilinear interpolation
- class scoring convolution layer : zero-initialized
- FCN-16s : FCN-32s
- Objective : per-pixel multinomial logistic loss (no class balancing)
- Train Details
- minibatch SGD with momentum
- batch size : 20
- learning rate : 0.0001
- momentum : 0.9
- weight decay : 0.0002 or 0.0005
- minibatch SGD with momentum