Ultralytics YOLO27:
Get Started

Mappe di calore del tracciamento degli oggetti con Ultralytics YOLO26#

Open Heatmaps In Colab

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 region per 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#

TrasportiCommercio al dettaglio
Sovrapposizione di una mappa di calore Ultralytics YOLO che mostra la densità del traffico veicolareSovrapposizione di una mappa di calore Ultralytics YOLO che mostra gli spostamenti dei clienti in un negozio
Mappa di calore dei trasporti con Ultralytics YOLOMappa 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:

Mappe di calore con 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)]"

Argomenti di Heatmap()#

Ecco una tabella con gli argomenti di Heatmap:

ArgomentoTipoPredefinitoDescrizione
modelstrNonePercorso a un file modello Ultralytics YOLO.
colormapintcv2.COLORMAP_DEEPGREENMappa dei colori da usare per la mappa di calore.
show_inboolTrueFlag che controlla se visualizzare i conteggi in entrata nello stream video.
show_outboolTrueFlag che controlla se visualizzare i conteggi in uscita nello stream video.
regionlist o dictNonePunti 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_widthint2Spessore delle linee dei riquadri, dei punti chiave e dei conteggi disegnati dalla soluzione.
verboseboolTrueAbilita 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.

ArgomentoTipoPredefinitoDescrizione
trackerstr'tracktrack.yaml'Specifica l'algoritmo di tracciamento da usare. Opzioni integrate: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.25Imposta la soglia di confidenza per le rilevazioni; valori più bassi consentono di tracciare più oggetti, ma possono includere falsi positivi.
ioufloat0.7Imposta la soglia di Intersezione sull'unione (IoU) per filtrare le rilevazioni sovrapposte.
classeslistNoneFiltra i risultati in base all'indice della classe. Ad esempio, classes=[0, 2, 3] traccia solo le classi specificate.
devicestrNoneSpecifica 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.
imgszint or tuple640Dimensione 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_detint300Numero massimo di rilevazioni da mantenere per fotogramma prima del tracciamento, che limita gli oggetti elaborati da una soluzione nelle scene dense.
quantizeint or strNonePrecisione 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:

ArgomentoTipoPredefinitoDescrizione
showboolFalseSe 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_confboolTrueMostra il punteggio di confidenza di ogni rilevamento accanto all'etichetta. Fornisce indicazioni sul grado di certezza del modello per ciascun rilevamento.
show_labelsboolTrueMostra 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 coloriDescrizione
cv2.COLORMAP_AUTUMNTavolozza Autumn
cv2.COLORMAP_BONETavolozza Bone
cv2.COLORMAP_JETMappa dei colori Jet
cv2.COLORMAP_WINTERMappa dei colori Winter
cv2.COLORMAP_RAINBOWMappa dei colori Rainbow
cv2.COLORMAP_OCEANMappa dei colori Ocean
cv2.COLORMAP_SUMMERMappa dei colori Summer
cv2.COLORMAP_SPRINGMappa dei colori Spring
cv2.COLORMAP_COOLMappa dei colori Cool
cv2.COLORMAP_HSVMappa dei colori HSV (tonalità, saturazione, valore)
cv2.COLORMAP_PINKMappa dei colori Pink
cv2.COLORMAP_HOTMappa dei colori Hot
cv2.COLORMAP_PARULAMappa dei colori Parula
cv2.COLORMAP_MAGMAMappa dei colori Magma
cv2.COLORMAP_INFERNOMappa dei colori Inferno
cv2.COLORMAP_PLASMAMappa dei colori Plasma
cv2.COLORMAP_VIRIDISMappa dei colori Viridis
cv2.COLORMAP_CIVIDISMappa dei colori Cividis
cv2.COLORMAP_TWILIGHTMappa dei colori Twilight
cv2.COLORMAP_TWILIGHT_SHIFTEDMappa dei colori Twilight spostata
cv2.COLORMAP_TURBOMappa dei colori Turbo
cv2.COLORMAP_DEEPGREENMappa 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:

  1. Il tracking di YOLO26 rileva e segue ogni oggetto nel frame
  2. 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.VideoWriter di OpenCV e scrivi results.plot_im per ogni frame elaborato, come mostrato nell'esempio principale. L'attributo plot_im contiene il frame con la sovrapposizione della mappa di calore già applicata.

  • Sì. Passa un argomento region a Heatmap() 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 includono in_count, out_count e i conteggi per classe. Consulta la guida al conteggio degli oggetti per i dettagli sulla configurazione delle aree.

  • Passa l'argomento classes a Heatmap() 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.

Commenti