Visione artificiale: la nuova frontiera dell’IoT per l’automotive del futuro

Una nuova e imminente rivoluzione industriale sembra essere alle porte, una rivoluzione in cui la visione artificiale (“machine vision”) è destinata a svolgere un ruolo fondamentale. I sistemi di visione intelligente stanno proliferando in numerose applicazioni, spesso incorporando algoritmi e tecniche avanzate di “deep learning”. La visione artificiale comporta un maggiore livello di cooperazione tra l’uomo e la macchina, e richiede l’utilizzo di architetture di sistema eterogenee, quali l’Internet Of Things.

L’evoluzione della visione artificiale

Storicamente, i primi sistemi di visione artificiale erano basati su architetture hardware che includevano dei “frame grabber” e numerosi Digital Signal Processor (DSP). I “frame grabber”, che potremmo tradurre in italiano come “digitalizzatori video”, sono in sostanza dei circuiti elettronici il cui compito è quello di catturare frame video (in forma digitale) da un segnale video analogico oppure da uno stream video digitale. I primi dispositivi di questo tipo avevano una disponibilità di memoria molto esigua, per cui potevano memorizzare un solo frame alla volta. Con il progresso compiuto dalla tecnologia elettronica, sono stati successivamente realizzati dei frame grabber in grado di acquisire, visualizzare, e memorizzae più frame video. I DSP sono invece dei componenti ben noti, utilizzati in svariate applicazioni nel campo dell’elettronica. Sono in sostanza un particolare tipo di microprocessore la cui architettura è stata ottimizzata per eseguire operazioni matematiche a velocità molto elevata, consentendo di implementare algoritmi complessi che operano in tempo reale: eleborazione dei segnali audio, video, temperatura, posizione GPS, segnali a radiofrequenza, sono solo alcuni esempi di applicazione dei DSP.

Con l’evoluzione compiuta soprattutto nel campo della robotica, sono oggi disponibili (a un prezzo ragionevole) dei sensori ad elevate prestazioni utilizzati in applicazioni in cui il riconoscimento delle immagini va oltre il tradizionale schema concettuale “rileva, confronta, decidi”. La tendenza attuale della robotica (a partire dai più semplici tipi di robot industriali fino ad arrivare  alle auto a guida autonoma) è infatti quella di utilizzare un paradigma del tipo: “rileva, pianifica, agisci”. In quest’ottica, la visione artificiale rappresenta il mezzo principale con cui un robot può conoscere la sua posizione e il mondo che lo circonda (è lo strumento che permette al robot di “rilevare” la realtà circostante).

L’altro strumento fondamentale (ciò che permette di “pianificare” le azioni) è rappresentato da un processore embedded basato su un’architettura di sistema eterogenea (come ad esempio i SoC della serie G prodotti da AMD): esso rappresenta il “cervello” che studia, comprende, e interpreta l’ambiente. Il terzo e ultimo componente fondamentale di un robot “intelligente” è rappresentato dall’unità che ha il compito di “agire”. Questa attività implica generalmente l’utilizzo di motori ad elevata efficienza (in genere si tratta di motori BLDC), e batterie con elevata densità di potenza. La combinazione di questi tre fattori è ciò che oggi rende la robotica e i sistemi di visione così rivoluzionari.

I sistemi di visione intelligenti

Nell’essere umano, il sistema visivo comprende anzitutto gli occhi, che ricevono tramite la retina il segnale visivo, e lo trasmettono all’encefalo tramite il nervo ottico. La parte di encefalo che si occupa dell’elaborazione del segnale visivo è la corteccia visiva, che, tra i cinque diversi sensi, è quella che occupa la porzione di cervello maggiore.

I sistemi di visione artificiale svolgono una funzione equivalente a quella dell’occhio umano, come ad esempio il sistema IVS-70 (Figura 1) basato su algoritmi di calcolo parallelo eseguiti su SoC eterogenei. L’IVS-70 (acronimo di Intelligent Vision System) consente di acquisire e processare l’immagine video (stereo) grazie all’utilizzo di SoC AMD della serie G e FPGA SmartFusion2 di Microsemi.

Figura 1: IVS-70

