Link to this sectionConteggio di oggetti in regioni con Ultralytics YOLO26#
La soluzione RegionCounter in Ultralytics YOLO26 traccia gli oggetti tra i fotogrammi video e, su ogni fotogramma, conta gli oggetti il cui centro del bounding-box ricade all'interno di ogni regione definita. Ogni regione viene disegnata sul fotogramma con il proprio conteggio in tempo reale, così puoi monitorare diverse zone, come corsie di negozi, corsie stradali o aree di produzione, con una singola chiamata Python o un comando CLI.
Watch: Object Counting in Different Regions using Ultralytics YOLO | Ultralytics Solutions
Link to this sectionPerché usare il conteggio per regioni?#
- Zone multiple in un solo passaggio: Passa un dizionario di poligoni denominati e ogni zona ottiene un conteggio indipendente disegnato sul fotogramma, così un singolo flusso video copre ogni area che ti interessa.
- Tracking integrato: La soluzione esegue internamente il rilevamento YOLO26 e il tracking degli oggetti, quindi non c'è una pipeline di tracking separata da configurare.
- Conteggi leggibili programmaticamente: Ogni fotogramma elaborato restituisce un oggetto risultati con un dizionario dei conteggi per regione, pronto per dashboard, avvisi o logging.
Link to this sectionApplicazioni nel mondo reale#
| Vendita al dettaglio | Strade commerciali |
|---|---|
![]() | ![]() |
| Conteggio persone in regioni con Ultralytics YOLO | Conteggio folla in regioni con Ultralytics YOLO |
Link to this sectionCome contare oggetti in regioni con Ultralytics YOLO#
Esegui la soluzione RegionCounter su una sorgente video da CLI o Python. Una regione può essere una lista di punti (una singola zona) o un dizionario che mappa nomi di zone a liste di punti. L'esempio Python qui sotto conta gli oggetti in due regioni nominate e scrive i fotogrammi elaborati su un file video di output:
# Run a region counting example
yolo solutions region show=True
# Pass a source video
yolo solutions region source="path/to/video.mp4"
# Pass a custom region
yolo solutions region region="[(20, 400), (1080, 400), (1080, 360), (20, 360)]"Link to this sectionArgomenti di RegionCounter()#
Ecco una tabella con gli argomenti di RegionCounter:
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
model | str | None | Percorso verso un file del modello Ultralytics YOLO. |
region | list o dict | None | Punti 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 RegionCounter consente l'uso di parametri di tracciamento oggetti:
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Specifica l'algoritmo di tracciamento da utilizzare. Opzioni integrate: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.1 | Imposta la soglia di confidenza per i rilevamenti; valori più bassi consentono di tracciare più oggetti ma possono 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 GPU specifica o altri dispositivi di calcolo per l'esecuzione del modello. |
Inoltre, sono supportate le seguenti impostazioni di visualizzazione:
| 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 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_conf | bool | True | Mostra il punteggio di confidenza per ogni rilevamento accanto all'etichetta. Fornisce informazioni sulla certezza del modello per ogni rilevamento. |
show_labels | bool | True | Mostra le etichette per ogni rilevamento nell'output visivo. Offre una comprensione immediata degli oggetti rilevati. |
Link to this sectionCome funziona il conteggio per regioni#
La soluzione RegionCounter trasforma ogni regione che passi in un poligono, con almeno tre punti per regione. Una semplice lista di punti diventa una zona singola chiamata Region#01, mentre un dizionario mantiene i tuoi nomi di zona; ogni zona viene disegnata con il proprio colore dalla tavolozza di Ultralytics. Ogni fotogramma viene poi elaborato in tre passaggi:
- Il tracciamento YOLO26 rileva e segue ogni oggetto nel fotogramma
- Per ogni oggetto tracciato, la soluzione calcola il centro del bounding-box e controlla quali poligoni di regione lo contengono
- Il conteggio di ogni regione viene disegnato al suo centro e i conteggi si azzerano prima del fotogramma successivo
Poiché i conteggi ripartono a ogni fotogramma, il numero mostrato su una regione rappresenta l'occupazione corrente, ovvero quanti oggetti si trovano al suo interno in questo momento, non un totale cumulativo. Per contare cumulativamente gli oggetti che attraversano un confine, usa invece la soluzione ObjectCounter.
Ogni chiamata restituisce anche un oggetto risultati il cui attributo plot_im contiene il fotogramma annotato e il cui dizionario region_counts mappa i nomi delle regioni ai relativi conteggi, così puoi inserire i numeri nella logica della tua applicazione.
Link to this sectionConclusione#
La soluzione RegionCounter di Ultralytics YOLO26 monitora i conteggi di oggetti in tempo reale in tutte le zone nominate che ti servono con poche righe di codice. Per spingerti oltre, conta gli attraversamenti di confini con il conteggio oggetti, traccia gli oggetti all'interno di una singola zona con TrackZone o esplora le altre Soluzioni Ultralytics.
Link to this sectionFAQ#
Link to this sectionCome funziona il conteggio degli oggetti in regioni con Ultralytics YOLO26?#
Ultralytics YOLO26 conta gli oggetti in regioni tracciando ogni oggetto nel fotogramma e verificando se il centro del suo bounding-box si trova all'interno di ogni poligono definito dall'utente. Il conteggio mostrato su una regione è l'occupazione attuale per quel fotogramma, non un totale cumulativo. Le opzioni di configurazione sono elencate nella sezione Argomenti di RegionCounter().
Link to this sectionCome posso contare oggetti in più regioni contemporaneamente?#
Passa l'argomento region come un dizionario che mappa i nomi delle zone alle liste di punti, come nell'esempio principale:
from ultralytics import solutions
region_points = {
"region-01": [(50, 50), (250, 50), (250, 250), (50, 250)],
"region-02": [(640, 640), (780, 640), (780, 720), (640, 720)],
}
regioncounter = solutions.RegionCounter(region=region_points, model="yolo26n.pt", show=True)Ogni zona nominata viene disegnata con il proprio colore con un conteggio indipendente.
Link to this sectionCome ottengo i conteggi delle regioni programmaticamente?#
L'oggetto restituito da ogni chiamata regioncounter(im0) contiene un dizionario region_counts che mappa i nomi delle regioni ai conteggi, insieme a plot_im (il fotogramma annotato) e total_tracks (il numero di oggetti tracciati). Stampa l'oggetto risultati per ispezionare tutti i campi disponibili.
Link to this sectionPosso contare solo classi di oggetti specifiche in una regione?#
Sì. Passa l'argomento classes con gli indici delle classi da mantenere, ad esempio classes=[0] per contare solo le persone con un modello pre-addestrato su COCO. L'elenco completo degli argomenti relativi al tracking si trova nella sezione Argomenti di RegionCounter().
Link to this sectionQual è la differenza tra RegionCounter e ObjectCounter?#
RegionCounter mostra quanti oggetti sono all'interno di ogni zona poligonale nel fotogramma corrente, mentre ObjectCounter conta gli oggetti cumulativamente mentre attraversano una linea o il confine di una regione, tracciando i totali in entrata e in uscita. Usa RegionCounter per l'occupazione in tempo reale di una o più zone e ObjectCounter per il conteggio di ingressi e uscite; le regioni a forma di linea sono supportate solo da ObjectCounter.

