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 monitorando e contando accuratamente le entità, supportando la rilevazione delle minacce in modo proattivo.
  • 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
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'[(20, 400), (1260, 400)]'Lista di punti che definiscono la regione di conteggio.

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

ArgomentoTipoPredefinitoDescrizione
trackerstr'botsort.yaml'Specifica l'algoritmo di tracciamento da utilizzare, ad esempio bytetrack.yaml o botsort.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, consulta la soluzione RegionCounter per contare gli 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 monitorando e contando accuratamente le entità, supportando la rilevazione proattiva delle minacce e i 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 il tracciamento di 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 quelli mobili e edge, il che è cruciale per le moderne applicazioni di IA.
  4. Flessibilità: Supporta varie attività come il rilevamento, la segmentazione e il tracciamento di oggetti con modelli configurabili per soddisfare i requisiti specifici di ogni caso d'uso.

Dai un'occhiata alla Documentazione di YOLO26 di Ultralytics per un approfondimento sulle sue caratteristiche 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 modelli di traffico e gestisci la congestione in tempo reale con capacità 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 di visione artificiale del mondo reale.

Commenti