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)
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)
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)
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)
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)
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)