Vai al contenuto

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.



Guarda: Integrazione di Gradio con Ultralytics YOLOv8

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.

Schermata di esempio di Gradio

Come installare Gradio

pip install gradio

Come utilizzare l'interfaccia

  1. Carica immagine: Clicca su "Carica immagine" per scegliere un file immagine per il rilevamento dell'oggetto.
  2. 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.
  3. 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 objects in an image using a 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.

DOMANDE FREQUENTI

Come posso utilizzare Gradio con Ultralytics YOLOv8 per il rilevamento degli oggetti?

Per utilizzare Gradio con Ultralytics YOLOv8 per il rilevamento degli oggetti, puoi seguire i seguenti passaggi:

  1. Installa Gradio: Usa il comando pip install gradio.
  2. Creare l'interfaccia: Scrivi uno script Python per inizializzare l'interfaccia di Gradio. Per maggiori dettagli puoi consultare l'esempio di codice fornito nella documentazione.
  3. Carica e regola: Carica la tua immagine e regola le soglie di confidenza e IoU sull'interfaccia di Gradio per ottenere risultati di rilevamento degli oggetti in tempo reale.

Ecco un frammento di codice minimo come riferimento:

import gradio as gr

from ultralytics import YOLO

model = YOLO("yolov8n.pt")


def predict_image(img, conf_threshold, iou_threshold):
    results = model.predict(
        source=img,
        conf=conf_threshold,
        iou=iou_threshold,
        show_labels=True,
        show_conf=True,
    )
    return results[0].plot() if results else None


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 YOLOv8",
    description="Upload images for YOLOv8 object detection.",
)
iface.launch()

Quali sono i vantaggi dell'utilizzo di Gradio per il rilevamento di oggetti Ultralytics YOLOv8 ?

L'utilizzo di Gradio per il rilevamento di oggetti su Ultralytics YOLOv8 offre diversi vantaggi:

  • Interfaccia facile da usare: Gradio offre agli utenti un'interfaccia intuitiva per caricare le immagini e visualizzare i risultati del rilevamento senza alcuno sforzo di codifica.
  • Regolazioni in tempo reale: Puoi regolare dinamicamente i parametri di rilevamento, come le soglie di confidenza e IoU, e vederne immediatamente gli effetti.
  • Accessibilità: L'interfaccia web è accessibile a chiunque, il che la rende utile per esperimenti rapidi, scopi educativi e dimostrazioni.

Per maggiori dettagli, puoi leggere questo post del blog.

Posso utilizzare Gradio e Ultralytics YOLOv8 insieme per scopi didattici?

Sì, Gradio e Ultralytics YOLOv8 possono essere utilizzati insieme per scopi educativi in modo efficace. L'interfaccia web intuitiva di Gradio permette a studenti ed educatori di interagire facilmente con modelli di deep learning all'avanguardia come Ultralytics YOLOv8 senza bisogno di competenze avanzate di programmazione. Questa configurazione è ideale per dimostrare i concetti chiave del rilevamento degli oggetti e della visione artificiale, poiché Gradio fornisce un feedback visivo immediato che aiuta a comprendere l'impatto dei diversi parametri sulle prestazioni del rilevamento.

Come posso regolare le soglie di fiducia e IoU nell'interfaccia di Gradio per YOLOv8?

Nell'interfaccia di Gradio per YOLOv8, puoi regolare le soglie di confidenza e IoU utilizzando gli appositi cursori. Queste soglie aiutano a controllare l'accuratezza della previsione e la separazione degli oggetti:

  • Soglia di fiducia: Determina il livello minimo di fiducia per il rilevamento degli oggetti. Scorri per aumentare o diminuire la fiducia richiesta.
  • Soglia IoU: Imposta la soglia di intersezione-over-union per distinguere gli oggetti che si sovrappongono. Regola questo valore per affinare la separazione degli oggetti.

Per maggiori informazioni su questi parametri, visita la sezione di spiegazione dei parametri.

Quali sono le applicazioni pratiche dell'utilizzo di Ultralytics YOLOv8 con Gradio?

Le applicazioni pratiche della combinazione di Ultralytics YOLOv8 con Gradio includono:

  • Dimostrazioni di rilevamento degli oggetti in tempo reale: Ideale per mostrare come funziona il rilevamento degli oggetti in tempo reale.
  • Strumenti didattici: Utili in ambito accademico per insegnare il rilevamento degli oggetti e i concetti di computer vision.
  • Sviluppo di prototipi: Efficiente per sviluppare e testare rapidamente prototipi di applicazioni per il rilevamento di oggetti.
  • Comunità e collaborazioni: Semplificare la condivisione dei modelli con la comunità per ottenere feedback e collaborazioni.

Per esempi di casi d'uso simili, dai un'occhiata al blogUltralytics .

Fornire queste informazioni all'interno della documentazione contribuirà a migliorare l'usabilità e l'accessibilità di Ultralytics YOLOv8 , rendendolo più accessibile agli utenti di qualsiasi livello di competenza.



Creato 2024-02-01, Aggiornato 2024-07-05
Autori: glenn-jocher (6), ambitious-octopus (1), IvorZhu331 (1), RizwanMunawar (1)

Commenti