Link to this sectionObjekt-Tracking-Heatmaps mit Ultralytics YOLO26#
Die Heatmap-Lösung in Ultralytics YOLO26 verfolgt Objekte über Videobilder hinweg und überlagert jedes Bild mit ihrer akkumulierten Bewegungsintensität, sodass stark frequentierte Bereiche in warmen Farben leuchten, während ruhige Bereiche kühl bleiben. Basierend auf der YOLO26-Objektverfolgung verwandelt sie jedes Video in eine räumliche Aktivitätskarte, die Verkehrsfluss, Menschenmengen und Aufenthaltszonen mit einem einzigen Python-Aufruf oder CLI-Befehl aufdeckt.
Watch: Heatmaps using Ultralytics YOLO26
Link to this sectionWarum Heatmaps für Videoanalysen verwenden?#
- Aktivitätsmuster auf einen Blick erkennen: Intensität akkumuliert sich dort, wo sich verfolgte Objekte aufhalten, sodass stark befahrene Spuren, beliebte Regale oder Engpässe ohne manuelle Überprüfung Bild für Bild sofort erkennbar werden.
- Integrierte Verfolgung: Die Lösung führt die YOLO26-Erkennung und -Verfolgung intern aus, sodass kein separater Tracking-Prozess eingerichtet werden muss.
- Zählen im selben Durchgang: Übergib eine
region, um Objekte zu zählen, die eine Zone betreten oder verlassen, während die Heatmap erstellt wird – so kombinierst du zwei Analyseaufgaben in einem Durchlauf.
Link to this sectionPraxisanwendungen#
| Transportwesen | Einzelhandel |
|---|---|
![]() | ![]() |
| Ultralytics YOLO Transport-Heatmap | Ultralytics YOLO Einzelhandels-Heatmap |
Link to this sectionSo erstellst du Heatmaps mit Ultralytics YOLO#
Führe die Heatmap-Lösung über die CLI oder Python auf einer Videoquelle aus. Das Python-Beispiel schreibt die verarbeiteten Bilder in eine Ausgabevideodatei:
# 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)]"Link to this sectionHeatmap() Argumente#
Hier ist eine Tabelle mit den Heatmap-Argumenten:
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
model | str | None | Pfad zu einer Ultralytics YOLO-Modelldatei. |
colormap | int | cv2.COLORMAP_DEEPGREEN | Zu verwendende Farbkarte für die Heatmap. |
show_in | bool | True | Flag zur Steuerung, ob die 'in'-Zähler im Videostream angezeigt werden sollen. |
show_out | bool | True | Flag zur Steuerung, ob die 'out'-Zähler im Videostream angezeigt werden sollen. |
region | list oder dict | None | Punkte, die den Interessenbereich definieren, entweder als Liste von (x, y)-Tupeln oder als Dictionary, das Regionsnamen auf Punktlisten für mehrere Regionen abbildet (nur RegionCounter). Wenn None, greifen Lösungen, die eine Region erfordern, auf einen vordefinierten Standardwert zurück. |
Du kannst auch verschiedene track-Argumente in der Heatmap-Lösung anwenden.
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Legt den zu verwendenden Tracking-Algorithmus fest. Integrierte Optionen: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.1 | Legt 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. |
iou | float | 0.7 | Legt den IoU-Schwellenwert für das Filtern überlappender Detektionen fest. |
classes | list | None | Filtert Ergebnisse nach Klassenindex. Zum Beispiel verfolgt classes=[0, 2, 3] 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 die Wahl zwischen CPU, einer spezifischen GPU oder anderen Rechengeräten für die Modellausführung. |
Zusätzlich sind die unterstützten Visualisierungsargumente unten aufgeführt:
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
show | bool | False | Wenn True, werden die annotierten Bilder oder Videos in einem Fenster angezeigt. Nützlich für sofortiges visuelles Feedback während der Entwicklung oder Tests. |
line_width | int or None | None | Legt die Linienbreite der BBoxen fest. Wenn None, wird die Linienbreite automatisch basierend auf der Bildgröße angepasst. Bietet visuelle Anpassungsmöglichkeiten für mehr Klarheit. |
show_conf | bool | True | Zeigt den Konfidenzwert für jede Erkennung neben dem Label an. Bietet Einblick in die Gewissheit des Modells für jede Erkennung. |
show_labels | bool | True | Zeigt Labels für jede Erkennung in der visuellen Ausgabe an. Ermöglicht ein sofortiges Verständnis der erkannten Objekte. |
Link to this sectionHeatmap-Farbskalen#
Das Argument colormap akzeptiert jede OpenCV-Farbskala. Übergib die Konstante aus dem cv2-Modul, zum Beispiel colormap=cv2.COLORMAP_INFERNO:
| Name der Farbtabelle | Beschreibung |
|---|---|
cv2.COLORMAP_AUTUMN | Herbst-Farbtabelle |
cv2.COLORMAP_BONE | Knochen-Farbtabelle |
cv2.COLORMAP_JET | Jet-Farbtabelle |
cv2.COLORMAP_WINTER | Winter-Farbtabelle |
cv2.COLORMAP_RAINBOW | Regenbogen-Farbtabelle |
cv2.COLORMAP_OCEAN | Ozean-Farbtabelle |
cv2.COLORMAP_SUMMER | Sommer-Farbtabelle |
cv2.COLORMAP_SPRING | Frühlings-Farbtabelle |
cv2.COLORMAP_COOL | Kühl-Farbtabelle |
cv2.COLORMAP_HSV | HSV (Farbton, Sättigung, Wert) Farbtabelle |
cv2.COLORMAP_PINK | Pink-Farbtabelle |
cv2.COLORMAP_HOT | Heiß-Farbtabelle |
cv2.COLORMAP_PARULA | Parula-Farbtabelle |
cv2.COLORMAP_MAGMA | Magma-Farbtabelle |
cv2.COLORMAP_INFERNO | Inferno-Farbtabelle |
cv2.COLORMAP_PLASMA | Plasma-Farbtabelle |
cv2.COLORMAP_VIRIDIS | Viridis-Farbtabelle |
cv2.COLORMAP_CIVIDIS | Cividis-Farbtabelle |
cv2.COLORMAP_TWILIGHT | Dämmerungs-Farbtabelle |
cv2.COLORMAP_TWILIGHT_SHIFTED | Verschobene Dämmerungs-Farbtabelle |
cv2.COLORMAP_TURBO | Turbo-Farbtabelle |
cv2.COLORMAP_DEEPGREEN | Dunkelgrün-Farbtabelle |
Link to this sectionWie Heatmaps funktionieren#
Die Heatmap-Lösung erweitert die Klasse ObjectCounter. Im ersten verarbeiteten Frame erstellt sie eine leere Intensitätsebene, die der Bildgröße entspricht. Jeder Frame wird dann in zwei Schritten verarbeitet:
- YOLO26-Tracking erkennt und verfolgt jedes Objekt im Bild
- Für jedes verfolgte Objekt nimmt die Heatmap-Intensität innerhalb eines kreisförmigen Bereichs, der in seiner Bounding Box zentriert ist, zu
Einmal pro Frame wird die akkumulierte Intensitätsebene normalisiert, mit der gewählten Farbskala eingefärbt und mit dem Originalbild gemischt. Das Overlay erscheint, sobald mindestens ein Objekt verfolgt wird; Frames ohne verfolgte Objekte werden ohne das Heatmap-Overlay angezeigt.
Das Ergebnis ist eine dynamische Visualisierung, die sich über die Zeit aufbaut und Verkehrsmuster, Bewegungen von Menschenmengen oder andere räumliche Verhaltensweisen in deinen Videodaten aufdeckt. Wenn eine region festgelegt ist, zählt die Lösung auch Objekte, die diese Region betreten oder verlassen, während die Heatmap erstellt wird.
Link to this sectionFazit#
Die Ultralytics YOLO26 Heatmap-Lösung verwandelt Ergebnisse der Objektverfolgung mit wenigen Zeilen Code in ein intuitives Aktivitäts-Overlay. Um weiterzugehen, kombiniere sie mit Objektzählung, erkunde die anderen Ultralytics-Lösungen oder lies mehr über den zugrunde liegenden Tracking-Modus.
Link to this sectionFAQ#
Link to this sectionWie generiert Ultralytics YOLO26 Heatmaps aus einem Video?#
Ultralytics YOLO26 generiert Heatmaps, indem es Objekte über Videobilder hinweg verfolgt, einen Intensitätswert an der Position jedes verfolgten Objekts akkumuliert, das Ergebnis einfärbt und es mit dem Originalbild mischt. Bereiche, in denen Objekte häufig erscheinen oder verweilen, bauen eine höhere Intensität auf und werden in wärmeren Farben dargestellt. Konfigurationsoptionen findest du im Abschnitt Heatmap()-Argumente.
Link to this sectionWie speichere ich die Heatmap-Ausgabe in einer Videodatei?#
Verwende cv2.VideoWriter von OpenCV und schreibe results.plot_im für jeden verarbeiteten Frame, wie im Hauptbeispiel gezeigt. Das Attribut plot_im enthält den Frame mit dem bereits angewendeten Heatmap-Overlay.
Link to this sectionKann ich Heatmaps mit Objektzählung kombinieren?#
Ja. Übergib ein region-Argument an Heatmap() mit Linien-, Rechteck- oder Polygonpunkten, und die Lösung zählt Objekte, die diese Region betreten oder verlassen, während die Heatmap erstellt wird. Die zurückgegebenen Ergebnisse enthalten in_count, out_count und klassenspezifische Zählungen. Siehe den Leitfaden zur Objektzählung für Details zur Regionskonfiguration.
Link to this sectionWie kann ich nur bestimmte Objektklassen in Heatmaps mit Ultralytics YOLO26 visualisieren?#
Übergib das classes-Argument an Heatmap() mit den Klassenindizes, die du beibehalten möchtest. Zum Beispiel erstellt classes=[0, 2] die Heatmap nur für Personen und Autos (COCO-Klassenindizes 0 und 2):
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
heatmap = solutions.Heatmap(show=True, model="yolo26n.pt", classes=[0, 2])
while cap.isOpened():
success, im0 = cap.read()
if not success:
break
results = heatmap(im0)
cap.release()
cv2.destroyAllWindows()Link to this sectionWas unterscheidet die Heatmaps von Ultralytics YOLO26 von anderen Datenvisualisierungstools wie denen von OpenCV oder Matplotlib?#
Ultralytics YOLO26 Heatmaps integrieren Objekterkennung, Tracking, Intensitätsakkumulation und Overlay-Rendering in einen einzigen Aufruf, während generische Tools wie OpenCV oder Matplotlib erfordern, dass du diese Pipeline selbst erstellst. Die Lösung verarbeitet Videostreams in Echtzeit und unterstützt persistentes Tracking sowie anpassbare Farbskalen von Haus aus. Details zum zugrunde liegenden Modell findest du auf der YOLO26-Modellseite.

