Rilevamento interattivo degli oggetti: Gradio & Ultralytics YOLOv8 🚀
Introduzione al rilevamento interattivo degli oggetti
Questa interfaccia Gradio fornisce un modo semplice e interattivo per eseguire il rilevamento degli oggetti utilizzando il modello Ultralytics YOLOv8 modello. Gli utenti possono caricare immagini e regolare parametri come la soglia di fiducia e la soglia di intersezione-sovra-unione (IoU) per ottenere risultati di rilevamento in tempo reale.
Perché usare Gradio per il rilevamento degli oggetti?
- Interfaccia facile da usare: Gradio offre una piattaforma semplice per gli utenti che possono caricare immagini e visualizzare i risultati del rilevamento senza dover ricorrere alla codifica.
- Regolazioni in tempo reale: Parametri come la fiducia e le soglie IoU possono essere regolati al volo, consentendo un feedback immediato e l'ottimizzazione dei risultati di rilevamento.
- Ampia accessibilità : L'interfaccia web di Gradio è accessibile a chiunque, il che la rende uno strumento eccellente per dimostrazioni, scopi educativi ed esperimenti veloci.
Come installare Gradio
Come utilizzare l'interfaccia
- Carica immagine: Clicca su "Carica immagine" per scegliere un file immagine per il rilevamento dell'oggetto.
- Regola i parametri:
- Soglia di fiducia: Cursore per impostare il livello minimo di fiducia per il rilevamento degli oggetti.
- Soglia IoU: Cursore per impostare la soglia IoU per distinguere i diversi oggetti.
- Visualizza risultati: Verrà visualizzata l'immagine elaborata con gli oggetti rilevati e le relative etichette.
Casi d'uso esemplificativi
- Immagine di esempio 1: Rilevamento del bus con soglie predefinite.
- Immagine di esempio 2: Rilevamento su un'immagine sportiva con soglie predefinite.
Esempio di utilizzo
Questa sezione contiene il codice Python utilizzato per creare l'interfaccia di Gradio con il modello Ultralytics YOLOv8 . Supporta attività di classificazione, rilevamento, segmentazione e punti chiave.
import gradio as gr
import PIL.Image as Image
from ultralytics import ASSETS, YOLO
model = YOLO("yolov8n.pt")
def predict_image(img, conf_threshold, iou_threshold):
"""Predicts and plots labeled objects in an image using YOLOv8 model with adjustable confidence and IOU thresholds."""
results = model.predict(
source=img,
conf=conf_threshold,
iou=iou_threshold,
show_labels=True,
show_conf=True,
imgsz=640,
)
for r in results:
im_array = r.plot()
im = Image.fromarray(im_array[..., ::-1])
return im
iface = gr.Interface(
fn=predict_image,
inputs=[
gr.Image(type="pil", label="Upload Image"),
gr.Slider(minimum=0, maximum=1, value=0.25, label="Confidence threshold"),
gr.Slider(minimum=0, maximum=1, value=0.45, label="IoU threshold"),
],
outputs=gr.Image(type="pil", label="Result"),
title="Ultralytics Gradio",
description="Upload images for inference. The Ultralytics YOLOv8n model is used by default.",
examples=[
[ASSETS / "bus.jpg", 0.25, 0.45],
[ASSETS / "zidane.jpg", 0.25, 0.45],
],
)
if __name__ == "__main__":
iface.launch()
Spiegazione dei parametri
Nome del parametro | Tipo | Descrizione |
---|---|---|
img |
Image |
L'immagine su cui verrà eseguito il rilevamento dell'oggetto. |
conf_threshold |
float |
Soglia di fiducia per il rilevamento degli oggetti. |
iou_threshold |
float |
Soglia di intersezione-sovra-unione per la separazione degli oggetti. |
Componenti dell'interfaccia di Gradio
Componente | Descrizione |
---|---|
Ingresso immagine | Per caricare l'immagine per il rilevamento. |
Cursori | Per regolare le soglie di fiducia e di IoU. |
Uscita immagine | Per visualizzare i risultati del rilevamento. |