Analytik mit Ultralytics YOLO26

Einführung

Dieser Leitfaden bietet einen umfassenden Überblick über drei grundlegende Arten von Datenvisualisierungen: Liniendiagramme, Balkendiagramme und Tortendiagramme. Jeder Abschnitt enthält Schritt-für-Schritt-Anleitungen und Code-Schnipsel zur Erstellung dieser Visualisierungen mit Python.



Watch: How to generate Analytical Graphs using Ultralytics | Line Graphs, Bar Plots, Area and Pie Charts

Visuelle Beispiele

LiniendiagrammBalkendiagrammTortendiagramm
YOLO-Analytik-Liniendiagramm für Objekt-TrackingYOLO-Analytik-Balkendiagramm für ErkennungsanzahlenYOLO-Analytik-Tortendiagramm für Klassenverteilung

Warum Diagramme wichtig sind

  • Liniendiagramme sind ideal, um Veränderungen über kurze und lange Zeiträume zu verfolgen und Veränderungen für mehrere Gruppen im selben Zeitraum zu vergleichen.
  • Balkendiagramme hingegen eignen sich für den Vergleich von Mengen über verschiedene Kategorien hinweg und zur Darstellung von Beziehungen zwischen einer Kategorie und ihrem numerischen Wert.
  • Schließlich sind Tortendiagramme effektiv, um Proportionen zwischen Kategorien und Teile eines Ganzen zu veranschaulichen.
Analytik mit Ultralytics YOLO
yolo solutions analytics show=True

# Pass the source
yolo solutions analytics source="path/to/video.mp4"

# Generate the pie chart
yolo solutions analytics analytics_type="pie" show=True

# Generate the bar plots
yolo solutions analytics analytics_type="bar" show=True

# Generate the area plots
yolo solutions analytics analytics_type="area" show=True

Analytics-Argumente

Here's a table outlining the Analytics arguments:

ArgumentTypStandardBeschreibung
modelstrNonePfad zu einer Ultralytics YOLO-Modelldatei.
analytics_typestr'line'Art des Diagramms, d.h. line, bar, area oder pie.

Du kannst auch verschiedene track-Argumente in der Analytics-Lösung nutzen.

ArgumentTypStandardBeschreibung
trackerstr'botsort.yaml'Legt den zu verwendenden Tracking-Algorithmus fest, z. B. bytetrack.yaml oder botsort.yaml.
conffloat0.1Legt den Konfidenz-Schwellenwert für Detektionen fest; niedrigere Werte ermöglichen die Verfolgung von mehr Objekten, können aber zu falsch-positiven Ergebnissen führen.
ioufloat0.7Legt den Intersection over Union (IoU) Schwellenwert zum Filtern überlappender Detektionen fest.
classeslistNoneFiltert Ergebnisse nach Klassen-Index. Beispiel: classes=[0, 2, 3] verfolgt nur die angegebenen Klassen.
verboseboolTrueSteuert die Anzeige der Tracking-Ergebnisse und liefert eine visuelle Ausgabe der verfolgten Objekte.
devicestrNoneSpezifiziert das Gerät für die Inferenz (z. B. cpu, cuda:0 oder 0). Ermöglicht die Wahl zwischen CPU, einer spezifischen GPU oder anderen Recheneinheiten zur Modellausführung.

Zusätzlich werden die folgenden Visualisierungsargumente unterstützt:

ArgumentTypStandardBeschreibung
showboolFalseWenn True, werden die annotierten Bilder oder Videos in einem Fenster angezeigt. Nützlich für direktes visuelles Feedback während der Entwicklung oder beim Testen.
line_widthint or NoneNoneGibt die Linienbreite der Bounding-Boxen an. Wenn None, wird die Linienbreite automatisch basierend auf der Bildgröße angepasst. Bietet visuelle Anpassung für mehr Klarheit.

Fazit

Zu verstehen, wann und wie verschiedene Arten von Visualisierungen verwendet werden, ist entscheidend für eine effektive Datenanalyse. Liniendiagramme, Balkendiagramme und Tortendiagramme sind grundlegende Werkzeuge, die dir helfen können, die Geschichte deiner Daten klarer und effektiver zu vermitteln. Die Ultralytics YOLO26-Analytik-Lösung bietet einen optimierten Weg, diese Visualisierungen aus deinen Objekterkennungs- und Tracking-Ergebnissen zu generieren, wodurch es einfacher wird, aussagekräftige Erkenntnisse aus deinen visuellen Daten zu gewinnen.

FAQ

Wie erstelle ich ein Liniendiagramm mit der Ultralytics YOLO26-Analytik?

