Angolo di Anderson
Un Codec Video Progettato per l’Analisi AI

Sebbene il techno-thriller The Circle (2017) sia più un commento sulle implicazioni etiche delle reti sociali che sulle praticità dell’analisi video esterna, la camera “SeeChange” improbabilmente piccola al centro della trama è ciò che spinge veramente il film nella categoria “science-fiction”.

Il dispositivo di sorveglianza ‘SeeChange’ dal techno-thriller ‘The Circle’ (2017).
Un dispositivo wireless e free-roaming delle dimensioni di una grossa biglia, non è la mancanza di pannelli solari o l’inefficienza nel trarre energia da altre fonti ambientali (come onde radio) che rende SeeChange una prospettiva improbabile, ma il fatto che debba compressare video 24 ore su 24, con qualsiasi carica esigua che riesce a mantenere.
Alimentare sensori economici di questo tipo è un’area di ricerca fondamentale nella visione computerizzata (CV) e nell’analisi video, in particolare in ambienti non urbani in cui il sensore dovrà ottenere il massimo rendimento dalle risorse di potenza molto limitate (batterie, solare, ecc.).
In casi in cui un dispositivo di questo tipo deve inviare contenuti di immagini a un server centrale (spesso attraverso reti di copertura cellulare convenzionali), le scelte sono difficili: il dispositivo deve eseguire una sorta di rete neurale leggera localmente per inviare solo segmenti di dati rilevanti ottimizzati per l’elaborazione lato server; o deve inviare video “stupidi” per l’elaborazione delle risorse cloud collegate.
Sebbene l’attivazione del movimento attraverso sensori di visione intelligente basati su eventi (SVS) possa ridurre questo sovraccarico, tale attivazione di monitoraggio costa anche energia.
Aggrapparsi al Potere
Inoltre, anche con un’attivazione occasionale (ad esempio, una pecora entra occasionalmente nel campo visivo), il dispositivo non ha abbastanza potenza per inviare gigabyte di video non compresso; né ha abbastanza potenza per eseguire costantemente codec di compressione video popolari come H.264/5, che si aspettano hardware che sia collegato o non lontano dalla prossima sessione di ricarica.

Pipeline di analisi video per tre compiti di visione computerizzata tipici. L’architettura di codifica video deve essere addestrata per il compito in questione e di solito per la rete neurale che riceverà i dati. Fonte: https://arxiv.org/pdf/2204.12534.pdf
Sebbene il codec H.264 ampiamente diffuso abbia un consumo di energia inferiore rispetto al suo successore H.265, ha un’efficienza di compressione scarsa. Il suo successore, H.265, ha una maggiore efficienza di compressione, ma un consumo di energia superiore. Mentre il codec open source di Google VP9 supera entrambi in ogni area, richiede risorse di calcolo locali più elevate, il che presenta problemi aggiuntivi in un sensore IoT economico.
Per quanto riguarda l’analisi del flusso localmente: una volta eseguito anche il modello di rete neurale locale più leggero per determinare quali frame (o aree di un frame) sono degni di essere inviati al server, si è spesso speso il potere che si sarebbe risparmiato inviando tutti i frame.

Estrazione di rappresentazioni mascherate di bestiame con un sensore che non è probabilmente connesso alla rete. Spendere la sua capacità di potenza limitata per la segmentazione semantica locale con una rete neurale leggera; inviando informazioni limitate a un server per ulteriori istruzioni (introducendo latenza); o inviando dati ‘stupidi’ (spreco di energia sulla larghezza di banda)? Fonte: https://arxiv.org/pdf/1807.01972.pdf
È chiaro che i progetti di visione computerizzata “in natura” richiedono codec di compressione video dedicati ottimizzati per le esigenze di reti neurali specifiche in compiti diversi come la segmentazione semantica, la rilevazione dei punti chiave (analisi del movimento umano) e la rilevazione degli oggetti, tra gli altri usi finali possibili.
Se si può ottenere il compromesso perfetto tra efficienza di compressione video e trasmissione di dati minima, si è un passo più vicino a SeeChange e alla capacità di distribuire reti di sensori economiche in ambienti ostili.
AccMPEG
Una nuova ricerca dell’Università di Chicago potrebbe aver fatto un passo avanti verso un tale codec, nella forma di AccMPEG – un framework di codifica e trasmissione video innovativo che opera a bassa latenza, alta precisione per reti neurali profonde (DNN) lato server e che ha esigenze di calcolo locali notevolmente basse.

