Skip to content
This repository has been archived by the owner on Jun 24, 2023. It is now read-only.
/ FCN Public archive

FCN Implementation with Pytorch and tested on PASCAL VOC 2012 Segmentation

Notifications You must be signed in to change notification settings

Jasonlee1995/FCN

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

FCN Implementation with Pytorch

0. Develop Environment

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)

1. Explain about Implementation

  • 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
  • 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)

2. Brief Summary of '2014 Fully Convolutional Networks for Semantic Segmentation'

2.1. Goal

  • Make network with end-to-end, pixels-to-pixels for semantic segmentation

2.2. Intuition

  • Convolutionalization : classification network can get arbitrary image input
  • Deconvolution : learnable upsampling
  • Skip : fuse local information and global information

2.3. Evaluation Metric

  • Mean pixel intersection over union with the mean taken over all classes, including background

2.4. Network Architecture

Architecture

  • Initialization
    • final deconvolution layers : fixed to bilinear interpolation
    • intermediate upsampling layer : bilinear interpolation
    • class scoring convolution layer : zero-initialized
    • FCN-16s : FCN-32s

2.5. Train and Inference on PASCAL VOC 2011

  • 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

3. Reference Paper

  • 2014 Fully Convolutional Networks for Semantic Segmentation [paper]
  • 2016 Fully Convolutional Networks for Semantic Segmentation [paper]
  • Original FCN Implementation with Caffe [github]

About

FCN Implementation with Pytorch and tested on PASCAL VOC 2012 Segmentation

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published