• Datalogic
  • SPS 2018
  • Banner Net
  • SEA Vision

Embedded vision

I sistemi embedded capaci di estrarre informazioni dalle immagini

Embedded vision è il termine utilizzato per identificare i sistemi embedded che sono in grado di estrarre informazioni da ingressi visivi (immagini). I mercati emergenti per questi dispositivi sono davvero importanti: si va dall’automotive ai sistemi di sorveglianza e sicurezza, al mercato dei giochi, alle applicazioni medicali, industriali, aerospaziali. Per non parlare di cosa si può fare ora che il mercato consumer dei dispositivi mobili è esploso: si tratta di un circolo virtuoso, nel quale, quanto più l’utilizzatore sceglie questi dispositivi, tanto più se ne aspetta di nuovi.

Esempi di applicazioni

La sorveglianza. Altissime perdite legate al furto di articoli al dettaglio (negli Stati Uniti 40 miliardi di dollari all’anno), oltre a crescenti problemi di sicurezza personale, hanno determinato l’esplosione del mercato delle telecamere di sorveglianza negli ultimi 10 anni. Nel Regno Unito, ad esempio, si valuta che vi sia una telecamera ogni 35 persone, per un totale di 1,85 milioni di dispositivi. Essi generano all’incirca 2,5 x109 minuti di video al giorno, che sono impossibili da gestire. Inoltre, studi recenti hanno evidenziato che la presenza di videocamere di sorveglianza non determina una riduzione significativa di atti criminosi.
Rendere smart le telecamere di sorveglianza significa dotarle di algoritmi di visione che siano in grado di riconoscere specifiche situazioni (postura, movimento, gesti, espressione facciale), siano in grado di classificarle in modo affidabile (mi riferisco alla necessità di evitare falsi negativi e falsi positivi), e in modo robusto (al variare dell’ambiente nel quale vengono utilizzate).

L’automotive. I numeri parlano chiaro: ogni anno il numero di vittime in incidenti stradali supera abbondantemente il milione, e il numero di veicoli prodotti si attesta attorno a 65 milioni. Vi è quindi un enorme interesse a sviluppare sistemi di visione embedded che segnalino
(i) il non rispetto della distanza di sicurezza,
(ii) la presenza di pedoni o di ciclisti,
(iii) l’aggiramento dei sistemi di controllo di guida in stato di ubriachezza,
(iv) il pericolo d’impatto dovuto a sonnolenza.

https://www.youtube.com/watch?v=RK8dbq-LfM0

Il Road Experience Management di Mobileye https://www.youtube.com/watch?v=RK8dbq-LfM0

Un esempio è il sistema Mobileye (www.mobileye. com), che tuttavia si limita ad avvisare il guidatore. Un miglioramento significativo potrebbe essere rappresentato dalla riduzione di velocità del veicolo: ci si sta lavorando.

 

 


Il mercato dei video games.
Chi di noi non ha giocato almeno una volta con il dispositivo Microsoft Kinect? Si compera su Amazon a circa 80 euro, e nei suoi primi sei mesi di vita ne sono stati venduti 10 milioni di unità. É un esempio perfetto di embedded vision: nato per il mercato consumer ed entertainment, presenta caratteristiche hardware e software che lo rendono sensibile al movimento del corpo umano; a differenza del Wiimote della Nintendo e al PlayStation Move della Sony, consente al giocatore il controllo del sistema senza la necessità d’indossare o impugnare alcunché. Perché c’è la visione di mezzo. Ma oltre a ciò, può essere utilizzato come controller audio/video, ed è un ottimo sistema a basso costo per ricostruzioni 3D di ambienti.

La sicurezza in acqua. È un business anche questo: ogni anno si stima che nel mondo si verifichino almeno 400.000 annegamenti. Negli Stati Uniti l’annegamento è la seconda causa di morte accidentale per i bambini in età compresa fra 1 e 14 anni. Il 19% di essi annega in piscine pubbliche, in presenza del personale di sorveglianza. La MG International ha realizzato il dispositivo Poseidon, un sistema vision embedded che analizza in tempo reale le traiettorie dei nuotatori e allerta il personale di sorveglianza a intervenire immediatamente nel caso di pericolo potenziale, fornendo la posizione esatta del nuotatore in pericolo.

Gli algoritmi per la visione embedded

