Meet YOLO26: next-gen vision AI.

Link to this sectionAnalisi utilizzando Ultralytics YOLO26#

Link to this sectionIntroduzione#

Questa guida fornisce una panoramica completa di tre tipi fondamentali di visualizzazione dati: grafici a linee, grafici a barre e grafici a torta. Ogni sezione include istruzioni dettagliate e frammenti di codice su come creare queste visualizzazioni utilizzando Python.



Watch: How to generate Analytical Graphs using Ultralytics | Line Graphs, Bar Plots, Area and Pie Charts

Link to this sectionEsempi visivi#

Grafico a lineeGrafico a barreGrafico a torta
Grafico a linee di analisi YOLO per il tracciamento degli oggettiGrafico a barre di analisi YOLO per il conteggio dei rilevamentiGrafico a torta di analisi YOLO per la distribuzione delle classi

Link to this sectionPerché i grafici sono importanti#

  • I grafici a linee sono ideali per monitorare i cambiamenti su brevi e lunghi periodi e per confrontare le variazioni tra più gruppi nello stesso periodo.
  • I grafici a barre, d'altra parte, sono adatti per confrontare quantità tra diverse categorie e mostrare le relazioni tra una categoria e il suo valore numerico.
  • Infine, i grafici a torta sono efficaci per illustrare le proporzioni tra le categorie e mostrare le parti di un intero.
Analisi utilizzando Ultralytics YOLO
yolo solutions analytics show=True

# Pass the source
yolo solutions analytics source="path/to/video.mp4"

# Generate the pie chart
yolo solutions analytics analytics_type="pie" show=True

# Generate the bar plots
yolo solutions analytics analytics_type="bar" show=True

# Generate the area plots
yolo solutions analytics analytics_type="area" show=True

Link to this sectionArgomenti di Analytics#

Ecco una tabella che delinea gli argomenti di Analytics:

ArgomentoTipoPredefinitoDescrizione
modelstrNonePercorso verso un file di modello Ultralytics YOLO.
analytics_typestr'line'Tipo di grafico, ad es. line, bar, area o pie.

Puoi anche sfruttare diversi argomenti di track nella soluzione Analytics.

ArgomentoTipoPredefinitoDescrizione
trackerstr'botsort.yaml'Specifica l'algoritmo di tracciamento da utilizzare, ad es. bytetrack.yaml o botsort.yaml.
conffloat0.1Imposta la soglia di confidenza per i rilevamenti; valori più bassi consentono il tracciamento di un numero maggiore di oggetti ma possono includere falsi positivi.
ioufloat0.7Imposta la soglia di Intersection over Union (IoU) per filtrare i rilevamenti sovrapposti.
classeslistNoneFiltra i risultati per indice di classe. Ad esempio, classes=[0, 2, 3] traccia solo le classi specificate.
verboseboolTrueControlla la visualizzazione dei risultati di tracciamento, fornendo un output visivo degli oggetti tracciati.
devicestrNoneSpecifica il dispositivo per l'inferenza (ad es. 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, sono supportati i seguenti argomenti di visualizzazione:

ArgomentoTipoPredefinitoDescrizione
showboolFalseSe True, visualizza le immagini o i video annotati in una finestra. Utile per un feedback visivo immediato durante lo sviluppo o il test.
line_widthint or NoneNoneSpecifica lo spessore della linea delle bounding box. Se None, lo spessore della linea viene regolato automaticamente in base alla dimensione dell'immagine. Fornisce una personalizzazione visiva per una maggiore chiarezza.

Link to this sectionConclusione#

Comprendere quando e come utilizzare diversi tipi di visualizzazioni è cruciale per un'analisi efficace dei dati. I grafici a linee, i grafici a barre e i grafici a torta sono strumenti fondamentali che possono aiutarti a trasmettere la storia dei tuoi dati in modo più chiaro ed efficace. La soluzione di analisi Ultralytics YOLO26 offre un modo semplificato per generare queste visualizzazioni dai risultati di rilevamento oggetti e tracciamento, facilitando l'estrazione di informazioni significative dai tuoi dati visivi.

Link to this sectionFAQ#

Link to this sectionCome creo un grafico a linee utilizzando l'analisi di Ultralytics YOLO26?#

