Как читать изображения с различным разрешением для создания набора данных в TensorFlow - PullRequest
0 голосов
/ 17 мая 2018

Я пытаюсь научиться строить нейронную сеть для обнаружения пешеходов на изображениях.Я загрузил набор данных PETA и хочу прочитать изображения в набор данных Tensorflow.Я действительно преуспел в этом, используя этот код:

filenames = glob.glob("C://PETA/3DPeS/archive/*.bmp")

dataset = tf.data.Dataset.from_tensor_slices((filenames))

def _parsefunc(filename):
    img_st = tf.read_file(filename)
    img_dec = tf.image.decode_bmp(img_st,channels=3)
    img = tf.cast(img_dec,tf.float32)

return img

dataset = dataset.map(_parsefunc)

iterator = dataset.make_one_shot_iterator()

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

Итак, как мне изменить размеры изображений, чтобы получить чистый набор данных TensorFlow?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 17 мая 2018

В вашем _parsefunc вы можете изменить размер входных изображений до размера входного слоя нейронной сети, используя tf.image.resize_images().

def _parsefunc(filename):
   img_st = tf.read_file(filename)
   img_dec = tf.image.decode_bmp(img_st,channels=3)
   img = tf.cast(img_dec,tf.float32)
   img = tf.image.resize_images(img, [width, height])
0 голосов
/ 17 мая 2018

Ну, нигде не требуется, чтобы ваши изображения были одинакового размера, но лучше иметь таким образом. Если вы пытаетесь настроить модели в будущем, это не имеет значения. Попробуйте взглянуть, как создать Tfrecords для новой базы данных , и это было бы наиболее предпочтительным способом.

...