Spaces:
Sleeping
Sleeping
File size: 1,213 Bytes
22a2034 9ad64d9 22a2034 9ad64d9 22a2034 9ad64d9 22a2034 9ad64d9 22a2034 6d04a80 9ad64d9 22a2034 9ad64d9 22a2034 9ad64d9 22a2034 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | import gradio as gr
from ultralytics import YOLO
import cv2
MODELOS = {
"best.pt": "model/best.pt",
"bestV2.pt": "model/bestV2.pt",
"model_merged1.pt": "model/model_merged1.pt"
}
# Carrega todos os modelos uma vez
modelos_carregados = {
nome: YOLO(caminho)
for nome, caminho in MODELOS.items()
}
def predict_image(img, modelo_escolhido):
if img is None:
return None
model = modelos_carregados[modelo_escolhido]
results = model(img)
annotated_img = results[0].plot()
annotated_img_rgb = cv2.cvtColor(annotated_img, cv2.COLOR_BGR2RGB)
return annotated_img_rgb
demo = gr.Interface(
fn=predict_image,
inputs=[
gr.Image(
sources=["upload", "webcam", "clipboard"],
type="numpy",
label="Tirar foto"
),
gr.Dropdown(
choices=list(MODELOS.keys()),
value="model_merged1.pt",
label="Escolha o modelo"
)
],
outputs=gr.Image(type="numpy", label="Resultado do modelo"),
title="Detecção de Objetos com YOLO",
description="Escolha um modelo e envie uma imagem para detecção.",
live=True
)
if __name__ == "__main__":
demo.launch() |