Conteggio oggetti utilizzando Ultralytics YOLO26
Cos'è il conteggio oggetti?
Il conteggio 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 oggetti efficiente e preciso per vari scenari come l'analisi della folla e la sorveglianza, grazie ai suoi algoritmi all'avanguardia e alle capacità di deep learning.
Watch: How to Perform Real-Time Object Counting with Ultralytics YOLO26 🚀
Vantaggi del conteggio oggetti
- Ottimizzazione delle risorse: Il conteggio oggetti facilita una gestione efficiente delle risorse fornendo conteggi accurati, ottimizzando l'allocazione delle risorse in applicazioni come la gestione dell'inventario.
- Sicurezza migliorata: Il conteggio oggetti migliora la sicurezza e la sorveglianza tracciando e contando accuratamente le entità, aiutando nella rilevazione proattiva delle minacce.
- Processo decisionale informato: Il conteggio oggetti offre preziose informazioni per il processo decisionale, ottimizzando i processi nel commercio al dettaglio, nella gestione del traffico e in svariati altri settori.
Applicazioni nel mondo reale
| Logistica | Acquacoltura |
|---|---|
![]() | ![]() |
| Conteggio pacchetti su nastro trasportatore utilizzando Ultralytics YOLO26 | Conteggio pesci in mare utilizzando Ultralytics YOLO26 |
# 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 avvengono entrate e uscite.
Argomenti di ObjectCounter
Ecco una tabella con gli argomenti di ObjectCounter:
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
model | str | None | Percorso verso un file modello Ultralytics YOLO. |
show_in | bool | True | Flag per controllare se visualizzare i conteggi in entrata sul flusso video. |
show_out | bool | True | Flag per controllare se visualizzare i conteggi in uscita sul flusso video. |
region | list | '[(20, 400), (1260, 400)]' | Elenco di punti che definiscono la regione di conteggio. |
La soluzione ObjectCounter consente l'uso di diversi argomenti di track:
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Specifica l'algoritmo di tracciamento da utilizzare, ad esempio bytetrack.yaml o botsort.yaml. |
conf | float | 0.1 | Imposta la soglia di confidenza per i rilevamenti; valori più bassi consentono il tracciamento di più oggetti ma potrebbero includere falsi positivi. |
iou | float | 0.7 | Imposta la soglia di Intersection over Union (IoU) per filtrare i rilevamenti sovrapposti. |
classes | list | None | Filtra i risultati per indice di classe. Ad esempio, classes=[0, 2, 3] traccia solo le classi specificate. |
verbose | bool | True | Controlla la visualizzazione dei risultati di tracciamento, fornendo un output visivo degli oggetti tracciati. |
device | str | None | Specifica il dispositivo per l'inferenza (ad esempio 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 gli argomenti di visualizzazione 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 | int or None | None | Specifica lo spessore della linea dei riquadri di delimitazione. Se None, lo spessore viene regolato automaticamente in base alla dimensione dell'immagine. Fornisce personalizzazione visiva per maggiore chiarezza. |
show_conf | bool | True | Visualizza il punteggio di confidenza per ogni rilevamento accanto all'etichetta. Offre informazioni sulla certezza del modello per ogni rilevamento. |
show_labels | bool | True | Visualizza le etichette per ogni rilevamento nell'output visivo. Fornisce una comprensione immediata degli oggetti rilevati. |
FAQ
Come posso contare oggetti in un video utilizzando Ultralytics YOLO26?
Per contare oggetti in un video utilizzando Ultralytics YOLO26, puoi seguire questi passaggi:
- Importa le librerie necessarie (
cv2,ultralytics). - Definisci la regione di conteggio (ad es. un poligono, una linea, ecc.).
- Imposta l'acquisizione video e inizializza il contatore di oggetti.
- 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.
Quali sono i vantaggi dell'utilizzo di Ultralytics YOLO26 per il conteggio oggetti?
L'utilizzo di Ultralytics YOLO26 per il conteggio oggetti offre diversi vantaggi:
- 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.
- Sicurezza migliorata: Migliora la sicurezza e la sorveglianza tracciando e contando accuratamente le entità, aiutando nella rilevazione proattiva delle minacce e nei sistemi di sicurezza.
- Processo decisionale informato: Offre preziose informazioni per il processo decisionale, ottimizzando i processi in ambiti come commercio al dettaglio, gestione del traffico e altro.
- Elaborazione in tempo reale: L'architettura di YOLO26 abilita l'inferenza in tempo reale, rendendolo adatto a flussi video dal vivo e applicazioni sensibili al fattore tempo.
Per esempi di implementazione e applicazioni pratiche, esplora la soluzione TrackZone per tracciare oggetti in zone specifiche.
Come posso contare classi specifiche di oggetti utilizzando Ultralytics YOLO26?
Per contare classi specifiche di oggetti utilizzando 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 oggetti di classe 0 e 2 (ad es. persona e auto nel dataset COCO). Puoi trovare maggiori informazioni sugli indici di classe nella documentazione del dataset COCO.
Perché 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:
- Velocità ed efficienza: YOLO26 offre capacità di elaborazione in tempo reale, rendendolo ideale per applicazioni che richiedono inferenza ad alta velocità, come la sorveglianza e la guida autonoma.
- Accuratezza: Fornisce un'accuratezza all'avanguardia per attività di rilevamento e tracciamento oggetti, riducendo il numero di falsi positivi e migliorando l'affidabilità complessiva del sistema.
- Facilità di integrazione: YOLO26 offre un'integrazione senza interruzioni con varie piattaforme e dispositivi, inclusi dispositivi mobili e dispositivi edge, aspetto cruciale per le moderne applicazioni AI.
- Flessibilità: Supporta varie attività come rilevamento oggetti, segmentazione e 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 caratteristiche e sui confronti delle prestazioni.
Posso 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 funzioni avanzate consentono il tracciamento, il conteggio e la classificazione degli oggetti con alta precisione 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 veicoli, analizza i pattern di traffico e gestisci la congestione in tempo reale con capacità di stima della velocità.
- Analisi retail: Analizza i pattern di movimento dei clienti e le interazioni con i prodotti per ottimizzare il layout dei punti vendita 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 una serie completa di strumenti progettati per le sfide di visione artificiale nel mondo reale.

