Esempio n. 1
0
    def __init__(self,
                 batch_size,
                 input_shape,
                 json_path,
                 classes,
                 num_parallel_calls=2,
                 prefetch_size=2):
        self.batch_size = batch_size
        self.input_shape = input_shape
        self.json_path = json_path
        self.num_parallel_calls = num_parallel_calls
        self.prefetch_size = prefetch_size

        ObjectDetectorJson.init_cache(self.json_path,
                                      cache_type='NONE',
                                      classes=classes)

        dataset, self.dataset_size = ObjectDetectorJson.create_dataset(
            self.json_path, classes=classes)
        _, self.transform_param = MobileNetSSD.create_transform_parameters(
            *input_shape[:2])
        self.transformer = AnnotatedDataTransformer(self.transform_param,
                                                    is_training=False)

        print('Total evaluation steps: {}'.format(
            math.ceil(self.dataset_size / self.batch_size)))

        transform_fn = lambda value: ObjectDetectorJson.transform_fn(
            value, self.transformer)
        map_fn = lambda value: tf.py_func(transform_fn, [value],
                                          (tf.float32, tf.string))
        self.dataset = dataset.map(map_fn,
                                   num_parallel_calls=num_parallel_calls)
        self.dataset = self.dataset.batch(
            self.batch_size).prefetch(prefetch_size)
Esempio n. 2
0
    def __init__(self,
                 batch_size,
                 input_shape,
                 json_path,
                 cache_type='NONE',
                 classes=['bg'],
                 fill_with_current_image_mean=True,
                 num_parallel_calls=4,
                 prefetch_size=16):
        self.batch_size = batch_size
        self.input_shape = input_shape
        self.json_path = json_path
        self.cache_type = cache_type
        self.num_parallel_calls = num_parallel_calls
        self.prefetch_size = prefetch_size
        self.classes = classes

        ObjectDetectorJson.init_cache(self.json_path,
                                      cache_type,
                                      classes=classes)

        self.train_dataset, self.dataset_size = ObjectDetectorJson.create_dataset(
            self.json_path, classes)
        self.train_transform_param, _ = MobileNetSSD.create_transform_parameters(
            input_shape[0], input_shape[1], fill_with_current_image_mean)
        self.train_transformer = AnnotatedDataTransformer(
            self.train_transform_param, is_training=True)