def build_model(model_name, num_classes):
    if model_name == 'SQNet':
        return SQNet(classes=num_classes)
    elif model_name == 'LinkNet':
        return LinkNet(classes=num_classes)
    elif model_name == 'SegNet':
        return SegNet(classes=num_classes)
    elif model_name == 'UNet':
        return UNet(classes=num_classes)
    elif model_name == 'ENet':
        return ENet(classes=num_classes)
    elif model_name == 'ERFNet':
        return ERFNet(classes=num_classes)
    elif model_name == 'CGNet':
        return CGNet(classes=num_classes)
    elif model_name == 'EDANet':
        return EDANet(classes=num_classes)
    elif model_name == 'ESNet':
        return ESNet(classes=num_classes)
    elif model_name == 'ESPNet':
        return ESPNet(classes=num_classes)
    elif model_name == 'LEDNet':
        return LEDNet(classes=num_classes)
    elif model_name == 'ESPNet_v2':
        return EESPNet_Seg(classes=num_classes)
    elif model_name == 'ContextNet':
        return ContextNet(classes=num_classes)
    elif model_name == 'FastSCNN':
        return FastSCNN(classes=num_classes)
    elif model_name == 'DABNet':
        return DABNet(classes=num_classes)
    elif model_name == 'FSSNet':
        return FSSNet(classes=num_classes)
    elif model_name == 'FPENet':
        return FPENet(classes=num_classes)
コード例 #2
0
def build_model(model_name, num_classes):
    # small model
    if model_name == 'ENet':
        return ENet(classes=num_classes)
    elif model_name == 'ERFNet':
        return ERFNet(classes=num_classes)
    elif model_name == 'ESPNet':
        return ESPNet(classes=num_classes)
    elif model_name == 'ESPNet_v2':
        return EESPNet_Seg(classes=num_classes)
    elif model_name == 'DABNet':
        return DABNet(classes=num_classes)
    elif model_name == 'BiSeNetV2':
        return BiSeNetV2(n_classes=num_classes)

    # large model
    elif model_name == 'UNet':
        return UNet(classes=num_classes)
    elif model_name == 'PSPNet50':
        return PSPNet(layers=50,
                      bins=(1, 2, 3, 6),
                      dropout=0.1,
                      classes=num_classes,
                      zoom_factor=8,
                      use_ppm=True,
                      pretrained=True)
    # elif model_name == 'PSANet50':
    #     return PSANet(layers=50, dropout=0.1, classes=num_classes, zoom_factor=8, use_psa=True, psa_type=2, compact=compact,
    #                shrink_factor=shrink_factor, mask_h=mask_h, mask_w=mask_w, psa_softmax=True, pretrained=True)
    elif model_name == 'Deeplabv3plus':
        return Deeplabv3plus(cfg, num_classes=num_classes)
コード例 #3
0
def build_model(model_name, num_classes):
    # for deeplabv3
    model_map = {
        'deeplabv3_resnet50': network.deeplabv3_resnet50,
        'deeplabv3plus_resnet50': network.deeplabv3plus_resnet50,
        'deeplabv3_resnet101': network.deeplabv3_resnet101,
        'deeplabv3plus_resnet101': network.deeplabv3plus_resnet101,
        'deeplabv3_mobilenet': network.deeplabv3_mobilenet,
        'deeplabv3plus_mobilenet': network.deeplabv3plus_mobilenet
    }

    if model_name == 'SQNet':
        return SQNet(classes=num_classes)
    elif model_name == 'LinkNet':
        return LinkNet(classes=num_classes)
    elif model_name == 'SegNet':
        return SegNet(classes=num_classes)
    elif model_name == 'UNet':
        return UNet(classes=num_classes)
    elif model_name == 'ENet':
        return ENet(classes=num_classes)
    elif model_name == 'ERFNet':
        return ERFNet(classes=num_classes)
    elif model_name == 'CGNet':
        return CGNet(classes=num_classes)
    elif model_name == 'EDANet':
        return EDANet(classes=num_classes)
    elif model_name == 'ESNet':
        return ESNet(classes=num_classes)
    elif model_name == 'ESPNet':
        return ESPNet(classes=num_classes)
    elif model_name == 'LEDNet':
        return LEDNet(classes=num_classes)
    elif model_name == 'ESPNet_v2':
        return EESPNet_Seg(classes=num_classes)
    elif model_name == 'ContextNet':
        return ContextNet(classes=num_classes)
    elif model_name == 'FastSCNN':
        return FastSCNN(classes=num_classes)
    elif model_name == 'DABNet':
        return DABNet(classes=num_classes)
    elif model_name == 'FSSNet':
        return FSSNet(classes=num_classes)
    elif model_name == 'FPENet':
        return FPENet(classes=num_classes)
    elif model_name == 'FCN':
        return FCN32VGG(classes=num_classes)
    elif model_name in model_map.keys():
        return model_map[model_name](num_classes, output_stride=8)
コード例 #4
0
def build_model(inputs , num_classes, segmentation_model, is_training ):
	if segmentation_model=="FCN8":
		print ("segmentation_model:FCN8")
		return FCN8(inputs , num_classes)

	elif segmentation_model=="U_Net":
		print ("segmentation_model:U_Net")
		return U_Net(inputs , num_classes)

	elif segmentation_model=="Seg_Net":
		print ("segmentation_model:Seg_Net")
		return Seg_Net(inputs , num_classes)

	elif segmentation_model=="Deeplab_v1":
		print ("segmentation_model:Deeplab_v1")
		return Deeplab_v1(inputs , num_classes)

	elif segmentation_model=="Deeplab_v2":
		print ("segmentation_model:Deeplab_v2")
		return Deeplab_v2(inputs , num_classes, is_training)

	elif segmentation_model=="Deeplab_v3":
		print ("segmentation_model:Deeplab_v3")
		return Deeplab_v3(inputs , num_classes, is_training)

	elif segmentation_model=="PSPNet":
		print ("segmentation_model:PSPNet")
		return PSPNet(inputs , num_classes, is_training)

	elif segmentation_model=="GCN":
		print ("segmentation_model:GCN")
		return GCN(inputs, num_classes, is_training)

	elif segmentation_model=="ENet":
		print ("segmentation_model:ENet")
		return ENet(inputs, num_classes, is_training)

	elif segmentation_model=="ICNet":
		print ("segmentation_model:ICNet")
		return ICNet(inputs , num_classes, is_training)
