Mappe di calore del tracciamento degli oggetti con Ultralytics YOLO26#
La soluzione Heatmap di Ultralytics YOLO26 traccia gli oggetti tra i fotogrammi video e sovrappone a ciascun fotogramma l'intensità cumulativa dei loro movimenti, facendo risaltare le aree più frequentate con colori caldi e mantenendo quelle tranquille sui toni freddi. Basata sul tracciamento degli oggetti di YOLO26, trasforma qualsiasi video in una mappa spaziale delle attività che mostra il flusso del traffico, gli spostamenti della folla e le zone di permanenza con una sola chiamata Python o un comando CLI.
Guarda: Come creare mappe di calore con Ultralytics YOLO26 | Visualizza l'attività degli oggetti | VisionAI nel retail 🚀
Perché usare le mappe di calore per l'analisi video?#
- Individua a colpo d'occhio gli schemi di attività: l'intensità si accumula nei punti in cui gli oggetti tracciati trascorrono del tempo, mettendo in evidenza le corsie più trafficate, gli scaffali più frequentati o i punti di congestione della folla senza dover esaminare manualmente ogni fotogramma.
- Tracciamento integrato: la soluzione esegue internamente il rilevamento e il tracciamento con YOLO26, quindi non serve configurare una pipeline di tracciamento separata.
- Conteggio nello stesso passaggio: passa un
regionper contare gli oggetti che entrano ed escono da una zona mentre viene generata la mappa di calore, combinando due attività di analisi in un'unica esecuzione.
Applicazioni nel mondo reale#
| Trasporti | Commercio al dettaglio |
|---|---|
![]() | ![]() |
| Mappa di calore dei trasporti con Ultralytics YOLO | Mappa di calore del commercio al dettaglio con Ultralytics YOLO |
Come generare mappe di calore con Ultralytics YOLO#
Esegui la soluzione Heatmap su una sorgente video dalla CLI o da Python. L'esempio Python salva 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 a un file modello Ultralytics YOLO. |
colormap | int | cv2.COLORMAP_DEEPGREEN | Mappa dei colori da usare per la mappa di calore. |
show_in | bool | True | Flag che controlla se visualizzare i conteggi in entrata nello stream video. |
show_out | bool | True | Flag che controlla se visualizzare i conteggi in uscita nello stream video. |
region | list o dict | None | Punti che definiscono la regione di interesse: un elenco di tuple (x, y) oppure un dizionario che associa i nomi delle regioni agli elenchi di punti per più regioni (solo RegionCounter). Quando None, le soluzioni che richiedono una regione usano un valore predefinito predefinito. |
line_width | int | 2 | Spessore delle linee dei riquadri, dei punti chiave e dei conteggi disegnati dalla soluzione. |
verbose | bool | True | Abilita il log per frame della soluzione, con forma dell'input, conteggi per classe e velocità di elaborazione. La chiamata di tracking è sempre silenziosa. |
Puoi anche applicare diversi argomenti di track nella soluzione Heatmap.
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
tracker | str | 'tracktrack.yaml' | Specifica l'algoritmo di tracciamento da usare. Opzioni integrate: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.25 | Imposta la soglia di confidenza per le rilevazioni; valori più bassi consentono di tracciare più oggetti, ma possono includere falsi positivi. |
iou | float | 0.7 | Imposta la soglia di Intersezione sull'unione (IoU) per filtrare le rilevazioni sovrapposte. |
classes | list | None | Filtra i risultati in base all'indice della classe. Ad esempio, classes=[0, 2, 3] traccia solo le classi specificate. |
device | str | None | Specifica il dispositivo per l'inferenza (ad es. cpu, cuda:0 o 0). Consente di scegliere tra CPU, una GPU specifica o altri dispositivi di calcolo per l'esecuzione del modello. |
imgsz | int or tuple | 640 | Dimensione dell'immagine di destinazione per l'inferenza: un intero per un'immagine quadrata o una coppia (height, width). Le forme vengono adattate allo stride del modello. |
max_det | int | 300 | Numero massimo di rilevazioni da mantenere per fotogramma prima del tracciamento, che limita gli oggetti elaborati da una soluzione nelle scene dense. |
quantize | int or str | None | Precisione dell'inferenza: 16 (FP16) oppure 32/non impostata (FP32) per i modelli PyTorch e TorchScript; gli altri formati eseguono i calcoli con la precisione scelta dall'artefatto e dal runtime. Sostituisce il flag deprecato half. |
Inoltre, sono elencati di seguito gli argomenti di visualizzazione supportati:
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
show | bool | False | Se True, mostra le immagini o i video annotati in una finestra. Utile per ottenere un riscontro visivo immediato durante lo sviluppo o i test. |
show_conf | bool | True | Mostra il punteggio di confidenza di ogni rilevamento accanto all'etichetta. Fornisce indicazioni sul grado di certezza del modello per ciascun rilevamento. |
show_labels | bool | True | Mostra le etichette di ogni rilevamento nell'output visivo. Permette di identificare immediatamente gli oggetti rilevati. |
Tavolozze di colori per le mappe di calore#
L'argomento colormap accetta qualsiasi tavolozza di colori OpenCV. Passa la costante dal modulo cv2, ad esempio colormap=cv2.COLORMAP_INFERNO:
| Nome della tavolozza di colori | Descrizione |
|---|---|
cv2.COLORMAP_AUTUMN | Tavolozza Autumn |
cv2.COLORMAP_BONE | Tavolozza Bone |
cv2.COLORMAP_JET | Mappa dei colori Jet |
cv2.COLORMAP_WINTER | Mappa dei colori Winter |
cv2.COLORMAP_RAINBOW | Mappa dei colori Rainbow |
cv2.COLORMAP_OCEAN | Mappa dei colori Ocean |
cv2.COLORMAP_SUMMER | Mappa dei colori Summer |
cv2.COLORMAP_SPRING | Mappa dei colori Spring |
cv2.COLORMAP_COOL | Mappa dei colori Cool |
cv2.COLORMAP_HSV | Mappa dei colori HSV (tonalità, saturazione, valore) |
cv2.COLORMAP_PINK | Mappa dei colori Pink |
cv2.COLORMAP_HOT | Mappa dei colori Hot |
cv2.COLORMAP_PARULA | Mappa dei colori Parula |
cv2.COLORMAP_MAGMA | Mappa dei colori Magma |
cv2.COLORMAP_INFERNO | Mappa dei colori Inferno |
cv2.COLORMAP_PLASMA | Mappa dei colori Plasma |
cv2.COLORMAP_VIRIDIS | Mappa dei colori Viridis |
cv2.COLORMAP_CIVIDIS | Mappa dei colori Cividis |
cv2.COLORMAP_TWILIGHT | Mappa dei colori Twilight |
cv2.COLORMAP_TWILIGHT_SHIFTED | Mappa dei colori Twilight spostata |
cv2.COLORMAP_TURBO | Mappa dei colori Turbo |
cv2.COLORMAP_DEEPGREEN | Mappa dei colori Deep Green |
Come funzionano le mappe di calore#
La soluzione Heatmap estende la classe ObjectCounter. Sul primo frame elaborato, crea un livello di intensità vuoto delle stesse dimensioni del frame. Ogni frame viene quindi elaborato in due passaggi:
- Il tracking di YOLO26 rileva e segue ogni oggetto nel frame
- Per ogni oggetto tracciato, l'intensità della mappa di calore aumenta all'interno di un'area circolare centrata sul relativo riquadro di delimitazione
Una volta per frame, il livello di intensità accumulato viene normalizzato, colorizzato con la mappa dei colori selezionata e sovrapposto al frame originale. La sovrapposizione compare non appena viene tracciato almeno un oggetto; fino ad allora, i frame vengono mostrati senza la sovrapposizione della mappa di calore.
Il risultato è una visualizzazione dinamica che si costruisce nel tempo, rivelando schemi del traffico, movimenti della folla o altri comportamenti spaziali nei dati video. Quando viene impostato region, la soluzione conteggia anche gli oggetti che entrano ed escono da quell'area mentre la mappa di calore si costruisce.
Conclusione#
La soluzione Ultralytics YOLO26 Heatmap trasforma i risultati del tracking degli oggetti in una sovrapposizione intuitiva dell'attività con poche righe di codice. Per approfondire, combinala con il conteggio degli oggetti, esplora le altre soluzioni Ultralytics oppure leggi informazioni sulla modalità di tracking sottostante.
Domande frequenti#
Ultralytics YOLO26 genera mappe di calore tracciando gli oggetti tra i frame video e accumulando un valore di intensità nella posizione di ciascun oggetto tracciato; quindi colorizza il risultato e lo sovrappone al frame originale. Le aree in cui gli oggetti compaiono spesso o rimangono a lungo accumulano un'intensità maggiore e vengono visualizzate con colori più caldi. Per le opzioni di configurazione, consulta la sezione Argomenti di
Heatmap().Usa
cv2.VideoWriterdi OpenCV e scriviresults.plot_imper ogni frame elaborato, come mostrato nell'esempio principale. L'attributoplot_imcontiene il frame con la sovrapposizione della mappa di calore già applicata.Sì. Passa un argomento
regionaHeatmap()con i punti di una linea, un rettangolo o un poligono: la soluzione conteggerà gli oggetti che entrano ed escono da quell'area mentre la mappa di calore si costruisce. I risultati restituiti includonoin_count,out_counte i conteggi per classe. Consulta la guida al conteggio degli oggetti per i dettagli sulla configurazione delle aree.Passa l'argomento
classesaHeatmap()con gli indici delle classi che vuoi mantenere. Ad esempio,classes=[0, 2]crea la mappa di calore solo per 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 mappe di calore di Ultralytics YOLO26 integrano rilevamento degli oggetti, tracking, accumulo dell'intensità e rendering della sovrapposizione in una sola chiamata, mentre strumenti generici come OpenCV o Matplotlib richiedono di creare autonomamente questa pipeline. La soluzione elabora flussi video in tempo reale e supporta il tracking persistente e mappe dei colori personalizzabili fin da subito. Per i dettagli sul modello sottostante, consulta la pagina del modello YOLO26.

