Zum Inhalt springen

Interaktive Objekterkennung: Gradio & Ultralytics YOLOv8 🚀

EinfĂŒhrung in die interaktive Objektdetektion

Diese Gradio-Schnittstelle bietet eine einfache und interaktive Möglichkeit, die Objekterkennung anhand des Ultralytics YOLOv8 Modells. Die Nutzer können Bilder hochladen und Parameter wie die Konfidenzschwelle und die Intersection-over-Union (IoU)-Schwelle anpassen, um Erkennungsergebnisse in Echtzeit zu erhalten.



Pass auf: Gradio-Integration mit Ultralytics YOLOv8

Warum Gradio fĂŒr die Objekterkennung verwenden?

  • Benutzerfreundliches Interface: Gradio bietet eine unkomplizierte Plattform, auf der du Bilder hochladen und die Erkennungsergebnisse visualisieren kannst, ohne dass du Programmierkenntnisse brauchst.
  • Anpassungen in Echtzeit: Parameter wie die Konfidenz- und IoU-Schwellenwerte können im laufenden Betrieb angepasst werden, was eine sofortige RĂŒckmeldung und Optimierung der Aufdeckungsergebnisse ermöglicht.
  • Breite ZugĂ€nglichkeit: Die Gradio-WeboberflĂ€che ist fĂŒr jeden zugĂ€nglich und eignet sich daher hervorragend fĂŒr Demonstrationen, Bildungszwecke und schnelle Experimente.

Gradio Beispiel-Screenshot

So installierst du das Gradio

pip install gradio

Wie man die Schnittstelle benutzt

  1. Bild hochladen: Klicke auf "Bild hochladen", um eine Bilddatei fĂŒr die Objekterkennung auszuwĂ€hlen.
  2. Parameter anpassen:
    • Konfidenzschwelle: Mit dem Schieberegler kannst du die minimale Konfidenzschwelle fĂŒr die Erkennung von Objekten festlegen.
    • IoU-Schwellenwert: Mit dem Schieberegler kannst du den IoU-Schwellenwert fĂŒr die Unterscheidung verschiedener Objekte festlegen.
  3. Ergebnisse anzeigen: Das verarbeitete Bild mit den erkannten Objekten und ihren Beschriftungen wird angezeigt.

Beispiele fĂŒr AnwendungsfĂ€lle

  • Beispielbild 1: Buserkennung mit Standardschwellenwerten.
  • Beispielbild 2: Erkennung auf einem Sportbild mit Standardschwellenwerten.

Verwendungsbeispiel

Dieser Abschnitt enthĂ€lt den Python Code, der verwendet wird, um die Gradio-Schnittstelle mit dem Ultralytics YOLOv8 Modell zu erstellen. UnterstĂŒtzt Klassifizierungsaufgaben, Erkennungsaufgaben, Segmentierungsaufgaben und SchlĂŒsselpunktaufgaben.

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

Parameter ErlÀuterung

Parameter Name Typ Beschreibung
img Image Das Bild, auf dem die Objekterkennung durchgefĂŒhrt werden soll.
conf_threshold float Konfidenzschwelle fĂŒr die Erkennung von Objekten.
iou_threshold float Überschneidungsschwelle fĂŒr die Objekttrennung.

Gradio Interface Komponenten

Komponente Beschreibung
Bild-Eingabe Um das Bild zur Erkennung hochzuladen.
Schieber Zur Anpassung der Konfidenz- und IoU-Schwellenwerte.
Bildausgabe Um die Erkennungsergebnisse anzuzeigen.

FAQ

Wie verwende ich Gradio mit Ultralytics YOLOv8 zur Objekterkennung?

Um Gradio mit Ultralytics YOLOv8 fĂŒr die Objekterkennung zu verwenden, kannst du die folgenden Schritte ausfĂŒhren:

  1. Installiere Gradio: Benutze den Befehl pip install gradio.
  2. Schnittstelle erstellen: Schreibe ein Python Skript, um die Gradio-Schnittstelle zu initialisieren. Details findest du im Codebeispiel in der Dokumentation.
  3. Hochladen und Anpassen: Lade dein Bild hoch und passe die Konfidenz- und IoU-Schwellenwerte auf der Gradio-BenutzeroberflÀche an, um Objekterkennungsergebnisse in Echtzeit zu erhalten.

Hier ist ein minimaler Codeschnipsel als Referenz:

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

