Segmentation

Below you will find all the latest image segmentation models. To get a list of specific model names that are available programmatically, call the pywick.models.model_utils.get_supported_models(...) method. To load one of these models with your own number of classes you have two options: 1. You can always load the model directly from the API. Most models allow you to customize number of classes as well as pretrained options. 2. You can use the pywick.models.model_utils.get_model(...) method and pass the name of the model that you want as a string. Note: Some models allow you to customize additional parameters. You can take a look at the pywick.models.model_utils.get_model(...) method or at the definition of the model to see what’s possible. pywick.models.model_utils.get_model(...) takes in a **kwargs argument that you can populate with whatever parameters you’d like to pass to the model you are creating.

BiSeNet

Implementation of BiSeNet: Bilateral Segmentation Network for Real-time Semantic Segmentation

class pywick.models.segmentation.bisenet.BiSeNet(num_classes, pretrained=True, backbone='resnet18', aux=False, **kwargs)[source]
pywick.models.segmentation.bisenet.BiSeNet_Resnet18(num_classes=1, **kwargs)[source]

DANet

Implementation of Dual Attention Network for Scene Segmentation

class pywick.models.segmentation.danet.DANet(num_classes, pretrained=True, backbone='resnet101', aux=False, **kwargs)[source]

Pyramid Scene Parsing Network

nclass : int
Number of categories for the training dataset.
backbone : string
Pre-trained dilated backbone network type (default:’resnet50’; ‘resnet50’, ‘resnet101’ or ‘resnet152’).
norm_layer : object
Normalization layer used in backbone network (default: mxnet.gluon.nn.BatchNorm; for Synchronized Cross-GPU BachNormalization).
aux : bool
Auxiliary loss.
Reference:
Jun Fu, Jing Liu, Haijie Tian, Yong Li, Yongjun Bao, Zhiwei Fang,and Hanqing Lu. “Dual Attention Network for Scene Segmentation.” CVPR, 2019
pywick.models.segmentation.danet.DANet_Resnet50(num_classes=1, **kwargs)[source]
pywick.models.segmentation.danet.DANet_Resnet101(num_classes=1, **kwargs)[source]
pywick.models.segmentation.danet.DANet_Resnet152(num_classes=1, **kwargs)[source]

EmaNet

DenseASPP

Implementation of DenseASPP for Semantic Segmentation in Street Scenes

class pywick.models.segmentation.denseaspp.DenseASPP(num_classes, pretrained=True, backbone='densenet161', aux=False, dilate_scale=8, **kwargs)[source]

Deeplab V2 Resnet

DeepLab v2 - DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs <https://arxiv.org/abs/1606.00915>`_

class pywick.models.segmentation.deeplab_v2_res.DeepLabv2_ASPP(num_classes, small=True, pretrained=False, **kwargs)[source]

DeeplabV2 Resnet implementation with ASPP.

class pywick.models.segmentation.deeplab_v2_res.DeepLabv2_FOV(num_classes, pretrained=True, **kwargs)[source]

DeeplabV2 Resnet implementation with FOV.

Deeplab V3

DeepLab v3 - Rethinking Atrous Convolution for Semantic Image Segmentation

class pywick.models.segmentation.deeplab_v3.DeepLabv3(num_classes, small=True, pretrained=True, **kwargs)[source]

Deeplab V3+

DeepLab v3+ Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation

class pywick.models.segmentation.deeplab_v3_plus.DeepLabv3_plus(num_classes, small=True, pretrained=True, **kwargs)[source]

DRNNet

Implementation of Dilated Residual Networks

