Example #1
0
    def _create_feature_extractor(self,
                                  depth_multiplier,
                                  pad_to_multiple,
                                  use_explicit_padding=False):
        """Constructs a new feature extractor.

    Args:
      depth_multiplier: float depth multiplier for feature extractor
      pad_to_multiple: the nearest multiple to zero pad the input height and
        width dimensions to.
      use_explicit_padding: use 'VALID' padding for convolutions, but prepad
        inputs so that the output dimensions are the same as if 'SAME' padding
        were used.
    Returns:
      an ssd_meta_arch.SSDFeatureExtractor object.
    """
        min_depth = 32
        with slim.arg_scope([slim.conv2d],
                            normalizer_fn=slim.batch_norm) as sc:
            conv_hyperparams = sc
        return ssd_mobilenet_v2_feature_extractor.SSDMobileNetV2FeatureExtractor(
            False,
            depth_multiplier,
            min_depth,
            pad_to_multiple,
            conv_hyperparams,
            use_explicit_padding=use_explicit_padding)
    def _create_feature_extractor(self,
                                  depth_multiplier,
                                  pad_to_multiple,
                                  use_explicit_padding=False,
                                  num_layers=6):
        """Constructs a new feature extractor.

    Args:
      depth_multiplier: float depth multiplier for feature extractor
      pad_to_multiple: the nearest multiple to zero pad the input height and
        width dimensions to.
      use_explicit_padding: use 'VALID' padding for convolutions, but prepad
        inputs so that the output dimensions are the same as if 'SAME' padding
        were used.
      num_layers: number of SSD layers.
    Returns:
      an ssd_meta_arch.SSDFeatureExtractor object.
    """
        min_depth = 32
        return ssd_mobilenet_v2_feature_extractor.SSDMobileNetV2FeatureExtractor(
            False,
            depth_multiplier,
            min_depth,
            pad_to_multiple,
            self.conv_hyperparams_fn,
            use_explicit_padding=use_explicit_padding,
            num_layers=num_layers)
    def _create_feature_extractor(self,
                                  depth_multiplier,
                                  pad_to_multiple,
                                  use_explicit_padding=False,
                                  num_layers=6,
                                  use_keras=False):
        """Constructs a new feature extractor.

    Args:
      depth_multiplier: float depth multiplier for feature extractor
      pad_to_multiple: the nearest multiple to zero pad the input height and
        width dimensions to.
      use_explicit_padding: use 'VALID' padding for convolutions, but prepad
        inputs so that the output dimensions are the same as if 'SAME' padding
        were used.
      num_layers: number of SSD layers.
      use_keras: if True builds a keras-based feature extractor, if False builds
        a slim-based one.
    Returns:
      an ssd_meta_arch.SSDFeatureExtractor object.
    """
        min_depth = 32
        if use_keras:
            return (ssd_mobilenet_v2_keras_feature_extractor.
                    SSDMobileNetV2KerasFeatureExtractor(
                        is_training=False,
                        depth_multiplier=depth_multiplier,
                        min_depth=min_depth,
                        pad_to_multiple=pad_to_multiple,
                        conv_hyperparams=self._build_conv_hyperparams(),
                        freeze_batchnorm=False,
                        inplace_batchnorm_update=False,
                        use_explicit_padding=use_explicit_padding,
                        num_layers=num_layers,
                        name='MobilenetV2'))
        else:
            return ssd_mobilenet_v2_feature_extractor.SSDMobileNetV2FeatureExtractor(
                False,
                depth_multiplier,
                min_depth,
                pad_to_multiple,
                self.conv_hyperparams_fn,
                use_explicit_padding=use_explicit_padding,
                num_layers=num_layers)