Non sono diversi da quelli utilizzati per la visione su piattaforma PC. Acquisizione d’immagine, correzione di aberrazione ottica, pre-processing, riconoscimento degli elementi d’interesse, analisi e classificazione. Il tipico carico computazionale per VGA a 30 frame per secondo (fps) è nell’ordine di 3 miliardi d’istruzioni al secondo su un DSP (Digital Signal Processor). Questo valore varia molto sensibilmente con la frequenza di acquisizione e la complessità algoritmica. Esempi?

La correzione di distorsione. Inevitabile, trattandosi di sistemi muniti di lenti normalmente a basso costo, e quindi di bassa qualità. Si tratta di stimare l’entità della distorsione e di compensarla. La stima si effettua utilizzando pattern noti a priori ed elaborandoli mediante algoritmi appositi. Per quanto complessi possano essere (e lo sono!) questa operazione viene fatta una sola volta, e quindi il suo carico computazionale è limitato. Il vero problema è la correzione. Viene effettuata interpolando pixel per pixel tutta l’immagine, e tutte le immagini acquisite. Due conti: una telecamera a colori con risoluzione 720 x 1280 pixel, a 60 fps comporta 921.600 (pixel) x 3 (componenti colore) x 60 (fps) = 166 milioni di dati al secondo. Ipotizzando che l’algoritmo di correzione della distorsione comporti 10 operazioni matematiche, sono necessari 1.66 miliardi di operazioni al secondo.

Dense Optical Flow. Si tratta di algoritmi che stimano l’andamento del movimento di oggetti, superfici, dettagli ripresi nella scena. Vengono utilizzati in applicazioni di sorveglianza, per stimare posizione, postura, movimento di persone, per gestire la riduzione del rumore in immagini ad altissima risoluzione, nelle applicazioni automotive citate sopra. L’altissimo carico computazionale è legato alla complessità del riconoscimento in sé, alla necessità di una risposta veloce e quindi alla necessità di una bassissima latenza.

L’hardware nei sistemi vision embedded

L’hardware necessario a realizzare la visione nei sistemi embedded deve riassumere in sé le caratteristiche seguenti:

  • Prestazioni molto alte;
  • Programmabilità;
  • Basso costo;
  • Efficienza energetica.

Non è facile ottenerle tutte insieme. Hardware con logica dedicata garantisce alte prestazioni a basso costo, ma bassi livelli di programmabilità; CPU general purpose forniscono alta programmabilità non necessariamente ad alte prestazioni o a bassi costi, e generalmente non a bassi consumi.
Le soluzioni a oggi individuate si basano sulla combinazione di opportuni dispositivi hardware, quali:

  1. CPU embedded ad alte prestazioni;
  2. Prodotti standard specializzati per una determinata applicazione (ASSP: Application-Specific Standard Product) + CPU;
  3. Unità di processamento grafico (GPU: Graphic Processing Unit)+ CPU;
  4. DSP+acceleratori+CPU;
  5. Field Programmable Arrays (FPGA) +CPU.

Ciascuna soluzione ha i suoi pro e i suoi contro (vedi: Jeff Bier, Implementing Vision Capabilities in Embedded Systems, www.embedded-vision. com). La regola base è partire dalla soluzione 1 e chiedersi se possa bastare. In caso contrario, scendere nella lista. Un discorso a parte merita l’hardware Mobile: a oggi l’hardware di elaborazione integrato nei dispositivi mobili comprende una CPU ad alte prestazioni e una “costellazione” di coprocessori specializzati, quali GPU, VPU e hardware grafico 2d che ne fanno un elaboratore molto potente, a basso consumo e dotato di una sempre più vasta disponibilità di software di sviluppo (fra tutte, le piattaforme Android e Ios). Benché vi sia un non ancora sufficiente livello di flessibilità di programmazione, va da sé che la mobile vision sarà oggetto di grande lavoro e riserverà grandi sorprese, in moltissimi campi applicativi.

Commenti

