代码之家  ›  专栏  ›  技术社区  ›  Michael Ramos

用于图像识别的TensorFlow,图像大小

  •  2
  • Michael Ramos  · 技术社区  · 7 年前

    图像的大小如何影响为此任务训练模型?

    我当前的训练集包含以下图像: 2880 X 1800 ,但我担心这可能太大,无法训练。总的来说,我的样本量约为200-500张图像。

    如果这个太大,我应该如何调整大小我希望尽可能地模拟真实世界的照片分辨率,以获得更好的准确性。

    我也会使用 TFRecord

    4 回复  |  直到 7 年前
        1
  •  1
  •   Ben Freeston    7 年前

    您的内存和处理要求将与图像的像素大小成比例。这对您来说是否太大而无法有效处理将取决于您的硬件约束和可用时间。

    关于调整图像大小,没有一个答案,您必须考虑如何最好地保留算法从数据中学习所需的信息,同时删除无用的信息。减少输入图像的大小不一定会影响准确性。考虑两种情况:

    手写数字

    在这里,图像可以大大缩小,并保留正确识别所需的所有结构信息。看一看 MNIST data set 99.7%+ accuracy .

    想象一组树木的图像,其中单个叶子可以帮助识别物种。在这里,您可能会发现减小图像大小会以一种对模型有害的方式减少树叶形状上的小比例细节,但您可能会发现,通过紧密裁剪(保留单个树叶)而不是调整图像大小,可以获得类似的结果。如果是这种情况,您可能会发现,从同一个图像创建多个作物可以为训练提供一个增强的数据集,从而显著提高结果(如果可能,考虑到训练集非常小,这是需要考虑的)

    深度学习模型在许多图像分类任务中都取得了接近人类水平的结果:如果你很难识别自己的图像,那么你就不太可能训练算法。在考虑适当的缩放级别时,这通常是一个有用的起点。

        2
  •  1
  •   Diego Aguado    7 年前

    Tensorflow 大部分GPU的分配,所以你不必担心。但是,虽然你的数据集很小,但有了大照片,你将经历很长的训练时间。您应该考虑数据扩充。

    您可以通过增加数据来补充您的大小调整。以相等的尺寸调整大小,然后执行反射和平移(如在几何运动中)

        3
  •  1
  •   Yanfeng Liu    7 年前

    • 降低模型复杂性

    为了调整你的图片大小,有很多脚本只需一次谷歌搜索,但我要补充的是,在你的情况下,1440乘900可能是一个最佳点。

        4
  •  1
  •   AtiX    7 年前

    根据您的具体任务,您可能希望减小图像大小,以便在GPU上适合合理的批处理大小(例如32或64),以实现稳定的学习。

    SSD - Single Shot MultiBox Detector PascalVOC 数据集-仅使用300x300图像分辨率。