Vai al contenuto

Visualizzazione avanzata dei dati: Mappe di calore con Ultralytics YOLO11 🚀

Introduzione alle mappe di calore

Apri le mappe di calore in Colab

Una heatmap generata con Ultralytics YOLO11 trasforma dati complessi in una matrice vivace e codificata a colori. Questo strumento visivo impiega uno spettro di colori per rappresentare diversi valori di dati, dove le tonalità più calde indicano intensità più elevate e i toni più freddi significano valori più bassi. Le heatmap eccellono nella visualizzazione di modelli di dati complessi, correlazioni e anomalie, offrendo un approccio accessibile e coinvolgente all'interpretazione dei dati in diversi ambiti.



Guarda: Mappe di calore che utilizzano Ultralytics YOLO11

Perché scegliere le mappe di calore per l'analisi dei dati?

  • Visualizzazione Intuitiva della Distribuzione dei Dati: Le mappe di calore semplificano la comprensione della concentrazione e della distribuzione dei dati, convertendo dataset complessi in formati visivi facili da capire.
  • Rilevamento Efficiente di Pattern: Visualizzando i dati in formato heatmap, diventa più facile individuare tendenze, cluster e outlier, facilitando un'analisi e approfondimenti più rapidi.
  • Analisi Spaziale e Processo Decisionale Migliorati: Le heatmap sono fondamentali per illustrare le relazioni spaziali, aiutando nei processi decisionali in settori come la business intelligence, gli studi ambientali e la pianificazione urbana.

Applicazioni nel mondo reale

Trasporti Vendita al dettaglio
Heatmap per il trasporto di Ultralytics YOLO11 Heatmap per la vendita al dettaglio di Ultralytics YOLO11
Heatmap per il trasporto di Ultralytics YOLO11 Heatmap per la vendita al dettaglio di Ultralytics YOLO11

Mappe di calore che utilizzano 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)]"
import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

