Cos'è la visione artificiale? AI per immagini e video

La visione artificiale 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. La ricerca biologica risale agli anni Cinquanta.

I progressi nella visione artificiale negli ultimi 20 anni sono stati assolutamente notevoli. Sebbene non siano ancora perfetti, alcuni sistemi di visione artificiale raggiungono una precisione del 99% e altri funzionano in modo decente 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 32x32 pixel. Per analizzare immagini ad alta risoluzione, 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 l'apprendimento profondo con algoritmi di apprendimento automatico classici che eseguono sotto-attività specifiche.

Altri problemi di visione oltre alla classificazione di base delle immagini sono stati risolti con l'apprendimento profondo, inclusa 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.

Come funziona la visione artificiale?

Gli algoritmi di visione artificiale di solito si basano su reti neurali convoluzionali o CNN. Le CNN utilizzano tipicamente livelli convoluzionali, pooling, ReLU, completamente connessi e di perdita per simulare una corteccia visiva.

Lo strato convoluzionale prende fondamentalmente gli integrali di molte piccole regioni sovrapposte. Lo strato di pooling esegue una forma di down-sampling non lineare. I layer ReLU applicano la funzione di attivazione non saturante f (x) = max (0, x) .

In uno strato completamente connesso, i neuroni hanno connessioni a tutte le attivazioni nello strato precedente. Un livello di perdita calcola il modo in cui l'addestramento della rete penalizza la deviazione tra le etichette previste e quelle reali, utilizzando un Softmax o una perdita di entropia incrociata per la classificazione.

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 reali estratti 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 con riquadri di delimitazione ed etichette, che illustrano circa 100.000 frasi da WordNet. Open Images contiene circa nove milioni di URL di immagini, con circa 5K 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. Avrai comunque bisogno di 1.000 immagini per etichetta per ottenere i migliori risultati, anche se a volte puoi farla franca con un minimo di 10 immagini per etichetta.

Applicazioni di visione artificiale

Sebbene la visione artificiale non sia perfetta, spesso è abbastanza buona per essere pratica. Un buon esempio è la visione nelle automobili a guida autonoma.

Waymo, ex 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; il software non è stato ritenuto responsabile, 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 guidatore siano sul volante.

I negozi Amazon Go sono negozi al dettaglio self-service senza cassa in cui il sistema di visione artificiale in negozio rileva quando gli acquirenti ritirano o restituiscono articoli in magazzino; gli acquirenti vengono identificati e addebitati tramite un'app per Android o iPhone. Quando il software Amazon Go perde un articolo, l'acquirente può tenerlo gratuitamente; quando il software registra erroneamente un articolo preso, l'acquirente può contrassegnare l'articolo e ottenere un rimborso per tale addebito.

Nel settore sanitario, esistono applicazioni di visione per classificare determinate caratteristiche in vetrini patologici, radiografie del torace e altri sistemi di imaging medico. Alcuni di questi hanno dimostrato valore rispetto ai professionisti umani qualificati, alcuni abbastanza per l'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 utili applicazioni di visione per l'agricoltura (robot agricoli, monitoraggio di colture e suolo e analisi predittiva), banche (rilevamento di frodi, autenticazione di documenti e depositi remoti) e monitoraggio industriale (pozzi remoti, sicurezza del sito e attività lavorativa).

Ci sono anche applicazioni di visione artificiale che sono controverse o addirittura deprecate. Uno è il riconoscimento facciale, che se usato dal governo può essere un'invasione della privacy e che spesso ha un pregiudizio di formazione che tende a identificare erroneamente i volti non bianchi. Un'altra è la generazione di deepfake, che è più che un po 'inquietante quando viene utilizzata per la pornografia o la creazione di bufale e altre immagini fraudolente.

Framework e modelli di visione artificiale

La maggior parte dei framework di deep learning ha un supporto sostanziale per la visione artificiale, inclusi i framework basati su Python TensorFlow (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 visione artificiale che si appoggia ad applicazioni di visione in tempo reale e sfrutta le istruzioni MMX e SSE quando sono disponibili; supporta anche l'accelerazione tramite 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 nel tuo catalogo di immagini. Google AutoML Vision ti consente di addestrare modelli di immagini personalizzati. Sia Amazon Rekognition Custom Labels che Google AutoML Vision eseguono il transfer learning.

L'API Microsoft Computer Vision può identificare gli oggetti da un catalogo di 10.000, con etichette in 25 lingue. Restituisce inoltre i riquadri di delimitazione per gli oggetti identificati. L'API Azure Face esegue il rilevamento dei volti che percepisce i volti e gli attributi in un'immagine, l'identificazione della persona che corrisponde a un individuo nel tuo archivio privato di 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 può classificare le immagini da un modello pre-addestrato, consentirti di addestrare modelli di immagini personalizzati con l'apprendimento del trasferimento, eseguire il rilevamento degli oggetti con il conteggio degli oggetti e addestrare per l'ispezione visiva. Watson Visual Recognition può essere eseguito nel cloud o su dispositivi iOS utilizzando Core ML.

Il pacchetto di analisi dei dati Matlab può eseguire il riconoscimento delle immagini utilizzando l'apprendimento automatico e l'apprendimento profondo. Ha un Toolbox di visione artificiale 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.

[Anche su: Kaggle: Dove i data scientist imparano e competono]

Il framework Apple Vision esegue il rilevamento di volti e volti, rilevamento di testo, riconoscimento di codici a barre, registrazione di immagini e monitoraggio delle funzioni generali. Vision consente inoltre l'uso 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 funziona su dispositivi Android e iOS. ML Kit supporta inoltre API in linguaggio naturale.

Come abbiamo visto, i sistemi di visione artificiale sono diventati abbastanza buoni 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: la computer vision non è più l'ambito esclusivo dei ricercatori di livello Ph.D.

Ulteriori informazioni su machine learning e deep learning:

  • Apprendimento profondo e apprendimento automatico: comprendi le differenze
  • Cos'è l'apprendimento automatico? Intelligenza derivata dai dati
  • Cos'è l'apprendimento profondo? Algoritmi che imitano il cervello umano
  • Spiegazione degli algoritmi di apprendimento automatico
  • Cos'è l'elaborazione del linguaggio naturale? AI per parlato e testo
  • Apprendimento automatico automatizzato o AutoML spiegato
  • Apprendimento supervisionato spiegato
  • Apprendimento semi-supervisionato spiegato
  • Spiegazione dell'apprendimento senza supervisione
  • Apprendimento per rinforzo spiegato
  • Kaggle: Dove i data scientist imparano e competono
  • Cos'è CUDA? Elaborazione parallela per GPU

Leggi le recensioni di machine learning e deep learning:

  • Come scegliere una piattaforma di machine learning in cloud
  • Deeplearning4j: apprendimento profondo ed ETL per la JVM
  • Recensione: Amazon SageMaker riproduce il recupero
  • Recensione di TensorFlow 2: apprendimento automatico più semplice
  • Recensione: Google Cloud AutoML è un vero e proprio machine learning automatizzato
  • Recensione: il deep learning MXNet brilla con Gluon
  • Recensione di PyTorch: un framework di apprendimento profondo creato per la velocità
  • Recensione: Keras naviga attraverso il deep learning