run_inference_for_single_image(图像,图形)-Tensorflow,对象检测

Bha*_*ran 2 object-detection tensorflow

参考object_detection_tutorial.ipynb。我想知道是否可以为目录中的所有图像运行。

而不是编写for循环并运行“ run_inference_for_single_image(图像,图形)”。有没有一种方法可以对目录中的所有图像运行推断,也可以对多个图像运行推断。 链接

  for f in files:
    if f.lower().endswith(('.png', '.jpg', '.jpeg')):
      image_path = files_dir + '/' + f
       .... // Read image etc.
      output_dict = run_inference_for_single_image(image_np, detection_graph)
Run Code Online (Sandbox Code Playgroud)

每次都会创建tf.session,我认为它的计算量很大。如果我错了,请纠正我。

小智 5

如您所知,每次都会创建“ run_inference_for_single_image”方法。如果您想推断出多张图片,则应更改代码,例如

  • 方法调用

    images = []
    for f in files:
      if f.lower().endswith(('.png', '.jpg', '.jpeg')):
        image_path = files_dir + '/' + f
        image =  .... // Read image etc.
        images.append(image)
        output_dicts = run_inference_for_multiple_images(images, detection_graph)
    
    Run Code Online (Sandbox Code Playgroud)
  • run_inference_for_multiple_images

    def run_inference_for_multiple_images(images, grapg):
      with graph.as_default():
        with tf.Session() as sess:
          output_dicts = []
    
          for index, image in enumerate(images):
            ... same as inferencing for single image
    
             output_dicts.append(output_dict)
    
       return output_dicts
    
    Run Code Online (Sandbox Code Playgroud)

每次创建该代码时都不会创建tf.session,而只会创建一次。