Welche Vorteile hat die Verwendung von Gradio fĂŒr die Ultralytics YOLOv8 Objekterkennung?

Die Verwendung von Gradio fĂŒr die Ultralytics YOLOv8 Objekterkennung bietet mehrere Vorteile:

  • Benutzerfreundliches Interface: Gradio bietet eine intuitive BenutzeroberflĂ€che, mit der du Bilder hochladen und die Erkennungsergebnisse ohne Programmieraufwand visualisieren kannst.
  • Anpassungen in Echtzeit: Du kannst Erkennungsparameter wie die Konfidenz- und IoU-Schwellenwerte dynamisch anpassen und die Auswirkungen sofort sehen.
  • ZugĂ€nglichkeit: Die WeboberflĂ€che ist fĂŒr jedermann zugĂ€nglich, was sie fĂŒr schnelle Experimente, Bildungszwecke und Demonstrationen nĂŒtzlich macht.

Weitere Informationen findest du in diesem Blogbeitrag.

Kann ich Gradio und Ultralytics YOLOv8 zusammen fĂŒr Bildungszwecke nutzen?

Ja, Gradio und Ultralytics YOLOv8 können zusammen fĂŒr Bildungszwecke effektiv genutzt werden. Die intuitive WeboberflĂ€che von Gradio macht es SchĂŒlerinnen und SchĂŒlern sowie LehrkrĂ€ften leicht, mit modernen Deep-Learning-Modellen wie Ultralytics YOLOv8 zu interagieren, ohne dass sie fortgeschrittene Programmierkenntnisse benötigen. Dieses Setup ist ideal, um wichtige Konzepte der Objekterkennung und des Computer Vision zu demonstrieren, da Gradio sofortiges visuelles Feedback liefert, das hilft, die Auswirkungen verschiedener Parameter auf die Erkennungsleistung zu verstehen.

Wie kann ich die Konfidenz- und IoU-Schwellenwerte in der Gradio-Schnittstelle fĂŒr YOLOv8 anpassen?

In der Gradio-BenutzeroberflĂ€che fĂŒr YOLOv8 kannst du die Konfidenz- und IoU-Schwellenwerte mithilfe der Schieberegler anpassen. Diese Schwellenwerte helfen dabei, die Vorhersagegenauigkeit und die Objekttrennung zu kontrollieren:

  • Konfidenzschwelle: Legt die Mindestwahrscheinlichkeit fĂŒr die Erkennung von Objekten fest. Schiebe den Regler, um die erforderliche Konfidenz zu erhöhen oder zu verringern.
  • IoU-Schwellenwert: Legt den Schwellenwert fĂŒr die Unterscheidung zwischen sich ĂŒberschneidenden Objekten fest. Passe diesen Wert an, um die Objekttrennung zu verfeinern.

Weitere Informationen zu diesen Parametern findest du im Abschnitt ParametererklÀrung.

Welche praktischen Anwendungen gibt es fĂŒr die Nutzung von Ultralytics YOLOv8 mit Gradio?

Zu den praktischen Anwendungen der Kombination von Ultralytics YOLOv8 mit Gradio gehören:

  • Demonstrationen zur Objekterkennung in Echtzeit: Ideal, um zu zeigen, wie die Objekterkennung in Echtzeit funktioniert.
  • Lehrmittel: NĂŒtzlich fĂŒr den Unterricht in der Schule, um Konzepte der Objekterkennung und der Computer Vision zu vermitteln.
  • Entwicklung von Prototypen: Effizient fĂŒr die schnelle Entwicklung und das Testen von Prototyp-Anwendungen zur Objekterkennung.
  • Gemeinschaft und Zusammenarbeit: Es ist einfach, Modelle mit der Community zu teilen, um Feedback und Zusammenarbeit zu ermöglichen.

Beispiele fĂŒr Ă€hnliche AnwendungsfĂ€lle findest du auf dem BlogUltralytics .

Die Bereitstellung dieser Informationen in der Dokumentation trĂ€gt dazu bei, die Benutzerfreundlichkeit und ZugĂ€nglichkeit von Ultralytics YOLOv8 zu verbessern und macht es fĂŒr Benutzer aller Kenntnisstufen zugĂ€nglicher.



Erstellt am 2024-02-01, Aktualisiert am 2024-07-05
Autoren: glenn-jocher (6), ambitious-octopus (1), IvorZhu331 (1), RizwanMunawar (1)

Kommentare