Quanti flussi video può analizzare un NVR domestico mantenendo la stessa frequenza di rilevamento?

Eva Wong è la Technical Writer e smanettatrice residente di ZimaSpace. Una geek da sempre con una passione per homelab e software open-source, si specializza nel tradurre concetti tecnici complessi in guide accessibili e pratiche. Eva crede che l'auto-ospitare debba essere divertente, non intimidatorio. Attraverso i suoi tutorial, dà potere alla comunità di demistificare le configurazioni hardware, dalla costruzione del loro primo NAS al dominio dei container Docker.

Un NVR domestico può analizzare tanti stream quanti il suo rilevatore e la pipeline video riescono a gestire senza ridurre la frequenza di rilevamento configurata per ciascuna telecamera.

Se otto telecamere richiedono ciascuna cinque fotogrammi di rilevamento al secondo, il rilevatore deve sostenere almeno 40 inferenze al secondo dopo aver considerato l’overhead. Tuttavia, anche decodifica, ridimensionamento, tracciamento, registrazione e gestione del movimento consumano CPU, GPU, banda di memoria e I/O. Il limite reale degli stream viene raggiunto quando la cadenza di rilevamento per telecamera o la latenza degli eventi iniziano a peggiorare durante l’attività simultanea in casa.

La richiesta di rilevamento è data dal numero di stream moltiplicato per gli FPS di rilevamento

Il calcolo minimo consiste nel moltiplicare il numero di telecamere per i fotogrammi di rilevamento configurati al secondo. Dieci telecamere a cinque FPS richiedono l’analisi di 50 fotogrammi al secondo. La gestione del movimento può ridurre il lavoro effettivo, ma la pianificazione della capacità dovrebbe includere i periodi in cui molte telecamere sono attive contemporaneamente.

Il progetto di rilevamento locale degli oggetti separa la registrazione locale dal rilevamento degli oggetti in tempo reale e consiglia l’accelerazione dedicata invece del rilevamento basato esclusivamente sulla CPU. Questi percorsi impongono carichi diversi allo stesso server.

Gli FPS della sorgente della telecamera non corrispondono necessariamente agli FPS di rilevamento. Uno stream di registrazione a 25 FPS può alimentare uno stream di rilevamento a cinque FPS, riducendo il carico di inferenza senza diminuire la fluidità dei movimenti registrati. Confondere i due valori rende le stime della capacità inutilmente dispendiose o rischiose.

La decodifica e la preelaborazione possono diventare il collo di bottiglia principale

Prima dell’inferenza, il video compresso deve essere decodificato, ridimensionato, convertito nello spazio colore e copiato nel rilevatore. La decodifica hardware può alleggerire il carico della CPU, ma codec, risoluzione, profondità di bit e limiti delle sessioni simultanee sono fattori importanti. Le scritture della registrazione e la transcodifica della visualizzazione in tempo reale competono per la stessa pipeline.

Una panoramica degli acceleratori IA spiega che gli acceleratori possono superare le CPU generiche nelle inferenze ripetute, con un overhead inferiore sul sistema host. La decodifica deve comunque fornire i fotogrammi nei tempi previsti.

Un rilevatore veloce, quindi, non garantisce un numero maggiore di telecamere. Se la coda dei fotogrammi cresce prima dell’inferenza, la capacità aggiuntiva del rilevatore resta inutilizzata. Se lo storage si blocca, la registrazione può risentirne anche quando gli FPS di rilevamento sembrano corretti.

Quando la formula della divisione non funziona

Dividere gli FPS del rilevatore per gli FPS per telecamera presuppone che il costo del modello sia uguale e che i fotogrammi siano indipendenti. I modelli secondari per volti, targhe, pose o classificazione aggiungono lavoro solo per i rilevamenti selezionati. Il tiling a risoluzione variabile e gli stream remoti possono creare costi non uniformi.

Una spiegazione del prodotto sul riconoscimento secondario osserva che il riconoscimento secondario può rallentare la pipeline se le attività non condividono i rilevamenti in modo efficiente. La selezione delle funzionalità modifica la capacità anche a parità di FPS di base.

La stima non è valida neppure quando il limite è la latenza e non il throughput. Un rilevatore può raggiungere in media 60 FPS, ma occasionalmente ritardare di alcuni secondi una telecamera perché le code non sono gestite in modo equo. Le stesse velocità medie non garantiscono una reattività uniforme per ogni stream.

-15% OFF

Aumenta il numero di stream finché la telecamera più lenta non inizia a peggiorare

Abilita le telecamere una alla volta, utilizzando il codec, la risoluzione, la modalità di registrazione e gli FPS di rilevamento definitivi. Attiva contemporaneamente il movimento in tutte le inquadrature e registra gli FPS di rilevamento raggiunti per telecamera, l’età della coda dei fotogrammi, il tempo di inferenza, l’utilizzo della decodifica, i fotogrammi persi, il ritardo degli eventi e la latenza del disco.

Esegui la prova sulla stessa configurazione dell’host di elaborazione video condivisa che verrà utilizzata per condividere i servizi video e IA. Disabilita i processi non correlati solo se anche in produzione verranno pianificati in momenti diversi.

Mantieni il numero massimo di telecamere per cui lo stream più lento conserva almeno il 95% della frequenza di rilevamento configurata e il ritardo degli eventi p95 resta entro l’obiettivo stabilito. Riserva un margine del 20% per il rilevatore e la decodifica, così da gestire il movimento simultaneo e i modelli secondari.

Hub Tecnologico e AI

Altro da leggere

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.