Spaces:
Build error
Build error
| import cv2 | |
| import numpy as np | |
| import gradio as gr | |
| from ultralytics import YOLO | |
| def draw_boxes(image, boxes): | |
| for box in boxes: | |
| x1, y1, x2, y2, name, prob = box | |
| cv2.rectangle(image, (x1, y1), (x2, y2), (0, 255, 0), 2) | |
| cv2.putText(image, f"{name} {prob:.2f}", (x1, y1-10), cv2.FONT_HERSHEY_SIMPLEX, 1.9, (255,55,0), 2) | |
| return image | |
| def detect_objects_on_image(buf): | |
| model = YOLO("files/yolov8n.pt") | |
| results = model.predict(buf) | |
| result = results[0] | |
| output = [] | |
| for box in result.boxes: | |
| x1, y1, x2, y2 = [ | |
| round(x) for x in box.xyxy[0].tolist() | |
| ] | |
| class_id = box.cls[0].item() | |
| prob = round(box.conf[0].item(), 2) | |
| output.append([ | |
| x1, y1, x2, y2, result.names[class_id], prob | |
| ]) | |
| return output | |
| path = [['files/a.png'],['files/image_0.png'],['files/huggingface.png']] | |
| inputs = [ | |
| gr.inputs.Image(type="filepath", label="Input Image"), | |
| gr.inputs.Radio(label="YOLO Methods", | |
| choices=[ | |
| "v8" | |
| ]), | |
| ] | |
| outputs = [ | |
| gr.outputs.Image(type="numpy", label="Output YOLO Image") | |
| ] | |
| def process_image(input_image, radio_choice,slider_val): | |
| img = cv2.imread(input_image) | |
| img=cv2.cvtColor(img,cv2.COLOR_BGR2RGB) | |
| boxes=detect_objects_on_image(img) | |
| img_with_boxes = draw_boxes(img, boxes) | |
| return img_with_boxes | |
| def on_change(radio_choice): | |
| outputs[0].update(process_image( | |
| inputs[0].value, | |
| radio_choice) | |
| ) | |
| yolo = gr.Interface( | |
| fn=process_image, | |
| inputs=inputs, | |
| outputs=outputs, | |
| on_change=on_change, | |
| examples=path, | |
| title="YOLO: Computer Vision and Deep Learning by Farshid PirahanSiah", | |
| ) |