Computer vision: a tu per tu con l’IA per immagini e video

La computer vision identifica e spesso individua gli oggetti nelle immagini e nei video digitali. Poiché gli organismi viventi elaborano le immagini con la loro corteccia visiva, molti ricercatori hanno preso l’architettura della corteccia visiva dei mammiferi come un modello per le reti neurali progettate per eseguire il riconoscimento delle immagini. Questo tipo di ricerca biologica risale agli anni ’50.
I progressi nella visione artificiale negli ultimi 20 anni sono stati notevoli. Sebbene non siano ancora perfetti, alcuni sistemi di visione artificiale raggiungono una precisione del 99% e altri funzionano in modo decente persino su dispositivi mobili. La svolta nel campo della visione della rete neurale è stata LeNet-5 di Yann LeCun del 1998, una rete neurale convoluzionale a sette livelli per il riconoscimento di cifre scritte a mano digitalizzate in immagini 32×32 pixel. Per analizzare immagini a risoluzione più elevata, la rete LeNet-5 dovrebbe essere espansa a più neuroni e più livelli.
I migliori modelli di classificazione delle immagini odierni possono identificare diversi cataloghi di oggetti con risoluzione HD a colori. Oltre alle reti neurali profonde (DNN) pure, le persone a volte utilizzano modelli di visione ibrida, che combinano il deep learning con algoritmi di machine learning classici che eseguono sotto-attività specifiche.
Altri problemi di visione oltre alla classificazione di base delle immagini sono stati risolti con il deep learning, compresa la classificazione delle immagini con localizzazione, rilevamento di oggetti, segmentazione di oggetti, trasferimento dello stile di immagine, colorazione dell’immagine, ricostruzione dell’immagine, super risoluzione dell’immagine e sintesi dell’immagine.
Set di dati di formazione sulla visione artificiale
Esistono molti set di dati di immagini pubbliche utili per l’addestramento dei modelli di visione. Il più semplice e uno dei più vecchi è MNIST, che contiene 70.000 cifre scritte a mano in 10 classi, 60.000 per l’addestramento e 10.000 per i test. MNIST è un set di dati facile da modellare, anche utilizzando un laptop senza hardware di accelerazione. CIFAR-10 e Fashion-MNIST sono set di dati di 10 classi simili. SVHN (street view house numbers) è un insieme di 600.000 immagini di numeri civici del mondo reale estratte da Google Street View.
COCO è un set di dati su scala più ampia per il rilevamento, la segmentazione e la didascalia di oggetti, con 330.000 immagini in 80 categorie di oggetti. ImageNet contiene circa 1,5 milioni di immagini che illustrano circa 100.000 frasi da WordNet, mentre Open Images contiene invece circa nove milioni di URL di immagini con circa 5000 etichette.
Google, Azure e AWS hanno tutti i propri modelli di visione addestrati su database di immagini molto grandi. È possibile utilizzarli così come sono o eseguire l’apprendimento del trasferimento per adattare questi modelli ai propri set di dati di immagine. È inoltre possibile eseguire l’apprendimento del trasferimento utilizzando modelli basati su ImageNet e Open Images. I vantaggi del trasferimento dell’apprendimento rispetto alla creazione di un modello da zero sono che è molto più veloce (ore anziché settimane) e che fornisce un modello più accurato. Avrete comunque bisogno di 1.000 immagini per etichetta per ottenere i migliori risultati, anche se a volte ce la si può cavare con un minimo di 10 immagini per etichetta.
Applicazioni di computer vision
Sebbene la computer vision non sia perfetta, spesso è abbastanza valida per avere diversi ruoli pratici. Un buon esempio è la visione nelle automobili a guida autonoma. Waymo, precedentemente il progetto di auto a guida autonoma di Google, rivendica test su sette milioni di miglia di strade pubbliche e la capacità di navigare in sicurezza nel traffico quotidiano. C’è stato almeno un incidente che ha coinvolto un furgone Waymo, ma il software non è stato ritenuto colpevole secondo la polizia.
Tesla ha tre modelli di auto a guida autonoma. Nel 2018 un SUV Tesla in modalità a guida autonoma è stato coinvolto in un incidente mortale. Il rapporto sull’incidente diceva che l’autista (che è stato ucciso) aveva le mani staccate dal volante nonostante i molteplici avvertimenti dalla console e che né il conducente né il software hanno cercato di frenare per evitare di colpire la barriera di cemento. Da allora il software è stato aggiornato per richiedere, piuttosto che suggerire, che le mani del conducente siano sul volante.
I negozi Amazon Go sono negozi al dettaglio self-service senza casse in cui il sistema di computer rileva quando gli acquirenti prelevano gli articoli sugli scaffali; gli acquirenti vengono identificati e pagano il dovuto tramite un’app per Android o iOS. Quando il software Amazon Go non registra un articolo, l’acquirente può tenerlo gratuitamente; quando invece il software registra erroneamente un articolo preso, l’acquirente può contrassegnare l’articolo e ottenere un rimborso per tale addebito.
In ambito sanitario, esistono applicazioni di visione per la classificazione di determinate caratteristiche in vetrini patologici, radiografie del torace e altri sistemi di imaging medico. Alcuni di questi hanno dimostrato ottimi risultati rispetto ai professionisti umani qualificati tanto da ricevere una vera e propria approvazione normativa. C’è anche un sistema in tempo reale per stimare la perdita di sangue del paziente in una sala operatoria o in sala parto.
Esistono poi utili applicazioni di computer vision anche per l’agricoltura (robot agricoli, monitoraggio delle colture e del suolo e analisi predittiva), bancario (rilevamento delle frodi, autenticazione dei documenti e depositi remoti) e monitoraggio industriale (pozzi remoti, sicurezza del sito e attività lavorativa).
Ci sono anche applicazioni di computer vision che sono controverse o addirittura deprecate. Una è il riconoscimento facciale, che se usato dal governo può essere una violazione della privacy e che spesso ha un pregiudizio nel training che tende a identificare erroneamente i volti non bianchi. Un’altra è la generazione di deepfake, che diventa a dir poco inquietante quando viene utilizzata per la pornografia o la creazione di immagini fraudolente.
Framework e modelli di computer vision
La maggior parte dei framework di deep learning ha un supporto sostanziale per la computer vision, inclusi i framework TensorFlow basati su Python (la scelta principale per la produzione), PyTorch (la scelta principale per la ricerca accademica) e MXNet (il framework di scelta di Amazon). OpenCV è una libreria specializzata per la computer vision che si appoggia ad applicazioni di visione in tempo reale e sfrutta le istruzioni MMX e SSE quando sono disponibili; ha anche il supporto per l’accelerazione usando CUDA, OpenCL, OpenGL e Vulkan.
Amazon Rekognition è un servizio di analisi di immagini e video in grado di identificare oggetti, persone, testo, scene e attività, inclusa l’analisi facciale e le etichette personalizzate. L’API di Google Cloud Vision è un servizio di analisi delle immagini pre-addestrato in grado di rilevare oggetti e volti, leggere testo stampato e scritto a mano e creare metadati in un catalogo di immagini. Google AutoML Vision consente invece di addestrare modelli di immagini personalizzati. Sia Amazon Rekognition Custom Labels, sia Google AutoML Vision eseguono il transfer learning.
L’API Microsoft Computer Vision può identificare oggetti da un catalogo di 10.000 item, mentre l’API Face Azure esegue il rilevamento dei volti, l’identificazione della persona che corrisponde a un individuo nel vostro repository privato contenente fino a un milione di persone e il riconoscimento delle emozioni percepite. L’API Face può essere eseguita nel cloud o nell’edge in container.
IBM Watson Visual Recognition, eseguibile nel cloud o su dispositivi iOS utilizzando Core ML, può classificare le immagini da un modello pre-addestrato, consentire di addestrare modelli di immagini personalizzati con il transfer learning, eseguire il rilevamento degli oggetti e addestrare per l’ispezione visiva. Il pacchetto di analisi dei dati Matlab può eseguire il riconoscimento delle immagini utilizzando il machine learning e il deep learning. Ha un Computer Vision Toolbox opzionale e può integrarsi con OpenCV.
I modelli di visione artificiale hanno fatto molta strada da LeNet-5 e sono per lo più CNN. Gli esempi includono AlexNet (2012), VGG16/OxfordNet (2014), GoogLeNet/InceptionV1 (2014), Resnet50 (2015), InceptionV3 (2016) e MobileNet (2017-2018). La famiglia di reti neurali di visione MobileNet è stata progettata pensando ai dispositivi mobili.
Il framework Apple Vision esegue il rilevamento di volti, rilevamento di testo, riconoscimento di codici a barre, registrazione di immagini e tracciamento delle funzioni generali. Apple Vision consente inoltre l’utilizzo di modelli Core ML personalizzati per attività come la classificazione o il rilevamento di oggetti. Funziona su iOS e macOS. L’SDK di Google ML Kit ha funzionalità simili e si esegue su dispositivi Android e iOS.
Come abbiamo visto, i sistemi di computer vision sono diventati abbastanza validi da essere utili e in alcuni casi più accurati della visione umana. Utilizzando il transfer learning, la personalizzazione dei modelli di visione è diventata pratica per i comuni mortali e non più solo un ambito esclusivo per scienziati o professori universitari.