Falah's picture
update
3573af2
raw
history blame
1.52 kB
import gradio as gr
from transformers import pipeline
from PIL import Image, ImageDraw
checkpoint = "google/owlvit-base-patch32"
detector = pipeline(model=checkpoint, task="zero-shot-object-detection")
def detect_and_visualize_objects(image):
# Convert the image to RGB format
image = image.convert("RGB")
# Process the image using the object detection model
predictions = detector(
image,
candidate_labels=["human face", "rocket"],
)
# Draw bounding boxes and labels on the image
draw = ImageDraw.Draw(image)
if len(predictions) == 0:
draw.text((10, 10), "Object not found in image", fill="red")
else:
for prediction in predictions:
box = prediction["box"]
label = prediction["label"]
score = prediction["score"]
xmin, ymin, xmax, ymax = box.values()
draw.rectangle((xmin, ymin, xmax, ymax), outline="red", width=1)
draw.text((xmin, ymin), f"{label}: {round(score, 2)}", fill="white")
# Return the annotated image
return image
# Define the Gradio interface
image_input = gr.inputs.Image(type="pil")
image_output = gr.outputs.Image(type="pil")
iface = gr.Interface(
fn=detect_and_visualize_objects,
inputs=image_input,
outputs=image_output,
title="Space and War Missile Detection System",
description="Detect objects in an image using a pre-trained model and visualize the results."
)
# Launch the Gradio interface
iface.launch(debug=True)