class pywick.models.segmentation.drn.DRN(block, layers, num_classes=1000, channels=(16, 32, 64, 128, 256, 512, 512, 512), out_map=False, out_middle=False, pool_size=28, arch='D')[source]
pywick.models.segmentation.drn.drn_c_26(pretrained=False, **kwargs)[source]
pywick.models.segmentation.drn.drn_c_42(pretrained=False, **kwargs)[source]
pywick.models.segmentation.drn.drn_c_58(pretrained=False, **kwargs)[source]
pywick.models.segmentation.drn.drn_d_105(pretrained=False, **kwargs)[source]
pywick.models.segmentation.drn.drn_d_107(pretrained=False, **kwargs)[source]
pywick.models.segmentation.drn.drn_d_22(pretrained=False, **kwargs)[source]
pywick.models.segmentation.drn.drn_d_24(pretrained=False, **kwargs)[source]
pywick.models.segmentation.drn.drn_d_38(pretrained=False, **kwargs)[source]
pywick.models.segmentation.drn.drn_d_40(pretrained=False, **kwargs)[source]
pywick.models.segmentation.drn.drn_d_54(pretrained=False, **kwargs)[source]
pywick.models.segmentation.drn.drn_d_56(pretrained=False, **kwargs)[source]

DUC, HDC

Implementation of: Understanding Convolution for Semantic Segmentation

class pywick.models.segmentation.duc_hdc.ResNetDUC(num_classes, pretrained=True, **kwargs)[source]
class pywick.models.segmentation.duc_hdc.ResNetDUCHDC(num_classes, pretrained=True, **kwargs)[source]

DUNet

Implementation of Decoders Matter for Semantic Segmentation: Data-Dependent Decoding Enables Flexible Feature Aggregation

class pywick.models.segmentation.dunet.DUNet(num_classes, pretrained=True, backbone='resnet101', aux=False, **kwargs)[source]

Decoders Matter for Semantic Segmentation

Reference:
Zhi Tian, Tong He, Chunhua Shen, and Youliang Yan. “Decoders Matter for Semantic Segmentation: Data-Dependent Decoding Enables Flexible Feature Aggregation.” CVPR, 2019
pywick.models.segmentation.dunet.DUNet_Resnet50(num_classes=1, **kwargs)[source]
pywick.models.segmentation.dunet.DUNet_Resnet101(num_classes=1, **kwargs)[source]
pywick.models.segmentation.dunet.DUNet_Resnet152(num_classes=1, **kwargs)[source]

ENet

Implementation of ENet: A Deep Neural Network Architecture for Real-Time Semantic Segmentation

class pywick.models.segmentation.enet.ENet(num_classes, encoder_relu=False, decoder_relu=True, **kwargs)[source]

Generate the ENet model.

Parameters:
  • num_classes – (int): the number of classes to segment.
  • encoder_relu – (bool, optional): When True ReLU is used as the activation function in the encoder blocks/layers; otherwise, PReLU is used. Default: False.
  • decoder_relu – (bool, optional): When True ReLU is used as the activation function in the decoder blocks/layers; otherwise, PReLU is used. Default: True.

FCN8 VGG

Implementation of Fully Convolutional Networks for Semantic Segmentation

class pywick.models.segmentation.fcn8s.FCN8s(num_classes, pretrained=True, caffe=False, **kwargs)[source]

FCN16 VGG

Implementation of Fully Convolutional Networks for Semantic Segmentation

class pywick.models.segmentation.fcn16s.FCN16VGG(num_classes, pretrained=True, **kwargs)[source]

FCN32 VGG

Implementation of Fully Convolutional Networks for Semantic Segmentation

class pywick.models.segmentation.fcn32s.FCN32VGG(num_classes, pretrained=True, **kwargs)[source]

FRRN

Implementation of Full Resolution Residual Networks for Semantic Segmentation in Street Scenes

class pywick.models.segmentation.frrn1.frrn(num_classes=21, model_type=None, **kwargs)[source]

Full Resolution Residual Networks for Semantic Segmentation URL: https://arxiv.org/abs/1611.08323

References: 1) Original Author’s code: https://github.com/TobyPDE/FRRN 2) TF implementation by @kiwonjoon: https://github.com/hiwonjoon/tf-frrn

FusionNet

Implementation of FusionNet: A deep fully residual convolutional neural network for image segmentation in connectomics

class pywick.models.segmentation.fusionnet.FusionNet(num_classes, **kwargs)[source]

GALDNet

GCN

class pywick.models.segmentation.gcn.GCN(num_classes, pretrained=True, k=7)

GCN Densenet

Implementation of Large Kernel Matters with Densenet backend

class pywick.models.segmentation.gcnnets.gcn_densenet.GCN_Densenet(num_classes, pretrained=True, k=7, **kwargs)[source]

