Cos'è la Computer Vision?

Utilizzare l'apprendimento automatico (o machine learning) e le reti neurali per insegnare ai computer a vedere i guasti e i problemi prima che influiscano sulle operazioni

3D rendering of a scientific technology data binary code network. computer binary code blue with depth of field

Cos'è la Computer Vision?

La visione artificiale è un campo dell'intelligenza artificiale (IA) che permette ai computer e ai sistemi di ricavare informazioni significative da immagini digitali, video e altri input visivi - e intraprendere azioni o formulare delle segnalazioni sulla base di tali informazioni. Se l'IA permette ai computer di pensare, la computer vision permette loro di vedere, osservare e capire.

La computer vision funziona più o meno come la vista umana, eccetto che gli umani hanno un vantaggio. La vista umana ha il vantaggio di disporre di anni e anni di esperienza in cui si è allenata a distinguere gli oggetti, quanto sono lontani, se si stanno muovendo e se c'è qualcosa di sbagliato in un'immagine.

La computer vision permette alle macchine di svolgere queste funzioni, ma deve farlo in molto meno tempo con telecamere, dati e algoritmi piuttosto che con retine, nervi ottici e una corteccia visiva. Dato che un sistema che è stato sviluppato per ispezionare i prodotti o guardare un asset di produzione può analizzare migliaia di prodotti o processi al minuto, notando difetti o problemi impercettibili, esso può superare rapidamente le capacità umane.

La computer vision è usata in settori che vanno dall'energia e dai servizi pubblici all'industria manifatturiera e automobilistica e il mercato continua a crescere. Si prevede di raggiungere 48,6 miliardi di dollari entro il 2022.1


Come funziona la computer vision?

La computer vision ha bisogno di molti dati. Esegue analisi di dati più e più volte fino a quando non distingue e riconosce le immagini. Per esempio, per addestrare un computer a riconoscere gli pneumatici di un'automobile, è necessario alimentarlo con una grande quantità di immagini di pneumatici e di elementi relativi agli pneumatici per imparare le differenze e riconoscere uno pneumatico, specialmente uno senza difetti.

Per realizzare ciò vengono utilizzate essenzialmente due tecnologie: un tipo di machine learning chiamato deep learning e una rete neurale convoluzionale (CNN - convolutional neural network).

Il machine learning utilizza modelli di algoritmi che permettono a un computer di imparare da sé il contesto dei dati visivi. Se vengono immessi abbastanza dati in questo modello, il computer "guarderà" i dati e imparerà da solo a distinguere un'immagine da un'altra. Gli algoritmi permettono alla macchina di imparare da sola, senza che qualcuno la programmi per riconoscere un'immagine.

