Zum Inhalt springen

Erweiterte Datenvisualisierung: Heatmaps mit Ultralytics YOLO11 🚀

Einführung in Heatmaps

Open Heatmaps In Colab

Eine mit Ultralytics YOLO11 generierte Heatmap wandelt komplexe Daten in eine lebendige, farbcodierte Matrix um. Dieses visuelle Werkzeug verwendet ein Farbspektrum, um unterschiedliche Datenwerte darzustellen, wobei wärmere Farbtöne höhere Intensitäten und kühlere Töne niedrigere Werte signalisieren. Heatmaps zeichnen sich durch die Visualisierung komplizierter Datenmuster, Korrelationen und Anomalien aus und bieten einen zugänglichen und ansprechenden Ansatz zur Dateninterpretation in verschiedenen Bereichen.



Ansehen: Heatmaps mit Ultralytics YOLO11 verwenden

Warum Heatmaps für die Datenanalyse wählen?

  • Intuitive Visualisierung der Datenverteilung: Heatmaps vereinfachen das Verständnis von Datenkonzentration und -verteilung und wandeln komplexe Datensätze in leicht verständliche visuelle Formate um.
  • Effiziente Mustererkennung: 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 sind maßgeblich an der Veranschaulichung räumlicher Beziehungen beteiligt und unterstützen Entscheidungsprozesse in Sektoren wie Business Intelligence, Umweltstudien und Stadtplanung.

Anwendungen in der realen Welt

Transport Einzelhandel
Ultralytics YOLO11 Transport-Heatmap Ultralytics YOLO11 Retail Heatmap
Ultralytics YOLO11 Transport-Heatmap Ultralytics YOLO11 Retail Heatmap

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 Modelldatei.
colormap int cv2.COLORMAP_JET Zu verwendende Colormap für die Heatmap.
show_in bool True Flag zur Steuerung, ob die In-Zählungen im Videostream angezeigt werden sollen.
show_out bool True Flag zur Steuerung, ob die Out-Zählungen im Videostream angezeigt werden sollen.
region list '[(20, 400), (1260, 400)]' Liste der Punkte, die den Zählbereich definieren.

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

Argument Typ Standard Beschreibung
tracker str 'botsort.yaml' Gibt den zu verwendenden Tracking-Algorithmus an, z. B. bytetrack.yaml oder botsort.yaml.
conf float 0.3 Legt den Konfidenzschwellenwert für Erkennungen fest; niedrigere Werte ermöglichen die Verfolgung von mehr Objekten, können aber auch falsch positive Ergebnisse liefern.
iou float 0.5 Legt den Intersection over Union (IoU)-Schwellenwert zum Filtern überlappender Erkennungen fest.
classes list None Filtert Ergebnisse nach Klassenindex. Zum Beispiel, classes=[0, 2, 3] verfolgt nur die angegebenen Klassen.
verbose bool True Steuert die Anzeige der Tracking-Ergebnisse und bietet 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 es Benutzern, zwischen CPU, einer bestimmten GPU oder anderen Rechengeräten für die Modellausführung zu wählen.

Zusätzlich sind die unterstützten Visualisierungsargumente unten aufgeführt:

Argument Typ Standard Beschreibung
show bool False Wenn Trueaktiviert, werden die annotierten Bilder oder Videos in einem Fenster angezeigt. Nützlich für sofortiges visuelles Feedback während der Entwicklung oder des Testens.
line_width None or int None Gibt die Linienbreite der Begrenzungsrahmen an. Wenn None, wird die Linienbreite automatisch an die Bildgröße angepasst. Bietet eine visuelle Anpassung für mehr Klarheit.
show_conf bool True Zeigt den Konfidenzwert für jede Erkennung zusammen mit der Beschriftung an. Gibt Einblick in die Sicherheit des Modells für jede Erkennung.
show_labels bool True Zeigt Beschriftungen für jede Erkennung in der visuellen Ausgabe an. Ermöglicht ein sofortiges Verständnis der erkannten Objekte.

Heatmap-Farbschemata

