fcn - Fully Convolutional Networks
Chainer implementation of Fully Convolutional Networks.
Installation
pip install fcn
Inference
Inference is done as below:
# forwaring of the networksimg_file=https://farm2.staticflickr.com/1522/26471792680_a485afb024_z_d.jpg
fcn_infer.py --img-files $img_file --gpu -1 -o /tmp # cpu modefcn_infer.py --img-files $img_file --gpu 0 -o /tmp # gpu mode
<img ><="" p="" src="https://raw.githubusercontent.com/wkentaro/fcn/master/.readme/fcn8s_26471792680.jpg" width="80%" style="box-sizing: border-box; vertical-align: middle; border-style: none; margin-left: 42px; max-width: 80%;">
Original Image: https://www.flickr.com/photos/faceme/26471792680/
Training
cd examples/voc
./download_datasets.py
./download_models.py
./train_fcn32s.py --gpu 0# ./train_fcn16s.py --gpu 0# ./train_fcn8s.py --gpu 0# ./train_fcn8s_atonce.py --gpu 0
The accuracy of original implementation is computed with (evaluate.py
) after converting the caffe model to chainer one using convert_caffe_to_chainermodel.py
. You can download vgg16 model from here: vgg16_from_caffe.npz
.
FCN32s
| Implementation | Accuracy | Accuracy Class | Mean IU | FWAVACC | Model File | |:--------------:|:--------:|:--------------:|:-------:|:-------:|:----------:| | Original | 90.4810 | 76.4824 | 63.6261 | 83.4580 | fcn32s_from_caffe.npz
| | Ours (using vgg16_from_caffe.npz
) | 90.5668 | 76.8740 | 63.8180 | 83.5067 | fcn32s_voc_iter00092000.npz
|
FCN16s
| Implementation | Accuracy | Accuracy Class | Mean IU | FWAVACC | Model File | |:--------------:|:--------:|:--------------:|:-------:|:-------:|:----------:| | Original | 90.9971 | 78.0710 | 65.0050 | 84.2614 | fcn16s_from_caffe.npz
| | Ours (using fcn32s_from_caffe.npz
) | 90.9671 | 78.0617 | 65.0911 | 84.2604 | fcn16s_voc_using_fcn32s_from_caffe_iter00032000.npz
| | Ours (using fcn32s_voc_iter00092000.npz
) | 91.1009 | 77.2522 | 65.3628 | 84.3675 | fcn16s_voc_iter00100000.npz
|
FCN8s
| Implementation | Accuracy | Accuracy Class | Mean IU | FWAVACC | Model File | |:--------------:|:--------:|:--------------:|:-------:|:-------:|:----------:| | Original | 91.2212 | 77.6146 | 65.5126 | 84.5445 | fcn8s_from_caffe.npz
| | Ours (using fcn16s_from_caffe.npz
) | 91.2513 | 77.1490 | 65.4789 | 84.5460 | fcn8s_voc_using_fcn16s_from_caffe_iter00016000.npz
| | Ours (using fcn16s_voc_iter00100000.npz
) | 91.2608 | 78.1484 | 65.8444 | 84.6447 | fcn8s_voc_iter00072000.npz
|
FCN8sAtOnce
| Implementation | Accuracy | Accuracy Class | Mean IU | FWAVACC | Model File | |:--------------:|:--------:|:--------------:|:-------:|:-------:|:----------:| | Original | 91.1288 | 78.4979 | 65.3998 | 84.4326 | fcn8s-atonce_from_caffe.npz
| | Ours (using vgg16_from_caffe.npz
) | 91.0883 | 77.3528 | 65.3433 | 84.4276 | fcn8s-atonce_voc_iter00056000.npz
|
Left to right, FCN32s, FCN16s and FCN8s, which are fully trained using this repo. See above tables to see the accuracy.
License
See LICENSE.