Zum Inhalt springen

Fortgeschrittene Datenvisualisierung: Heatmaps mit Ultralytics YOLO11 🚀

Einführung in Heatmaps

Heatmaps in Colab öffnen

Eine Heatmap, die mit Ultralytics YOLO11 erstellt wird, verwandelt komplexe Daten in eine lebendige, farbkodierte Matrix. Dieses visuelle Tool verwendet ein Farbspektrum, um unterschiedliche Datenwerte darzustellen, wobei wärmere Farbtöne eine höhere Intensität und kühlere Töne niedrigere Werte anzeigen. Heatmaps eignen sich hervorragend zur Visualisierung komplexer Datenmuster, Korrelationen und Anomalien und bieten einen zugänglichen und ansprechenden Ansatz zur Dateninterpretation in verschiedenen Bereichen.



Beobachten: Heatmaps mit Ultralytics YOLO11

Warum sollten Sie Heatmaps für die Datenanalyse wählen?

  • Intuitive Visualisierung der Datenverteilung: Heatmaps vereinfachen das Verständnis der Datenkonzentration und -verteilung und wandeln komplexe Datensätze in leicht verständliche visuelle Formate um.
  • Effiziente Erkennung von Mustern: Durch die Visualisierung von Daten im Heatmap-Format lassen sich Trends, Cluster und Ausreißer leichter erkennen, was eine schnellere Analyse und Erkenntnisse ermöglicht.
  • Verbesserte räumliche Analyse und Entscheidungsfindung: Heatmaps eignen sich hervorragend zur Veranschaulichung räumlicher Beziehungen und helfen bei Entscheidungsprozessen in Bereichen wie Business Intelligence, Umweltstudien und Stadtplanung.

Anwendungen in der realen Welt

Transport Einzelhandel
Ultralytics YOLO11 Heatmap Transport Ultralytics YOLO11 Heatmap Einzelhandel
Ultralytics YOLO11 Heatmap Transport Ultralytics YOLO11 Heatmap Einzelhandel

Heatmaps mit Ultralytics YOLO

# Run a heatmap example
yolo solutions heatmap show=True

# Pass a source video
yolo solutions heatmap source="path/to/video.mp4"

# Pass a custom colormap
yolo solutions heatmap colormap=cv2.COLORMAP_INFERNO

# Heatmaps + object counting
yolo solutions heatmap region="[(20, 400), (1080, 400), (1080, 360), (20, 360)]"
import cv2

from ultralytics import solutions

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

