Table of Contents Table of Contents
Previous Page  67 / 100 Next Page
Information
Show Menu
Previous Page 67 / 100 Next Page
Page Background

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+