L’utilizzo dei sistemi di visione artificiale in ambito IoT consente di creare un’infrastruttura di rete con funzionalità molto avanzate. La possibilità di identificare e riconoscere degli oggetti consente ad ogni singolo nodo di acquisire una maggiore intelligenza e autonomia, riducendo il carico computazionale sui server centrali e creando un sistema di controllo distribuito.
Introduzione
Nel corso degli ultimi dieci anni, la visione artificiale ha compiuto degli enormi progressi. Algoritmi software in grado di rilevare all’interno dei frame video il movimento e i contorni degli oggetti, unitamente agli sviluppi in campo hardware che hanno interessato sensori di immagine, logiche programmabili, microcontrollori e GPU, hanno contribuito alla diffusione della visione artificiale in numerose applicazioni embedded. L’utilizzo sempre più esteso delle FPGA, in grado di supportare algoritmi complessi e sofisticati, combinato con la disponibilità di nuovi framework per lo sviluppo software (come OpenCV), hanno facilitato l’applicazione della visione artificiale anche ai sistemi embedded.
Questa crescente proliferazione dei sistemi di visione artificiale va di pari passo con la sempre maggiore esigenza di collegare i sistemi industriali alla rete IoT (Internet of Things). Grazie alla disponibilità di sensori sempre più intelligenti in grado di supportare anche la visione artificiale, le informazioni acquisite dagli stessi possono essere impiegate efficacemente per comprendere e migliorare il funzionamento dei sistemi industriali. Si aprono inoltre nuove e affascinanti prospettive per i sistemi di monitoraggio, con sistemi robotici (come ad esempio i droni) collegati all’infrastruttura IoT.
Le motivazioni che spingono verso l’adozione dei sistemi di visione artificiale sono essenzialmente legate all’esigenza di automatizzare un numero sempre più crescente di attività industriali. Una delle applicazioni chiave della visione artificiale consiste nell’ispezione eseguita durante varie fasi della produzione. Il prezzo delle telecamere ad elevate prestazioni (dotate di sensori di immagine CMOS) è drasticamente diminuito nel corso degli ultimi dieci anni, consentendo di eseguire il rilevamento in alta risoluzione dei bordi e dei contorni degli oggetti durante la lavorazione. Telecamere di questo tipo sono abbinate a delle FPGA con lo scopo di aumentare la capacità di elaborazione e supportare algoritmi sempre più sofisiticati. Ciò consente alla telecamera di acquisire una maggiore autonomia, elaborando autonomamente i segnali acquisiti ed eliminando la necessità di trasmettere voluminosi flussi video sulla rete.
Applicazioni in ambito IoT
Il collegamento di un sistema per la visione artificiale alla rete IoT consente di ispezionare con accuratezza i prodotti durante le varie fasi della lavorazione, fornendo un utile strumento per migliorare le prestazioni e l’efficienza del sistema produttivo. Tali sistemi sono infatti in grado di fornire dati aggregati ad un livello superiore rispetto a quello puramente fisico (raw data), contribuendo a ridurre l’ampiezza di banda utilizzata sulla rete di connessione. Una rete IoT può comprendere un’infinità di dispositivi connessi, pertanto una qualunque riduzione del carico di lavoro sui server contribuisce ad assumere decisioni in tempi più rapidi e in modo più efficace.
La diffusione in ambito industriale dei sistemi di visione artificiale sta creando interessanti prospettive anche per i sistemi di guida robot, utilizzati soprattutto nelle fabbriche ad elevato grado di automazione. Le macchine per l’ispezione e il controllo di qualità in fase di produzione possono così interagire direttamente con gli altri dispositivi presenti nella fabbrica, basandosi sui risultati prodotti dai sistemi di visione artificiale. Come conseguenza si ottiene un miglioramento dell’efficienza e una riduzione del carico di lavoro sui server e sulla rete stessa.
Un’altra importante applicazione della visione artificiale riguarda il controllo delle apparecchiature automatiche, in particolare quelle adibite alla movimentazione dei materiali. Queste includono sia i sistemi di controllo per i robot autonomi, in grado di trasferire autonomamente i materiali all’interno di uno stabilimento, che le macchine per l’identificazione e il prelievo automatizzato dei prodotti all’interno di un magazzino.
Relativamente ai robot adibiti alla gestione automatizzata dei materiali, il sistema di visione artificiale può essere molto semplice, limitandosi a seguire le linee tracciate sul pavimento per spostarsi da una posizione all’altra. In altri casi può includere funzioni più avanzate, come il rilevamento di persone, ostacoli od oggetti interposti sul proprio cammino: in tal caso gli operatori della fabbrica e i robot possono lavorare insieme senza ostacolarsi, in modo totalmente sicuro ed efficiente.
Come già accennato in precedenza, anche i sistemi per l’identificazione e il prelievo dei materiali all’interno di un magazzino utilizzano la visione artificiale: ogni articolo viene riconosciuto tramite il proprio codice a barre, mentre una pinza robotizzata provvede a prelevare un particolare oggetto e a posizionarlo nel contenitore. In Figura 1 è visualizzato un tipico sistema di visione applicato ai robot.
Anche i velivoli, in particolare gli UAV (Unmanned Aerial Vehicles), possono beneficiare della visione artificiale. Gli UAV (Figura 2) rappresentano un mezzo particolarmente efficace per condurre ispezioni in aree difficili da raggiungere, come ad esempio oleodotti e gasdotti. In queste applicazioni la visione artificiale consente agli UAV di identificare ed esaminare accuratamente una determinata zona, oltre a permettere l’individuazione di ostacoli o possibili insidie posti nelle vicinanze.
Anche il settore dei sistemi di allarme, in particolare la videosorveglianza, sta utilizzando in modo sempre più significativo i sistemi per la visione artificiale. Anzichè trasmettere verso la postazione operatore ingenti flussi dati video, le immagini acquisite possono essere processate localmente, generando se necessario gli opportuni allarmi senza necessità di intervento da parte dell’uomo. Gli algoritmi per la visione artificiale eseguiti sulle FPGA sono in grado di produrre risultati sempre più accurati e affidabili. È così possibile, ad esempio, distinguere il movimento prodotto da una persona rispetto a quello generato da un animale o dalle foglie mosse dal vento, consentendo all’operatore di monitorare contemporaneamente un numero maggiore di nodi del sistema. L’utilizzo combinato di sistemi di sorveglianza posti a terra con sistemi per la visione aerea (come gli UAV) sta profondamente modificando il modo con cui operano i sistemi di videosorveglianza. Le telecamere fisse possono infatti essere sostituite da sistemi installati sul velivolo, in grado di monitorare costantemente durante il volo l’area di interesse. Quando l’autonomia delle batterie si sta esaurendo, l’UAV può tornare alla base, per essere sostituito da altri mezzi pronti per essere utilizzati, garantendo così una copertura costante dell’area. Algoritmi per la visione artificiale più avanzati permettono inoltre di identificare minacce potenziali, facendo convogliare nell’area incriminata altri mezzi aerei o terrestri per esaminare meglio la situazione e senza alcun coinvolgimento da parte dell’operatore.
Lo stesso tipo di scenario può essere applicato a tutte le applicazioni che riguardano il settore agricolo, dove gli algoritmi per la visione artificiale in esecuzione su un UAV permettono di monitorare le condizioni delle colture e indirizzare un operatore (o addirittura un trattore a guida autonoma) verso l’area che richiede un intervento immediato.
Gli scenari precedentemente descritti sono resi possibili dai progressi compiuti dalle tecnologie software e hardware che stanno alla base della visione artificiale. Gli algoritmi impiegati nella visione artificiale hanno una struttura straordinariamente sofisticata e vengono normalmente implementati tramite FPGA o GPU. Questi dispositivi sono in grado di gestire contemporaneamente 8 o 16 canali, arrivando a supportare anche 60 frame al secondo; possono inoltre essere combinati con applicazioni software di più alto livello, come OpenCV. Sviluppato inizialmente con finalità di ricerca e di prototipazione, OpenCV viene oggi utilizzato su numerose piattaforme, compreso il cloud e il mobile. A partire dalla versione 3.0, OpenCV integra il supporto esteso per la visione in 3D e per la realtà aumentata. Le ultime versioni della libreria includono degli algoritmi ottimizzati per funzionalità quali calibrazione, filtraggio delle immagini, flusso ottico, segmentazione e rilevamento delle feaure.
Sviluppi futuri
Il passo successivo all’utilizzo della visione artificiale nei sistemi embedded IoT è rappresentato dal machine learning. Gli algoritmi utilizzati nella visione artificiale forniscono un’analisi deterministica delle immagini e dei contenuti video, mentre il machine learning (tramite un approccio basato sulle reti neurali) “insegna” al sistema di visione cosa cercare e osservare. Le più recenti versioni di OpenCV, ad esempio, supportano le reti neurali profonde (o apprendimento profondo) per l’implementazione del machine learning. Le prestazioni sempre più elevate raggiunte da FPGA e GPU aprono nuovi e affascinanti scenari per il machine learning. Ciò avviene tramite una fase iniziale di apprendimento, in cui la rete neurale viene istruita con una serie di immagini taggate con gli oggetti che interessano, gestite tramite un apposito server collocato in un laboratorio oppure sul cloud. Il risultato è una serie di informazioni “pesate” che verranno applicate alla stessa rete, implementata però sul sistema embedded. Questo motore inferenziale utilizza gli stessi pesi per determinare se le immagini acquisite contengono gli oggetti richiesti. Le telecamere di videosorveglianza più recenti, ad esempio, utilizzano algoritmi di machine learning basati sulle reti neurali per aggiungere funzionalità avanzate quali l’analisi video (visone stereoscopica, riconoscimento facciale, analisi del comportamento e riconoscimento dei soggetti, monitoraggio della densità di una folla e altro ancora), estendendo le possibili applicazioni rispetto al comune monitoraggio e registrazione video.
Conclusioni
L’introduzione dei sistemi di visione artificiale nell’infrastruttura IoT permette la creazione di una rete con funzionalità potenti e avanzate. La capacità delle telecamere di identificare autonomamente degli oggetti consente ai nodi di acquisire una maggiore intelligenza e avere più autonomia, riducendo il carico computazionale sui server centrali e garantendo un’architettura di controllo maggiormente distribuita.
A cura di Mark Patrick, Mouser Electronics Distributore autorizzato - www.mouser.it
La visione artificiale andrà di pari passo con l’AI, un drone riuscirà ad individuare l’individuo da salvare e imparare dalle situazioni.
Proprio in queste ore al Word Economic Forum sono stati presentati degli studi che evidenziano l’incremento sui profitti delle aziende e sulla crescita del lavoro che si avranno nei prossimi anni con l’intelligenza artificiale. Allo stesso tempo, si è evidenziato come manca ancora una formazione adeguata all’interno delle aziende, mancano le competenze e manca un approccio diverso che si basa sulla valorizzazione delle capacità delle persone che dovranno essere sempre più in grado di svolgere compiti non ruoli. Quello che preoccupa, in sostanza, è più la capacità del lavoratore e delle risorse umane ad adattarsi e a modificare totalmente il modo di lavorare che l’automatizzazione del lavoro in sé.