gpt4 book ai didi

Tensorflow对象检测api测试时间(谷歌对象检测运行时间)

转载 作者:行者123 更新时间:2023-12-03 21:30:17 25 4
gpt4 key购买 nike

Google 对象检测 API:

https://github.com/tensorflow/models/tree/master/research/object_detection

测试代码:

https://github.com/tensorflow/models/blob/master/research/object_detection/object_detection_tutorial.ipynb

我执行了 Google Object Detection API 的测试代码如下:

with detection_graph.as_default():
with tf.Session(graph=detection_graph) as sess:
start = time.time()
image_tensor =
detection_graph.get_tensor_by_name('image_tensor:0')
# Each box represents a part of the image where a particular
#object was detected.
detection_boxes =
detection_graph.get_tensor_by_name('detection_boxes:0')
detection_scores =
detection_graph.get_tensor_by_name('detection_scores:0')
detection_classes =
detection_graph.get_tensor_by_name('detection_classes:0')
num_detections =
detection_graph.get_tensor_by_name('num_detections:0')

for image_path in TEST_IMAGE_PATHS:
image = Image.open(image_path)
image_np = load_image_into_numpy_array(image)
image_np_expanded = np.expand_dims(image_np, axis=0)
# Actual detection.
(boxes, scores, classes, num) = sess.run(
[detection_boxes, detection_scores, detection_classes,
num_detections], feed_dict={image_tensor: image_np_expanded})

# Visualization of the results of a detection.
vis_util.visualize_boxes_and_labels_on_image_array(
image_np,
np.squeeze(boxes),
np.squeeze(classes).astype(np.int32),
np.squeeze(scores),
category_index,
use_normalized_coordinates=True,
line_thickness=2)

print("--- %s seconds ---" % (time.time() - start))

根据 Google 研究论文,Google Object Detection API 支持的所有模型都具有实时性能! 但是,上面的测试代码显示检测一张图像大约需要3秒(实际上是200帧->130秒,400帧->250秒)。我认为这个结果是错误的,因为这个模型具有实时性能。

可能的原因我预料...

  1. GPU 无法正常工作。
  2. 错误的测量测试运行时方法

请让我知道如何准确测量检测时间。

更多详情,请引用以下链接 https://github.com/tensorflow/models/issues/3531

最佳答案

实际上,“object_detection_tutorial notebook”运行速度非常慢,因为它不仅仅是实际的推理。它加载图像,将其放入一个 numpy 数组,加载图形(计算量非常大),以批量大小 1 运行实际推理并输出带有框的图像。

此脚本远未得到优化,也不适合时间紧迫的目的。它只是为了对模型进行快速视觉验证。

如果您想为生产部署模型(时间通常很重要),Tensorflow Serve是你要找的。使用 Tensorflow 服务,您可以轻松构建运行模型的 GPU 服务器。它有几个功能可以让您的生活更轻松。所以你只需要将图像传递到你的服务器,它就会返回你的模型的输出。后处理应该用另一台服务器完成,因为 GPU 服务器通常非常昂贵。有几个很好的教程,它们描述了如何使用 Tensorflow Serve 设置对象检测服务器。例如here .它需要一些 docker 经验,但您会适应的!

希望这对您有所帮助!

关于Tensorflow对象检测api测试时间(谷歌对象检测运行时间),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49134241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com