Per creare un grafico a linee utilizzando l'analisi di Ultralytics YOLO26, segui questi passaggi:

  1. Carica un modello YOLO26 e apri il tuo file video.
  2. Inizializza la classe Analytics con il tipo impostato su "line."
  3. Itera attraverso i fotogrammi del video, aggiornando il grafico a linee con dati pertinenti, come il conteggio degli oggetti per fotogramma.
  4. Salva il video di output che mostra il grafico a linee.

Esempio:

import cv2

from ultralytics import solutions

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

w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="line",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

Per ulteriori dettagli sulla configurazione della classe Analytics, visita la sezione Analisi utilizzando Ultralytics YOLO26.

Link to this sectionQuali sono i vantaggi dell'utilizzo di Ultralytics YOLO26 per la creazione di grafici a barre?#

L'utilizzo di Ultralytics YOLO26 per la creazione di grafici a barre offre diversi vantaggi:

  1. Visualizzazione dati in tempo reale: Integra senza problemi i risultati del rilevamento oggetti nei grafici a barre per aggiornamenti dinamici.
  2. Facilità d'uso: API e funzioni semplici rendono immediata l'implementazione e la visualizzazione dei dati.
  3. Personalizzazione: Personalizza titoli, etichette, colori e altro ancora per adattarli alle tue esigenze specifiche.
  4. Efficienza: Gestisci in modo efficiente grandi quantità di dati e aggiorna i grafici in tempo reale durante l'elaborazione video.

Usa il seguente esempio per generare un grafico a barre:

import cv2

from ultralytics import solutions

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

w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="bar",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

Per saperne di più, visita la sezione Grafico a barre nella guida.

Link to this sectionPerché dovrei usare Ultralytics YOLO26 per creare grafici a torta nei miei progetti di visualizzazione dati?#

Ultralytics YOLO26 è una scelta eccellente per creare grafici a torta perché:

  1. Integrazione con il rilevamento oggetti: Integra direttamente i risultati del rilevamento oggetti nei grafici a torta per ottenere informazioni immediate.
  2. API intuitiva: Semplice da configurare e utilizzare con un codice minimo.
  3. Personalizzabile: Varie opzioni di personalizzazione per colori, etichette e altro.
  4. Aggiornamenti in tempo reale: Gestisci e visualizza i dati in tempo reale, il che è ideale per i progetti di analisi video.

Ecco un rapido esempio:

import cv2

from ultralytics import solutions

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

w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="pie",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

Per ulteriori informazioni, fai riferimento alla sezione Grafico a torta nella guida.

Link to this sectionÈ possibile utilizzare Ultralytics YOLO26 per tracciare oggetti e aggiornare dinamicamente le visualizzazioni?#

Sì, Ultralytics YOLO26 può essere utilizzato per tracciare oggetti e aggiornare dinamicamente le visualizzazioni. Supporta il tracciamento di più oggetti in tempo reale e può aggiornare varie visualizzazioni come grafici a linee, grafici a barre e grafici a torta in base ai dati degli oggetti tracciati.

Esempio per il tracciamento e l'aggiornamento di un grafico a linee:

import cv2

from ultralytics import solutions

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

w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="line",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

Per conoscere la funzionalità completa, consulta la sezione Tracciamento.

Link to this sectionCosa rende Ultralytics YOLO26 diverso da altre soluzioni di rilevamento oggetti come OpenCV e TensorFlow?#

Ultralytics YOLO26 si distingue dalle altre soluzioni di rilevamento oggetti come OpenCV e TensorFlow per molteplici motivi:

  1. Accuratezza allo stato dell'arte: YOLO26 offre una precisione superiore nelle attività di rilevamento oggetti, segmentazione di istanze, segmentazione semantica e classificazione.
  2. Facilità d'uso: Le API intuitive consentono una rapida implementazione e integrazione senza una programmazione complessa.
  3. Prestazioni in tempo reale: Ottimizzato per l'inferenza ad alta velocità, adatto per applicazioni in tempo reale.
  4. Applicazioni diversificate: Supporta varie attività, tra cui il tracciamento di più oggetti, l'addestramento di modelli personalizzati e l'esportazione in diversi formati come ONNX, TensorRT e CoreML.
  5. Documentazione completa: Ampia documentazione e risorse del blog per guidare gli utenti attraverso ogni passaggio.

Per confronti più dettagliati e casi d'uso, esplora il nostro Blog di Ultralytics.

Commenti