wuhuikai/FastFCN
FastFCN: Rethinking Dilated Convolution in the Backbone for Semantic Segmentation.
repo name | wuhuikai/FastFCN |
repo link | https://github.com/wuhuikai/FastFCN |
homepage | http://wuhuikai.me/FastFCNProject |
language | Python |
size (curr.) | 590 kB |
stars (curr.) | 575 |
created | 2019-03-27 |
license | Other |
FastFCN: Rethinking Dilated Convolution in the Backbone for Semantic Segmentation
[Project] [Paper] [arXiv] [Home]
Official implementation of FastFCN: Rethinking Dilated Convolution in the Backbone for Semantic Segmentation.
A Faster, Stronger and Lighter framework for semantic segmentation, achieving the state-of-the-art performance and more than 3x acceleration.
@inproceedings{wu2019fastfcn,
title = {FastFCN: Rethinking Dilated Convolution in the Backbone for Semantic Segmentation},
author = {Wu, Huikai and Zhang, Junge and Huang, Kaiqi and Liang, Kongming and Yu Yizhou},
booktitle = {arXiv preprint arXiv:1903.11816},
year = {2019}
}
Contact: Hui-Kai Wu (huikaiwu@icloud.com)
Update
2020-02-20: FastFCN
can now run on every OS
with PyTorch>=1.1.0
and Python==3.*.*
- Replace all
C/C++
extensions withpure python
extensions.
Overview
Framework
Joint Pyramid Upsampling (JPU)
Install
- PyTorch >= 1.1.0 (Note: The code is test in the environment with
python=3.6, cuda=9.0
) - Download FastFCN
git clone https://github.com/wuhuikai/FastFCN.git cd FastFCN
- Install Requirements
nose tqdm scipy cython requests
Train and Test
PContext
python -m scripts.prepare_pcontext
Method | Backbone | mIoU | FPS | Model | Scripts |
---|---|---|---|---|---|
EncNet | ResNet-50 | 49.91 | 18.77 | ||
EncNet+JPU (ours) | ResNet-50 | 51.05 | 37.56 | GoogleDrive | bash |
PSP | ResNet-50 | 50.58 | 18.08 | ||
PSP+JPU (ours) | ResNet-50 | 50.89 | 28.48 | GoogleDrive | bash |
DeepLabV3 | ResNet-50 | 49.19 | 15.99 | ||
DeepLabV3+JPU (ours) | ResNet-50 | 50.07 | 20.67 | GoogleDrive | bash |
EncNet | ResNet-101 | 52.60 (MS) | 10.51 | ||
EncNet+JPU (ours) | ResNet-101 | 54.03 (MS) | 32.02 | GoogleDrive | bash |
ADE20K
python -m scripts.prepare_ade20k
Training Set
Method | Backbone | mIoU (MS) | Model | Scripts |
---|---|---|---|---|
EncNet | ResNet-50 | 41.11 | ||
EncNet+JPU (ours) | ResNet-50 | 42.75 | GoogleDrive | bash |
EncNet | ResNet-101 | 44.65 | ||
EncNet+JPU (ours) | ResNet-101 | 44.34 | GoogleDrive | bash |
Training Set + Val Set
Method | Backbone | FinalScore (MS) | Model | Scripts |
---|---|---|---|---|
EncNet+JPU (ours) | ResNet-50 | GoogleDrive | bash | |
EncNet | ResNet-101 | 55.67 | ||
EncNet+JPU (ours) | ResNet-101 | 55.84 | GoogleDrive | bash |
Note: EncNet (ResNet-101) is trained with crop_size=576
, while EncNet+JPU (ResNet-101) is trained with crop_size=480
for fitting 4 images into a 12G GPU.
Visual Results
Dataset | Input | GT | EncNet | Ours |
---|---|---|---|---|
PContext | ||||
ADE20K |
More Visual Results
Acknowledgement
Code borrows heavily from PyTorch-Encoding.