Sistemi come quello appena visto sono in grado non solo di fornire una velocità e una risoluzione così elevate da competere con il sistema visivo umano, ma forniscono anche delle informazioni molto accurate sul posizionamento geografico dei punti di riferimento e degli oggetti. Per soddisfare dei requisiti di questo tipo, la visione stereoscopica rappresenta la scelta più naturale. Un’applicazione a livello industriale per questo tipo di robot può essere trovata, per esempio, nei sistemi che prelevano degli oggetti in modo “intelligente” (seguendo cioè particolari criteri) da un contenitore. Opportunamente installato su un braccio robotizzato, un sistema di visione può produrre un flusso di immagini a 50 frame per secondo (fps), identificando con precisione l’oggetto che potrà essere prelevato dalle pinze poste sul braccio. Un’altra possibile applicazione dei sistemi di visione, che ultimamente sta vivendo un periodo di particolare attenzione, è rappresentata dai veicoli a guida autonoma, oltre, ovviamente, ai robot per svariate applicazioni domestiche.

La corteccia visiva artificiale

Come funziona, esattamente, un sistema di visione artificiale? Il primo stadio di elaborazione dell’informazione riguarda i singoli pixel che compongono un’immagine, e questa elaborazione viene normalmente eseguita da una FPGA. La maggiorparte dei sistemi di visione include delle telecamere di tipo RGB (i pixel possono quindi essere Red, Green, oppure Blue), che operano in maniera del tutto analoga all’occhio umano. Al fine di ottenere un’immagine, la prima elaborazione da compiere consiste nella conversione dell’informazione da formato RGB a formato HIS (acronimo di Hue, Saturation, and Intensity), occorre cioè determinare per ogni pixel il colore, l’intensità, e il livello di saturazione. Lo step successivo consiste nel rettificare l’immagine  in modo tale da compensare la distorsione introdotta dalle lenti. Infine, occorre combinare e accoppiare le immagini provenienti dalle due telecamere che compongono la visione stereoscopica. Tutte le operazioni citate vengono eseguite da una FPGA, la soluzione più efficiente e flessibile per eseguire questo tipo di algoritmi.

Le elaborazioni successive possono invece essere implementate nel microprocessore (con architettura x86 o similare), il cui compito è quello di interpretare opportunamente le immagini acquisite (Figura 2). Occorre precisare come questo tipo di algoritmi presentino una complessità piuttosto elevata, e rappresentino una sfida anche per gli sviluppatori più preparati. Inoltre, fino a poco tempo fa, i sistemi di visione artificiale non erano ancora in grado di eguagliare, a livello di prestazioni, la corteccia visiva dell’essere umano. Negli ultimi anni sono stati tuttavia compiuti dei notevoli progressi tecnologici in quest’area, cambiando in modo sostanziale gli equilibri. Un esempio è rappresentato dall’applicazione software AlphaGo sviluppata da Google, in grado di sconfiggere il migliore giocatore umano (nonchè maestro) di Go.

Figura 2 – i moderni sistemi di visione computerizzata e i sistemi di apprendimento visivo sono in grado di analizzare ogni singolo pixel

Figura 2: i moderni sistemi di visione computerizzata e i sistemi di apprendimento visivo sono in grado di analizzare ogni singolo pixel

Un risultato di questo tipo è stato possibile utilizzando algoritmi per le reti neurali, che oggi possono essere eseguiti a velocità molto superiori rispetto al passato, e utilizzano più livelli della rete neurale. Con il termine “deep learning” si intende proprio una rete neurale composta da più livelli. Inoltre, le architetture di sistema con cui sono realizzati i moderni SoC permettono [...]

ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 3380 parole ed è riservato agli abbonati PRO. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici MAKER e PRO inoltre potrai fare il download (PDF) dell'EOS-Book e di FIRMWARE del mese. ABBONATI ORA, è semplice e sicuro.

Abbonati alle riviste di elettronica

2 Commenti

  1. Giovanni Di Maria Giovanni Di Maria 21 settembre 2017
  2. Davide Di Gesualdo 25 settembre 2017

Scrivi un commento

EOS-Academy