我正在努力学习如何建立一个神经网络来检测图像中的行人。我下载了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数据集?
感谢。
答案 0 :(得分:2)
在_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])
答案 1 :(得分:1)
嗯,在图像尺寸相同的任何地方都不会强制执行,但以这种方式更好。如果您将来尝试对模型进行微调,那么这并不重要。试着看看如何创建Tfrecords for a new database,这将是最优选的方式。
答案 2 :(得分:0)
尝试在StackOverFlow上搜索旧答案。已经发布了一些很好的类似问题。
以前主题有关主题的信息:Downsample array in Python