GCN NASNet

Implementation of Large Kernel Matters with NASNet backend

class pywick.models.segmentation.gcnnets.gcn_nasnet.GCN_NASNet(num_classes, pretrained=True, k=7)[source]

GCN PSP

Implementation of Large Kernel Matters with PSP backend

class pywick.models.segmentation.gcnnets.gcn_psp.GCN_PSP(num_classes, pretrained=True, k=7, input_size=512)[source]

GCN Resnet

Implementation of Large Kernel Matters with Resnet backend.

class pywick.models.segmentation.resnet_gcn.ResnetGCN(num_classes, pretrained=True, **kwargs)[source]

GCN ResNext

Implementation of Large Kernel Matters with Resnext backend

class pywick.models.segmentation.gcnnets.gcn_resnext.GCN_Resnext(num_classes, pretrained=True, k=7, input_size=512, **kwargs)[source]
static initialize_weights(*models)[source]

Linknet

Implementation of LinkNet: Exploiting Encoder Representations for Efficient Semantic Segmentation

class pywick.models.segmentation.mnas_linknets.linknet.LinkCeption(num_classes, pretrained=True, num_channels=3, is_deconv=False, decoder_kernel_size=4, **_)[source]
class pywick.models.segmentation.mnas_linknets.linknet.LinkDenseNet121(num_classes, pretrained=True, num_channels=3, is_deconv=False, decoder_kernel_size=4, **kwargs)[source]
class pywick.models.segmentation.mnas_linknets.linknet.LinkDenseNet161(num_classes, pretrained=True, num_channels=3, is_deconv=False, decoder_kernel_size=4, **kwargs)[source]
class pywick.models.segmentation.mnas_linknets.linknet.LinkInceptionResNet(num_classes, pretrained=True, num_channels=3, is_deconv=False, decoder_kernel_size=3, **kwargs)[source]
class pywick.models.segmentation.mnas_linknets.linknet.LinkNet18(num_classes, pretrained=True, num_channels=3, is_deconv=False, decoder_kernel_size=4, **kwargs)[source]
class pywick.models.segmentation.mnas_linknets.linknet.LinkNet34(num_classes, pretrained=True, num_channels=3, is_deconv=False, decoder_kernel_size=4, **kwargs)[source]
class pywick.models.segmentation.mnas_linknets.linknet.LinkNet50(num_classes, pretrained=True, num_channels=3, is_deconv=False, decoder_kernel_size=4, **kwargs)[source]
class pywick.models.segmentation.mnas_linknets.linknet.LinkNet101(num_classes, pretrained=True, num_channels=3, is_deconv=False, decoder_kernel_size=4, **kwargs)[source]
class pywick.models.segmentation.mnas_linknets.linknet.LinkNet152(num_classes, pretrained=True, num_channels=3, is_deconv=False, decoder_kernel_size=3, **kwargs)[source]
class pywick.models.segmentation.mnas_linknets.linknet.LinkNeXt(num_classes, pretrained=True, num_channels=3, is_deconv=False, decoder_kernel_size=4, **kwargs)[source]
class pywick.models.segmentation.mnas_linknets.linknet.CoarseLinkNet50(num_classes, pretrained=True, num_channels=3, is_deconv=False, decoder_kernel_size=4, **kwargs)[source]

OCNet

Implementation of OCNet: Object Context Network for Scene Parsing

class pywick.models.segmentation.ocnet.OCNet(num_classes, pretrained=True, backbone='resnet101', oc_arch='base', aux=False, **kwargs)[source]
nclass : int
Number of categories for the training dataset.
backbone : string
Pre-trained dilated backbone network type (default:’resnet50’; ‘resnet50’, ‘resnet101’ or ‘resnet152’).
norm_layer : object
Normalization layer used in backbone network (default: nn.BatchNorm; for Synchronized Cross-GPU BachNormalization).
aux : bool
Auxiliary loss.
Reference:
Yuhui Yuan, Jingdong Wang. “OCNet: Object Context Network for Scene Parsing.” arXiv preprint arXiv:1809.00916 (2018).
pywick.models.segmentation.ocnet.OCNet_Base_Resnet101(num_classes=1, **kwargs)[source]
pywick.models.segmentation.ocnet.OCNet_Pyramid_Resnet101(num_classes=1, **kwargs)[source]
pywick.models.segmentation.ocnet.OCNet_ASP_Resnet101(num_classes=1, **kwargs)[source]
pywick.models.segmentation.ocnet.OCNet_Base_Resnet152(num_classes=1, **kwargs)[source]
pywick.models.segmentation.ocnet.OCNet_Pyramid_Resnet152(num_classes=1, **kwargs)[source]
pywick.models.segmentation.ocnet.OCNet_ASP_Resnet152(num_classes=1, **kwargs)[source]