Un CNN aiuta un modello di machine learning o di deep learning a "guardare" scomponendo le immagini in pixel a cui vengono dati dei tag o delle etichette. Usa le etichette per eseguire delle convoluzioni (un'operazione matematica su due funzioni per produrre una terza funzione) e fa delle previsioni sulla base di ciò che "vede". La rete neurale esegue delle convoluzioni e controlla l'accuratezza delle sue previsioni in una serie di iterazioni fino a quando le previsioni iniziano ad avverarsi. È quindi in grado di riconoscere o vedere le immagini in modo simile a quello degli esseri umani.

Alla stregua di un essere umano che distingue un'immagine a distanza, una CNN distingue prima i contorni nitidi e le forme semplici, poi aggiunge delle informazioni mentre esegue le iterazioni delle sue previsioni. Una CNN è utilizzata per analizzare immagini singole. Una rete neurale ricorrente (RNN - recurrent neural network) è usata in modo simile per le applicazioni video per aiutare i computer a capire come le immagini in una serie di fotogrammi sono collegate tra loro.


La storia della visione artificiale

Scienziati e ingegneri hanno cercato di sviluppare dei metodi che consentissero alle macchine di vedere e comprendere i dati visivi per circa 60 anni. La sperimentazione è iniziata nel 1959 quando dei neurofisiologi mostrarono a un gatto una serie di immagini, cercando di correlarla con una reazione nel suo cervello. Essi scoprirono che reagiva prima ai bordi netti o alle linee e, scientificamente, questo implicava che l'elaborazione delle immagini iniziava con forme semplici come i bordi dritti.(2)

Più o meno nello stesso periodo fu sviluppata la prima tecnologia di scansione delle immagini al computer, permettendo ai computer di digitalizzare e acquisire immagini. Un'altra pietra miliare fu raggiunta nel 1963 quando i computer furono in grado di trasformare immagini bidimensionali in forme tridimensionali. Negli anni '60 l'IA divenne oggetto di ricerca accademica e vi furono i primi tentativi di utilizzarla per risolvere il problema della visione umana.

Il 1974 vide l'introduzione della tecnologia di riconoscimento ottico dei caratteri (OCR - optical character recognition), che consentiva di riconoscere il testo stampato in qualsiasi font o formato.(3)Allo stesso modo, il riconoscimento intelligente dei caratteri (ICR - intelligent character recognition) potrebbe decifrare il testo scritto a mano utilizzando delle reti neurali.(4)Da allora, OCR e ICR hanno consentito di sviluppare applicazioni per l'elaborazione di documenti e fatture, il riconoscimento delle targhe dei veicoli, i pagamenti mobili, la traduzione automatica e altre applicazioni comuni.

Nel 1982 il neuroscienziato David Marr ha dimostrato che la vista funziona in modo gerarchico e ha introdotto degli algoritmi per le macchine in grado di rilevare bordi, angoli, curve e forme elementari simili. Contemporaneamente l'informatico Kunihiko Fukushima sviluppava una rete di celle in grado di riconoscere i modelli. La rete, chiamata Neocognitron, integrava degli strati convoluzionali in una rete neurale.

Nel 2000 l'attenzione degli studi si è concentrata sul riconoscimento degli oggetti, e nel 2001 sono apparse le prime applicazioni di riconoscimento facciale in tempo reale. La standardizzazione di come i set di dati visivi sono etichettati e annotati è emersa nel corso degli anni 2000. Nel 2010 è diventato disponibile il set di dati ImageNet. Esso conteneva milioni di immagini etichettate attraverso un migliaio di classi di oggetti e fornisce una base per le CNN e i modelli di apprendimento profondo utilizzati oggi. Nel 2012 un team dell'Università di Toronto inseriva una CNN in un programma di riconoscimento delle immagini. Il modello, chiamato AlexNet, riduceva significativamente il tasso di errore nel riconoscimento delle immagini. Dopo questa svolta, i tassi di errore sono scesi a pochi punti percentuali.(5)


Applicazioni della visione artificiale

C'è molta ricerca nel campo della visione artificiale, ma non è solo ricerca. Applicazioni concrete dimostrano quanto sia importante la computer vision nelle attività commerciali, nell'intrattenimento, nei trasporti, nella sanità e nella vita di tutti i giorni. Un elemento determinante per la crescita di queste applicazioni è rappresentato dalla enorme massa di informazioni visive che fluiscono da smartphone, sistemi di sicurezza, telecamere del traffico e altri dispositivi dotati di strumenti visivi. Questi dati potrebbero giocare un ruolo importante in tutti i settori, ma oggi rimangono inutilizzati. Le informazioni creano un banco di prova per addestrare le applicazioni di computer vision e un launchpad per farle diventare parte di una serie di attività umane:

  • IBM ha utilizzato la computer vision per creare My Moments per il torneo di golf Masters 2018. IBM Watson ha esaminato centinaia di ore di filmati di Masters e sarebbe in grado di identificare le immagini (e i suoni) di colpi significativi. Ha elaborato questi momenti chiave e li ha offerti ai fan sotto forma di filmati personalizzati dei momenti salienti.
  • Google Translate permette agli utenti di puntare la fotocamera di uno smartphone su una scritta in un'altra lingua e ottenere quasi immediatamente una traduzione della scritta nella loro lingua preferita.(6)
  • Lo sviluppo di veicoli a guida autonoma si basa sulla computer vision per interpretare gli input visivi delle telecamere e di altri sensori dell'auto. Questo è essenziale per identificare le altre auto, i segnali stradali, i segnali di corsia, i pedoni, le biciclette e tutte le altre informazioni visive che si incontrano sulla strada.
  • IBM sta applicando la tecnologia di computer vision con partner come Verizon per portare l'intelligenza artificiale intelligente al limite e per aiutare i produttori automobilistici a identificare i difetti di qualità prima che un veicolo lasci la fabbrica.

Esempi di computer vision

Molte organizzazioni non hanno le risorse per finanziare dei laboratori di computer vision e creare modelli di deep learning e reti neurali. Essi possono anche non disporre della potenza di calcolo necessaria per elaborare enormi insiemi di dati visivi. Aziende come IBM stanno aiutando queste organizzazioni offrendo dei servizi di sviluppo di software di visione artificiale. Questi servizi forniscono dei modelli di apprendimento precostituiti disponibili dal cloud - e inoltre diminuiscono la quantità di risorse di calcolo. Gli utenti si connettono ai servizi attraverso una API (application programming interface) e li usano per sviluppare applicazioni di computer vision.

IBM ha anche introdotto una piattaforma di computer vision che risolve sia i problemi di sviluppo che di risorse di calcolo. IBM Maximo Visual Inspection include degli strumenti che permettono agli esperti in materia di etichettare, addestrare e distribuire modelli di visione di deep learning - senza codifica o competenze di deep learning. I modelli di visione possono essere distribuiti nei data center locali, nel cloud e in dispositivi edge.

Mentre sta diventando sempre più facile ottenere risorse per sviluppare applicazioni di computer vision, una domanda importante a cui rispondere fin dall'inizio è: cosa faranno esattamente queste applicazioni? Comprendere e definire dei compiti specifici di computer vision può orientare e avvalorare progetti e applicazioni e rendere più facile il loro inizio.

Ecco alcuni esempi di attività di computer vision definite:

  • Classificazione delle immagini vede un'immagine e può classificarla (un cane, una mela, la faccia di una persona). Più specificamente è in grado di stabilire con precisione che una data immagine appartiene a una certa classe. Questa capacità potrebbe essere utilizzata da una società di social media per identificare e separare automaticamente delle immagini discutibili caricate dagli utenti.
  • Il rilevamento di oggetti può usare la classificazione delle immagini per identificare una certa classe di immagini e poi rilevare e tabulare la loro apparizione in un'immagine o in un video. Gli esempi di utilizzo concreto includono il rilevamento di danni in una catena di montaggio o l'identificazione di macchinari che richiedono manutenzione.
  • L'object tracking segue o monitora un oggetto una volta che è stato rilevato. Questa attività viene spesso eseguita con delle immagini catturate in sequenza o con dei feed video in tempo reale. I veicoli autonomi, ad esempio, hanno bisogno non solo di classificare e rilevare oggetti come pedoni, altre auto e infrastrutture stradali, ma anche di seguirne il percorso in movimento per evitare collisioni e rispettare il codice della strada.(7)
  • Il recupero delle immagini basato sul contenuto (Content-based image retrieval) usa la computer vision per ricercare e recuperare immagini da grandi archivi di dati, basandosi sul contenuto delle immagini piuttosto che sui tag dei metadati ad esse associati. Questa attività può includere un'annotazione automatica dell'immagine che sostituisce quella manuale. Questi compiti possono essere utilizzati per i sistemi di gestione delle risorse digitali e possono aumentare la precisione della ricerca e del ritrovamento.

Soluzioni IBM

IBM Maximo Visual Inspection

Libera velocemente tutto il potenziale di una visione computerizzata per l'automazione dell'ispezione, senza competenze di deep learning.

IBM Maximo Visual Inspection Mobile

Potenzia le tue attività di assicurazione di qualità grazie alla computer vision su dispositivi mobili iOS e rileva più velocemente eventuali difetti sulla tua linea di produzione.