| import requests | |
| from ultralytics import YOLO | |
| import cv2 | |
| import matplotlib.pyplot as plt | |
| import matplotlib.patches as patches | |
| import numpy as np | |
| import gradio as gr | |
| model = YOLO('best (4).pt') | |
| def index(img_url): | |
| response = requests.get(img_url, stream=True) | |
| img_array = np.asarray(bytearray(response.content), dtype=np.uint8) | |
| img = cv2.imdecode(img_array, cv2.IMREAD_COLOR) | |
| print(img_url) | |
| classes_ = {0: 'noti', 1: 'pop'} | |
| results = model.predict(source=img, conf = 0.7) | |
| boxes = results[0].boxes.xyxy.tolist() | |
| classes = results[0].boxes.cls.tolist() | |
| names = results[0].names | |
| confidences = results[0].boxes.conf.tolist() | |
| print(boxes) | |
| print(classes) | |
| print(names) | |
| print(confidences) | |
| result_dict = {"boxes": boxes, "classes": classes, "names": names, "confidence": confidences} | |
| return len(boxes) | |
| inputs_image_url = [ | |
| gr.Textbox(type="text", label="Image URL"), | |
| ] | |
| outputs_result_dict = [ | |
| gr.Textbox(type="text", label="Result Dictionary"), | |
| ] | |
| interface_image_url = gr.Interface( | |
| fn=index, | |
| inputs=inputs_image_url, | |
| outputs=outputs_result_dict, | |
| title="Popup detection", | |
| cache_examples=False, | |
| ) | |
| gr.TabbedInterface( | |
| [interface_image_url], | |
| tab_names=['Image inference'] | |
| ).queue().launch() |