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.

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 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.


Creato 2024-02-01, Aggiornato 2024-05-18
Autori: glenn-jocher (3), RizwanMunawar (1)

Commenti