Mappe di calore per il tracciamento di oggetti con Ultralytics YOLO26#
La soluzione Heatmap in Ultralytics YOLO26 traccia gli oggetti nei fotogrammi video e sovrappone la loro intensità di movimento accumulata su ciascun fotogramma, in modo che le aree affollate risplendano di colori caldi mentre quelle tranquille rimangano fredde. Basata sul tracciamento degli oggetti di YOLO26, trasforma qualsiasi video in una mappa di attività spaziale che rivela il flusso del traffico, il movimento delle folle e le zone di sosta con una singola chiamata Python o comando CLI.
Watch: Heatmaps using Ultralytics YOLO26
Perché usare le mappe di calore per l'analisi video?#
- Individua i pattern di attività a colpo d'occhio: L'intensità si accumula ovunque gli oggetti tracciati trascorrano del tempo, quindi le corsie ad alto traffico, gli scaffali popolari o i colli di bottiglia della folla risaltano senza bisogno di una revisione manuale fotogramma per fotogramma.
- Tracciamento integrato: La soluzione esegue internamente il rilevamento e il tracciamento di YOLO26, quindi non c'è una pipeline di tracciamento separata da configurare.
- Conteggio nello stesso passaggio: Passa un
regionper contare gli oggetti che entrano ed escono da una zona mentre la heatmap si crea, combinando due attività di analisi in un'unica esecuzione.
Applicazioni nel mondo reale#
| Trasporti | Vendita al dettaglio |
|---|---|
![]() | ![]() |
| Mappa di calore Ultralytics YOLO per i trasporti | Mappa di calore Ultralytics YOLO per il retail |
Come generare mappe di calore con Ultralytics YOLO#
Esegui la soluzione Heatmap su una sorgente video dalla CLI o da Python. L'esempio Python scrive i fotogrammi elaborati in un file video di output:
# 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)]"Argomenti di Heatmap()#
Ecco una tabella con gli argomenti di Heatmap:
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
model | str | None | Percorso verso un file del modello Ultralytics YOLO. |
colormap | int | cv2.COLORMAP_DEEPGREEN | Colormap da utilizzare per la heatmap. |
show_in | bool | True | Flag per controllare se visualizzare i conteggi in ingresso sul flusso video. |
show_out | bool | True | Flag per controllare se visualizzare i conteggi in uscita sul flusso video. |
region | list o dict | None | Punti che definiscono la regione di interesse, sia una lista di tuple (x, y) o un dizionario che associa i nomi delle regioni a liste di punti per più regioni (solo RegionCounter). Quando None, le soluzioni che richiedono una regione fanno ricorso a un valore predefinito. |
line_width | int | 2 | Spessore della linea per i box, i keypoint e i conteggi disegnati dalla soluzione. |
verbose | bool | True | Abilita il registro per fotogramma della soluzione relativo a forma dell'input, conteggi delle classi e velocità di elaborazione. La chiamata di tracking in sé è sempre silenziosa. |
Puoi anche applicare diversi argomenti track nella soluzione Heatmap.
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Specifica l'algoritmo di tracciamento da utilizzare. Opzioni integrate: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.25 | Imposta la soglia di confidenza per i rilevamenti; valori più bassi consentono di tracciare più oggetti ma possono includere falsi positivi. |
iou | float | 0.7 | Imposta la soglia Intersection over Union (IoU) per filtrare i rilevamenti sovrapposti. |
classes | list | None | Filtra i risultati per indice di classe. Ad esempio, classes=[0, 2, 3] traccia solo le classi specificate. |
device | str | None | Specifica il dispositivo per l'inferenza (ad esempio, cpu, cuda:0 o 0). Consente agli utenti di scegliere tra CPU, una specifica GPU o altri dispositivi di calcolo per l'esecuzione del modello. |
Inoltre, gli argomenti di visualizzazione supportati sono elencati di seguito:
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
show | bool | False | Se True, mostra le immagini o i video annotati in una finestra. Utile per un riscontro visivo immediato durante lo sviluppo o i test. |
show_conf | bool | True | Mostra il punteggio di confidenza per ogni rilevamento accanto all'etichetta. Fornisce informazioni sulla certezza del modello per ogni rilevamento. |
show_labels | bool | True | Mostra le etichette per ogni rilevamento nell'output visivo. Offre una comprensione immediata degli oggetti rilevati. |
Mappe di colore per Heatmap#
L'argomento colormap accetta qualsiasi mappa colori di OpenCV. Passa la costante dal modulo cv2, ad esempio colormap=cv2.COLORMAP_INFERNO:
| Nome della colormap | Descrizione |
|---|---|
cv2.COLORMAP_AUTUMN | Mappa colori Autumn |
cv2.COLORMAP_BONE | Mappa colori Bone |
cv2.COLORMAP_JET | Mappa colori Jet |
cv2.COLORMAP_WINTER | Mappa colori Winter |
cv2.COLORMAP_RAINBOW | Mappa colori Rainbow |
cv2.COLORMAP_OCEAN | Mappa colori Ocean |
cv2.COLORMAP_SUMMER | Mappa colori Summer |
cv2.COLORMAP_SPRING | Mappa colori Spring |
cv2.COLORMAP_COOL | Mappa colori Cool |
cv2.COLORMAP_HSV | Mappa colori HSV (Hue, Saturation, Value) |
cv2.COLORMAP_PINK | Mappa colori Pink |
cv2.COLORMAP_HOT | Mappa colori Hot |
cv2.COLORMAP_PARULA | Mappa colori Parula |
cv2.COLORMAP_MAGMA | Mappa colori Magma |
cv2.COLORMAP_INFERNO | Mappa colori Inferno |
cv2.COLORMAP_PLASMA | Mappa colori Plasma |
cv2.COLORMAP_VIRIDIS | Mappa colori Viridis |
cv2.COLORMAP_CIVIDIS | Mappa colori Cividis |
cv2.COLORMAP_TWILIGHT | Mappa colori Twilight |
cv2.COLORMAP_TWILIGHT_SHIFTED | Mappa colori Twilight Shifted |
cv2.COLORMAP_TURBO | Mappa colori Turbo |
cv2.COLORMAP_DEEPGREEN | Mappa colori Deep Green |
Come funzionano le mappe di calore#
La soluzione Heatmap estende la classe ObjectCounter. Sul primo fotogramma elaborato crea un livello di intensità vuoto che corrisponde alle dimensioni del fotogramma. Ciascun fotogramma viene quindi elaborato in due fasi:
- Il tracciamento YOLO26 rileva e segue ogni oggetto nel fotogramma
- Per ogni oggetto tracciato, l'intensità della mappa di calore aumenta all'interno di una regione circolare centrata nel suo bounding box
Una volta per fotogramma, il livello di intensità accumulata viene normalizzato, colorato con la mappa di colore selezionata e miscelato con il fotogramma originale. L'overlay appare non appena viene tracciato almeno un oggetto; i fotogrammi senza oggetti tracciati vengono mostrati senza l'overlay della mappa di calore.
Il risultato è una visualizzazione dinamica che si sviluppa nel tempo, rivelando pattern di traffico, movimenti di folle o altri comportamenti spaziali nei tuoi dati video. Quando viene impostato un region, la soluzione conta anche gli oggetti che entrano ed escono da quella regione mentre la heatmap si forma.
Conclusione#
La soluzione Ultralytics YOLO26 Heatmap trasforma i risultati del tracciamento degli oggetti in una sovrapposizione di attività intuitiva con poche righe di codice. Per andare oltre, combinala con il conteggio degli oggetti, esplora le altre Soluzioni Ultralytics o leggi la modalità di tracciamento sottostante.
FAQ#
Ultralytics YOLO26 genera heatmap tracciando gli oggetti tra i fotogrammi video e accumulando un valore di intensità nella posizione di ciascun oggetto tracciato, per poi colorizzare il risultato e fonderlo con il fotogramma originale. Le aree in cui gli oggetti compaiono frequentemente o si trattengono accumulano un'intensità maggiore e vengono renderizzate con colori più caldi. Per le opzioni di configurazione, fai riferimento alla sezione Argomenti di
Heatmap().Usa
cv2.VideoWriterdi OpenCV e scriviresults.plot_imper ogni fotogramma elaborato, come mostrato nell'esempio principale. L'attributoplot_imcontiene il fotogramma con la sovrapposizione della heatmap già applicata.Sì. Passa un argomento
regionaHeatmap()con punti di linee, rettangoli o poligoni, e la soluzione conterà gli oggetti che entrano ed escono da quella regione mentre la heatmap si sviluppa. I risultati restituiti includonoin_count,out_counte i conteggi per classe. Consulta la guida al conteggio degli oggetti per i dettagli sulla configurazione della regione.Passa l'argomento
classesaHeatmap()con gli indici di classe che desideri mantenere. Ad esempio,classes=[0, 2]crea la heatmap solo da persone e auto (indici di classe COCO 0 e 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()Le heatmap di Ultralytics YOLO26 integrano rilevamento di oggetti, tracciamento, accumulo di intensità e rendering della sovrapposizione in una singola chiamata, mentre strumenti generici come OpenCV o Matplotlib richiedono di costruire autonomamente quella pipeline. La soluzione elabora flussi video in tempo reale e supporta nativamente il tracciamento persistente e mappe colori personalizzabili. Per i dettagli sul modello sottostante, consulta la pagina del modello YOLO26.

