YOLO Vision 2026:

Objekt-Tracking-Heatmaps mit Ultralytics YOLO26#

Open Heatmaps In Colab

Die Heatmap solution in Ultralytics YOLO26 verfolgt Objekte über Video-Frames hinweg und überlagert jeden Frame mit ihrer akkumulierten Bewegungsintensität, sodass stark frequentierte Bereiche in warmen Farben leuchten, während ruhige Bereiche kühl bleiben. Aufbauend auf dem YOLO26-object tracking verwandelt sie jedes Video in eine räumliche Aktivitätskarte, die Verkehrsflüsse, Menschenmengen und Aufenthaltszonen mit einem einzigen Python-Aufruf oder CLI-Befehl offenbart.



Watch: Heatmaps using Ultralytics YOLO26

Warum 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 und verlassen, während die Heatmap erstellt wird, wodurch zwei Analyseaufgaben in einem Durchlauf kombiniert werden.

Praxisanwendungen#

TransportwesenEinzelhandel
Ultralytics YOLO heatmap overlay showing vehicle traffic densityUltralytics YOLO heatmap overlay showing retail customer movement
Ultralytics YOLO Transport-HeatmapUltralytics YOLO Einzelhandels-Heatmap

So 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:

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)]"

Heatmap()-Argumente#

Hier ist eine Tabelle mit den Heatmap-Argumenten:

ArgumentTypStandardBeschreibung
modelstrNonePfad zu einer Ultralytics YOLO-Modelldatei.
colormapintcv2.COLORMAP_DEEPGREENZu verwendende Farbkarte für die Heatmap.
show_inboolTrueFlag zur Steuerung, ob die 'in'-Zähler im Videostream angezeigt werden sollen.
show_outboolTrueFlag zur Steuerung, ob die 'out'-Zähler im Videostream angezeigt werden sollen.
regionlist oder dictNonePunkte, die die Region von Interesse definieren – entweder eine Liste von (x, y)-Tupeln oder ein 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.
line_widthint2Linienstärke für die Boxen, Keypoints und Zählungen, die die Lösung zeichnet.
verboseboolTrueAktiviert das pro-Frame-Protokoll der Lösung für Eingabeform, Klassenzahlen und Verarbeitungsgeschwindigkeit. Der Tracking-Aufruf selbst verläuft immer im Hintergrund.

Du kannst auch verschiedene track-Argumente in der Heatmap-Lösung anwenden.

ArgumentTypStandardBeschreibung
trackerstr'botsort.yaml'Gibt den zu verwendenden Tracking-Algorithmus an. Integrierte Optionen: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.25Legt 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.
ioufloat0.7Legt den Schwellenwert für die Intersection over Union (IoU) zum Filtern überlappender Detektionen fest.
classeslistNoneFiltert Ergebnisse nach Klassenindex. Zum Beispiel verfolgt classes=[0, 2, 3] nur die angegebenen Klassen.
devicestrNoneGibt das Gerät für die Inferenz an (z. B. cpu, cuda:0 oder 0). Ermöglicht Benutzern die Auswahl zwischen CPU, einer spezifischen GPU oder anderen Rechengeräten für die Modellausführung.

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

ArgumentTypStandardBeschreibung
showboolFalseFalls True, werden die annotierten Bilder oder Videos in einem Fenster angezeigt. Nützlich für unmittelbares visuelles Feedback während der Entwicklung oder des Testens.
show_confboolTrueZeigt den Konfidenzwert für jede Erkennung neben dem Label an. Bietet Einblick in die Gewissheit des Modells für jede Erkennung.
show_labelsboolTrueZeigt Labels für jede Erkennung in der visuellen Ausgabe an. Ermöglicht ein sofortiges Verständnis der erkannten Objekte.

Heatmap-Farbskalen#

Das colormap-Argument akzeptiert jede OpenCV colormap. Übergib die Konstante aus dem cv2-Modul, zum Beispiel colormap=cv2.COLORMAP_INFERNO:

