/SFNet

SFNet: Sketch-and-Fill Network for Semantic Segmentation

Primary LanguagePythonMIT LicenseMIT

SFNet: Sketch-and-Fill Network for Semantic Segmentation

Introduction

This repository is a PyTorch implementation of SFNet. This work is based on semseg.

The codebase mainly uses ResNet50/101 and MobileNet-V2 as backbone and can be easily adapted to other basic classification structures.

Sample experimented dataset is Cityscapes, ADE20K and RUGD.

Requirement

Hardware: >= 44G GPU memory

Software: PyTorch>=1.0.0, python3

Usage

For installation, follow installation steps below or recommend you to refer to the instructions described here.

If you use multiple GPUs for training, Apex is required for synchronized training (such as Sync-BN).

For its pretrained model, you can download from my drive.

Getting Started

Installation

  1. Clone this repository.
git clone https://github.com/youngsjjn/SFNet.git
  1. Install Python dependencies.
pip install -r requirements.txt

Implementation

  1. Download datasets (i.e. Cityscapes, ADE20K and RUGD) and change the root of data path in config. Download data list (Cityscapes and ADE20K) and pre-trained backbone models here. Download data list of RUGD here.

  2. Train (Evaluation is included at the end of the training)

sh tool/train.sh cityscapes sfnet101
  1. Test
sh tool/test.sh cityscapes sfnet101
Backbone Dataset mIoU
ResNet-101 Cityscapes (val) 81.7
ResNet-50 ADE20K 43.95
ResNet-101 ADE20K 45.18
ResNet-50 RUGD (val/test) 40.73 / 36.89

Citation

You may want to cite:

@ARTICLE{9453770,
  author={Jin, Youngsaeng and Eum, Sungmin and Han, David and Ko, Hanseok},
  journal={IEEE Access}, 
  title={Sketch-and-Fill Network for Semantic Segmentation}, 
  year={2021},
  volume={9},
  number={},
  pages={85874-85884},
  doi={10.1109/ACCESS.2021.3088854}}