La computer vision è un campo dell'intelligenza artificiale (AI) che utilizza il machine learning e le reti neurali per insegnare ai computer e ai sistemi a ricavare informazioni significative da immagini digitali, video e altri input visivi e a formulare raccomandazioni o intraprendere azioni quando rilevano difetti o problemi.
Se l'AI consente ai computer di pensare, la computer vision consente loro di vedere, osservare e capire.
La computer vision funziona in modo molto simile alla visione umana, tranne per il fatto che gli esseri umani hanno un vantaggio. La vista umana ha il vantaggio di poter contare su innumerevoli informazioni di contesto per allenarsi a distinguere gli oggetti, la loro distanza, se si stanno muovendo o se c'è qualcosa di sbagliato in un'immagine.
La computer vision addestra le macchine a svolgere queste funzioni, ma deve farlo in tempi molto più brevi utilizzando telecamere, dati e algoritmi al posto di retine, nervi ottici e corteccia visiva. Poiché un sistema addestrato a ispezionare prodotti o osservare un asset di produzione è in grado di analizzare migliaia di prodotti o processi al minuto, notando difetti o problemi impercettibili, può superare rapidamente le capacità umane.
La computer vision è utilizzata in molti settori, dall'energia ai servizi di pubblica utilità, fino alla produzione e all'industria automobilistica, e il suo mercato continua a crescere. Secondo l'analista di settore Gartner, il mercato globale del software, dell'hardware e dei servizi di computer vision genererà 386 miliardi di dollari entro il 2031, rispetto ai 126 miliardi di dollari del 2022.1
La computer vision ha bisogno di molti dati. Esegue analisi dei dati più e più volte fino a quando non discerne le distinzioni e, infine, riconosce le immagini. Ad esempio, per addestrare un computer a riconoscere i pneumatici delle automobili, è necessario fornire grandi quantità di immagini di pneumatici e articoli relativi ai pneumatici per imparare le differenze e riconoscere uno pneumatico, in particolare uno senza difetti.
Per raggiungere questo obiettivo si utilizzano due tecnologie essenziali: un tipo di machine learning chiamato deep learning e una rete neurale convoluzionale (CNN).
Il machine learning utilizza modelli algoritmici per consentire a un computer di apprendere da solo il contesto dei dati visivi. Se nel modello vengono inseriti dati sufficienti, il computer "guarderà" i dati e imparerà a distinguere un’immagine da un'altra. Gli algoritmi consentono alla macchina di imparare da sola, piuttosto che con una persona che la programma per riconoscere un'immagine.
Una CNN aiuta un modello di machine learning o deep learning a "guardare" scomponendo le immagini in pixel a cui vengono assegnati tag o etichette. Utilizza le etichette per eseguire convoluzioni (un'operazione matematica su due funzioni per produrre una terza funzione) e fa previsioni su ciò che sta "vedendo". La rete neurale esegue convoluzioni e verifica l'accuratezza delle sue previsioni in una serie di iterazioni fino a quando le previsioni iniziano a diventare realtà. Si tratta quindi di riconoscere o vedere le immagini in modo simile agli esseri umani.
Proprio come un essere umano che distingue un'immagine a distanza, una CNN prima distingue i bordi netti e le forme semplici, quindi inserisce le informazioni mentre esegue le iterazioni delle sue previsioni. Per comprendere le singole immagini viene utilizzata una CNN. Un rete neurale ricorrente (RNN) è utilizzata in modo simile per le applicazioni video, al fine di aiutare i computer a capire come le immagini di una serie di fotogrammi siano correlate tra loro.
Da circa 60 anni, scienziati e ingegneri cercano di sviluppare metodi che consentano alle macchine di vedere e comprendere i dati visivi. La sperimentazione iniziò nel 1959, quando alcuni neurofisiologi mostrarono a un gatto una serie di immagini, nel tentativo di correlare una risposta nel suo cervello. Scoprirono che il gatto rispondeva prima a bordi o linee netti e, scientificamente, ciò significava che l'elaborazione delle immagini inizia con forme semplici come i bordi dritti.2
Più o meno nello stesso periodo, fu sviluppata la prima tecnologia di scansione delle immagini tramite computer, che consentì ai computer di digitalizzare e acquisire immagini. Un altro traguardo fu raggiunto nel 1963, quando i computer furono in grado di trasformare immagini bidimensionali in forme tridimensionali. Negli anni '60, l'AI si è affermata come campo di studio accademico, segnando anche l'inizio della ricerca sull'AI per risolvere il problema della vista umana.
Nel 1974 è stata introdotta la tecnologia di riconoscimento ottico dei caratteri (OCR), in grado di riconoscere il testo stampato in qualsiasi carattere o tipo di carattere.3 In modo simile, il riconoscimento intelligente dei caratteri (ICR) poteva decifrare il testo scritto a mano che utilizza reti neurali.4 Da allora, le tecnologie OCR e ICR si sono fatte strada nell'elaborazione di documenti e fatture, nel riconoscimento delle targhe dei veicoli, nei pagamenti con dispositivi mobili, nella conversione automatica e in altre applicazioni comuni.
Nel 1982, il neuroscienziato David Marr affermò che la visione funziona in modo gerarchico e introdusse algoritmi per le macchine per rilevare bordi, angoli, curve e forme di base simili. Contemporaneamente, l'informatico Kunihiko Fukushima sviluppò una rete di cellule in grado di riconoscere degli schemi. La rete, chiamata Neocognitron, includeva strati convoluzionali in una rete neurale.
Nel 2000, l'obiettivo dello studio era il riconoscimento degli oggetti. Nel 2001, sono apparse le prime applicazioni di riconoscimento facciale in tempo reale. La standardizzazione del modo in cui i set di dati visivi vengono etichettati e annotati è avvenuta nel corso degli anni 2000. Nel 2010 è stato introdotto il set di dati ImageNet. Conteneva milioni di immagini taggate in un migliaio di classi di oggetti e costituisce la base per le CNN e i modelli di deep learning utilizzati attualmente. Nel 2012, un team dell'Università di Toronto ha partecipato con una CNN a una gara di riconoscimento delle immagini. Il modello, denominato AlexNet, ha ridotto significativamente il tasso di errore nel riconoscimento delle immagini. Dopo questa svolta, i tassi di errore sono scesi a una piccola percentuale.5
C'è molta ricerca in corso nel campo della computer vision, ma non solo. Le applicazioni nel mondo reale dimostrano quanto sia importante la computer vision per il commercio, l'intrattenimento, i trasporti, l'assistenza sanitaria e la vita quotidiana. Un fattore chiave per la crescita di queste applicazioni è il flusso di informazioni visive provenienti da smartphone, sistemi di sicurezza, telecamere del traffico e altri dispositivi dotati di strumenti visivi. Questi dati potrebbero svolgere un ruolo importante nelle operazioni di molti settori, tuttavia rimangono ancora inutilizzati. Le informazioni costituiscono un banco di prova per addestrare le applicazioni di computer vision e un trampolino di lancio per farle entrare a far parte di una serie di attività umane:
Molte organizzazioni non hanno le risorse per finanziare laboratori di computer vision e creare modelli di deep learning e reti neurali. Potrebbero anche non avere la potenza di calcolo necessaria per elaborare enormi set di dati visivi. Aziende come IBM stanno dando il loro contributo offrendo servizi di sviluppo di software per la computer vision. Questi servizi forniscono modelli di apprendimento predefiniti disponibili sul cloud e riducono inoltre la richiesta di risorse informatiche. Gli utenti si collegano ai servizi attraverso un'application programming interface (API) e li utilizzano per sviluppare applicazioni di computer vision.
IBM ha inoltre introdotto una piattaforma di computer vision che affronta sia i problemi di sviluppo che quelli relativi alle risorse di elaborazione. IBM® Maximo Visual Inspection include strumenti che consentono agli esperti in materia di etichettare, addestrare e implementare modelli di visione di deep learning, senza competenze di programmazione o deep learning. I modelli di visione possono essere implementati nei data center locali, nel cloud e nei dispositivi edge.
Sebbene sia sempre più facile ottenere risorse per sviluppare applicazioni di computer vision, una domanda importante a cui rispondere subito è: cosa faranno esattamente queste applicazioni? Comprendere e definire attività specifiche di computer vision può concentrare e convalidare progetti e applicazioni e facilitare l'avvio.
Ecco alcuni esempi di attività consolidate di computer vision:
1. Emerging Tech: Revenue Opportunity Projection of Computer Vision: Growth Markets, Gartner, 19 aprile 2024.
2. https://hackernoon.com/a-brief-history-of-computer-vision-and-convolutional-neural-networks-8fe8aacc79f3
3. Optical character recognition, Wikipedia
4. Intelligent character recognition, Wikipedia
5. A Brief History of Computer Vision (and Convolutional Neural Networks), Rostyslav Demush, Hacker Noon, 27 febbraio 2019
6. 7 Amazing Examples of Computer And Machine Vision In Practice, Bernard Marr, Forbes, 8 aprile 2019
7. The 5 Computer Vision Techniques That Will Change How You See The World, James Le, Heartbeat, 12 aprile 2018