Example #1
0
    def _get_data_tensor(self, dataset, batch_size, data_format):
        # 数据
        provider = slim.dataset_data_provider.DatasetDataProvider(
            dataset,
            common_queue_capacity=20 * batch_size,
            common_queue_min=10 * batch_size,
            shuffle=True)
        # 提取数据
        [image, labels,
         bboxes] = provider.get(['image', 'object/label', 'object/bbox'])
        # 数据预处理
        image, labels, bboxes = ssd_vgg_preprocessing.preprocess_for_train(
            image, labels, bboxes, self.img_shape, data_format)

        # 编码label和boxes:Encode ground-truth labels and bboxes.
        classes, localisations, scores = self.ssd_net.bboxes_encode(
            labels, bboxes, self.ssd_anchors)

        # reshape_list:拉直
        batch_tensors = self._reshape_list(
            [image, classes, localisations, scores])
        r = tf.train.batch(batch_tensors,
                           batch_size=batch_size,
                           capacity=5 * batch_size)

        # reshape_list:变成原来的形状
        return self._reshape_list(r, shape=[1] + [len(self.ssd_anchors)] * 3)
Example #2
0
 def __preprocess_data(self, image, labels, bboxes):
     out_shape = g_ssd_model.img_shape
     if self.is_training_data:
         image, labels, bboxes = preprocess_for_train(image, labels, bboxes, out_shape = out_shape)
     else:
         image, labels, bboxes, _ = preprocess_for_eval(image, labels, bboxes, out_shape = out_shape)
     return image, labels, bboxes