Architettura di AccMPEG. Fonte: https://arxiv.org/pdf/2204.12534.pdf
Il sistema è in grado di fare economie sui metodi precedenti valutando la misura in cui ogni macroblocco 16x16px è probabile influenzare l’accuratezza della DNN lato server. I metodi precedenti hanno invece generalmente dovuto valutare questo tipo di accuratezza in base a ogni pixel in un’immagine o eseguire operazioni locali elettricamente costose per valutare quali regioni dell’immagine potrebbero essere di maggior interesse.
In AccMPEG, questa accuratezza è stimata in un modulo personalizzato chiamato AccGrad, che misura i modi in cui la qualità di codifica del macroblocco è probabile essere pertinente per il caso d’uso finale, come una DNN lato server che sta cercando di contare le persone, eseguire la stima dello scheletro sul movimento umano o altri compiti di visione computerizzata comuni.
Quando un frame di video arriva nel sistema, AccMPEG lo elabora inizialmente attraverso un modello di selezione della qualità a basso costo, intitolato AccModel. Le aree che non sono probabili contribuire ai calcoli utili di una DNN lato server sono essenzialmente zavorra e dovrebbero essere contrassegnate per la codifica alla qualità più bassa possibile, in contrasto con le regioni salienti, che dovrebbero essere inviate a una qualità migliore.
Questo processo presenta tre sfide: può il processo essere eseguito abbastanza rapidamente per raggiungere una latenza accettabile senza utilizzare risorse di calcolo locali che consumano energia? Può essere stabilito un rapporto ottimale tra frequenza dei frame e qualità? E può essere addestrato rapidamente un modello per una DNN lato server individuale?
Logistica di Addestramento
Idealmente, un codec di visione computerizzata sarebbe stato pre-addestrato su sistemi collegati alle esigenze di una rete neurale specifica. Tuttavia, il modulo AccGrad può essere derivato direttamente da una DNN con sole due propagazioni in avanti, con un risparmio di dieci volte il sovraccarico standard.
AccMPEG addestra AccGrad per soli 15 epoche di tre propagazioni ciascuna attraverso la DNN finale e può potenzialmente essere riaddestrato “in diretta” utilizzando il suo stato di modello attuale come modello, almeno per compiti di visione computerizzata simili.
AccModel utilizza l’estraente di caratteristiche pre-addestrato MobileNet-SSD, comune in dispositivi edge economici. Con un turnover di 12 GFLOPS, il modello utilizza solo un terzo degli approcci ResNet18 tipici. Oltre alla normalizzazione del batch e all’attivazione, l’architettura consiste solo di strati convoluzionali e il suo sovraccarico di calcolo è proporzionale alle dimensioni del frame.

AccGrad rimuove la necessità di inferenza DNN finale, migliorando la logistica di distribuzione.
Frequenza dei Frame
L’architettura funziona ottimamente a 10fps, il che la renderebbe adatta a scopi come il monitoraggio agricolo, la sorveglianza della degradazione degli edifici, l’analisi del traffico ad alta quota e l’inferenza dello scheletro rappresentativo nel movimento umano; tuttavia, scenari con movimenti molto veloci, come il traffico a bassa quota (di auto o persone) e altre situazioni in cui sono benefici tassi di frame elevati, non sono adatti a questo approccio.
Parte del metodo di frugalità risiede nel presupposto che i macroblocchi adiacenti siano probabilmente di valore simile, fino al punto in cui un macroblocco scende al di sotto della stima di accuratezza. Le aree ottenute con questo approccio sono più chiaramente delineate e possono essere calcolate a una velocità maggiore.
Miglioramento delle Prestazioni
I ricercatori hanno testato il sistema su una scheda Jetson Nano da 60 dollari con un solo GPU Maxwell a 128 core, e vari altri equivalenti economici. OpenVINO è stato utilizzato per compensare alcune delle esigenze di energia delle DNN locali molto sparse verso le CPU.
AccModel stesso è stato originariamente addestrato offline su un server con 8 GPU GeForce RTX 2080S. Sebbene questo sia un array di potenza di calcolo formidabile per una costruzione iniziale del modello, la riqualificazione leggera che il sistema rende possibile e il modo in cui un modello può essere regolato su determinati parametri di tolleranza attraverso diverse DNN che attaccano compiti simili, significa che AccMPEG può fare parte di un sistema che necessita di un’assistenza minima in natura.
Pubblicato per la prima volta il 1° maggio 2022.












