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)