Il lettore paziente che è arrivato fino a qui ha capito che sviluppare nuovi sistemi di visione embedded è cosa niente affatto banale. Se da un lato la tecnologia hardware va sviluppando processori sempre più potenti, a basso costo e a basso consumo, dall’altro la visione in sé e l’estrazione delle informazioni pone grossi problemi la cui soluzione è spesso una sfida. Fra tutti vi è la complessità computazionale che l’acquisizione d’immagini comporta e che aumenta con la risoluzione delle telecamere, con l’utilizzo di dispositivi a colori e con la necessità di acquisizioni veloci. Ma non si tratta solo di questo. Un elemento importante è che il progetto della parte di visione di un sistema embedded deve essere affrontato a livello di sistema: l’illuminazione, le ottiche, il tipo di algoritmi scelti per estrarre le informazioni determinano il tipo di hardware necessario a ottenere le prestazioni attese. La buona riuscita del progetto dipende quindi dalla possibilità di mettere assieme le competenze degli esperti di visione con quelle degli esperti di sistemi embedded. Nella realtà, invece, molto spesso questo non accade, e determina l’insuccesso del progetto nel suo complesso. La scelta degli algoritmi utilizzati è di per sé un elemento critico: intenzionalmente parlo di “scelta” e non di “sviluppo”. La disponibilità degli algoritmi è vastissima, data l’attività di ricerca, sviluppo e ingegnerizzazione attuata negli ultimi 40 anni. Tuttavia la maggior parte di essi è stata pensata per la piattaforma PC, per ovvi motivi di fruibilità, velocità di realizzazione e costi ridotti. Ne consegue che l’abilità del progettista sta nella capacità di scegliere l’algoritmo che meglio si adatta alla soluzione del problema di visione ottemperando ai vincoli della tecnologia embedded (basso costo, basso consumo, efficienza di elaborazione). Bisogna pensare a soluzioni di processing parallelo e a realizzazioni in firmware che inevitabilmente richiedono una competenza specifica (e costosa). Tenendo conto anche di un altro elemento: le applicazioni di visione richiedono un alto livello di programmabilità. Diversamente dalle applicazioni sistemi wireless, dove la presenza di un alto livello di standardizzazione garantisce che gli algoritmi di comunicazione in banda base non varino in maniera significativa da un dispositivo a un altro (ad esempio nei telefoni cellulari), nelle applicazioni vision embedded vi sono grandi opportunità di ottenere risultati migliori e realizzare soluzioni innovative attraverso algoritmi ritagliati, potenziati, adattati, ottimizzati ad hoc.
(Giovanna Sansoni, da TuttoMisure, n.3-2014)

Soluzioni embedded e PC-based

Le soluzioni di visione embedded sono basate su telecamere intelligenti (smart camera), ovvero sistemi compatti di trattamento di immagini in cui i componenti di digitalizzazione, elaborazione e memoria sono integrati nello stesso dispositivo con il sensore di immagine (CCD o CMOS, matriciale o lineare, bianco/nero o a colori). Oltre a questi componenti fondamentali, fanno di solito parte di una smart camera linee di ingresso/uscita built-in, ottiche avanzate (adattatori per lenti e obiettivi di vario tipo, sistemi a estrazione automatica di profili, modelli per la verifica accurata del colore), porte di comunicazione, uscite video (VGA, SVGA, CCIR ecc.), dispositivi integrati di illuminazione (normalmente basati su LED), software di configurazione.

smart camera

Smart camera, fronte e retro (Tattile)

Le smart camera sono in generale impiegate negli stessi campi di applicazione dei sistemi di visione più complessi, laddove considerazioni di ingombro, costo o affidabilità rendano impraticabile l’impiego di architetture basate su PC o elaboratori esterni. I sistemi embedded assicurano elevate prestazioni con tempi di elaborazione molto contenuti. I tipici settori di utilizzo dei sistemi embedded sono infatti il controllo qualità, il controllo remoto di macchine e linee di produzione, le ispezioni dei processi robotizzati.
Per aumentare le prestazioni e la flessibilità d’uso è invece preferibile adottare sistemi di visione PC based. Strutturalmente sono costituiti da componenti commerciali standard e da un sistema di elaborazione basato su PC. In alcuni casi le telecamere sono collegate al PC attraverso un frame grabber. Le soluzioni basate su PC sono più competitive nelle applicazioni che richiedono un’integrazione complessa. A fronte di tempi di elaborazione relativamente elevati, i sistemi PC based sono espandabili e adatti per applicazioni complesse e personalizzate. In questo senso sono più orientati verso i costruttori di macchine che verso gli end user.
(Armando Martin)

  • Datalogic
  • Sea Vision

Con il patrocinio di

Anipla
Patrocinio Anipla
Patrocinio Cnosfap
IMVG
AIDAM
Facoltà Di Ingegneria Di Pavia