Erweiterte Datenvisualisierung: Heatmaps mit Ultralytics YOLO11 🚀
Einführung in Heatmaps
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 |
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 True aktiviert, 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:
- Verfolgt das Objekt über Frames hinweg mithilfe der Tracking-Funktionen von YOLO11
- Aktualisiert die Heatmap-Intensität am Ort des Objekts
- Wendet eine ausgewählte Farbpalette an, um die Intensitätswerte zu visualisieren
- Ü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.