【问题标题】:Tensorflow object detection API not detecting objects in images of different size than training setTensorflow 对象检测 API 未检测到与训练集大小不同的图像中的对象
【发布时间】:2019-08-06 13:09:10
【问题描述】:

我正在使用 Tensorflow 对象检测 API 开展一个项目。我已经在几个 test images 上训练了我的模型,并训练了一个 rfcn_resnet101_coco 模型来检测这些图像中的字母 o

我认为模型工作正常,因为它在我传递给它的图像中检测到 o(准确度不错)。有关示例,请参阅 herehere

但是,当我传入另外两张尺寸与前两张相差很大的图像时,模型无法检测到任何东西!例如,当我将full pagesingle world 传递给模型时,输出与输入相同。

我相信这是因为我传入的最后两张图像比我用来训练模型的original training set 大或小得多,而前两张或大致相同大小。

我想知道是否有办法训练我的模型,使其能够检测不同大小图像中的字母 o,而不仅仅是那些与训练输入相似的图像。我想调整我的pipeline.config(找到here),但不知道从哪里开始。

【问题讨论】:

    标签: python tensorflow object-detection object-detection-api


    【解决方案1】:

    首先,以特定方式对图像进行训练,然后在显着不同的场景(尤其是输入大小)上对其进行测试,这绝不是一个好习惯。 也就是说,除非您的模型/训练方案以某种方式处理这种差异。

    此外,许多对象检测器使用锚点作为参考框,这意味着模型会针对它们进行训练然后预测对象。这些具有相对于输入分辨率的特定大小。如果您正在训练以使地面实况对象的大小与锚点大小相对应,但随后对其进行测试以使没有锚点适合您希望检测的对象(太小或太大),那么它将无法检测到它们.

    这意味着您需要:

    1. 具有与您要检测的对象的大小(和纵横比)相对应的锚点。
    2. 确保您有与训练集中的这些锚点相对应的地面实况对象,这样您的模型才能真正从此类案例中学习。

    【讨论】:

      猜你喜欢
      • 2018-02-20
      • 2018-05-15
      • 1970-01-01
      • 1970-01-01
      • 2019-04-12
      • 1970-01-01
      • 2019-06-28
      • 2021-02-17
      • 2018-04-18
      相关资源
      最近更新 更多