Example #1
0
    def build_backbone(self, input_img_batch):

        if self.base_network_name.startswith('resnet_v1'):

            feature_dict = resnet.ResNetBackbone(self.cfgs).resnet_base(
                input_img_batch,
                scope_name=self.base_network_name,
                is_training=self.is_training)
            return self.fpn_func.fpn_retinanet(feature_dict, self.is_training)

        elif self.base_network_name in [
                'resnet152_v1d', 'resnet101_v1d', 'resnet50_v1d',
                'resnet152_v1b', 'resnet101_v1b', 'resnet50_v1b',
                'resnet34_v1b', 'resnet18_v1b'
        ]:

            feature_dict = resnet_gluoncv.ResNetGluonCVBackbone(
                self.cfgs).resnet_base(input_img_batch,
                                       scope_name=self.base_network_name,
                                       is_training=self.is_training)

            return self.fpn_func.fpn_retinanet(feature_dict, self.is_training)

        elif self.base_network_name.startswith('MobilenetV2'):

            feature_dict = mobilenet_v2.MobileNetV2Backbone(
                self.cfgs).mobilenetv2_base(input_img_batch,
                                            is_training=self.is_training)

            return self.fpn_func.fpn_retinanet(feature_dict, self.is_training)

        elif 'efficientnet-lite' in self.base_network_name:
            feature_dict = efficientnet_lite_builder.EfficientNetLiteBackbone(
                self.cfgs).build_model_fpn_base(
                    input_img_batch,
                    model_name=self.base_network_name,
                    training=True)

            return self.fpn_func.fpn_retinanet(feature_dict, self.is_training)

        elif 'efficientnet' in self.base_network_name:
            feature_dict = efficientnet_builder.EfficientNetBackbone(
                self.cfgs).build_model_fpn_base(
                    input_img_batch,
                    model_name=self.base_network_name,
                    training=True)
            return self.fpn_func.fpn_retinanet(feature_dict, self.is_training)
        elif 'darknet' in self.base_network_name:
            feature_dict = darknet.DarkNetBackbone(self.cfgs).darknet53_body(
                input_img_batch, is_training=self.is_training)

            return self.fpn_func.fpn_retinanet(feature_dict, self.is_training)

        else:
            raise ValueError(
                'Sorry, we only support resnet, mobilenet_v2 and efficient.')
Example #2
0
    def build_backbone(self, input_img_batch):

        if self.base_network_name.startswith('resnet_v1'):

            feature_dict = resnet.ResNetBackbone(self.cfgs).resnet_base(
                input_img_batch,
                scope_name=self.base_network_name,
                is_training=self.is_training)

        elif self.base_network_name in self.pretrain_zoo.mxnet_zoo:

            feature_dict = resnet_gluoncv.ResNetGluonCVBackbone(
                self.cfgs).resnet_base(input_img_batch,
                                       scope_name=self.base_network_name,
                                       is_training=self.is_training)

        elif self.base_network_name in self.pretrain_zoo.pth_zoo:

            feature_dict = resnet_pytorch.ResNetPytorchBackbone(
                self.cfgs).resnet_base(input_img_batch,
                                       scope_name=self.base_network_name,
                                       is_training=self.is_training)

        elif self.base_network_name.startswith('MobilenetV2'):

            feature_dict = mobilenet_v2.MobileNetV2Backbone(
                self.cfgs).mobilenetv2_base(input_img_batch,
                                            is_training=self.is_training)

        elif 'efficientnet-lite' in self.base_network_name:
            feature_dict = efficientnet_lite_builder.EfficientNetLiteBackbone(
                self.cfgs).build_model_fpn_base(
                    input_img_batch,
                    model_name=self.base_network_name,
                    training=True)

        elif 'efficientnet' in self.base_network_name:
            feature_dict = efficientnet_builder.EfficientNetBackbone(
                self.cfgs).build_model_fpn_base(
                    input_img_batch,
                    model_name=self.base_network_name,
                    training=True)
        elif 'darknet' in self.base_network_name:
            feature_dict = darknet.DarkNetBackbone(self.cfgs).darknet53_body(
                input_img_batch, is_training=self.is_training)

        else:
            raise ValueError('Sorry, we only support {}'.format(
                self.pretrain_zoo.all_pretrain))

        return self.fpn_func.fpn_retinanet(feature_dict, self.is_training)