コード例 #5
0
weight_path = 'Log/SegNet/weight.h5'
segnet_model.load_weights(weight_path)

pspnet_model = PSPNet((480, 480, 3), 12)
weight_path = 'Log/PSPNet/weight.h5'
pspnet_model.load_weights(weight_path)

deeplab_model = Deeplab((512, 512, 3), 12)
weight_path = 'Log/Deeplab/weight.h5'
deeplab_model.load_weights(weight_path)

deconvnet_model = DeconvNet((512, 512, 3), 12)
weight_path = 'Log/DeconvNet/weight.h5'
deconvnet_model.load_weights(weight_path)

enet_model = ENet((512, 512, 3), 12)
weight_path = 'Log/ENet/weight.h5'
enet_model.load_weights(weight_path)

# In[2]

train_path = 'G:\备份\备份\dataset\CamVid'
val_path = 'G:\备份\备份\dataset\CamVid'
train_img_folder = 'train'
train_label_folder = 'trainannot'
val_image_folder = 'val'
val_label_folder = 'valannot'
image_size_ = (480, 480)
label_size_ = (240, 240)
image_size = (512, 512)
label_size = (512, 512)
コード例 #6
0
def build_model(model_name, num_classes):
    if model_name == 'DABNet':
        return DABNet(classes=num_classes)

    elif model_name == 'FCN_8S_res18':
        return FCN_res(backbone='resnet18', classes=num_classes, pretrained=True, scale=8)
    elif model_name == 'FCN_8S_res34':
        return FCN_res(backbone='resnet34', classes=num_classes, pretrained=True, scale=8)
    elif model_name == 'FCN_8S_res50':
        return FCN_res(backbone='resnet50', classes=num_classes, pretrained=True, scale=8)
    elif model_name == 'FCN_8S_res101':
        return FCN_res(backbone='resnet101', classes=num_classes, pretrained=True, scale=8)
    elif model_name == 'FCN_32S_res18':
        return FCN_res(backbone='resnet18', classes=num_classes, pretrained=True, scale=32)
    elif model_name == 'FCN_32S_res50':
        return FCN_res(backbone='resnet50', classes=num_classes, pretrained=True, scale=32)
    elif model_name == 'FCN_32S_res101':
        return FCN_res(backbone='resnet101', classes=num_classes, pretrained=True, scale=32)

    elif model_name == 'UNet_res18':
        return UNet_res(backbone='resnet18', pretrained=True, classes=num_classes)
    elif model_name == 'UNet_res34':
        return UNet_res(backbone='resnet34', pretrained=True, classes=num_classes)
    elif model_name == 'UNet_res50':
        return UNet_res(backbone='resnet50', pretrained=True, classes=num_classes)
    elif model_name == 'UNet_res101':
        return UNet_res(backbone='resnet101', pretrained=True, classes=num_classes)

    elif model_name == 'UNet_res18_ori':
        return UNet_res_ori(backbone='resnet18', pretrained=True, classes=num_classes)
    elif model_name == 'UNet_res34_ori':
        return UNet_res_ori(backbone='resnet34', pretrained=True, classes=num_classes)
    elif model_name == 'UNet_res50_ori':
        return UNet_res_ori(backbone='resnet50', pretrained=True, classes=num_classes)
    elif model_name == 'UNet_res101_ori':
        return UNet_res_ori(backbone='resnet101', pretrained=True, classes=num_classes)

    elif model_name == 'PSPNet_res18':
        return PSPNet(layers=18, bins=(1, 2, 3, 6), dropout=0.1, classes=num_classes, zoom_factor=8, use_ppm=True,
                            pretrained=True)
    elif model_name == 'PSPNet_res34':
        return PSPNet(layers=34, bins=(1, 2, 3, 6), dropout=0.1, classes=num_classes, zoom_factor=8, use_ppm=True,
                      pretrained=True)
    elif model_name == 'PSPNet_res50':
        return PSPNet(layers=50, bins=(1, 2, 3, 6), dropout=0.1, classes=num_classes, zoom_factor=8, use_ppm=True,
                      pretrained=True)
    elif model_name == 'PSPNet_res101':
        return PSPNet(layers=101, bins=(1, 2, 3, 6), dropout=0.1, classes=num_classes, zoom_factor=8, use_ppm=True,
                      pretrained=True)

    ## backbone == vgg
    elif model_name == 'UNet':
        return UNet(classes=num_classes)
    elif model_name == 'UNet_overlap':
        return UNet_overlap(classes=num_classes)

    elif model_name == 'BiSeNet_res18':
        return  BiSeNet(backbone='resnet18', n_classes=num_classes, pretrained=False)
    elif model_name == 'BiSeNet_res101':
        return  BiSeNet(backbone='resnet101', n_classes=num_classes, pretrained=False)
    elif model_name == 'lightSeg':
        return  lightSeg(backbone='resnet101', n_classes=num_classes, pretrained=False)

    elif model_name == 'ENet':
        return ENet(classes=num_classes)

    ## GALDNet
    elif model_name == 'GALD_res50':
        return GALD_res50(num_classes=num_classes)