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.
So installierst du das Gradio
Wie man die Schnittstelle benutzt
- Bild hochladen: Klicke auf "Bild hochladen", um eine Bilddatei für die Objekterkennung auszuwählen.
- 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.
- 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 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()
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. |