Tensorflow, API обнаружения объектов - PullRequest
0 голосов
/ 05 апреля 2019

Есть ли способ просмотра изображений, на которых обучается tensorflow object detection api после всей предварительной обработки / увеличения.

Я бы хотел убедиться, что все выглядит правильно. Мне удалось проверить изменение размера моего просмотра изменения размера сообщения в графе в выводе, но, очевидно, я не могу сделать это для параметров аугментации.

ТИА

1 Ответ

0 голосов
/ 06 апреля 2019

Я ответил на аналогичный вопрос здесь .

Вы можете использовать тестовый скрипт, предоставленный API, и внести некоторые изменения в соответствии с вашими потребностями.

Я написал небольшой тестовый скрипт под названием augmentation_test.py. Он позаимствовал некоторый код из input_test.py

from __future__ import absolute_import
from __future__ import division
from __future__ import print_function

import functools
import os
from absl.testing import parameterized

import numpy as np
import tensorflow as tf
from scipy.misc import imsave, imread

from object_detection import inputs
from object_detection.core import preprocessor
from object_detection.core import standard_fields as fields
from object_detection.utils import config_util
from object_detection.utils import test_case

FLAGS = tf.flags.FLAGS

class DataAugmentationFnTest(test_case.TestCase):

  def test_apply_image_and_box_augmentation(self):
    data_augmentation_options = [
        (preprocessor.random_horizontal_flip, {
        })
    ]
    data_augmentation_fn = functools.partial(
        inputs.augment_input_data,
        data_augmentation_options=data_augmentation_options)
    tensor_dict = {
        fields.InputDataFields.image:
            tf.constant(imread('lena.jpeg').astype(np.float32)),
        fields.InputDataFields.groundtruth_boxes:
            tf.constant(np.array([[.5, .5, 1., 1.]], np.float32))
    }
    augmented_tensor_dict = 
        data_augmentation_fn(tensor_dict=tensor_dict)
    with self.test_session() as sess:
      augmented_tensor_dict_out = sess.run(augmented_tensor_dict)
    imsave('lena_out.jpeg',augmented_tensor_dict_out[fields.InputDataFields.image])


if __name__ == '__main__':
  tf.test.main()

Вы можете поместить этот скрипт в models/research/object_detection/ и просто запустить его с python augmentation_test.py (Конечно, сначала вам нужно установить API). Для успешного запуска вы должны предоставить любое имя изображения «lena.jpeg», а выходное изображение после увеличения будет сохранено как «lena_out.jpeg».

Я запустил его с изображением «lena», и вот результат до увеличения и после увеличения. lena

lena_out.

Обратите внимание, что я использовал preprocessor.random_horizontal_flip в скрипте. И результат показал точно, как выглядит входное изображение после random_horizontal_flip. Чтобы проверить его с другими опциями дополнения, вы можете заменить random_horizontal_flip другими методами (которые определены в preprocessor.py ), все, что вы можете добавить другие опции в список data_augmentation_options, например :

data_augmentation_options = [(preprocessor.resize_image, {
        'new_height': 20,
        'new_width': 20,
        'method': tf.image.ResizeMethod.NEAREST_NEIGHBOR
    }),(preprocessor.random_horizontal_flip, {
    })]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...