Multicore eterogeneo e sistemi di visione

È rischioso parlare del futuro dei sistemi di visione, perché le loro prestazioni sono state ampiamente sopravvalutate, ma i risultati non sono finora stati all'altezza. Generare aspettative non realistiche sulle effettive capacità dei sistemi di visione può paradossalmente frenare lo sviluppo del settore. Invece di addentrarsi in scenari futuristici che la fantascienza ci propone con fin troppa facilità, questo articolo si focalizza sulla tecnologia di elaborazione che migliorerà i sistemi di visione odierni, trasformandoli nei sistemi di visione avanzati di domani. Questa tecnologia di elaborazione si chiama “multicore eterogeneo”.

Falsi positivi

Per capire perché sono necessari i processori multicore, bisogna analizzare i fattori che determinano le esigenze di elaborazione nei sistemi di visione. In molte applicazioni, ciò che ostacola o impedisce l'uso dei sistemi di visione è la precisione elevata richiesta in condizioni di impiego reali. Esistono molte dimostrazioni di ciò che un sistema di visione è in grado di fare, ma la difficoltà di realizzare un sistema che funzioni all'esterno di un laboratorio ha spesso frenato il progresso di questa tecnologia. Il riconoscimento facciale è un buon esempio di applicazione che funziona bene in laboratorio; tuttavia, se si analizzano velocemente le condizioni necessarie per ottenere i migliori risultati, si capisce subito che questa tecnologia funziona bene solo in condizioni piuttosto lontane dalla realtà. Nel campo della videosorveglianza, è relativamente facile garantire che un sistema di sicurezza svolga adeguatamente le sue funzioni (allarmi acustici, registrazioni di eventi ecc.) quando si verifica un'effrazione. La vera difficoltà sta nel far scattare l'allarme solo quando qualcuno compie un'effrazione, senza generare falsi positivi quando non si verificano incidenti effettivi. Questi falsi positivi frenano la diffusione dei sistemi di visione e non sono un problema facile da risolvere. Molti fattori esercitano un'influenza sulle prestazioni di un sistema di visione, ad esempio l'illuminazione, le condizioni meteo, lo sfondo, il livello di attività ambientale, la distanza e l'angolazione della telecamera, per citare solo alcuni esempi. Esistono diversi modi per aumentare la precisione di un sistema di visione: aumentare la quantità di informazioni raccolte; migliorare le modalità di utilizzo delle informazioni; utilizzare diversi approcci sovrapposti. Tutti questi interventi richiedono processori multicore eterogenei.

Aumentare le informazioni

Forse il modo più semplice per provare a migliorare i sistemi di visione è potenziarne la vista. L'aumento della risoluzione dei sensori che alimentano il sistema con le informazioni raccolte è una costante. Anche se in alcuni ambiti le informazioni necessarie possono essere raccolte con immagini a risoluzione CIF o Qvga, il settore si evolve verso sensori con un maggior numero di megapixel e risoluzioni superiori. A ogni incremento da CIF a D1 a 720p a 1080p e oltre, la quantità di dati subisce almeno un raddoppio, determinando l'esigenza di un aumento proporzionale della potenza e capacità dei processori.
La risoluzione è solo uno degli elementi che consentono di aumentare la quantità di dati. Altri aspetti sono il tempo (aumentare la frequenza di quadro); il colore (passare dalla scala di grigi al colore); il numero di ingressi (passare da mono a stereo a viste multiple); la modalità dei segnali (passare dalla sola visione a segnali multimodali che uniscono audio e video). Con l'evoluzione dei sistemi di visione in ciascuna di queste direzioni, le esigenze di calcolo continueranno ad aumentare.

Utilizzare meglio le informazioni

Una volta acquisita l'immagine, il sistema di visione può essere migliorato nella fase di estrazione delle informazioni dall'immagine stessa. È questa l'arte dell'elaborazione: prendere i dati delle immagini e ricavarne informazioni utili. Vengono continuamente sviluppati algoritmi nuovi e avanzati che svolgono funzioni come analisi dei colori e dei movimenti, rilevamento di caratteristiche, calcolo di forme, individuazione di oggetti, tracciamento di oggetti, comparazione di pattern, rilevamento di eventi ecc., ricavando informazioni di dimensioni, forma, posizione 3D, orientamento, movimento, proprietà di superficie, classificazione, riconoscimento ecc. Successivamente, le informazioni devono essere assemblate (con un approccio basato su regole o apprendimento, un modello ibrido o altre metodologie) in modo da ottenere un sistema di visione finale che offra le funzionalità desiderate. Non bisogna dimenticare che, poiché l'estrazione di informazioni e il loro utilizzo richiedono grande capacità di elaborazione, queste funzioni si sposano meglio con differenti tipi di architetture di elaborazione. L'aumento della potenza punta nella direzione del multicore; l'ottimizzazione della soluzione suggerisce un multicore eterogeneo.

