Расширения API обнаружения объектов TensorFlow - PullRequest
1 голос
/ 22 апреля 2019

Мне интересно узнать о порядке изменения размера и аугментации в API обнаружения объектов TensorFlow. Например, я использую файл конфигурации ssd_mobilenet_v2_oid_v4.config. Это использует fixed_shape_resizer и ssd_random_crop. Так каково взаимодействие между этими двумя модулями?

Принимает ли ssd_random_crop урожай размером, определенным в fixed_shape_resizer? Если сначала происходит изменение размера, то какой размер имеют культуры после изменения размера? И я предполагаю, что все они должны быть одинакового точного размера, чтобы создавать правильные партии?

1 Ответ

1 голос
/ 23 апреля 2019

Перед изменением размера происходит увеличение данных.Все этапы предварительной обработки указаны в функции transform_input_data в файле input.py , этот файл содержит такие функции, как create_train_input_fn, create_eval_input_fn и create_predict_input_fn, которые будут подавать тензоры входных изображений в модель во время обучения,оценка и прогноз.В create_train_input_fn используется следующая функция преобразования:

def transform_input_data(tensor_dict,
                         model_preprocess_fn,
                         image_resizer_fn,
                         num_classes,
                         data_augmentation_fn=None,
                         merge_multiple_boxes=False,
                         retain_original_image=False,
                         use_multiclass_scores=False,
                         use_bfloat16=False):
  """A single function that is responsible for all input data transformations.
  Data transformation functions are applied in the following order.
  1. If key fields.InputDataFields.image_additional_channels is present in
     tensor_dict, the additional channels will be merged into
     fields.InputDataFields.image.
  2. data_augmentation_fn (optional): applied on tensor_dict.
  3. model_preprocess_fn: applied only on image tensor in tensor_dict.
  4. image_resizer_fn: applied on original image and instance mask tensor in
     tensor_dict.
  5. one_hot_encoding: applied to classes tensor in tensor_dict.
  6. merge_multiple_boxes (optional): when groundtruth boxes are exactly the
     same they can be merged into a single box with an associated k-hot class
     label.
  Args:
    tensor_dict: dictionary containing input tensors keyed by
      fields.InputDataFields.
    model_preprocess_fn: model's preprocess function to apply on image tensor.
      This function must take in a 4-D float tensor and return a 4-D preprocess
      float tensor and a tensor containing the true image shape.
    image_resizer_fn: image resizer function to apply on groundtruth instance
      `masks. This function must take a 3-D float tensor of an image and a 3-D
      tensor of instance masks and return a resized version of these along with
      the true shapes.
    num_classes: number of max classes to one-hot (or k-hot) encode the class
      labels.
    data_augmentation_fn: (optional) data augmentation function to apply on
      input `tensor_dict`.
    merge_multiple_boxes: (optional) whether to merge multiple groundtruth boxes
      and classes for a given image if the boxes are exactly the same.
    retain_original_image: (optional) whether to retain original image in the
      output dictionary.
    use_multiclass_scores: whether to use multiclass scores as
      class targets instead of one-hot encoding of `groundtruth_classes`.
    use_bfloat16: (optional) a bool, whether to use bfloat16 in training.
  Returns:
    A dictionary keyed by fields.InputDataFields containing the tensors obtained
    after applying all the transformations.
  """

Увеличение данных выполняется на шаге 2 (если есть) и изменение размера выполняется на шаге 4.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...