Automazione e Strumentazione
Gennaio/Febbraio 2018
VISIONE ARTIFICIALE
applicazioni
67
proccio tradizionale. Gli approcci SoC tradizio-
nali basati su CPU/GPU richiedono l’uso della
memoria di sistema per trasferire le immagini
da uno stadio di elaborazione al successivo.
Ciò riduce il determinismo, aumenta la dissi-
pazione di potenza e la latenza della risposta
del sistema, poiché più risorse accederanno alla
stessa memoria generando un
collo di bottiglia
nell’algoritmo di elaborazione. Quest’ultimo si
accresce all’aumentare della velocità dei foto-
grammi e della risoluzione dell’immagine.
Il collo di bottiglia è rimosso quando la soluzione
è implementata usando un dispositivo Zynq-
7000 o un MPSoC Zynq UltraScale+. Questi
dispositivi consentono al progettista di eseguire
la sequenza di elaborazione delle immagini
all’interno della PL del dispositivo. Tutto ciò
avviene creando una vera e propria sequenza di
immagini
in parallelo
all’interno della PL, in cui
l’uscita di uno stadio è passata all’ingresso di un
altro. Questo consente di ottenere un
tempo di
risposta deterministico
con una
latenza ridotta
e una
soluzione ottimizzata per i consumi
.
L’uso della PL per realizzare la sequenza di ela-
borazione delle immagini porta con sé anche una
maggiore capacità di interfacciamento rispetto agli
approcci tradizionali basati su SoC con CPU/GPU,
che sono dotati di interfacce fisse. La natura flessi-
bile delle strutture I/O della PL consente di suppor-
tare la
connettività universale
, consentendo l’uso
d’interfacce standard come MIPI, Camera Link,
HDMI ecc. La natura flessibile permette anche di
realizzare interfacce proprietarie su misura, oltre a
fornire la capacità di effettuare aggiornamenti per
supportare gli ultimi standard di interfaccia. L’uso
della PL inoltre mette consente al sistema di inter-
facciarsi con più videocamere in parallelo.
L’aspetto critico tuttavia è la capacità di ese-
guire gli algoritmi applicativi senza la necessità
di riscrivere tutti gli algoritmi ad alto livello in
un linguaggio di descrizione hardware come
Verilog o VHDL. Qui è dove entra in gioco il
ReVision Stack
.
Lo Stack ReVision
Lo stack ReVision consente agli sviluppatori
di implementare tecniche di visione artificiale
e di apprendimento automatico. Questo è pos-
sibile usando gli stessi ambienti ad alto livello
e le stesse librerie che si hanno a disposizione
quando si usano il SoC Zynq-7000 e l’MPSoC
Zynq UltraScale+. Per consentire ciò, ReVi-
sion combina un’ampia gamma di risorse che
consentono lo sviluppo di piattaforme, applica-
zioni e algoritmi. Come tale, lo stack è allineato
secondo tre livelli distinti:
-
Sviluppo della piattaforma
- questo è il
livello più basso dello stack, ed è quello su cui
sono costruiti gli altri strati dello stack: questo
strato fornisce la definizione della piattaforma
per il tool SDSoC;
-
Sviluppo dell’algoritmo
- lo strato interme-
dio dello stack fornisce il supporto eseguendo
gli algoritmi richiesti. Questo strato forni-
sce anche il supporto per l’accelerazione sia
dell’elaborazione delle immagini, sia delle
unità di inferenza per l’apprendimento auto-
matico all’interno della logica programmabile;
-
Sviluppo dell’applicazione
- lo strato più
alto dello stack fornisce il supporto agli
ambienti standard industriali. Questi ultimi
consentono lo sviluppo dell’applicazione che
sfrutta gli strati di sviluppo della piattaforma
e dell’algoritmo.
Il livello di algoritmo e quello di applicazione
dello stack sono entrambi progettati per suppor-
tare sia un flusso tradizionale di elaborazione
delle immagini, sia un flusso per l’apprendimen-
to automatico. All’interno dello strato dell’algo-
ritmo, viene fornito il supporto allo
sviluppo di
algoritmi di elaborazione delle immagini
usan-
do la
libreria OpenCV
. Ciò include la capacità
di accelerare un numero significativo di funzioni
OpenCV all’interno della logica programmabile
(inclusa la sotto-unità OpenVX). Nel supporta-
re l’apprendimento automatico, lo strato di svi-
luppo dell’algoritmo fornisce diverse
funzioni
hardware predefinite
, che
possono essere posizionate
all’interno della PL per rea-
lizzare un’unità di inferenza
per l’apprendimento automa-
tico. Viene quindi compiuto
l’accesso agli algoritmi di
elaborazione delle immagini
e alle unità di inferenza per
l’apprendimento automatico,
e queste ultime sono usate
dallo strato dell’applicazione
Approccio tradizionale basato su CPU/GPU confrontato con l’approccio basato
su un dispositivo Zynq-7000/un MPSoC Zynq UltraScale+