by Panqu Wang, Pengfei Chen, Ye Yuan, Ding Liu, Zehua Huang, Xiaodi Hou, and Garrison Cottrell.
This repository is for Understanding Convolution for Semantic Segmentation (WACV 2018), which achieved state-of-the-art result on the CityScapes, PASCAL VOC 2012, and Kitti Road benchmark.
We tested our code on:
Ubuntu 16.04, Python 2.7 with
MXNet (0.11.0), numpy(1.13.1), cv2(3.2.0), PIL(4.2.1), and cython(0.25.2)
Clone the repository:
git clone git@github.com:TuSimple/TuSimple-DUC.git
python setup.py develop --user
Download the pretrained model from Google Drive.
Build MXNet (only tested on the TuSimple version):
git clone --recursive git@github.com:TuSimple/mxnet.git
vim make/config.mk (we should have USE_CUDA = 1, modify USE_CUDA_PATH, and have USE_CUDNN = 1 to enable GPU usage.)
make -j
cd python
python setup.py develop --user
For more MXNet tutorials, please refer to the official documentation.
Training:
cd train
python train_model.py ../configs/train/train_cityscapes.cfg
The paths/dirs in the .cfg
file need to be specified by the user.
Testing
cd test
python predict_full_image.py ../configs/test/test_full_image.cfg
The paths/dirs in the .cfg
file need to be specified by the user.
Results:
Modify the result_dir
path in the config file to save the label map and visualizations. The expected scores are:
(single scale testing denotes as 'ss' and multiple scale testing denotes as 'ms')
If you find the repository is useful for your research, please consider citing:
@article{wang2017understanding,
title={Understanding convolution for semantic segmentation},
author={Wang, Panqu and Chen, Pengfei and Yuan, Ye and Liu, Ding and Huang, Zehua and Hou, Xiaodi and Cottrell, Garrison},
journal={arXiv preprint arXiv:1702.08502},
year={2017}
}
Please contact panqu.wang@tusimple.ai or pengfei.chen@tusimple.ai .