Interaktive Objekterkennung: Gradio & Ultralytics YOLO11 🚀
Einführung in die interaktive Objekterkennung
Diese Gradio-Schnittstelle bietet eine einfache und interaktive Möglichkeit, die Objekterkennung anhand des Ultralytics YOLO11 Modells. Die Benutzer können Bilder hochladen und Parameter wie die Konfidenzschwelle und die Intersection-over-Union (IoU)-Schwelle anpassen, um Erkennungsergebnisse in Echtzeit zu erhalten.
Beobachten: Gradio Integration mit Ultralytics YOLO11
Warum Gradio für die Objekterkennung verwenden?
- Benutzerfreundliches Interface: Gradio bietet eine unkomplizierte Plattform zum Hochladen von Bildern und zur Visualisierung von Erkennungsergebnissen, ohne dass ein Programmcode erforderlich ist.
- Anpassungen in Echtzeit: Parameter wie Konfidenz- und IoU-Schwellenwerte können im laufenden Betrieb angepasst werden, was eine sofortige Rückmeldung und Optimierung der Erkennungsergebnisse ermöglicht.
- Breite Zugänglichkeit: Die Gradio-Webschnittstelle ist für jedermann zugänglich und eignet sich daher hervorragend für Demonstrationen, Lehrzwecke und schnelle Experimente.
So installieren Sie Gradio
Verwendung der Schnittstelle
- Bild hochladen: Klicken Sie auf "Bild hochladen", um eine Bilddatei für die Objekterkennung auszuwählen.
- Parameter anpassen:
- Zuverlässigkeitsschwelle: Schieberegler zum Einstellen des Mindestvertrauensniveaus für die Erkennung von Objekten.
- IoU-Schwellenwert: Schieberegler zur Einstellung des IoU-Schwellenwerts für die Unterscheidung verschiedener Objekte.
- Ergebnisse anzeigen: Das verarbeitete Bild mit den erkannten Objekten und ihren Beschriftungen wird angezeigt.
Beispielhafte Anwendungsfälle
- Beispielbild 1: Buserkennung mit Standardschwellenwerten.
- Beispielbild 2: Erkennung auf einem Sportbild mit Standardschwellenwerten.
Beispiel für die Verwendung
Dieser Abschnitt enthält den Python Code, der für die Erstellung der Gradio-Schnittstelle mit dem Ultralytics YOLO11 Modell verwendet wird. Unterstützt Klassifizierungsaufgaben, Erkennungsaufgaben, Segmentierungsaufgaben und Schlüsselpunktaufgaben.
import gradio as gr
import PIL.Image as Image
from ultralytics import ASSETS, YOLO
model = YOLO("yolo11n.pt")
def predict_image(img, conf_threshold, iou_threshold):
"""Predicts objects in an image using a YOLO11 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 YOLO11n 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 |
Schwellenwert für die Trennung von Objekten durch Überschneidung. |
Komponenten der Gradio-Schnittstelle
Komponente | Beschreibung |
---|---|
Bild-Eingabe | Zum Hochladen des Bildes für die Erkennung. |
Schieberegler | Anpassung der Konfidenz- und IoU-Schwellenwerte. |
Bildausgabe | So zeigen Sie die Erkennungsergebnisse an. |
FAQ
Wie verwende ich Gradio mit Ultralytics YOLO11 zur Objekterkennung?
Um Gradio mit Ultralytics YOLO11 für die Objekterkennung zu verwenden, können Sie die folgenden Schritte ausführen:
- Gradio installieren: Verwenden Sie den Befehl
pip install gradio
. - Schnittstelle erstellen: Schreiben Sie ein Python Skript, um die Gradio-Schnittstelle zu initialisieren. Einzelheiten können Sie dem Codebeispiel in der Dokumentation entnehmen.
- Hochladen und Anpassen: Laden Sie Ihr Bild hoch und passen Sie die Konfidenz- und IoU-Schwellenwerte auf der Gradio-Benutzeroberfläche an, um Ergebnisse der Objekterkennung in Echtzeit zu erhalten.
Hier ist ein minimaler Codeschnipsel als Referenz:
import gradio as gr
from ultralytics import YOLO
model = YOLO("yolo11n.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 YOLO11",
description="Upload images for YOLO11 object detection.",
)
iface.launch()
Welche Vorteile bietet die Verwendung von Gradio für die Ultralytics YOLO11 Objekterkennung?
Die Verwendung von Gradio für die Ultralytics YOLO11 Objekterkennung bietet mehrere Vorteile:
- Benutzerfreundliches Interface: Gradio bietet eine intuitive Benutzeroberfläche zum Hochladen von Bildern und zur Visualisierung von Erkennungsergebnissen ohne jeglichen Programmieraufwand.
- Anpassungen in Echtzeit: Sie können Erkennungsparameter wie Konfidenz- und IoU-Schwellenwerte dynamisch anpassen und die Auswirkungen sofort sehen.
- Zugänglichkeit: Die Weboberfläche ist für jedermann zugänglich und eignet sich daher für schnelle Experimente, Lehrzwecke und Demonstrationen.
Weitere Einzelheiten können Sie in diesem Blogbeitrag nachlesen.
Kann ich Gradio und Ultralytics YOLO11 zusammen für Bildungszwecke verwenden?
Ja, Gradio und Ultralytics YOLO11 können zusammen für Bildungszwecke effektiv genutzt werden. Die intuitive Weboberfläche von Gradio macht es Studenten und Pädagogen leicht, mit hochmodernen Deep-Learning-Modellen wie Ultralytics YOLO11 zu interagieren, ohne dass sie fortgeschrittene Programmierkenntnisse benötigen. Dieses Setup ist ideal für die Demonstration von Schlüsselkonzepten in der Objekterkennung und Computer Vision, 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 YOLO11 anpassen?
In der Gradio-Benutzeroberfläche für YOLO11 können Sie die Konfidenz- und IoU-Schwellenwerte mithilfe der Schieberegler einstellen. Mit diesen Schwellenwerten lassen sich die Vorhersagegenauigkeit und die Objekttrennung steuern:
- Konfidenzschwelle: Bestimmt die Mindestwahrscheinlichkeit für die Erkennung von Objekten. Schieben Sie den Schieberegler, um die erforderliche Sicherheit zu erhöhen oder zu verringern.
- IoU-Schwellenwert: Legt den Schwellenwert für die Unterscheidung zwischen sich überschneidenden Objekten fest. Passen Sie diesen Wert an, um die Objekttrennung zu verfeinern.
Weitere Informationen zu diesen Parametern finden Sie im Abschnitt Parametererklärung.
Welche praktischen Anwendungen gibt es für die Verwendung von Ultralytics YOLO11 mit Gradio?
Zu den praktischen Anwendungen der Kombination von Ultralytics YOLO11 mit Gradio gehören:
- Demonstrationen der Objekterkennung in Echtzeit: Ideal, um zu zeigen, wie die Objekterkennung in Echtzeit funktioniert.
- Lehrmittel: Nützlich im akademischen Umfeld, um Konzepte der Objekterkennung und der Computer Vision zu lehren.
- Entwicklung von Prototypen: Effizient für die schnelle Entwicklung und das Testen von Prototyp-Anwendungen zur Objekterkennung.
- Gemeinschaft und Kollaboration: Einfacher Austausch von Modellen mit der Community für Feedback und Zusammenarbeit.
Beispiele für ähnliche Anwendungsfälle finden Sie auf dem BlogUltralytics .
Die Bereitstellung dieser Informationen in der Dokumentation wird dazu beitragen, die Benutzerfreundlichkeit und Zugänglichkeit von Ultralytics YOLO11 zu verbessern, so dass sie für Benutzer aller Kenntnisstufen leichter zugänglich ist.