【问题标题】:How to read images with varying resolutions to create a Dataset in TensorFlow如何读取不同分辨率的图像以在 TensorFlow 中创建数据集
【发布时间】:2018-10-27 16:25:49
【问题描述】:

我正在尝试学习如何构建神经网络来检测图像中的行人。我下载了 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 数据集?

谢谢。

【问题讨论】:

    标签: python tensorflow image-resizing


    【解决方案1】:

    在您的_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])
    

    【讨论】:

    • 我不知道有这样的方法。谢谢你。它解决了我的问题
    【解决方案2】:

    好吧,在任何地方都没有强制要求您的图像应该具有相同的大小,但最好以这种方式拥有。如果您将来尝试微调模型,那没关系。尝试看一下,如何创建Tfrecords for a new database,这将是最优选的方式。

    【讨论】:

      猜你喜欢
      • 2022-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-24
      • 1970-01-01
      • 2015-07-11
      相关资源
      最近更新 更多