Overslaan naar inhoud

Interactieve objectdetectie: Gradio & Ultralytics YOLOv8 🚀

Inleiding tot interactieve objectdetectie

Deze Gradio-interface biedt een eenvoudige en interactieve manier om objectdetectie uit te voeren met behulp van het Ultralytics YOLOv8 model. Gebruikers kunnen afbeeldingen uploaden en parameters als vertrouwensdrempel en intersectie-over-eenheid (IoU) drempel aanpassen om realtime detectieresultaten te krijgen.



Kijken: Gradio Integratie met Ultralytics YOLOv8

Waarom Gradio gebruiken voor objectdetectie?

  • Gebruiksvriendelijke interface: Gradio biedt een eenvoudig platform voor gebruikers om afbeeldingen te uploaden en detectieresultaten te visualiseren zonder enige codeerbehoefte.
  • Aanpassingen in realtime: Parameters zoals betrouwbaarheid en IoU-drempels kunnen direct worden aangepast, waardoor directe feedback en optimalisatie van detectieresultaten mogelijk is.
  • Brede toegankelijkheid: De Gradio webinterface is voor iedereen toegankelijk, waardoor het een uitstekend hulpmiddel is voor demonstraties, onderwijsdoeleinden en snelle experimenten.

Gradio voorbeeld screenshot

De Gradio installeren

pip install gradio

De interface gebruiken

  1. Afbeelding uploaden: Klik op 'Afbeelding uploaden' om een afbeeldingsbestand te kiezen voor objectdetectie.
  2. Parameters aanpassen:
    • Vertrouwensdrempel: Schuifregelaar om het minimale betrouwbaarheidsniveau in te stellen voor het detecteren van objecten.
    • IoU-drempel: Schuifregelaar om de IoU-drempel in te stellen voor het onderscheiden van verschillende objecten.
  3. Resultaten weergeven: De verwerkte afbeelding met gedetecteerde objecten en hun labels wordt weergegeven.

Voorbeeld gebruikssituaties

  • Voorbeeldafbeelding 1: Busdetectie met standaarddrempels.
  • Voorbeeldafbeelding 2: Detectie op een sportafbeelding met standaarddrempels.

Gebruiksvoorbeeld

Dit gedeelte bevat de Python code die wordt gebruikt om de Gradio interface te maken met het Ultralytics YOLOv8 model. Ondersteunt classificatietaken, detectietaken, segmentatietaken en kernpunttaken.

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()

Parameters Uitleg

Parameter Naam Type Beschrijving
img Image De afbeelding waarop de objectdetectie wordt uitgevoerd.
conf_threshold float Vertrouwensdrempel voor het detecteren van objecten.
iou_threshold float Intersectie-over-scheidingsdrempel voor objectscheiding.

Gradio Interface Componenten

Component Beschrijving
Afbeelding invoer De afbeelding uploaden voor detectie.
Schuivers Vertrouwens- en IoU-drempels aanpassen.
Afbeeldingsuitvoer Om de detectieresultaten weer te geven.

FAQ

Hoe gebruik ik Gradio met Ultralytics YOLOv8 voor objectdetectie?

Om Gradio te gebruiken met Ultralytics YOLOv8 voor objectdetectie, kun je de volgende stappen volgen:

  1. Installeer Gradio: Gebruik de opdracht pip install gradio.
  2. Interface maken: Schrijf een Python script om de Gradio interface te initialiseren. Je kunt het meegeleverde codevoorbeeld in de documentatie raadplegen voor meer informatie.
  3. Uploaden en aanpassen: Upload je afbeelding en pas de betrouwbaarheids- en IoU-drempelwaarden aan op de Gradio-interface om realtime objectdetectieresultaten te krijgen.

Hier is een minimaal stukje code ter referentie:

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()

Wat zijn de voordelen van het gebruik van Gradio voor Ultralytics YOLOv8 objectdetectie?

Het gebruik van Gradio voor Ultralytics YOLOv8 objectdetectie biedt verschillende voordelen:

  • Gebruiksvriendelijke interface: Gradio biedt een intuïtieve interface voor gebruikers om afbeeldingen te uploaden en detectieresultaten te visualiseren zonder enige codeerinspanning.
  • Aanpassingen in realtime: Je kunt dynamisch detectieparameters zoals betrouwbaarheid en IoU-drempels aanpassen en de effecten direct zien.
  • Toegankelijkheid: De webinterface is voor iedereen toegankelijk, waardoor het handig is voor snelle experimenten, educatieve doeleinden en demonstraties.

Voor meer details kun je deze blogpost lezen.

Kan ik Gradio en Ultralytics YOLOv8 samen gebruiken voor onderwijsdoeleinden?

Ja, Gradio en Ultralytics YOLOv8 kunnen samen effectief worden gebruikt voor onderwijsdoeleinden. De intuïtieve webinterface van Gradio maakt het eenvoudig voor studenten en docenten om te werken met geavanceerde deep learning modellen zoals Ultralytics YOLOv8 zonder dat ze geavanceerde programmeervaardigheden nodig hebben. Deze opstelling is ideaal voor het demonstreren van belangrijke concepten in objectdetectie en computer vision, omdat Gradio onmiddellijk visuele feedback geeft die helpt bij het begrijpen van de invloed van verschillende parameters op de detectieprestaties.

Hoe pas ik de betrouwbaarheids- en IoU-drempelwaarden aan in de Gradio-interface voor YOLOv8?

In de Gradio interface voor YOLOv8 kun je de betrouwbaarheids- en IoU drempelwaarden aanpassen met de daarvoor bestemde schuifregelaars. Deze drempels helpen om de voorspellingsnauwkeurigheid en objectscheiding te regelen:

  • Vertrouwensdrempel: Bepaalt het minimale betrouwbaarheidsniveau voor het detecteren van objecten. Schuif om het vereiste vertrouwen te verhogen of te verlagen.
  • IoU-drempel: Stelt de drempelwaarde voor kruising-over-eenheid in om onderscheid te maken tussen overlappende objecten. Pas deze waarde aan om de objectscheiding te verfijnen.

Ga voor meer informatie over deze parameters naar het gedeelte Uitleg parameters.

Wat zijn enkele praktische toepassingen van Ultralytics YOLOv8 met Gradio?

Praktische toepassingen van het combineren van Ultralytics YOLOv8 met Gradio zijn onder andere:

  • Demonstraties van objectdetectie in realtime: Ideaal om te laten zien hoe objectdetectie in realtime werkt.
  • Educatieve hulpmiddelen: Nuttig in academische omgevingen om les te geven in objectdetectie en computer vision concepten.
  • Prototype ontwikkeling: Efficiënt voor het snel ontwikkelen en testen van prototype objectdetectietoepassingen.
  • Gemeenschap en samenwerking: Het gemakkelijk maken om modellen te delen met de gemeenschap voor feedback en samenwerking.

Kijk voor voorbeelden van vergelijkbare use cases op de Ultralytics blog.

Het verstrekken van deze informatie in de documentatie zal helpen bij het verbeteren van de bruikbaarheid en toegankelijkheid van Ultralytics YOLOv8 , waardoor het toegankelijker wordt voor gebruikers van alle expertiseniveaus.



Aangemaakt 2024-02-01, Bijgewerkt 2024-07-05
Auteurs: glenn-jocher (6), ambitious-octopus (1), IvorZhu331 (1), RizwanMunawar (1)

Reacties