首页 文章

Tensorflow 1.9 /对象检测:model_main.py仅评估一个图像

提问于
浏览
6

我已经更新到Tensorflow 1.9和最新的Object Detection API大师 . 当运行之前运行良好的培训/评估会话时(我认为版本1.6),培训似乎按预期进行,但我只获得一个图像的评估和指标(第一个) .

在Tensorboard中,图像标记为“Detections_Left_Groundtruth_Right” . 评估步骤本身也发生得非常快,这让我相信这不仅仅是一个Tensorboard问题 .

查看model_lib.py,我看到一些可疑代码(靠近第349行):

eval_images = (
      features[fields.InputDataFields.original_image] if use_original_images
      else features[fields.InputDataFields.image])
  eval_dict = eval_util.result_dict_for_single_example(
      eval_images[0:1],
      features[inputs.HASH_KEY][0],
      detections,
      groundtruth,
      class_agnostic=class_agnostic,
      scale_to_absolute=True)

这对我来说就像评估者总是在第一张图像上运行一次评估 . 有没有人看到和/或修复过这个?如果改变上述工作,我会更新 .

2 回答

  • 0

    您是对的,对象检测仅支持批量大小为1进行评估 . 评估次数等于评估步骤的数量 . Eval指标在不同批次中累计 .

    顺便说一句,在Tensorboard中查看更多eval图像的更改刚刚提交给master .

  • 1

    使用 model_main.py 模块时遇到同样的问题 . 但是,当使用可以在 object_detection/legacy/ 目录中找到的train.py和eval.py函数时,我可以在tensorboard中看到多个图像 .

    我没有足够的时间来完成代码以完全了解正在发生的事情 . 我认为这个eval函数不会调用你引用的代码部分,因为tensorboard中的图像是不同的 . 不是使左/右图像对显示预测/ ground_truth,而是仅显示预测的边界框 .

相关问题