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

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