Gennaio/Febbraio 2018
Automazione e Strumentazione
VISIONE ARTIFICIALE
applicazioni
68
per creare l’appli-
cazione finale e per
fornire il supporto
per gli ambienti ad
alto livello come
OpenVX
e
Caffe
.
Le funzionalità of-
ferte dallo stack
ReVision fornisco-
no tutti gli elementi
necessari per eseguire gli algoritmi richiesti dai
sistemi di sorveglianza ad alte prestazioni.
L’accelerazione delle funzioni
OpenCV in ReVision
Uno degli aspetti più interessanti dello strato di
sviluppo degli algoritmi è la capacità di accele-
rare un’ampia gamma di funzioni OpenCV al suo
interno. In questo strato, le funzioni OpenCV che
possono essere accelerate possono essere rag-
gruppate in quattro categorie ad alto livello.
-
Calcolo
- include funzioni quali la differenza
assoluta fra due fotogrammi, le operazioni a
livello di pixel (addizione, sottrazione e mol-
tiplicazione), le operazioni di gradiente e di
integrale.
-
Elaborazione degli Ingressi
- fornisce il
supporto alle conversioni della profondità dei
bit, per le operazioni sui canali, l’equalizza-
zione dell’istogramma, la rimappatura e il
ridimensionamento.
-
Filtraggio
- fornisce il supporto per un’ampia
gamma di filtri che includono i filtri Sobel, i fil-
tri dedicati di convoluzione e i filtri gaussiani.
-
Altro
- fornisce un’ampia gamma di funzioni
che includono l’identificazione dei margini con
operatore Canny/Fast/Harris, l’impostazione
delle soglie e i classificatori HOG.
Queste funzioni formano anche le funzioni di
base del sottogruppo OpenVX, e assicurano una
stretta integrazione con il supporto allo strato di
sviluppo delle applicazioni per OpenVX. Il team
di sviluppo può usare queste funzioni per creare
una sequenza di algoritmi all’interno della logica
programmabile. Essere in grado di realizzare
funzioni all’interno della logica in questo modo
aumenta in modo significativo le prestazioni di
esecuzione degli algoritmi.
L’apprendimento automatico in ReVision
ReVision assicura l’integrazione con Caffe, for-
nendo la capacità di implementare unità di infe-
renza per l’apprendimento automatico. Questa
integrazione con Caffe ha luogo sia sullo strato
di sviluppo degli algoritmi, sia sullo strato di
sviluppo dell’applicazione. L’ambiente Caffe
fornisce agli sviluppatori una gamma di libre-
rie, modelli e pesi pre-addestrati all’interno di
una
libreria C++
, assieme ai collegamenti ad
ambienti
Python
e
Matlab
. Questo ambiente
consente all’utente di creare reti e di addestrarle
per eseguire le operazioni desiderate, senza dover
partire da zero. Per semplificare il riutilizzo,
gli utenti di Caffe possono condividere i propri
modelli attraverso il model zoo, che fornisce
diversi modelli di reti
, i quali possono essere
implementati e aggiornati per una funzione spe-
cifica, se desiderato. Queste reti e questi pesi sono
definiti all’interno di un file
prototxt
, e quando
viene installato all’interno dell’ambiente di
apprendimento automatico è questo file ad essere
usato per definire l’unità di inferenza.
ReVision fornisce l’integrazione con Caffe, che
rende l’implementazione delle unità di inferenza
per l’apprendimento automatico semplici come
lo è fornire un file prototxt; l’ambiente gestisce
il resto. Tale file prototxt è quindi utilizzato per
configurare il sistema di elaborazione e le libre-
rie hardware ottimizzate all’interno della logica
programmabile. Quest’ultima è usata per rea-
Lo Stack ReVision
Integrazione del flusso
in ambiente Caffe