Approcci sovrapposti

Pur aumentando la risoluzione e utilizzando meglio le informazioni, è probabile che, nei sistemi più complessi, un unico approccio non sia sufficiente per ridurre i falsi positivi di un sistema di visione a un livello adeguato per l'impiego nel mondo reale. In questo caso, per migliorare le prestazioni del sistema bisogna sovrapporre diversi approcci. Questo significa essenzialmente utilizzare contemporaneamente diversi metodi per elaborare i segnali in ingresso e prendere decisioni, invece di limitarsi a uno o due metodi. Nessun metodo è preciso al 100% in tutte le situazioni, pertanto la combinazione di diversi metodi contribuisce a colmare le lacune di ciascun metodo e a ridurre il numero di falsi positivi. Maggiore è la ridondanza del sistema, maggiore il grado di precisione. Naturalmente, aumentando il numero di metodi, aumenta proporzionalmente la capacità di elaborazione richiesta.

Multicore eterogeneo

L'evoluzione verso l'aumento delle informazioni, l'uso di algoritmi avanzati e la ridondanza del sistema si traduce in un continuo aumento delle esigenze di elaborazione nei sistemi di visione. Purtroppo, i core dei processori, una volta raggiunte certe dimensioni, cominciano a perdere in termini di efficienza. Allo stesso modo, le dimensioni minime di canale caratteristiche di ogni nodo di processo non si riducono più alla stessa velocità, né assicurano la riduzione dei consumi di una volta. Così, i processori single-core hanno fatto spazio ai processori multicore per raggiungere livelli di prestazioni superiori.
Il multicore eterogeneo fa un ulteriore passo avanti, aumentando l'efficienza di elaborazione con un mix di core differenti, laddove ciascun tipo di core gestisce la parte del sistema per lui più indicata. Pensate ai diversi tipi di elaborazione richiesti nei sistemi di visione avanzati. Un processore di segnale digitale è specificamente concepito per funzioni di visione. Il Dsp è specializzato nell'elaborazione di segnali in tempo reale di funzioni con calcoli intensivi, dove garantisce prestazioni elevate e latenza prevedibile, entrambi fattori essenziali per i sistemi di visione che devono garantire tempi di risposta accettabili alle sollecitazioni esterne. Un processore Risc, invece, è più efficiente nell'assemblare le informazioni provenienti dal Dsp e nell'eseguire il sistema operativo di alto livello e il codice di controllo. Una piattaforma di calcolo ideale per i sistemi di visione potrebbe quindi essere costituita da core Risc e Dsp. È importante sottolineare l'importanza dell'architettura complessiva del dispositivo. Senza un'architettura ben congegnata che offra sufficiente larghezza di banda, memoria e comunicazioni efficienti, si possono formare “colli di bottiglia” che limitano le prestazioni del dispositivo. Solo negli ultimi anni sono state realizzate architetture eterogenee efficienti nelle quali tutti i singoli elementi svolgono pienamente i loro compiti di elaborazione.

Il futuro dei sistemi di visione

I sistemi di visione usciranno dai laboratori per entrare nel mondo reale. Le prestazioni elevate offerte da dispositivi multicore eterogenei assicureranno miglioramenti nella precisione dei sistemi, fornendo la capacità di elaborazione richiesta dall'aumento della quantità di informazioni, dall'utilizzo di algoritmi avanzati e dalla sovrapposizione di diversi approcci. Verranno soddisfatti anche i requisiti di dimensioni e potenza per applicazioni reali in ambiti come le telecamere di sorveglianza, l'automazione industriale e i sistemi di assistenza alla guida. Mettendo a disposizione un mix ottimale di core, il dispositivo multicore eterogeneo consumerà meno energia e offrirà costi inferiori rispetto alle soluzioni di elaborazione discreta. Grazie all'evoluzione dei sistemi di visione basati sul multicore eterogeneo, presto potremo smettere di parlare delle lacune dei sistemi di visione attuali e cominciare a immaginare dove ci porteranno i nuovi sistemi di visione. A voi formulare l'idea più fantasiosa fra auto che si guidano da sole o amici robot simili a esseri umani
.

LASCIA UN COMMENTO

Inserisci il tuo commento
Inserisci il tuo nome