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

TransportEinzelhandel
Ultralytics YOLO11 Transport-HeatmapUltralytics YOLO11 Retail Heatmap
Ultralytics YOLO11 Transport-HeatmapUltralytics 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:

ArgumentTypStandardBeschreibung
modelstrNonePfad zu einer Ultralytics YOLO .
colormapintcv2.COLORMAP_JETZu verwendende Colormap für die Heatmap.
show_inboolTrueFlag zur Steuerung, ob die In-Zählungen im Videostream angezeigt werden sollen.
show_outboolTrueFlag zur Steuerung, ob die Out-Zählungen im Videostream angezeigt werden sollen.
regionlist'[(20, 400), (1260, 400)]'Liste der Punkte, die den Zählbereich definieren.

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

ArgumentTypStandardBeschreibung
trackerstr'botsort.yaml'Gibt den zu verwendenden Tracking-Algorithmus an, z. B. bytetrack.yaml oder botsort.yaml.
conffloat0.3Legt den Konfidenzschwellenwert für Erkennungen fest; niedrigere Werte ermöglichen die Verfolgung von mehr Objekten, können aber auch falsch positive Ergebnisse liefern.
ioufloat0.5Legt den Intersection over Union (IoU)-Schwellenwert zum Filtern überlappender Erkennungen fest.
classeslistNoneFiltert Ergebnisse nach Klassenindex. Zum Beispiel, classes=[0, 2, 3] verfolgt nur die angegebenen Klassen.
verboseboolTrueSteuert die Anzeige der Tracking-Ergebnisse und bietet eine visuelle Ausgabe der verfolgten Objekte.
devicestrNoneGibt 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:

ArgumentTypStandardBeschreibung
showboolFalseWenn 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_widthNone or intNoneGibt 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_confboolTrueZeigt den Konfidenzwert für jede Erkennung zusammen mit der Beschriftung an. Gibt Einblick in die Sicherheit des Modells für jede Erkennung.
show_labelsboolTrueZeigt Beschriftungen für jede Erkennung in der visuellen Ausgabe an. Ermöglicht ein sofortiges Verständnis der erkannten Objekte.

Heatmap-Farbschemata

Colormap-NameBeschreibung
cv::COLORMAP_AUTUMNHerbstfarben-Karte
cv::COLORMAP_BONEKnochen-Farbzuordnung
cv::COLORMAP_JETJet-Farbkarte
cv::COLORMAP_WINTERWinter-Farbkarte
cv::COLORMAP_RAINBOWRainbow-Farbkarte
cv::COLORMAP_OCEANOzean-Farbkarte
cv::COLORMAP_SUMMERSommerfarbkarte
cv::COLORMAP_SPRINGSpring-Farbtabelle
cv::COLORMAP_COOLCoole Farbkarte
cv::COLORMAP_HSVHSV-Farbkarte (Farbton, Sättigung, Wert)
cv::COLORMAP_PINKPinke Farbkarte
cv::COLORMAP_HOTHot-Farbkarte
cv::COLORMAP_PARULAParula-Farbkarte
cv::COLORMAP_MAGMAMagma-Farbkarte
cv::COLORMAP_INFERNOInferno-Farbkarte
cv::COLORMAP_PLASMAPlasma-Farbzuordnung
cv::COLORMAP_VIRIDISViridis-Farbkarte
cv::COLORMAP_CIVIDISCividis-Farbkarte
cv::COLORMAP_TWILIGHTTwilight-Farbkarte
cv::COLORMAP_TWILIGHT_SHIFTEDVerschobene Twilight-Farbpalette
cv::COLORMAP_TURBOTurbo-Farbkarte
cv::COLORMAP_DEEPGREENDeep 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 6 Monaten
glenn-jocherRizwanMunawarMatthewNoyceUltralyticsAssistantIvorZhu331AyushExelYOLOv5-Magic

Kommentare