Tensorflow对象检测:eval_config中的visualization_export_dir不保存评估图像

时间:2019-02-01 21:17:03

标签: tensorflow object-detection-api

正如标题所述,我想保存来自Tensorboard的评估的检测图像与地面真实图像。

从评估原型开始:

df['combined'] = pd.to_datetime([f'{y}-{m}-{d}' for y, m, d in zip(df.year, df.month, df.day)])

因此,我已经将其添加到了我的model.config文件中。请记住,我正在/ Object-Detection /目录中工作。

// Path to directory to store visualizations in. If empty, visualization
// images are not exported (only shown on Tensorboard).
optional string visualization_export_dir = 6 [default=""];

训练照常完成,我可以在tensorboard中看到所有评估图像,但/ eval_images /文件夹为空。

有人工作吗?

3 个答案:

答案 0 :(得分:0)

虽然该参数在配置文件中可用,但实际上不支持此功能。 相反,您可以使用TensorBoard并在“图像”选项卡下查看带有重叠检测结果的评估图像。

答案 1 :(得分:0)

您的配置看起来正确,并且该功能在当前的TensorFlow版本中实现。这是我的eval_config:

eval_config: {
  num_examples: 100
  num_visualizations: 20
  visualize_groundtruth_boxes: true
  visualization_export_dir: "F:/project_name/tf-eval/"
  include_metrics_per_category: true
}

我在TensorBoard中都获得了可视化效果并保存到文件中。可能是您的相对路径引起了问题,尽管在.config文件中通常不是问题。导出目录必须存在-否则将不输出图像。

答案 2 :(得分:0)

追加行:

    import matplotlib.pyplot as plt
    import os
    vutils.save_image_array_as_png(sbys_image[0], os.path.join(eval_config.visualization_export_dir, 'eval_{}_{}'.format(i,j) + ".png"))

之后的代码应该是这样的:

  for j, sbys_image in enumerate(sbys_image_list):
    tf.compat.v2.summary.image(
        name='eval_side_by_side_{}_{}'.format(i, j),
        step=global_step,
        data=sbys_image,
        max_outputs=eval_config.num_visualizations)
    import matplotlib.pyplot as plt
    import os
    vutils.save_image_array_as_png(sbys_image[0], os.path.join(eval_config.visualization_export_dir, 'eval_{}_{}'.format(i,j) + ".png"))

在 model_lib_v2.py 行号 992

小心,不要修复您的克隆文件。 model_lib_v2.py 应该在看起来像 /python-3.6/pakages/object_detection/util....

谢谢