Visione artificiale: dalla libreria OpenCv al machine learning

La possibilità, per computer e robot, di “vedere” e di utilizzare le informazioni ambientali per portare a termine compiti precisi sta diventando sempre più comune. Da qualche anno è disponibile gratuitamente una libreria di codici, chiamata OpenCv, che fornisce l’infrastruttura necessaria per realizzare sistemi dotati di visione artificiale e machine learning anche in ambito domestico. Ma quali sono i meccanismi alla base della computer vision? E come fa una macchina a imparare da ciò che vede?

LA LIBRERIA OPENCV

Tra i tanti ostacoli presenti sul percorso che porta alla creazione di un’intelligenza artificiale, ma anche solo alla realizzazione di un qualunque robot o sistema industriale, uno dei più rilevanti riguarda la possibilità di dotare le macchine di capacità sensoriali, e in particolar modo della capacità di “vedere” ciò che le circonda. Per quanto si siano compiuti molti passi in avanti nella realizzazione di sistemi in grado di ricavare informazioni dall’ambiente e di utilizzarle per esplorare e interagire col mondo circostante, accade spesso che questi progressi tecnologici rimangano isolati, non andando a costituire una base di conoscenze condivise. Ad esempio, può succedere che in un laboratorio di ricerca in Italia si realizzi un software in grado di analizzare specifici pattern di dati presenti in un’immagine digitale, mentre in un altro laboratorio in Olanda si lavori a un programma in grado di riconoscere automaticamente un volto umano in una fotografia. Il rischio è che i ricercatori del secondo laboratorio debbano partire da zero creando un software di riconoscimento di pattern di dati (Figura 1), come quello descritto in un articolo pubblicato su Elettronica Open Source, prima di poter progredire e adattare questo sistema al riconoscimento dei volti. Un meccanismo questo che genera uno spreco di tempo e di risorse che si risolve in un rallentamento del progresso in questo campo.
Per questo motivo alla fine degli anni novanta la Intel, avendo notato che all’interno di alcuni istituti universitari e laboratori di ricerca (come il MIT Media Lab) gli studenti condividevano già in parte i loro codici, ha deciso di raccogliere quanti più dati e strumenti possibile nell’ambito della visione artificiale (o computer vision) per realizzare un’infrastruttura open source che facilitasse il progresso in questo campo.

opencv screen

Figura 1: software in grado di estrarre pattern di dati a partire da immagini video

Il risultato è stata la messa a punto di OpenCv, una libreria di software multipiattaforma nell’ambito della computer vision in tempo reale. Questo strumento, nato con l’obiettivo di mettere a disposizione di chiunque un’infrastruttura efficiente per la visione artificiale, funziona su diversi sistemi operativi. È infatti scritta in C e C++, ma funziona anche su Linux, Windows e Mac OSX, così come su Python, Ruby, Mathlab e altri.
La libreria contiene più di 500 funzioni applicabili a molteplici ambiti della computer vision. Infatti, se alcune applicazioni della visione artificiale sono note, come la capacità di facebook di riconoscere automaticamente i volti dalle foto caricate col fine di suggerire il tag corretto, altre invece sono meno conosciute, anche se estremamente diffuse. Ad esempio, forse non tutti sanno che la visione artificiale è applicata per valutare la qualità di quasi qualsiasi tipo di prodotto industriale. O che questa viene utilizzata nel campo dell’imaging clinico (Figura 2), l’area della diagnostica medica già ampiamente trattata da EOS, che utilizza strumenti come la radiografia a raggi X, la risonanza magnetica, la tomografia computerizzata, gli ultrasuoni, e molti altri. Queste tecnologie, usate quotidianamente nella pratica medica per la loro capacità di ottenere informazioni sia qualitative che quantitative su anatomia e fisiologia dei pazienti, utilizzano OpenCv per risolvere alcune difficoltà riscontrate spesso dai radiologi, come l’assenza di luce, la rilevazione di fratture invisibili a occhio nudo e la scarsa risoluzione delle immagini. Un esempio in questo senso è rappresentato da uno software realizzato presso l’Università di Udayana in Indonesia, che consiste in un sistema in grado di rilevare automaticamente le fratture ossee dalle radiografie a raggi X. Questo programma, realizzato proprio grazie ai codici disponibili nella libreria OpenCv, è in grado di individuare discontinuità nell’immagine digitale attraverso un analisi dei bordi e delle zone di confine tra oggetti e sfondo. Così facendo, permette di rilevare automaticamente fratture di entità estremamente ridotta che, in molti casi, non vengono individuate dai radiologi.

OPENCV imaging

Figura 2: esempio di visione artificiale nell'ambito dell'imaging clinico

Altro ambito in cui la computer vision è ampiamente applicata è quello della sicurezza. Questa esigenza nasce dal fatto che i sistemi di sicurezza tradizionali hanno molto spesso dei punti deboli, come la presenza di zone cieche, irraggiungibili dalle telecamere di sicurezza. Proprio per questo motivo, un gruppo di ricerca dell’Università di Takming in Taiwan, ha realizzato un robot semovente di pattugliamento, dotato di un sistema di riconoscimento facciale automatizzato, capace di muoversi liberamente all’interno di un edificio. Questo dispositivo può infatti girovagare tra i diversi piani o stanze e contemporaneamente analizzare i volti di chi si trova davanti, distinguendo tra persone autorizzate e potenziali intrusi. Sempre nell’ambito della robotica, qualche hanno fa OpenCv è stata invece utilizzata per realizzare un sistema di detezione ed evitamento ostacoli per robot, come la "macchinina" descritta nel 2011 su EOS-Book, utilizzato in campi molto diversi tra loro, dai viaggi spaziali all’automazione agricola, dall’esplorazione archeologica allo sviluppo di sistemi militari. Ma OpenCv è stata utilizzata anche per migliorare le interfacce utenti, per la calibrazione di camere (come quelle usate da Google Street View), così come nel riconoscimento musicale, attraverso l’analisi visiva degli spettri sonori delle melodie. Infine, va segnalato che la libreria realizzata da Intel era un componente fondamentale della robot-car “Stanley”, l’automobile in grado di guidarsi da sola, realizzata dallo Stanford Racing Team (Università di Stanford), che nel 2005 ha vinto il Darpa Gran Challenge, portando a casa un premio di 2 milioni di dollari.
[...]

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

Abbonati alle riviste di elettronica

Scrivi un commento