Colormap-Name Beschreibung
cv::COLORMAP_AUTUMN Herbstfarben-Karte
cv::COLORMAP_BONE Knochen-Farbzuordnung
cv::COLORMAP_JET Jet-Farbkarte
cv::COLORMAP_WINTER Winter-Farbkarte
cv::COLORMAP_RAINBOW Rainbow-Farbkarte
cv::COLORMAP_OCEAN Ozean-Farbkarte
cv::COLORMAP_SUMMER Sommerfarbkarte
cv::COLORMAP_SPRING Spring-Farbtabelle
cv::COLORMAP_COOL Coole Farbkarte
cv::COLORMAP_HSV HSV-Farbkarte (Farbton, Sättigung, Wert)
cv::COLORMAP_PINK Pinke Farbkarte
cv::COLORMAP_HOT Hot-Farbkarte
cv::COLORMAP_PARULA Parula-Farbkarte
cv::COLORMAP_MAGMA Magma-Farbkarte
cv::COLORMAP_INFERNO Inferno-Farbkarte
cv::COLORMAP_PLASMA Plasma-Farbzuordnung
cv::COLORMAP_VIRIDIS Viridis-Farbkarte
cv::COLORMAP_CIVIDIS Cividis-Farbkarte
cv::COLORMAP_TWILIGHT Twilight-Farbkarte
cv::COLORMAP_TWILIGHT_SHIFTED Verschobene Twilight-Farbpalette
cv::COLORMAP_TURBO Turbo-Farbkarte
cv::COLORMAP_DEEPGREEN Deep Green Farbschema

Diese Farbschemata werden häufig zur Visualisierung von Daten mit unterschiedlichen Farbdarstellungen verwendet.

Wie Heatmaps in Ultralytics YOLO11 funktionieren

Die Heatmap-Lösung in Ultralytics YOLO11 erweitert die ObjectCounter-Klasse, um Bewegungsmuster in Videostreams zu erzeugen und zu visualisieren. 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 bietet die Lösung:

  1. Verfolgt das Objekt über Frames hinweg mithilfe der Tracking-Funktionen von YOLO11
  2. Aktualisiert die Heatmap-Intensität am Ort des Objekts
  3. Wendet eine ausgewählte Farbpalette an, um die Intensitätswerte zu visualisieren
  4. Überlagert die farbige Heatmap auf dem Originalbild

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

FAQ

Wie generiert Ultralytics YOLO11 Heatmaps und welche Vorteile bieten diese?

Ultralytics YOLO11 generiert Heatmaps, indem es komplexe Daten in eine farbcodierte Matrix umwandelt, in der verschiedene Farbtöne die Datenintensitäten 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 Hauptvorteilen gehören die intuitive Visualisierung der Datenverteilung, die effiziente Mustererkennung und die verbesserte räumliche Analyse für die Entscheidungsfindung. Weitere Details und Konfigurationsoptionen finden Sie im Abschnitt Heatmap-Konfiguration.

Kann ich Ultralytics YOLO11 verwenden, um Objektverfolgung durchzuführen und gleichzeitig eine Heatmap zu generieren?

Ja, Ultralytics YOLO11 unterstützt die gleichzeitige Objektverfolgung und Heatmap-Generierung. Dies kann durch seine Heatmap Lösung, die in Modelle zur Objektverfolgung integriert ist. Dazu müssen Sie das Heatmap-Objekt initialisieren und die Tracking-Funktionen von YOLO11 verwenden. 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 Anleitungen finden Sie auf der Seite Tracking-Modus.

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

Ultralytics YOLO11 Heatmaps sind speziell für die Integration mit seinen Objekterkennungs- und Tracking-Modellen 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 Decay-Faktors und Echtzeit-Video-Overlay. 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 in der folgenden Methode angeben: track() Methode des YOLO-Modells. Wenn Sie beispielsweise nur Autos und Personen visualisieren möchten (unter der Annahme, dass ihre Klassenindizes 0 und 2 sind), können Sie die classes Parameter entsprechend an.

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 Heatmap-Generierung in der Datenanalyse wählen?

Ultralytics YOLO11 bietet eine nahtlose Integration von fortschrittlicher Objekterkennung und Echtzeit-Heatmap-Generierung, was es zu einer idealen Wahl für Unternehmen macht, die Daten effektiver visualisieren möchten. Zu den wichtigsten Vorteilen gehören die intuitive Visualisierung der Datenverteilung, die effiziente Mustererkennung und die verbesserte räumliche Analyse für eine bessere Entscheidungsfindung. Darüber hinaus machen die hochmodernen Funktionen von YOLO11 wie persistentes Tracking, anpassbare Farbschemata und die Unterstützung verschiedener Exportformate es anderen Tools wie TensorFlow und OpenCV für eine umfassende Datenanalyse überlegen. Erfahren Sie mehr über Geschäftsanwendungen unter Ultralytics Plans.



📅 Erstellt vor 1 Jahr ✏️ Aktualisiert vor 4 Monaten

Kommentare