TECH INSIGHT
VISIONE ARTIFICIALE
20
- ELETTRONICA OGGI 466 - NOVEMBRE/DICEMBRE 2017
La progettazione dei sistemi
basati sulla visione artificiale
Parte 7 –
L’impiego degli algoritmi di apprendimento approfondito nei sistemi di visione
embedded
Fino ad ora, la presente serie di articoli sullo sviluppo dei sistemi
di visione embedded si è concentrata sulla sequenza di elaborazione
delle immagini, che contiene funzioni come l’interfacciamento
della videocamera o del sensore d’immagini, la ricostruzione delle
immagini e la conversione di formato per l’elaborazione successiva
Giles Peckham
Regional marketing director
Xilinx
Adam Taylor
CEng FIET
Embedded Systems Consultant
Q
ueste ultime sono comunemente usate in un’ampia varietà di applicazioni, e si avvalgono degli stessi tipi di
algoritmi, fra cui la ricostruzione dei colori (filtro di Bayer), la conversione dello spazio dei colori e la ridu-
zione del rumore. Gli algoritmi specifici per un’applicazione d’altra parte possono variare ampiamente e richiede
in genere uno sforzo di sviluppo maggiore. Gli algoritmi possono essere complessi da implementare, e possono
usare tecniche come la rilevazione di oggetti, la classificazione, il filtraggio e le operazioni computazionali.
Qualora fosse necessaria un’accuratezza particolarmente spinta, come nei sistemi medicali o scientifici che
aiutano a prendere decisioni critiche per la vita del paziente, l’elaborazione intensiva potrebbe essere effettuata
su cloud. Altrimenti, l’elaborazione potrebbe essere effettuata con le risorse interne, dando priorità alla mini-
mizzazione della latenza, come nel caso di un sistema automotive di guida autonoma, o di un robot con funzioni
di visione che deve elaborare dati in tempi rapidi e agire in base alle informazioni ottenute dai sensori per
navigare all’interno del proprio ambiente, anche quando esso non è connesso al cloud. Sia che siano eseguite
su un dispositivo ai bordi della rete sia su cloud, le applicazioni di visione embedded di oggi ricorrono spesso
all’apprendimento automatico approfondito e all’intelligenza artificiale, anche se in modalità diverse. Un’imple-
mentazione basata su cloud utilizzerà l’apprendimento automatico approfondito e le reti neurali per generare un
insieme di classificatori di immagine, e in seguito useranno questi classificatori all’interno della propria appli-
cazione. Un’applicazione autonoma eseguirà i propri algoritmi di rilevazione degli oggetti usando classificatori
generati in precedenza dall’algoritmo di apprendimento automatico approfondito all’interno del cloud.
È importante poter aggiornare un sistema autonomo con l’avanzamento del piano di sviluppo dei prodotti, e
l’efficienza energetica e la sicurezza sono anch’esse aspetti importanti da considerare. I System on Chip (SoC)
interamente programmabili o i dispositivi System on Chip Multi-Processore (MPSoC) offrono una base per rag-
giungere questi obiettivi, e sono anche in grado di eseguire la sequenza di elaborazione delle immagini sfrut-
tando il parallelismo per massimizzare le prestazioni. Inoltre, le unità di elaborazione possono essere usate per
funzionalità applicative di livello superiore.
Lo sviluppo di algoritmi di apprendimento automatico su logica programmabile
Gli algoritmi di apprendimento automatico sono spesso sviluppati usando ambienti open-source come Open-CV e
Caffe, che contengono funzioni predefinite e IP che aiutano a semplificare il compito dello sviluppatore di applica-
zioni di visione embedded. Nel caso di un sistema autonomo da realizzare usando dispositivi programmabili, gli
sviluppatori hanno bisogno di un ulteriore supporto per essere in grado di usare questi ambienti all’interno dell’e-
cosistema di sviluppo che circonda i propri dispositivi logici programmabili selezionati. Xilinx ha sviluppato lo Stack
reVISION per fornire tale supporto agli utenti delle famiglie di prodotti Interamente Programmabili Zynq-7000 e degli
MPSoC interamente programmabili Zynq UltraScale+. Lo stack fornisce tutti gli elementi necessari per cerare appli-
cazioni di imaging ad alte prestazioni, ed è ottimizzato per le esigenze dei sistemi autonomi non connessi al cloud.