TFODApply.py
From wikidb
# ## Apply module # # Load a public image from Open Images v4, save locally, and display. # In[4]: # By Heiko Gorski, Source: https://commons.wikimedia.org/wiki/File:Naxos_Taverna.jpg image_url = "https://upload.wikimedia.org/wikipedia/commons/6/60/Naxos_Taverna.jpg" #@param downloaded_image_path = download_and_resize_image(image_url, 1280, 856, True) # Pick an object detection module and apply on the downloaded image. Modules: # * **FasterRCNN+InceptionResNet V2**: high accuracy, # * **ssd+mobilenet V2**: small and fast. # In[5]: module_handle = "https://tfhub.dev/google/faster_rcnn/openimages_v4/inception_resnet_v2/1" #@param ["https://tfhub.dev/google/openimages_v4/ssd/mobilenet_v2/1", "https://tfhub.dev/google/faster_rcnn/openimages_v4/inception_resnet_v2/1"] detector = hub.load(module_handle).signatures['default'] # In[6]: def load_img(path): img = tf.io.read_file(path) img = tf.image.decode_jpeg(img, channels=3) return img # In[7]: def run_detector(detector, path): img = load_img(path) converted_img = tf.image.convert_image_dtype(img, tf.float32)[tf.newaxis, ...] start_time = time.time() result = detector(converted_img) end_time = time.time() result = {key:value.numpy() for key,value in result.items()} print("Found %d objects." % len(result["detection_scores"])) print("Inference time: ", end_time-start_time) image_with_boxes = draw_boxes( img.numpy(), result["detection_boxes"], result["detection_class_entities"], result["detection_scores"]) display_image(image_with_boxes) # In[8]: run_detector(detector, downloaded_image_path)