Google Object Detection API:
https://github.com/tensorflow/models/tree/master/research/object_detection
Test code:
I executed the test code of Google Object Detection API as follows:
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))
According to Google research paper, all models supported by Google Object Detection API have real time performance! However, the above test code show that it took about 3 second to detect one image (Actually, 200 frames->130 second, 400 frames->250 second). I think that this result is wrong because this model has real time performance.
Possible cause I expected...
- GPU doesn't work properly.
- Wrong measurement test runtime method
Please, let me know how to exactly measure detection time.
For more details, please refer to the link below https://github.com/tensorflow/models/issues/3531