Name der FarbtabelleBeschreibung
cv2.COLORMAP_AUTUMNHerbst-Farbtabelle
cv2.COLORMAP_BONEKnochen-Farbtabelle
cv2.COLORMAP_JETJet-Farbtabelle
cv2.COLORMAP_WINTERWinter-Farbtabelle
cv2.COLORMAP_RAINBOWRegenbogen-Farbtabelle
cv2.COLORMAP_OCEANOzean-Farbtabelle
cv2.COLORMAP_SUMMERSommer-Farbtabelle
cv2.COLORMAP_SPRINGFrühlings-Farbtabelle
cv2.COLORMAP_COOLKühl-Farbtabelle
cv2.COLORMAP_HSVHSV (Farbton, Sättigung, Wert) Farbtabelle
cv2.COLORMAP_PINKPink-Farbtabelle
cv2.COLORMAP_HOTHeiß-Farbtabelle
cv2.COLORMAP_PARULAParula-Farbtabelle
cv2.COLORMAP_MAGMAMagma-Farbtabelle
cv2.COLORMAP_INFERNOInferno-Farbtabelle
cv2.COLORMAP_PLASMAPlasma-Farbtabelle
cv2.COLORMAP_VIRIDISViridis-Farbtabelle
cv2.COLORMAP_CIVIDISCividis-Farbtabelle
cv2.COLORMAP_TWILIGHTDämmerungs-Farbtabelle
cv2.COLORMAP_TWILIGHT_SHIFTEDVerschobene Dämmerungs-Farbtabelle
cv2.COLORMAP_TURBOTurbo-Farbtabelle
cv2.COLORMAP_DEEPGREENDunkelgrün-Farbtabelle

Wie Heatmaps funktionieren#

Die Heatmap solution erweitert die ObjectCounter-Klasse. Im ersten verarbeiteten Frame erstellt sie eine leere Intensitätsebene, die der Frame-Größe entspricht. Jeder Frame wird dann in zwei Schritten verarbeitet:

  1. YOLO26-Tracking erkennt und verfolgt jedes Objekt im Bild
  2. 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 im Laufe der Zeit aufbaut und Verkehrsmuster, Menschenmengen oder andere räumliche Verhaltensweisen in deinen Videodaten sichtbar macht. Wenn ein region festgelegt ist, zählt die Lösung zudem Objekte, die diesen Bereich betreten und verlassen, während die Heatmap erstellt wird.

Fazit#

Die Ultralytics YOLO26 Heatmap-Lösung verwandelt Objektverfolgungsergebnisse mit ein paar Zeilen Code in ein intuitives Aktivitäts-Overlay. Um noch einen Schritt weiter zu gehen, kombiniere sie mit der object counting, erkunde die anderen Ultralytics Solutions oder lies über den zugrundeliegenden tracking mode.

FAQ#

  • Ultralytics YOLO26 generiert Heatmaps, indem es Objekte über Video-Frames hinweg verfolgt, an der Position jedes verfolgten Objekts einen Intensitätswert akkumuliert, das Ergebnis anschliessend einfärbt und mit dem Original-Frame überblendet. Bereiche, in denen häufig Objekte auftauchen oder verweilen, bauen eine höhere Intensität auf und werden in wärmeren Farben dargestellt. Konfigurationsoptionen findest du im Abschnitt Heatmap() Arguments.

  • Verwende OpenCs cv2.VideoWriter und schreibe results.plot_im für jeden verarbeiteten Frame, wie im main example gezeigt. Das Attribut plot_im enthält den Frame mit bereits angewendetem Heatmap-Overlay.

  • Ja. Übergib ein region-Argument an Heatmap() mit Linien-, Rechteck- oder Polygonpunkten, und die Lösung zählt Objekte, die diesen Bereich betreten und verlassen, während die Heatmap erstellt wird. Die zurückgegebenen Ergebnisse umfassen in_count, out_count und Zählungen pro Klasse. Details zur Regionskonfiguration findest du im object counting guide.

  • Übergebe das Argument classes an Heatmap() mit den Klassenindizes, die du behalten möchtest. Zum Beispiel erstellt classes=[0, 2] die Heatmap nur aus 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()
  • Ultralytics YOLO26-Heatmaps integrieren object detection, Tracking, Intensitätsakkumulation und Overlay-Rendering in einen einzigen Aufruf, während generische Tools wie OpenCV oder Matplotlib erfordern, dass du diese Pipeline selbst aufbaust. Die Lösung verarbeitet Videostreams in Echtzeit und unterstützt permanentes Tracking sowie anpassbare Colormaps direkt nach der Installation. Details zum zugrundeliegenden Modell findest du auf der YOLO26 model page.

Kommentare