# Video writer
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
video_writer = cv2.VideoWriter("heatmap_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# For object counting with heatmap, you can pass region points.
# region_points = [(20, 400), (1080, 400)]                                      # line points
# region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360)]              # rectangle region
# region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360), (20, 400)]   # polygon points

# Initialize heatmap object
heatmap = solutions.Heatmap(
    show=True,  # display the output
    model="yolo11n.pt",  # path to the YOLO11 model file
    colormap=cv2.COLORMAP_PARULA,  # colormap of heatmap
    # region=region_points,  # object counting with heatmaps, you can pass region_points
    # classes=[0, 2],  # generate heatmap for specific classes i.e person and car.
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()

    if not success:
        print("Video frame is empty or processing is complete.")
        break

    results = heatmap(im0)

    # print(results)  # access the output

    video_writer.write(results.plot_im)  # write the processed frame.

cap.release()
video_writer.release()
cv2.destroyAllWindows()  # destroy all opened windows

Heatmap() Argumente

Hier ist eine Tabelle mit den Heatmap Argumente:

Argument Typ Standard Beschreibung
model str None Pfad zur Ultralytics YOLO .
colormap int cv2.COLORMAP_JET Farbkarte, die für die Heatmap verwendet werden soll.
show_in bool True Kennzeichen, mit dem gesteuert wird, ob die Zählungen im Videostrom angezeigt werden sollen.
show_out bool True Kennzeichen, mit dem gesteuert wird, ob die Anzahl der Ausgänge im Video-Stream angezeigt werden soll.
region list [(20, 400), (1260, 400)] Liste der Punkte, die den Zählbereich definieren.

Sie können auch verschiedene track Argumente im Heatmap Lösung.

Argument Typ Standard Beschreibung
tracker str 'botsort.yaml' Gibt den zu verwendenden Verfolgungsalgorithmus an, z. B., bytetrack.yaml oder botsort.yaml.
conf float 0.3 Legt die Konfidenzschwelle für Erkennungen fest; niedrigere Werte ermöglichen die Verfolgung von mehr Objekten, können aber auch zu falsch positiven Ergebnissen führen.
iou float 0.5 Legt den Schwellenwert für die Überschneidung über die Vereinigung (IoU) zum Filtern von überlappenden Erkennungen fest.
classes list None Filtert die Ergebnisse nach Klassenindex. Zum Beispiel, classes=[0, 2, 3] verfolgt nur die angegebenen Klassen.
verbose bool True Steuert die Anzeige der Verfolgungsergebnisse und liefert eine visuelle Ausgabe der verfolgten Objekte.
device str None Gibt das Gerät für die Inferenz an (z.B., cpu, cuda:0 oder 0). Ermöglicht dem Benutzer die Auswahl zwischen CPU, einem bestimmten GPU oder anderen Rechengeräten für die Modellausführung.

Außerdem sind die unterstützten Visualisierungsargumente unten aufgeführt:

Argument Typ Standard Beschreibung
show bool False Wenn Truezeigt die kommentierten Bilder oder Videos in einem Fenster an. Nützlich für sofortiges visuelles Feedback während der Entwicklung oder des Testens.
line_width None or int None Gibt die Linienbreite von Begrenzungsrahmen an. Wenn Nonewird die Linienbreite automatisch an die Bildgröße angepasst. Bietet visuelle Anpassung für Klarheit.

Heatmap COLORMAPs

Farbkarte Name Beschreibung
cv::COLORMAP_AUTUMN Farbkarte Herbst
cv::COLORMAP_BONE Knochenfarbkarte
cv::COLORMAP_JET Jet-Farbkarte
cv::COLORMAP_WINTER Farbkarte Winter
cv::COLORMAP_RAINBOW Regenbogen-Farbkarte
cv::COLORMAP_OCEAN Farbkarte der Ozeane
cv::COLORMAP_SUMMER Farbkarte Sommer
cv::COLORMAP_SPRING Farbkarte Frühling
cv::COLORMAP_COOL Coole Farbkarte
cv::COLORMAP_HSV HSV-Farbkarte (Farbton, Sättigung, Wert)
cv::COLORMAP_PINK Rosa Farbkarte
cv::COLORMAP_HOT Heiße Farbkarte
cv::COLORMAP_PARULA Parula Farbkarte
cv::COLORMAP_MAGMA Magma-Farbkarte
cv::COLORMAP_INFERNO Inferno Farbkarte
cv::COLORMAP_PLASMA Plasma-Farbkarte
cv::COLORMAP_VIRIDIS Viridis-Farbkarte
cv::COLORMAP_CIVIDIS Cividis Farbkarte
cv::COLORMAP_TWILIGHT Farbkarte der Dämmerung
cv::COLORMAP_TWILIGHT_SHIFTED Verschobene Farbkarte der Dämmerung
cv::COLORMAP_TURBO Turbo-Farbkarte
cv::COLORMAP_DEEPGREEN Deep Green Farbkarte

Diese Farbkarten werden in der Regel zur Visualisierung von Daten mit verschiedenen Farbdarstellungen verwendet.

Wie Heatmaps in Ultralytics funktionierenYOLO11

Die Heatmap-Lösung in Ultralytics YOLO11 erweitert die ObjectCounter-Klasse zur Erzeugung und Visualisierung von Bewegungsmustern in Videoströmen. Bei der Initialisierung erstellt die Lösung eine leere Heatmap-Ebene, die aktualisiert wird, wenn sich Objekte durch das Bild bewegen.

Für jedes erkannte Objekt die Lösung:

  1. Verfolgt das Objekt über Frames hinweg mit den Tracking-Fähigkeiten von YOLO11
  2. Aktualisiert die Intensität der Heatmap an der Position des Objekts
  3. Wendet eine ausgewählte Farbkarte an, um die Intensitätswerte zu visualisieren
  4. Überlagert die farbige Heatmap auf dem Originalrahmen

Das Ergebnis ist eine dynamische Visualisierung, die sich im Laufe der Zeit aufbaut und Verkehrsmuster, Menschenansammlungen oder andere räumliche Verhaltensweisen in Ihren Videodaten erkennen lässt.

FAQ

Wie erstellt Ultralytics YOLO11 Heatmaps und was sind ihre Vorteile?

Ultralytics YOLO11 erzeugt Heatmaps, indem es komplexe Daten in eine farbcodierte Matrix umwandelt, in der verschiedene Farbtöne die Datenintensität darstellen. Heatmaps erleichtern die Visualisierung von Mustern, Korrelationen und Anomalien in den Daten. Wärmere Farbtöne zeigen höhere Werte an, während kühlere Töne niedrigere Werte darstellen. Zu den wichtigsten Vorteilen gehören die intuitive Visualisierung der Datenverteilung, die effiziente Erkennung von Mustern und die verbesserte räumliche Analyse für die Entscheidungsfindung. Weitere Einzelheiten und Konfigurationsoptionen finden Sie im Abschnitt Heatmap-Konfiguration.

Kann ich mit Ultralytics YOLO11 gleichzeitig eine Objektverfolgung durchführen und eine Heatmap erstellen?

Ja, Ultralytics YOLO11 unterstützt die gleichzeitige Verfolgung von Objekten und die Erstellung von Heatmaps. Dies kann erreicht werden durch seine Heatmap Lösung mit Objektverfolgungsmodellen integriert. Dazu müssen Sie das Heatmap-Objekt initialisieren und die Tracking-Funktionen von YOLO11 nutzen. Hier ist ein einfaches Beispiel:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
heatmap = solutions.Heatmap(colormap=cv2.COLORMAP_PARULA, show=True, model="yolo11n.pt")

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        break
    results = heatmap(im0)
cap.release()
cv2.destroyAllWindows()

Weitere Hinweise finden Sie auf der Seite Tracking-Modus.

Was unterscheidet Ultralytics YOLO11 Heatmaps von anderen Datenvisualisierungstools wie denen von OpenCV oder Matplotlib?

Ultralytics YOLO11 Heatmaps sind speziell für die Integration mit den Objekterkennungs- und -verfolgungsmodellen von konzipiert und bieten eine End-to-End-Lösung für die Echtzeit-Datenanalyse. Im Gegensatz zu generischen Visualisierungstools wie OpenCV oder Matplotlib sind YOLO11 Heatmaps für Leistung und automatisierte Verarbeitung optimiert und unterstützen Funktionen wie persistentes Tracking, Anpassung des Abklingfaktors und Video-Overlay in Echtzeit. Weitere Informationen zu den einzigartigen Funktionen von YOLO11 finden Sie in der Ultralytics YOLO11 Einführung.

Wie kann ich mit Ultralytics YOLO11 nur bestimmte Objektklassen in Heatmaps visualisieren?

Sie können bestimmte Objektklassen visualisieren, indem Sie die gewünschten Klassen im Feld track() Methode des Modells YOLO . Wenn Sie zum Beispiel nur Autos und Personen visualisieren wollen (unter der Annahme, dass ihre Klassenindizes 0 und 2 sind), können Sie die classes Parameter entsprechend.

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
heatmap = solutions.Heatmap(show=True, model="yolo11n.pt", classes=[0, 2])

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        break
    results = heatmap(im0)
cap.release()
cv2.destroyAllWindows()

Warum sollten Unternehmen Ultralytics YOLO11 für die Erstellung von Heatmaps in der Datenanalyse wählen?

Ultralytics YOLO11 bietet eine nahtlose Integration von fortschrittlicher Objekterkennung und Echtzeit-Heatmap-Generierung und ist damit die ideale Wahl für Unternehmen, die ihre Daten effektiver visualisieren möchten. Zu den wichtigsten Vorteilen gehören die intuitive Visualisierung der Datenverteilung, die effiziente Erkennung von Mustern und die verbesserte räumliche Analyse für eine bessere Entscheidungsfindung. Darüber hinaus ist YOLO11 mit seinen hochmodernen Funktionen wie persistentem Tracking, anpassbaren Farbkarten und der Unterstützung verschiedener Exportformate anderen Tools wie TensorFlow und OpenCV für umfassende Datenanalysen. Erfahren Sie mehr über Geschäftsanwendungen unter Ultralytics Plans.

📅 Erstellt vor 1 Jahr ✏️ Aktualisiert vor 5 Tagen

Kommentare