Ultralytics YOLO27:

Heatmaps zur Objektverfolgung mit Ultralytics YOLO26#

Open Heatmaps In Colab

Die Heatmap-Lösung in Ultralytics YOLO26 verfolgt Objekte über Videobilder hinweg und legt deren kumulierte Bewegungsintensität über jedes Bild. Dadurch leuchten stark frequentierte Bereiche in warmen Farben auf, während ruhige Bereiche kühl bleiben. Die auf der Objektverfolgung von YOLO26 basierende Lösung verwandelt jedes Video mit einem einzigen Python-Aufruf oder CLI-Befehl in eine räumliche Aktivitätskarte, die Verkehrsfluss, Gruppenbewegungen und Aufenthaltsbereiche sichtbar macht.



Watch: How to Create Heatmaps with Ultralytics YOLO26 | Visualize Object Activity | VisionAI in Retail 🚀

Warum Heatmaps für Videoanalysen verwenden?#

  • Aktivitätsmuster auf einen Blick erkennen: Die Intensität steigt überall dort an, wo sich verfolgte Objekte aufhalten. Dadurch werden stark frequentierte Fahrspuren, beliebte Regale oder Engpässe in Menschenmengen sichtbar, ohne dass du die Bilder einzeln prüfen musst.
  • Verfolgung integriert: Die Lösung führt die Erkennung und Verfolgung mit YOLO26 intern aus, sodass du keine separate Pipeline für die Verfolgung einrichten musst.
  • Zählen im selben Durchlauf: Übergebe ein region, um Objekte zu zählen, die eine Zone betreten oder verlassen, während die Heatmap erstellt wird, und kombiniere so zwei Analyseaufgaben in einem Durchlauf.

Anwendungen in der Praxis#

VerkehrEinzelhandel
Ultralytics YOLO-Heatmap-Overlay mit Darstellung der FahrzeugverkehrsdichteUltralytics YOLO-Heatmap-Overlay mit Darstellung der Bewegungen von Einzelhandelskunden
Ultralytics YOLO-Heatmap für den VerkehrUltralytics YOLO-Heatmap für den Einzelhandel

Heatmaps mit Ultralytics YOLO erstellen#

Führe die Heatmap-Lösung über die CLI oder Python für eine Videoquelle aus. Das Python-Beispiel schreibt die verarbeiteten Bilder in eine Ausgabedatei:

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

Argumente von Heatmap()#

Hier ist eine Tabelle mit den Argumenten von Heatmap:

ArgumentTypStandardwertBeschreibung
modelstrNonePfad zu einer YOLO-Modell-Datei von Ultralytics.
colormapintcv2.COLORMAP_DEEPGREENFür die Heatmap zu verwendende Farbkarte.
show_inboolTrueSteuert, ob die Eingangsanzahl im Videostream angezeigt wird.
show_outboolTrueSteuert, ob die Ausgangsanzahl im Videostream angezeigt wird.
regionlist oder dictNonePunkte zur Definition des Interessenbereichs: entweder eine Liste von (x, y)-Tupeln oder ein Wörterbuch, das Bereichsnamen Punktelisten für mehrere Bereiche zuordnet (nur RegionCounter). Wenn None, greifen Lösungen, die einen Bereich benötigen, auf einen vordefinierten Standardwert zurück.
line_widthint2Linienstärke für die von der Lösung gezeichneten Boxen, Keypoints und Zählwerte.
verboseboolTrueAktiviert das Protokoll der Lösung pro Frame mit Eingabeform, Klassenanzahlen und Verarbeitungsgeschwindigkeit. Der Tracking-Aufruf selbst bleibt immer ohne Ausgabe.

Du kannst in der Lösung Heatmap auch andere Argumente für track verwenden.

ArgumentTypStandardwertBeschreibung
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 Konfidenzschwellenwert für Erkennungen fest. Niedrigere Werte ermöglichen das Verfolgen weiterer Objekte, können aber Fehlalarme einschließen.
ioufloat0.7Legt den Schwellenwert für Intersection over Union (IoU) zum Filtern überlappender Erkennungen fest.
classeslistNoneFiltert Ergebnisse nach Klassenindex. Beispielsweise 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 die Auswahl zwischen CPU, einer bestimmten GPU oder anderen Rechengeräten für die Modellausführung.
imgszint or tuple640Ziel-Inferenzbildgröße: eine Ganzzahl für ein quadratisches Bild oder ein (height, width)-Paar. Die Formen werden an den Modell-Stride angepasst.
max_detint300Maximale Anzahl der pro Frame beibehaltenen Detektionen vor dem Tracking, wodurch die Anzahl der Objekte begrenzt wird, die eine Lösung in dichten Szenen verarbeitet.
quantizeint or strNoneInferenzpräzision: 16 (FP16) oder 32/nicht gesetzt (FP32) für PyTorch- und TorchScript-Modelle; andere Formate berechnen mit der Präzision, die ihr Artefakt und ihre Laufzeit auswählen. Ersetzt das veraltete half-Flag.

Zusätzlich sind die unterstützten Argumente für die Visualisierung unten aufgeführt:

ArgumentTypStandardwertBeschreibung
showboolFalseWenn True, werden die annotierten Bilder oder Videos in einem Fenster angezeigt. Dies ist nützlich für unmittelbares visuelles Feedback während der Entwicklung oder des Testens.
show_confboolTrueZeigt neben dem Label den Konfidenzwert für jede Erkennung an. Dadurch erhältst du Einblick in die Sicherheit des Modells bei jeder Erkennung.
show_labelsboolTrueZeigt Labels für jede Erkennung in der visuellen Ausgabe an. Dies ermöglicht ein unmittelbares Verständnis der erkannten Objekte.