RefineNet

Implementation of RefineNet: Multi-Path Refinement Networks for High-Resolution Semantic Segmentation.

class pywick.models.segmentation.refinenet.refinenet.RefineNet4Cascade(num_classes=1, pretrained=True, input_shape=(1, 512), features=256, resnet_factory=<sphinx.ext.autodoc.importer._MockObject object>, freeze_resnet=False, **kwargs)[source]
class pywick.models.segmentation.refinenet.refinenet.RefineNet4CascadePoolingImproved(num_classes=1, pretrained=True, input_shape=(1, 512), features=256, resnet_factory=<sphinx.ext.autodoc.importer._MockObject object>, freeze_resnet=False, **kwargs)[source]

PSP

Implementation of Pyramid Scene Parsing Network

class pywick.models.segmentation.lexpsp.PSPNet(num_classes=18, pretrained=True, backend='densenet121', sizes=(1, 2, 3, 6), psp_size=2048, deep_features_size=1024, **kwargs)[source]

SegNet

Implementation of Segnet: A deep convolutional encoder-decoder architecture for image segmentation

class pywick.models.segmentation.seg_net.SegNet(num_classes, pretrained=True, **kwargs)[source]

Tiramisu

Implementation of The One Hundred Layers Tiramisu: Fully Convolutional DenseNets for Semantic Segmentation

class pywick.models.segmentation.tiramisu.FCDenseNet(in_channels=3, down_blocks=(5, 5, 5, 5, 5), up_blocks=(5, 5, 5, 5, 5), bottleneck_layers=5, growth_rate=16, out_chans_first_conv=48, num_classes=12, **kwargs)[source]
pywick.models.segmentation.tiramisu.Tiramisu57(num_classes, **kwargs)[source]
pywick.models.segmentation.tiramisu.Tiramisu67(num_classes, **kwargs)[source]
pywick.models.segmentation.tiramisu.Tiramisu103(num_classes, **kwargs)[source]

Unet

Implementation of U-net: Convolutional networks for biomedical image segmentation

class pywick.models.segmentation.u_net.UNet(num_classes, **kwargs)[source]

Basic Unet

Unet Sized

Implementation of U-net: Convolutional networks for biomedical image segmentation

class pywick.models.segmentation.carvana_unet.UNet128(in_shape=(3, 128, 128), **kwargs)[source]
class pywick.models.segmentation.carvana_unet.UNet256(in_shape=(3, 256, 256), **kwargs)[source]
class pywick.models.segmentation.carvana_unet.UNet512(in_shape=(3, 512, 512), **kwargs)[source]
class pywick.models.segmentation.carvana_unet.UNet1024(in_shape=(3, 1024, 1024), **kwargs)[source]

Unet Dilated

Implementation of U-net: Convolutional networks for biomedical image segmentation with dilation convolution operation

class pywick.models.segmentation.unet_dilated.UNetDilated(num_classes, **_)[source]

Unet utilizing dilation

Unet Residual

Implementation of U-net: Convolutional networks for biomedical image segmentation

class pywick.models.segmentation.unet_res.UNetRes(num_classes, **kwargs)[source]

Unet_stack

Implementation of stacked U-net: Convolutional networks for biomedical image segmentation

class pywick.models.segmentation.unet_stack.UNet_stack(input_size=512, filters=12, kernel_size=3, max_stacks=6, **_)[source]
static get_n_stacks(input_size, **_)[source]
class pywick.models.segmentation.unet_stack.UNet960(filters=12, kernel_size=3, **_)[source]