GIUGNO-LUGLIO 2017
AUTOMAZIONE OGGI 399
105
e la loro elaborazione in tempo reale, comportano l’acquisizione e
gestione di enormi quantità di dati. Molte applicazioni di visione
di fascia alta richiederanno quindi sistemi di elaborazione paral-
lela o hardware dedicato come GPU, DSP, Fpga o coprocessori.
Spesso, però, i sistemi di visione embedded devono sottostare
a stringenti vincoli di costo, dimensioni e consumi energetici,
pertanto un motore di elaborazione di fascia alta, dotato della
necessaria potenza di calcolo, potrebbe rivelarsi troppo costoso o
troppo ‘avido’ di energia per una determinata applicazione.
Un altro aspetto importante è il fatto che la visione embedded
è pensata per operare in condizioni reali che cambiano conti-
nuamente: livelli di illuminazione, movimento, orientamento.
L’impiego di speciali algoritmi di visione per controllare i dati
è essenziale in queste situazioni. Fare affidamento sulle sole si-
mulazioni non basta: occorrono effettuare test nel mondo reale,
che possono comportare ingenti perdite di tempo. Questo vale
soprattutto per le applicazioni automobilistiche, robotiche
e di sicurezza.
I sistemi di visione
I sistemi di visione embedded comprendono un’ampia gamma di
componenti che possono essere integrati in molti modi diversi e
sono basati in primo luogo su tecnologie di acquisizione dell’im-
magine, elaborazione e visione artificiale.
Per quanto riguarda l’ingresso del sistema, i sensori Cmos e CCD
(Charge-Coupled Device) sono le due tecnologie principali attual-
mente disponibili per l’acquisizione dell’immagine. I CCD offrono
complessivamente una qualità più alta, ma nell’ultimo decennio
i miglioramenti delle tecnologie Cmos hanno colmato il divario.
Oltre a poter gestire condizioni di bassa illuminazione, i sensori
Cmos offrono minore consumo energetico e minore costo; il loro
impiego, pertanto, è notevolmente maggiore rispetto ai CCD. La
tecnologia Cmos continua a evolversi con ulteriori riduzioni della
dimensione dei pixel e con le necessarie interconnessioni ad alta
velocità, a banda più larga. Oggi, inoltre, i sensori di immagine
sono disponibili in contenitori e moduli sempre più piccoli, con-
sentendo la realizzazione di soluzioni compatte a doppia teleca-
mera e implementazioni di visione stereoscopica per compensare
le distorsioni, rilevare la profondità, migliorare la gamma dina-
mica e la nitidezza.
Per la scelta del processore occorre considerare aspetti quali:
prestazioni in tempo reale, consumo di energia, precisione
dell’immagine, complessità dell’algoritmo. Si sono registrati mi-
glioramenti continui nella potenza di elaborazione e negli algo-
ritmi di visione, oltre a una maggiore integrazione di soluzioni
Slam (Simultaneous localisation and mapping) per applicazioni
automobilistiche, robotiche e nei droni. È necessaria anche una
memoria locale per confrontare le immagini o conservarne i dati
in attesa dell’analisi. I sistemi di visione impiegano comunemente
memorie volatili e non volatili, per conservare alcuni elementi
dell’immagine o la totalità dei dati acquisiti. Altro elemento es-
senziale del sistema sono gli algoritmi speciali per la visione, per
esempio per controllare le immagini video in ingresso ed effet-
tuare specifiche elaborazioni, come il miglioramento dei colori o
il rilevamento di oggetti.
Il processo di sviluppo e implementazione degli algoritmi di vi-
sione è cambiato drasticamente vari anni fa con la creazione della
biblioteca di visione artificiale open source OpenCV. Offrendo
codice di programmazione, anche funzioni C/C++, centrato sulle
applicazioni di visione, OpenCV facilita il porting e l’esecuzione
degli algoritmi sui processori embedded. Molte aziende offrono
soluzioni di visione e di elaborazione video basate su OpenCV
(o su biblioteche simili, o perfino framework), per una varietà di
applicazioni. Generalmente anche i produttori di semiconduttori
offrono biblioteche per la visione artificiale, allo scopo di poten-
ziare le soluzioni di elaborazione basate sui loro prodotti. Un altro
elemento, sempre più importante nell’era IoT, è la connettività,
sia essa di tipo cablato o wireless a seconda dell’applicazione e
dei suoi requisiti. Un’ulteriore considerazione riguarda l’impiego
di software che esegue analisi algoritmiche su server nel cloud.
Un tipico sistema di visione embedded di fascia alta