TECH INSIGHT
VISIONE ARTIFICIALE
17
- ELETTRONICA OGGI 465 - OTTOBRE 2017
Naturalmente, questa è a tutti gli effetti solo metà della storia: in un sistema omogeneo la stessa sequenza di
elaborazione delle immagini deve essere implementata anche per il secondo sensore. Analogamente, un siste-
ma eterogeneo deve configurare, trasferire, ricevere ed estrarre le informazioni dal relativo canale (o canali).
Il vantaggio delle architetture interamente programmabili
All’interno dei sistemi di visione embedded è comune usare FPGA interamente programmabili o SoC interamen-
te programmabili per realizzare la sequenza di elaborazione delle immagini. Se ciò ha senso per le applicazioni
di visione embedded tradizionali, il discorso è invece completamente diverso per le applicazioni di visione em-
bedded di tipo fusion. Un’applicazione di visione embedded fa tipicamente uso di un processore per la supervi-
sione, il controllo e la comunicazione. In un SoC interamente programmabile, quest’ultimo è un core sintetizzato
su hardware, con diverse periferiche e standard di interfacce di supporto. Se viene usato un FPGA interamente
programmabile, il processore può essere un soft core con periferiche e supporto personalizzato alle interfacce.
Sfruttando altre funzionalità di questi processori embedded, come le interfacce SPI o I2C, è possibile connet-
tere ulteriori sensori, come accelerometri, magnetometri, giroscopi o persino GPS. Ciò consente al software di
ottenere in modo semplice e rapido le informazioni richieste da una quantità di tipi di sensori diversi, e fornisce
inoltre un’architettura scalabile. Mentre la sequenza di elaborazione delle immagini richiesta per estrarre le
informazioni dal sensore di immagini può essere implementata facilmente all’interno di una matrice logica pro-
grammabile, tale matrice può anche realizzare la sequenza di altri sensori eterogenei come RADAR e LIDAR, o
più istanze di sequenze nel caso di un sistema omogeneo. Lo stretto accoppiamento fra la memoria del proces-
sore e la logica programmabile nei dispositivi interamente programmabili Zynq-7000 o negli MPSoC interamente
programmabili Zynq UltraScale+, fa sì che il software applicativo possa accedere facilmente all’insieme dei dati
così ottenuto per ulteriori elaborazioni e per la presa di decisioni. Poiché le catene separate dei sensori sono
implementate in logica, esse operano in parallelo, il che è un vantaggio quando è richiesta la sincronizzazione,
come accade con la visione stereoscopica. Inoltre, l’implementazione può essere accelerata usando la sintesi ad
alto livello (HLS), per sviluppare l’algoritmo direttamente all’interno della matrice logica programmabile.
Un’architettura di esempio
È possibile adottare sia l’approccio omogeneo, sia quello eterogeneo all’interno di un SoC Interamente Program-
mabile. Mentre i tipi di sensore saranno diversi per entrambe le applicazioni, l’obiettivo finale di entrambe le
architetture è di collocare due insiemi di dati all’interno della memoria DDR di sistema, massimizzando al con-
tempo le prestazioni della matrice logica programmabile.
Considerando inizialmente l’approccio omogeneo, l’implementazione risultante è un sistema di visione stereo-
scopica che usa un sensore di immagini CMOS in ciascun canale. Un vantaggio importante è che è necessario
sviluppare un’unica catena di sensori di immagini: lo stesso schema può essere istanziato due volte all’interno
della matrice logica programmabile per entrambi i sensori di immagini. Questo consente di ottenere un rispar-
mio significativo in termini di costi di sviluppo, anche se gli algoritmi per calcolare richiedono un’elaborazione
Fig. 2 – Fusione omogenea dei sensori in un FPGA Interamente Programmabile