Um ein Liniendiagramm mit der Ultralytics YOLO26-Analytik zu erstellen, folge diesen Schritten:

  1. Lade ein YOLO26-Modell und öffne deine Videodatei.
  2. Initialisiere die Analytics-Klasse mit dem Typ auf "line" gesetzt.
  3. Iteriere durch die Videobilder und aktualisiere das Liniendiagramm mit relevanten Daten, wie z. B. Objektanzahlen pro Bild.
  4. Speichere das Ausgabe-Video, das das Liniendiagramm anzeigt.

Beispiel:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="line",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

Für weitere Details zur Konfiguration der Analytics-Klasse, besuche den Abschnitt Analytik mit Ultralytics YOLO26.

Welche Vorteile hat die Verwendung von Ultralytics YOLO26 zum Erstellen von Balkendiagrammen?

Die Verwendung von Ultralytics YOLO26 zum Erstellen von Balkendiagrammen bietet mehrere Vorteile:

  1. Echtzeit-Datenvisualisierung: Integriere Objekterkennungs-Ergebnisse nahtlos in Balkendiagramme für dynamische Aktualisierungen.
  2. Einfache Bedienung: Eine einfache API und Funktionen machen die Implementierung und Visualisierung von Daten unkompliziert.
  3. Anpassbarkeit: Passe Titel, Beschriftungen, Farben und mehr an, um deinen spezifischen Anforderungen gerecht zu werden.
  4. Effizienz: Verarbeite effizient große Datenmengen und aktualisiere Diagramme in Echtzeit während der Videoverarbeitung.

Verwende das folgende Beispiel, um ein Balkendiagramm zu generieren:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="bar",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

Um mehr zu erfahren, besuche den Abschnitt Balkendiagramm im Leitfaden.

Warum sollte ich Ultralytics YOLO26 zum Erstellen von Tortendiagrammen in meinen Datenvisualisierungsprojekten verwenden?

Ultralytics YOLO26 ist eine exzellente Wahl für das Erstellen von Tortendiagrammen, da:

  1. Integration mit Objekterkennung: Integriere Objekterkennungsergebnisse direkt in Tortendiagramme für sofortige Erkenntnisse.
  2. Benutzerfreundliche API: Einfach einzurichten und zu verwenden mit minimalem Code.
  3. Anpassbar: Diverse Anpassungsoptionen für Farben, Beschriftungen und mehr.
  4. Echtzeit-Aktualisierungen: Verarbeite und visualisiere Daten in Echtzeit, was ideal für Video-Analytik-Projekte ist.

Hier ist ein kurzes Beispiel:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="pie",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

Für weitere Informationen siehe den Abschnitt Tortendiagramm im Leitfaden.

Kann Ultralytics YOLO26 verwendet werden, um Objekte zu verfolgen und Visualisierungen dynamisch zu aktualisieren?

Ja, Ultralytics YOLO26 kann verwendet werden, um Objekte zu verfolgen und Visualisierungen dynamisch zu aktualisieren. Es unterstützt das Tracking mehrerer Objekte in Echtzeit und kann verschiedene Visualisierungen wie Liniendiagramme, Balkendiagramme und Tortendiagramme basierend auf den Daten der verfolgten Objekte aktualisieren.

Beispiel für das Tracking und die Aktualisierung eines Liniendiagramms:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="line",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

Um mehr über die vollständige Funktionalität zu erfahren, siehe den Abschnitt Tracking.

Was unterscheidet Ultralytics YOLO26 von anderen Objekterkennungslösungen wie OpenCV und TensorFlow?

Ultralytics YOLO26 hebt sich aus mehreren Gründen von anderen Objekterkennungslösungen wie OpenCV und TensorFlow ab:

  1. Modernste Genauigkeit: YOLO26 bietet überlegene Genauigkeit bei Objekterkennungs-, Segmentierungs- und Klassifizierungsaufgaben.
  2. Einfache Bedienung: Die benutzerfreundliche API ermöglicht eine schnelle Implementierung und Integration ohne umfangreiches Programmieren.
  3. Echtzeit-Performance: Optimiert für High-Speed-Inferenz, geeignet für Echtzeitanwendungen.
  4. Vielfältige Anwendungen: Unterstützt verschiedene Aufgaben, einschließlich Multi-Objekt-Tracking, Training benutzerdefinierter Modelle und Export in verschiedene Formate wie ONNX, TensorRT und CoreML.
  5. Umfassende Dokumentation: Umfangreiche Dokumentation und Blog-Ressourcen, um Nutzer durch jeden Schritt zu führen.

Für detailliertere Vergleiche und Anwendungsfälle erkunde unseren Ultralytics Blog.

Kommentare