Meet YOLO26: next-gen vision AI.

Link to this sectionConteggio oggetti con Ultralytics YOLO26#

Link to this sectionChe cos'è il conteggio degli oggetti?#

Apri Conteggio Oggetti in Colab

Il conteggio degli oggetti con Ultralytics YOLO26 comporta l'identificazione e il conteggio accurati di oggetti specifici in video e flussi video. YOLO26 eccelle nelle applicazioni in tempo reale, fornendo un conteggio efficiente e preciso per vari scenari come l'analisi della folla e la videosorveglianza, grazie ai suoi algoritmi all'avanguardia e alle capacità di deep learning.



Watch: How to Perform Real-Time Object Counting with Ultralytics YOLO26 🚀

Link to this sectionVantaggi del conteggio degli oggetti#

  • Ottimizzazione delle risorse: Il conteggio degli oggetti facilita una gestione efficiente delle risorse fornendo conteggi accurati, ottimizzando l'allocazione delle risorse in applicazioni come la gestione dell'inventario.
  • Sicurezza avanzata: Il conteggio degli oggetti migliora la sicurezza e la sorveglianza tracciando e contando accuratamente le entità, aiutando nella rilevazione proattiva delle minacce.
  • Processo decisionale informato: Il conteggio degli oggetti offre informazioni preziose per il processo decisionale, ottimizzando i processi nel commercio al dettaglio, nella gestione del traffico e in molti altri ambiti.

Link to this sectionApplicazioni nel mondo reale#

LogisticaAcquacoltura
Conteggio pacchetti su nastro trasportatore con Ultralytics YOLO26Conteggio pesci in mare con Ultralytics YOLO26
Conteggio pacchetti su nastro trasportatore con Ultralytics YOLO26Conteggio pesci in mare con Ultralytics YOLO26

Link to this sectionConta gli oggetti con YOLO26#

Definisci una region di conteggio — due punti per una linea o tre o più per un poligono — e passala alla soluzione ObjectCounter. Il contatore traccia ogni oggetto tra i fotogrammi e registra i conteggi IN/OUT quando i centroidi tracciati attraversano la linea o si spostano all'interno della regione, restituendo un fotogramma annotato che puoi scrivere in un video di output.

Conteggio oggetti con Ultralytics YOLO
# Run a counting example
yolo solutions count show=True

# Pass a source video
yolo solutions count source="path/to/video.mp4"

# Pass region coordinates
yolo solutions count region="[(20, 400), (1080, 400), (1080, 360), (20, 360)]"

L'argomento region accetta due punti (per una linea) o un poligono con tre o più punti. Definisci le coordinate nell'ordine in cui devono essere collegate in modo che il contatore sappia esattamente dove si verificano le entrate e le uscite.

Link to this sectionArgomenti di ObjectCounter#

Ecco una tabella con gli argomenti di ObjectCounter:

ArgomentoTipoPredefinitoDescrizione
modelstrNonePercorso verso un file del modello Ultralytics YOLO.
show_inboolTrueFlag per controllare se visualizzare i conteggi in ingresso sul flusso video.
show_outboolTrueFlag per controllare se visualizzare i conteggi in uscita sul flusso video.
regionlist o dictNonePunti che definiscono l'area di interesse, sotto forma di lista di tuple (x, y) o di dizionario che associa nomi di aree a liste di punti per aree multiple (solo per RegionCounter). Quando è None, le soluzioni che richiedono un'area utilizzano un valore predefinito.

La soluzione ObjectCounter consente l'uso di diversi argomenti track:

ArgomentoTipoPredefinitoDescrizione
trackerstr'botsort.yaml'Specifica l'algoritmo di tracciamento da utilizzare. Opzioni integrate: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.1Imposta la soglia di confidenza per i rilevamenti; valori più bassi consentono di tracciare più 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 esempio, cpu, cuda:0 o 0). Consente agli utenti di scegliere tra CPU, una GPU specifica o altri dispositivi di calcolo per l'esecuzione del modello.

Inoltre, sono supportati gli argomenti di visualizzazione elencati di seguito:

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 la larghezza della linea dei bounding box. Se None, la larghezza della linea viene regolata automaticamente in base alla dimensione dell'immagine. Fornisce personalizzazione visiva per chiarezza.
show_confboolTrueMostra il punteggio di confidenza per ogni rilevamento accanto all'etichetta. Fornisce informazioni sulla certezza del modello per ogni rilevamento.
show_labelsboolTrueMostra le etichette per ogni rilevamento nell'output visivo. Offre una comprensione immediata degli oggetti rilevati.

Link to this sectionFAQ#

Link to this sectionCome posso contare gli oggetti in un video utilizzando Ultralytics YOLO26?#

Per contare gli oggetti in un video usando Ultralytics YOLO26, puoi seguire questi passaggi:

  1. Importa le librerie necessarie (cv2, ultralytics).
  2. Definisci la regione di conteggio (ad esempio, un poligono, una linea, ecc.).
  3. Configura l'acquisizione video e inizializza il contatore di oggetti.
  4. Elabora ogni frame per tracciare gli oggetti e contarli all'interno della regione definita.

Ecco un semplice esempio per il conteggio in una regione:

import cv2

from ultralytics import solutions

def count_objects_in_region(video_path, output_video_path, model_path):
    """Count objects in a specific region within a video."""
    cap = cv2.VideoCapture(video_path)
    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))
    video_writer = cv2.VideoWriter(output_video_path, cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

    region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360)]
    counter = solutions.ObjectCounter(show=True, region=region_points, model=model_path)

    while cap.isOpened():
        success, im0 = cap.read()
        if not success:
            print("Video frame is empty or processing is complete.")
            break
        results = counter(im0)
        video_writer.write(results.plot_im)

    cap.release()
    video_writer.release()
    cv2.destroyAllWindows()