Heatmap-Farbkarten#

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

Name der FarbkarteBeschreibung
cv2.COLORMAP_AUTUMNFarbkarte Herbst
cv2.COLORMAP_BONEFarbkarte Knochen
cv2.COLORMAP_JETFarbkarte Jet
cv2.COLORMAP_WINTERFarbkarte Winter
cv2.COLORMAP_RAINBOWFarbkarte Regenbogen
cv2.COLORMAP_OCEANFarbkarte Ozean
cv2.COLORMAP_SUMMERFarbkarte Sommer
cv2.COLORMAP_SPRINGFarbkarte Frühling
cv2.COLORMAP_COOLFarbkarte Kühl
cv2.COLORMAP_HSVFarbkarte HSV (Farbton, Sättigung, Wert)
cv2.COLORMAP_PINKFarbkarte Rosa
cv2.COLORMAP_HOTFarbkarte Heiß
cv2.COLORMAP_PARULAFarbkarte Parula
cv2.COLORMAP_MAGMAFarbkarte Magma
cv2.COLORMAP_INFERNOFarbkarte Inferno
cv2.COLORMAP_PLASMAFarbkarte Plasma
cv2.COLORMAP_VIRIDISFarbkarte Viridis
cv2.COLORMAP_CIVIDISFarbkarte Cividis
cv2.COLORMAP_TWILIGHTFarbkarte Twilight
cv2.COLORMAP_TWILIGHT_SHIFTEDFarbkarte Verschobenes Twilight
cv2.COLORMAP_TURBOFarbkarte Turbo
cv2.COLORMAP_DEEPGREENFarbkarte Dunkelgrün

Funktionsweise von Heatmaps#

Die Heatmap-Lösung erweitert die Klasse ObjectCounter. Im ersten verarbeiteten Bild erstellt sie eine leere Intensitätsebene, die der Bildgröße entspricht. Anschließend wird jedes Bild in zwei Schritten verarbeitet:

  1. Die YOLO26-Verfolgung erkennt jedes Objekt im Bild und folgt ihm.
  2. Für jedes verfolgte Objekt wird die Intensität der Heatmap innerhalb eines kreisförmigen Bereichs erhöht, dessen Mittelpunkt in seiner Begrenzungsbox liegt.

Einmal pro Bild wird die kumulierte Intensitätsebene normalisiert, mit der ausgewählten Farbkarte eingefärbt und mit dem Originalbild überblendet. Das Overlay wird angezeigt, sobald mindestens ein Objekt verfolgt wird. Bilder ohne verfolgte Objekte werden ohne Heatmap-Overlay angezeigt.

Das Ergebnis ist eine dynamische Visualisierung, die sich im Laufe der Zeit aufbaut und Verkehrsmuster, Bewegungen von Menschenmengen oder andere räumliche Verhaltensweisen in deinen Videodaten sichtbar macht. Wenn ein region festgelegt ist, zählt die Lösung außerdem Objekte, die diesen Bereich betreten oder verlassen, während die Heatmap erstellt wird.

Fazit#

Die Heatmap-Lösung von Ultralytics YOLO26 verwandelt Ergebnisse der Objektverfolgung mit wenigen Codezeilen in ein intuitives Aktivitäts-Overlay. Für weiterführende Analysen kannst du sie mit der Objektzählung kombinieren, die anderen Ultralytics Solutions erkunden oder mehr über den zugrunde liegenden Verfolgungsmodus lesen.

FAQ#

  • Ultralytics YOLO26 erzeugt Heatmaps, indem Objekte über Videobilder hinweg verfolgt und Intensitätswerte an den Positionen der verfolgten Objekte kumuliert werden. Anschließend wird das Ergebnis eingefärbt und mit dem Originalbild überblendet. 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 Argumente für Heatmap().

  • Verwende cv2.VideoWriter von OpenCV und schreibe für jedes verarbeitete Bild results.plot_im, wie im Hauptbeispiel gezeigt. Das Attribut plot_im enthält das Bild bereits mit angewendetem Heatmap-Overlay.

  • Ja. Übergebe ein Argument region an Heatmap() mit Punkten für eine Linie, ein Rechteck oder ein Polygon. Die Lösung zählt dann Objekte, die diesen Bereich betreten oder verlassen, während die Heatmap erstellt wird. Die zurückgegebenen Ergebnisse enthalten in_count, out_count und Zählungen pro Klasse. Einzelheiten zur Konfiguration von Bereichen findest du im Leitfaden zur Objektzählung.

  • Übergebe das Argument classes an Heatmap() mit den Klassenindizes, die du beibehalten möchtest. Beispielsweise 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()
  • Die Heatmaps von Ultralytics YOLO26 verbinden Objekterkennung, Verfolgung, Intensitätskumulierung und die Darstellung des Overlays in einem einzigen Aufruf. Bei allgemeinen Werkzeugen wie OpenCV oder Matplotlib musst du diese Pipeline dagegen selbst erstellen. Die Lösung verarbeitet Videostreams in Echtzeit und unterstützt standardmäßig persistente Verfolgung sowie anpassbare Farbkarten. Einzelheiten zum zugrunde liegenden Modell findest du auf der YOLO26-Modellseite.

Kommentare