Table of Contents Table of Contents
Previous Page  17 / 86 Next Page
Information
Show Menu
Previous Page 17 / 86 Next Page
Page Background

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