ISCAS007 / torchseg

use pytorch to do image semantic segmentation
GNU General Public License v3.0
7 stars 1 forks source link

FCN experiment #37

Open yzbx opened 5 years ago

yzbx commented 5 years ago

official implement

backbone network is vgg16 backbone pretrained = true backbone freeze = false batch_size=20 input size=500x500 optimizer = sgd(1e-4) + momentum(0.9) weight decay=5^-4 or 2^-4 double learning rate for bias (not recommend) zero-initialize the class scoring layer (not recommend) train 3 days in single gpu for fcn32(miou=59.4) finetune fcn32 for 1 day, got fcn16(miou=62.4) finetune fcn16 for 1 day, got fcn8(miou=62.7) upsample type = bilinear + deconv(init by bilinear)

official finds

class balancing unnecessary augmentation yielded no noticeable improvement training sensitive to learning rate alone

fcn series

image

upper bound miou and downsample factor

image

yzbx commented 5 years ago

my implement

python test/pspnet_test.py --backbone_name=vgg16_gn --use_momentum=True --batch_size=4 --upsample_layer=3 --midnet_scale=10 --use_lr_mult=False --net_name=fcn --note=fcn8_vgg16

python test/pspnet_test.py --backbone_name=vgg16_gn --use_momentum=True --batch_size=4 --upsample_layer=4 --midnet_scale=10 --use_lr_mult=False --net_name=fcn --note=fcn16_vgg16

python test/pspnet_test.py --backbone_name=vgg16_gn --use_momentum=True --batch_size=4 --upsample_layer=5 --midnet_scale=10 --use_lr_mult=False --net_name=fcn --note=fcn32_vgg16

network mean iou
fcn8_vgg16 0.482
dishen12 commented 5 years ago

vgg19 version (remove maxpool after layer 3)

network miou note
fcn8_vgg19 0.498 fcn8_vgg19
fcn16_vgg19 0.577 fcn8_vgg19
fcn32_vgg19 0.588 fcn8_vgg19

use standard fcn suffix layer

python test/pspnet_test.py --backbone_name=vgg19_gn --use_none_layer=True --batch_size=4 --upsample_layer=5 --upsample_type=fcn --midnet_scale=10 --use_lr_mult=False --net_name=fcn --note=fcn32_vgg16_fcn

vgg19 version (keep maxpool after layer 3)

python test/pspnet_test.py --backbone_name=vgg19_gn --use_none_layer=True --batch_size=4 --upsample_layer=3,4,5 --midnet_scale=10 --use_lr_mult=False --net_name=fcn --note=fcn_vgg19

use standard fcn suffix layer

python test/pspnet_test.py --backbone_name=vgg19_gn --use_none_layer=True --batch_size=4 --upsample_layer=3,4,5 --upsample_type=fcn --midnet_scale=10 --use_lr_mult=False --net_name=fcn --note=fcn_vgg19_fcn

yzbx commented 5 years ago
train/iou val/iou note backbone_name upsample_layer midnet_scale n_epoch
3 0.837138 0.408618 vgg19_bn_psp vgg19_bn 4 10 100
14 0.55358 0.473572 vgg16_fz_psp vgg16 5 10 100
2 0.602388 0.481789 fcn8_vgg16 vgg16_gn 3 10 100
15 0.578943 0.487695 cls_wise_vgg16 vgg16 5 15 100
12 0.684266 0.523931 vgg11_psp vgg11 4 10 100
10 0.664645 0.539331 vgg19_gn vgg19_gn 3 10 100
7 0.666785 0.539916 vgg19_gn_nopre vgg19_gn 3 15 100
1 0.711822 0.560617 fcn16_vgg16 vgg16_gn 4 10 100
11 0.808483 0.578575 lr4_lr20_vgg16 vgg16 5 15 100
9 0.70724 0.580211 vgg16_gn vgg16_gn 4 10 100
16 0.797704 0.585897 lr4_lr20_vgg19 vgg19 5 15 100
4 0.71189 0.588305 vgg16_gn32 vgg16_gn 4 10 100
6 0.72956 0.589235 vgg16_bn vgg16_bn 4 10 100
0 0.722444 0.592189 fcn32_vgg16 vgg16_gn 5 10 100
5 0.668338 0.593148 vgg19_freeze3_5 vgg19_bn 5 10 100
8 0.704294 0.599245 vgg19_gn_nopre vgg19_gn 4 15 100
13 0.701463 0.622954 vgg16_duc vgg16_bn 4 10 100
train/iou val/iou note backbone_name upsample_layer midnet_scale n_epoch
2 0.602388 0.481789 fcn8_vgg16 vgg16_gn 3 10 100
1 0.711822 0.560617 fcn16_vgg16 vgg16_gn 4 10 100
0 0.722444 0.592189 fcn32_vgg16 vgg16_gn 5 10 100