Zum Inhalt springen

Interactive Object Detection: Gradio & Ultralytics YOLO11 🚀

Einführung in die interaktive Objektdetektion

This Gradio interface provides an easy and interactive way to perform object detection using the Ultralytics YOLO11 model. Users can upload images and adjust parameters like confidence threshold and intersection-over-union (IoU) threshold to get real-time detection results.



Pass auf: Gradio Integration with Ultralytics YOLO11

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

This section provides the Python code used to create the Gradio interface with the Ultralytics YOLO11 model. Supports classification tasks, detection tasks, segmentation tasks, and key point tasks.

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 NameTypBeschreibung
imgImageDas Bild, auf dem die Objekterkennung durchgeführt werden soll.
conf_thresholdfloatKonfidenzschwelle für die Erkennung von Objekten.
iou_thresholdfloatÜberschneidungsschwelle für die Objekttrennung.

Gradio Interface Komponenten

KomponenteBeschreibung
Bild-EingabeUm das Bild zur Erkennung hochzuladen.
SchieberZur Anpassung der Konfidenz- und IoU-Schwellenwerte.
BildausgabeUm die Erkennungsergebnisse anzuzeigen.

FAQ

How do I use Gradio with Ultralytics YOLO11 for object detection?

To use Gradio with Ultralytics YOLO11 for object detection, you can follow these steps:

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

What are the benefits of using Gradio for Ultralytics YOLO11 object detection?

Using Gradio for Ultralytics YOLO11 object detection offers several benefits:

  • 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.

Can I use Gradio and Ultralytics YOLO11 together for educational purposes?

Yes, Gradio and Ultralytics YOLO11 can be utilized together for educational purposes effectively. Gradio's intuitive web interface makes it easy for students and educators to interact with state-of-the-art deep learning models like Ultralytics YOLO11 without needing advanced programming skills. This setup is ideal for demonstrating key concepts in object detection and computer vision, as Gradio provides immediate visual feedback which helps in understanding the impact of different parameters on the detection performance.

How do I adjust the confidence and IoU thresholds in the Gradio interface for YOLO11?

In the Gradio interface for YOLO11, you can adjust the confidence and IoU thresholds using the sliders provided. These thresholds help control the prediction accuracy and object separation:

  • 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.

What are some practical applications of using Ultralytics YOLO11 with Gradio?

Practical applications of combining Ultralytics YOLO11 with Gradio include:

  • 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 .

Providing this information within the documentation will help in enhancing the usability and accessibility of Ultralytics YOLO11, making it more approachable for users at all levels of expertise.

📅 Created 8 months ago ✏️ Updated 22 days ago

Kommentare