# Video writer
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
video_writer = cv2.VideoWriter("heatmap_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# For object counting with heatmap, you can pass region points.
# region_points = [(20, 400), (1080, 400)]                                      # line points
# region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360)]              # rectangle region
# region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360), (20, 400)]   # polygon points

# Initialize heatmap object
heatmap = solutions.Heatmap(
    show=True,  # display the output
    model="yolo11n.pt",  # path to the YOLO11 model file
    colormap=cv2.COLORMAP_PARULA,  # colormap of heatmap
    # region=region_points,  # object counting with heatmaps, you can pass region_points
    # classes=[0, 2],  # generate heatmap for specific classes i.e person and car.
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()

    if not success:
        print("Video frame is empty or processing is complete.")
        break

    results = heatmap(im0)

    # print(results)  # access the output

    video_writer.write(results.plot_im)  # write the processed frame.

cap.release()
video_writer.release()
cv2.destroyAllWindows()  # destroy all opened windows

Heatmap() Argomenti

Ecco una tabella con i Heatmap argomenti:

Argomento Tipo Predefinito Descrizione
model str None Percorso del file del modello Ultralytics YOLO.
colormap int cv2.COLORMAP_JET Colormap da utilizzare per la heatmap.
show_in bool True Flag per controllare se visualizzare i conteggi in streaming video.
show_out bool True Flag per controllare se visualizzare i conteggi out streaming video.
region list '[(20, 400), (1260, 400)]' Elenco dei punti che definiscono la regione di conteggio.

È anche possibile applicare diversi track argomenti nel Heatmap solution.

Argomento Tipo Predefinito Descrizione
tracker str 'botsort.yaml' Specifica l'algoritmo di tracking da utilizzare, ad esempio: bytetrack.yaml oppure botsort.yaml.
conf float 0.3 Imposta la soglia di confidenza per i rilevamenti; valori inferiori consentono di tracciare più oggetti, ma potrebbero includere falsi positivi.
iou float 0.5 Imposta la soglia Intersection over Union (IoU) per filtrare i rilevamenti sovrapposti.
classes list None Filtra i risultati per indice di classe. Per esempio, classes=[0, 2, 3] traccia solo le classi specificate.
verbose bool True Controlla la visualizzazione dei risultati del tracking, fornendo un output visivo degli oggetti tracciati.
device str None Specifica il dispositivo per l'inferenza (ad esempio, cpu, cuda:0 oppure 0). Consente agli utenti di scegliere tra CPU, una GPU specifica 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, visualizza le immagini o i video annotati in una finestra. Utile per un feedback visivo immediato durante lo sviluppo o il test.
line_width None or int None Specifica lo spessore della linea dei riquadri di delimitazione. Se None, lo spessore della linea viene regolato automaticamente in base alle dimensioni dell'immagine, fornendo una personalizzazione visiva per una maggiore chiarezza.
show_conf bool True Visualizza il punteggio di confidenza per ogni rilevamento accanto all'etichetta, offrendo una panoramica sulla certezza del modello per ogni rilevamento.
show_labels bool True Mostra le etichette per ogni rilevamento nell'output visivo, fornendo una comprensione immediata degli oggetti rilevati.

Mappe di calore COLORMAP

Nome della colormap Descrizione
cv::COLORMAP_AUTUMN Mappa dei colori autunnale
cv::COLORMAP_BONE Mappa dei colori delle ossa
cv::COLORMAP_JET Mappa dei colori Jet
cv::COLORMAP_WINTER Mappa dei colori Winter
cv::COLORMAP_RAINBOW Mappa dei colori arcobaleno
cv::COLORMAP_OCEAN Mappa dei colori dell'oceano
cv::COLORMAP_SUMMER Mappa dei colori estiva
cv::COLORMAP_SPRING Mappa dei colori primaverile
cv::COLORMAP_COOL Mappa di colori freddi
cv::COLORMAP_HSV Mappa colori HSV (Hue, Saturation, Value)
cv::COLORMAP_PINK Mappa dei colori rosa
cv::COLORMAP_HOT Mappa di colori caldi
cv::COLORMAP_PARULA Mappa dei colori Parula
cv::COLORMAP_MAGMA Mappa colori Magma
cv::COLORMAP_INFERNO Mappa dei colori Inferno
cv::COLORMAP_PLASMA Mappa dei colori plasma
cv::COLORMAP_VIRIDIS Mappa colori Viridis
cv::COLORMAP_CIVIDIS Mappa colori Cividis
cv::COLORMAP_TWILIGHT Mappa dei colori Twilight
cv::COLORMAP_TWILIGHT_SHIFTED Mappa dei colori Twilight spostata
cv::COLORMAP_TURBO Mappa dei colori Turbo
cv::COLORMAP_DEEPGREEN Mappa colori Deep Green

Queste colormap sono comunemente utilizzate per visualizzare i dati con diverse rappresentazioni di colore.

Come funzionano le mappe di calore in Ultralytics YOLO11

La soluzione Heatmap in Ultralytics YOLO11 estende la classe ObjectCounter per generare e visualizzare i modelli di movimento nei flussi video. Quando viene inizializzata, la soluzione crea un livello heatmap vuoto che viene aggiornato man mano che gli oggetti si muovono attraverso il frame.

Per ogni oggetto rilevato, la soluzione:

  1. Traccia l'oggetto attraverso i fotogrammi utilizzando le capacità di tracciamento di YOLO11
  2. Aggiorna l'intensità della heatmap nella posizione dell'oggetto
  3. Applica una colormap selezionata per visualizzare i valori di intensità
  4. Sovrappone la heatmap colorata al frame originale

Il risultato è una visualizzazione dinamica che si sviluppa nel tempo, rivelando modelli di traffico, movimenti della folla o altri comportamenti spaziali nei tuoi dati video.

FAQ

In che modo Ultralytics YOLO11 genera mappe di calore e quali sono i loro vantaggi?

Ultralytics YOLO11 genera mappe di calore trasformando dati complessi in una matrice con codifica a colori dove diverse tonalità rappresentano le intensità dei dati. Le mappe di calore semplificano la visualizzazione di modelli, correlazioni e anomalie nei dati. Le tonalità più calde indicano valori più alti, mentre i toni più freddi rappresentano valori più bassi. I vantaggi principali includono la visualizzazione intuitiva della distribuzione dei dati, il rilevamento efficiente dei modelli e l'analisi spaziale avanzata per il processo decisionale. Per maggiori dettagli e opzioni di configurazione, fare riferimento alla sezione Configurazione della mappa di calore.

Posso utilizzare Ultralytics YOLO11 per eseguire il tracciamento degli oggetti e generare contemporaneamente una heatmap?

Sì, Ultralytics YOLO11 supporta il tracciamento degli oggetti e la generazione di heatmap contemporaneamente. Ciò può essere ottenuto tramite la sua Heatmap soluzione integrata con modelli di object tracking. Per farlo, devi inizializzare l'oggetto heatmap e utilizzare le funzionalità di tracking di YOLO11. Ecco un semplice esempio:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
heatmap = solutions.Heatmap(colormap=cv2.COLORMAP_PARULA, show=True, model="yolo11n.pt")

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        break
    results = heatmap(im0)
cap.release()
cv2.destroyAllWindows()

Per ulteriori indicazioni, consulta la pagina della Modalità Tracking.

Cosa rende le heatmap di Ultralytics YOLO11 diverse da altri strumenti di visualizzazione dati come quelli di OpenCV o Matplotlib?

Le mappe di calore di Ultralytics YOLO11 sono specificamente progettate per l'integrazione con i suoi modelli di rilevamento degli oggetti e tracciamento, fornendo una soluzione end-to-end per l'analisi dei dati in tempo reale. A differenza degli strumenti di visualizzazione generici come OpenCV o Matplotlib, le mappe di calore di YOLO11 sono ottimizzate per le prestazioni e l'elaborazione automatizzata, supportando funzionalità come il tracciamento persistente, la regolazione del fattore di decadimento e la sovrapposizione video in tempo reale. Per ulteriori informazioni sulle caratteristiche uniche di YOLO11, visitare l'Introduzione a Ultralytics YOLO11.

Come posso visualizzare solo specifiche classi di oggetti nelle mappe di calore usando Ultralytics YOLO11?

Puoi visualizzare classi di oggetti specifiche specificando le classi desiderate nel track() method del modello YOLO. Ad esempio, se vuoi visualizzare solo auto e persone (supponendo che i loro indici di classe siano 0 e 2), puoi impostare il classes parameter di conseguenza.

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
heatmap = solutions.Heatmap(show=True, model="yolo11n.pt", classes=[0, 2])

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        break
    results = heatmap(im0)
cap.release()
cv2.destroyAllWindows()

Perché le aziende dovrebbero scegliere Ultralytics YOLO11 per la generazione di mappe di calore nell'analisi dei dati?

Ultralytics YOLO11 offre un'integrazione perfetta del rilevamento avanzato di oggetti e della generazione di heatmap in tempo reale, rendendolo la scelta ideale per le aziende che desiderano visualizzare i dati in modo più efficace. I vantaggi principali includono la visualizzazione intuitiva della distribuzione dei dati, il rilevamento efficiente dei pattern e l'analisi spaziale avanzata per un processo decisionale migliore. Inoltre, le funzionalità all'avanguardia di YOLO11, come il tracciamento persistente, le colormap personalizzabili e il supporto per vari formati di esportazione, lo rendono superiore ad altri strumenti come TensorFlow e OpenCV per un'analisi completa dei dati. Scopri di più sulle applicazioni aziendali su Ultralytics Plans.



📅 Creato 1 anno fa ✏️ Aggiornato 4 mesi fa

Commenti