count_objects_in_region("path/to/video.mp4", "output_video.avi", "yolo26n.pt")

Per configurazioni e opzioni più avanzate, dai un'occhiata alla soluzione RegionCounter per contare oggetti in più regioni contemporaneamente.

Link to this sectionQuali sono i vantaggi dell'utilizzo di Ultralytics YOLO26 per il conteggio degli oggetti?#

Utilizzare Ultralytics YOLO26 per il conteggio degli oggetti offre diversi vantaggi:

  1. Ottimizzazione delle risorse: Facilita una gestione efficiente delle risorse fornendo conteggi accurati, aiutando a ottimizzare l'allocazione delle risorse in settori come la gestione dell'inventario.
  2. Sicurezza avanzata: Migliora la sicurezza e la sorveglianza tracciando e contando accuratamente le entità, aiutando nella rilevazione proattiva delle minacce e nei sistemi di sicurezza.
  3. Processo decisionale informato: Offre informazioni preziose per il processo decisionale, ottimizzando i processi in ambiti come il commercio al dettaglio, la gestione del traffico e altro ancora.
  4. Elaborazione in tempo reale: L'architettura di YOLO26 abilita l'inferenza in tempo reale, rendendolo adatto per flussi video live e applicazioni sensibili al fattore tempo.

Per esempi di implementazione e applicazioni pratiche, esplora la soluzione TrackZone per tracciare oggetti in zone specifiche.

Link to this sectionCome posso contare classi specifiche di oggetti usando Ultralytics YOLO26?#

Per contare classi specifiche di oggetti usando Ultralytics YOLO26, devi specificare le classi a cui sei interessato durante la fase di tracciamento. Di seguito è riportato un esempio in Python:

import cv2

from ultralytics import solutions

def count_specific_classes(video_path, output_video_path, model_path, classes_to_count):
    """Count specific classes of objects in a video."""
    cap = cv2.VideoCapture(video_path)
    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))
    video_writer = cv2.VideoWriter(output_video_path, cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

    line_points = [(20, 400), (1080, 400)]
    counter = solutions.ObjectCounter(show=True, region=line_points, model=model_path, classes=classes_to_count)

    while cap.isOpened():
        success, im0 = cap.read()
        if not success:
            print("Video frame is empty or processing is complete.")
            break
        results = counter(im0)
        video_writer.write(results.plot_im)

    cap.release()
    video_writer.release()
    cv2.destroyAllWindows()

count_specific_classes("path/to/video.mp4", "output_specific_classes.avi", "yolo26n.pt", [0, 2])

In questo esempio, classes_to_count=[0, 2] significa che conta gli oggetti delle classi 0 e 2 (ad esempio, persona e auto nel dataset COCO). Puoi trovare maggiori informazioni sugli indici delle classi nella documentazione del dataset COCO.

Link to this sectionPerché dovrei usare YOLO26 rispetto ad altri modelli di rilevamento oggetti per applicazioni in tempo reale?#

Ultralytics YOLO26 offre diversi vantaggi rispetto ad altri modelli di rilevamento oggetti come Faster R-CNN, SSD e le versioni precedenti di YOLO:

  1. Velocità ed efficienza: YOLO26 offre capacità di elaborazione in tempo reale, rendendolo ideale per applicazioni che richiedono un'inferenza ad alta velocità, come la videosorveglianza e la guida autonoma.
  2. Accuratezza: Fornisce un'accuratezza all'avanguardia per le attività di rilevamento e tracciamento degli oggetti, riducendo il numero di falsi positivi e migliorando l'affidabilità complessiva del sistema.
  3. Facilità di integrazione: YOLO26 offre un'integrazione perfetta con varie piattaforme e dispositivi, inclusi dispositivi mobili e edge, fondamentale per le moderne applicazioni di AI.
  4. Flessibilità: Supporta varie attività come il rilevamento di oggetti, la segmentazione e il tracciamento con modelli configurabili per soddisfare requisiti specifici di casi d'uso.

Dai un'occhiata alla Documentazione di YOLO26 di Ultralytics per un approfondimento sulle sue funzionalità e sui confronti delle prestazioni.

Link to this sectionPosso usare YOLO26 per applicazioni avanzate come l'analisi della folla e la gestione del traffico?#

Sì, Ultralytics YOLO26 è perfettamente adatto per applicazioni avanzate come l'analisi della folla e la gestione del traffico grazie alle sue capacità di rilevamento in tempo reale, alla scalabilità e alla flessibilità di integrazione. Le sue funzionalità avanzate consentono il tracciamento, il conteggio e la classificazione accurata degli oggetti in ambienti dinamici. Esempi di casi d'uso includono:

  • Analisi della folla: Monitora e gestisci grandi assembramenti, garantendo la sicurezza e ottimizzando il flusso della folla con il conteggio basato su regioni.
  • Gestione del traffico: Traccia e conta i veicoli, analizza i pattern di traffico e gestisci la congestione in tempo reale con funzionalità di stima della velocità.
  • Analisi retail: Analizza i modelli di movimento dei clienti e le interazioni con i prodotti per ottimizzare il layout dei negozi e migliorare l'esperienza del cliente.
  • Automazione industriale: Conta i prodotti sui nastri trasportatori e monitora le linee di produzione per il controllo qualità e i miglioramenti dell'efficienza.

Per applicazioni più specializzate, esplora le Soluzioni Ultralytics per un set completo di strumenti progettati per le sfide della visione artificiale nel mondo reale.

Commenti