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.

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 PIL.Image as Image
import gradio as gr

from ultralytics import ASSETS, 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,
        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.


Erstellt am 2024-02-01, Aktualisiert am 2024-02-07
Autoren: chr043416@gmail.com (1), glenn-jocher (1)

Kommentare