Gli Fpga si stanno affermando come la soluzione ideale per la realizzazione di prodotti con funzioni di analisi dei contenuti video utilizzati in un gran numero di mercati che spaziano dalla sorveglianza video intelligente all'”intelligence” militare (ovvero la raccolta e l'analisi di notizie e dati per ricavare informazioni utili al processo decisionale), dalla sorveglianza e ricognizione all'assistenza avanzata alla guida. Per una vasta gamma di nuovi dispositivi e applicazioni, infatti, i requisiti in termini di elaborazione e throughput (ovvero di velocità di trasferimento dati) sono incrementati in maniera esponenziale. Per applicazioni come quelle appena menzionate, è necessario analizzare un ingresso video multi-megapixel ad una frame rate (fps) uguale o superiore rispetto a quella del segnale video al fine di fornire risultati precisi e affidabili. I requisiti in termini di elaborazione, inoltre, possono variare in modo sensibile in base all'applicazione: da qui l'esigenza di ricorrere ad architetture su silicio e algoritmi completamente nuovi per affrontare in modo efficace questi problemi e realizzare soluzioni ottimizzate e flessibili che permettano di ridurre complessità e costi dei sistemi. Blocchi IP portabili e scalabili sviluppati adottando un approccio che prevede la progettazione simultanea (co-design) delle componenti hardware e software consentono di scegliere tra una pluralità di dispositivi Fpga, in modo da adattare in maniera flessibile la soluzione ai requisiti - in termini sia di elaborazione sia di throughput - delle differenti applicazioni in modo da minimizzare il time-to-market ottimizzando nel contempo il costo della soluzione. La sempre maggiore richiesta di poter effettuare in maniera integrata operazioni di rilevamento, elaborazione e abilitazione in dispositivi ubicati su piattaforme fisse (come ad esempio le fotocamere IP delle reti di videosorveglianza) e mobili (come ad esempio i sistemi elettro-ottici/a infrarossi- EO-IR - presenti a bordo dei droni) richiedono soluzioni di analisi dei contenuti video efficienti possibilmente abbinate a una pipeline per l'elaborazione delle immagini dei sensori in ingresso e alla compressione del flusso di immagini in uscita. Mentre le esigenze in termini di throughput sono in continuo aumento e per nessuna delle applicazioni di analisi dei contenuti video più complesse è stata fornita finora una soluzione soddisfacente, i progettisti si trovano ad affrontare problematiche complesse nel momento in cui devono fornire la miglior soluzione su chip singolo sulle piattaforme hardware esistenti minimizzando dimensioni, pesi, consumi e costi ottimizzando nel contempo la qualità delle diverse soluzioni per l'analisi video.
Tre scenari applicativi tipici
Nel corso di questo articolo saranno analizzati tre scenari applicativi tipici che contribuiscono a mettere in evidenza l'importanza dell'innovazione a livello sia architetturale sia algoritmico per le soluzioni destinate all'analisi video e la necessità di adottare un approccio che contempli lo sviluppo simultaneo delle componenti hardware e software. Il primo esempio è relativo alla sorveglianza video “intelligente” (IVS): in questo caso si tratta di eseguire l'analisi di contenuti video acquisiti da una piattaforma fissa con risoluzione di 1080p e frame rate di 60 fps (120 Mpix/s) utilizzata per la sorveglianza del traffico che prevede almeno 10 regole di rilevamento di eventi compositi complessi (ad esempio rilevamento di veicoli che violano il semaforo rosso negli incroci, localizzazione della targa automobilistica dei veicoli che eseguono svolte a sinistra non autorizzate e così via) che richiedono l'inseguimento di più oggetti (object tracking), l'analisi delle caratteristiche e della traccia (segnature analysis) con analisi dello sfondo (latenza: 2-4 frame). Il secondo esempio è invece relativo ai sistemi Isr (Intelligence, Surveillance and Reconnaissance): in questo caso è necessario effettuare l'analisi di contenuti video registrati da una piattaforma in movimento con risoluzione di 1024x1024 pixel e frame rate di 1.000 fps (1 Gpix/s) che contempla al massimo cinque differenti regole di rilevamento degli eventi (ad esempio rilevamento e inseguimento di più persone in movimento che avanzato su terreni con caratteristiche diverse, oppure identificazione di tracce di oggetti specifici durante un volo a bassa quota e così via) che potrebbero coinvolgere inseguimento di più oggetti, analisi delle caratteristiche e delle tracce con analisi dello sfrondo e del movimento della piattaforma (latenza pari a 1 frame max.). Il terzo esempio è invece quello relativo ai sistemi avanzati di ausilio alla guida: in questo caso è necessario eseguire l'analisi di flussi video con risoluzione 1280x720 e frame rate di 30 fps (110 Mpix/s) acquisiti da quattro fotocamere che prevede almeno 5 differenti regole di rilevamento degli eventi (ad esempio rilevamento dei pedoni, di veicoli, di biciclette, di segnali stradali e così via) che includono inseguimento simultaneo di più oggetti, analisi delle caratteristiche e delle tracce con l'analisi dello sfondo e del movimento (latenza di 1-2 frame).
Limiti dell'approccio software basato su Dsp
Per tutti e tre gli esempi appena sopra menzionati è molto difficile garantire risultati precisi e di elevato livello qualitativo utilizzando la medesima piattaforma hardware fissa, soprattutto se le problematiche da affrontare tendono a divenire sempre più complesse. L'esigenza degli utilizzatori, in ultima analisi, è poter disporre di una soluzione su chip singolo economica e riconfigurabile per soddisfare i requisiti di differenti applicazioni. Nel primo esempio è richiesto un throughput abbastanza elevato (circa 120 Mpix/s) con un frame rate tipico del segnale video (60 fps) ma l'elevata complessità e la variabilità dell'elaborazione analitica e il numero relativamente elevato di regole di rilevamento di eventi compositi complessi (maggiore o uguale a 10) che devono essere processati in parallelo con latenza moderata (30-120 ms), consigliano un'allocazione delle risorse hardware focalizzato maggiormente sugli aspetti legati all'elaborazione. Nel secondo esempio è richiesto un throughput particolarmente alto (1 Gpix/s), mentre l'elaborazione analitica non è particolarmente complessa con un numero di regole di rilevamento degli eventi ridotto (inferiore o uguale a 5) valutate in parallelo ma che includono l'analisi del movimento della piattaforma e prevedono una latenza molto ridotta (circa 1 ms): in questo caso è necessario procedere a un'attenta allocazione delle risorse per ricercare un compromesso che possa rispondere in maniera ottimale ai requisiti in termini di throughput ed elaborazione. Nell'ultimo esempio, infine, il throughput è abbastanza elevato (circa 110 Mpix/s) ma è necessario tener conto della complessità derivata dalla presenza di più ingressi provenienti dalle fotocamere che rilevano molti eventi in parallelo e della necessità di adattamento a una piattaforma mobile (ovvero l'auto) che procede a velocità variabile. E' ovvio che si potrebbero elencare numerosi altri esempi con requisiti diversi da quelli appena menzionati, che in un certo senso rappresentano casi limite: l'elemento che balza immediatamente all'occhio è che questa ampia gamma di problematiche relative all'analisi dei contenuti video non possono essere affrontare in modo efficace utilizzando le attuali piattaforme basate su Dsp/Asic che non dispongono di risorse hardware riconfigurabili e soluzioni di tipo esclusivamente software in quanto i requisititi in termini di throughput e latenza o di elaborazione e accuratezza non possono essere soddisfatti contemporaneamente per tutti gli scenari applicativi. Le applicazioni di analisi video più complesse richiedono un approccio decisamente innovativo in termini sia di architettura sia di algoritmi. Infatti è necessario prevedere diversi livelli di elaborazione, un'architettura di comunicazione sofisticata in grado di effettuare elaborazioni di tipo sia bottom-up sia top-down, acceleratori hardware scalabili (coprocessori) riconfigurabili in base ai requisiti di analisi delle caratteristiche e della traccia specifici dell'applicazione: tutte queste esigenze possono essere soddisfatte solamente utilizzando una nuova generazione di Fpga riconfigurabili che consentano al progettista di realizzare simultaneamente le componenti hardware e software che diano origine a una soluzione adattabile alla scena, sensibile sia al contesto sia al contenuto e in grado di garantire una sensibile riduzione in termini di complessità, costi e consumi.
La necessità di un'architettura
di elaborazione hardware innovativa
Le architettura hw/sw di tipo seriale risultano inadatte alla risoluzione di problematiche di analisi video complesse in quanto l'utilizzo delle risorse aumenta in modo esponenziale al crescere dei requisiti in termini di elaborazione e throughput. Le architetture di tipo pipeline possono sostituire in modo efficace le architetture seriali in presenza di problemi di analisi video semplici che possono essere formulati all'interno di una struttura che richiede solamente un'elaborazione di tipo locale (ad esempio rilevamento/ritrovamento di un evento o di un oggetto con un pattern locale ben definito e/o caratterizzato da statistiche differenti da quelle dello sfondo). Nel caso di analisi di contenuti video più complessi è necessario adottare livelli di elaborazione multipli, elaborazione locale e globale combinata, moduli organizzati in un'architettura di elaborazione/comunicazione che permetta di rilevare eventi sparsi utilizzando metodologie statistiche e geometriche con più meccanismi di retroazione e che richiede anche un'allocazione flessibile delle risorse e riconfigurazione dinamica. Per un controllo ottimizzato dell'utilizzo delle risorse la qualità dell'elaborazione dovrebbe essere collegata al livello di utilizzo delle risorse e alla complessità dei livelli e dei moduli. Per garantire il supporto a parecchie configurazioni del sistema l'ampiezza di banda complessiva disponibile per un singolo canale video dovrebbe poter essere riconfigurata in più canali caratterizzati da un'ampiezza di banda inferiore.
I vantaggi di una soluzione basata su Fpga
Solamente le piattaforme basate su Fpga assicurano la libertà e la flessibilità necessarie a soddisfare le esigenze del co-design a livello di architettura e algoritmico. Un progetto riconfigurabile modulare e a più livelli dovrebbe prendere in considerazione requisiti estremamente spinti in termini di throughput, latenza ed elaborazione bilanciando le risorse disponibili per ottimizzare i requisiti secondo un ordine di priorità.
Riconfigurazione flessibile in un'ampia gamma di scenari applicativi
1. Possibilità di aggiungere nuove funzionalità e di adattarsi all'evoluzione degli standard
2. Riconfigurazione dinamica a livello hardware e software per bilanciare la precisione spaziale, temporale e spazio/temporale relativamente a elaborazione, throughput e latenza
3. Riconfigurazione parziale/completa a livello hardware per poter utilizzare più coprocessori al variare degli scenari applicativi e della scena per ottimizzare la probabilità di rilevamento
4. Possibilità di aggiornare il firmware dell'Fpga direttamente sul campo - sia localmente sia in remoto - e fornire configurazioni ottimizzate sulla base delle informazioni raccolte dopo l'installazione iniziale.
Possibilità di adattare la soluzione per ottenere il dispositivo a più bassa complessità
Una volta soddisfatti i requisiti in termini di qualità, throughput e latenza, per la produzione in volume è necessario scegliere il dispositivo caratterizzato dalla minore complessità e dal costo più ridotto possibile. Poiché i dispositivi Fpga sono facilmente adattabili all'interno di un determinato footprint, gli utenti non devono procedere al re-spin della scheda nel caso sia richiesto un aumento o una diminuzione della densità del dispositivo.
Maggiore risoluzione e frame rate più elevato permettono di migliorare la precisione e consentono di rilevare elementi che “passano inosservati” con la riconfigurazione dinamica
Una maggior risoluzione garantisce una migliore accuratezza e sensibilità spaziale mentre frame rate più elevati consentono di una migliore stima del movimento relativo (quello della piattaforma in relazione all'oggetto). Entro certi limiti è necessario pervenire a un compromesso tra precisione spaziale e temporale al fine di ottenere la più elevata probabilità di rilevamento e la miglior precisione per specifici eventi spaziali, temporali o spazio/temporali. Tutto ciò è possibile grazie a un nuovo approccio architetturale e algoritmico e alla riconfigurazione dinamica degli Fpga a livello hardware e software.
La più avanzata tecnologia di processo permette di minimizzare i consumi
Gli Fpga della prossima generazione sono prodotti utilizzando un processo da 28 nm al contrario dei prodotti Dsp/Asic/Assp che vengono realizzati con tecnologia da 45 nm: ciò ha consentito di ridurre sensibilmente i consumi di potenza sia statica sia dinamica. Ad esempio è possibile eseguire analisi di video 1080p/60fps acquisiti da una fotocamera IP con consumi di potenza inferiori a 1,5 W. Una soluzione basata su Fpga, inoltre, permette di ottenere prestazioni in termini di elaborazione e di throughput (5 Mpix a una frame rate superiore a 100 fps) non conseguibili con le attuali soluzioni basate su Dsp/Asic/Assp.