Riconoscimento immagini

 

Che cos’è l’Image Recognition?

3 cose da sapere

L’Image Recognition è un processo che serve a identificare un oggetto o una feature in un’immagine o un video. È utilizzato in molte applicazioni come il rilevamento dei difetti, la diagnostica per immagini e la sorveglianza di sicurezza.

Perché è importante l’Image Recognition?

L’Image Recognition può velocizzare mansioni noiose ed elaborare le immagini più velocemente o con maggiore precisione rispetto all’ispezione manuale. L’Image Recognition è una tecnica fondamentale per molte applicazioni ed è il motore principale delle applicazioni di Deep Learning come:

  • Ispezione visiva: identificando le parti come difettose o non difettose in produzione, può ispezionare rapidamente migliaia di componenti su una linea di montaggio.
  • Classificazione di immagini: categorizzazione delle immagini in base al loro contenuto. È utile soprattutto in applicazioni quali l’Image Retrieval e i sistemi di raccomandazione nell’e-commerce.
  • Guida autonoma: la capacità di riconoscere un segnale di stop o un pedone in un’immagine è fondamentale nelle applicazioni di guida autonoma.
  • Robotica: l’Image Recognition può essere utilizzato dai robot per identificare oggetti e migliorare la navigazione autonoma riconoscendo luoghi e oggetto sul loro percorso.
L’Image Recognition in un’applicazione di ispezione visiva per individuare componenti difettosi.

L’Image Recognition in un’applicazione di ispezione visiva per individuare componenti difettosi.

L’Image Recognition è la tecnologia base che sta al centro di queste applicazioni. Individua oggetti o scene nelle immagini e utilizza queste informazioni per prendere decisioni nell’ambito di un sistema più grande. L’Image Recognition sta aiutando tali sistemi a diventare più consapevoli, dando sostanzialmente modo ai sistemi di prendere decisioni migliori grazie a una fornitura supplementare di dati.

Image Recognition e rilevamento oggetti a confronto

L’Image Recognition e il rilevamento oggetti sono tecniche simili, che spesso vengono utilizzate insieme. Con l’Image Recognition si individua l’oggetto o la scena presente in un’immagine; con il rilevamento oggetti invece si trovano le istanze e le posizioni di tali oggetti nelle immagini.

Le tecniche più note di rilevamento oggetti sono Faster R-CNN e YOLOv3.

Image Recognition (sinistra) e rilevamento oggetti (destra).

Image Recognition (sinistra) e rilevamento oggetti (destra).

Come funziona

Tecniche di Image Recognition

Esistono tanti metodi per effettuare l’Image Recognition, tra cui le tecniche di Machine Learning e di Deep Learning. La tecnica da usare dipende dall’applicazione ma, in generale, più il problema è complesso, più si propende a fare uso delle tecniche di Deep Learning.

Image Recognition mediante Deep Learning

Un approccio all’Image Recognition basato sul Deep Learning può prevedere l’uso di una rete neurale convoluzionale per apprendere automaticamente delle feature rilevanti dalle immagini campione e individuare automaticamente tali feature nelle nuove immagini.

Tipico workflow di Deep Learning per l’Image Recognition:

preparazione dati addestramento

Preparazione dei dati di addestramento: inizia con una raccolta di immagini e inseriscile nelle rispettive categorie associate. Questa fase potrebbe includere dei passaggi di pre-elaborazione per rendere le immagini più coerenti al fine di creare un modello più preciso.

creazione modello Deep Learning

Creazione di un modello di Deep Learning: anche se è possibile costruire un modello di Deep Learning partendo da zero, la cosa migliore è iniziare con un modello pre-addestrato da usare come base per la propria applicazione. (Scopri di più sui modelli pre-addestrati).

addestramento del modello

Addestramento del modello: la fase di addestramento del modello prevede la presentazione dei dati di test al modello. Il modello poi ripete più volte i dati e apprende automaticamente le feature più importanti pertinenti per le immagini. Man mano che l’addestramento prosegue, il modello apprenderà feature sempre più sofisticate, fino a quando non riuscirà a decifrare con precisione le varie classi di immagini nel set di addestramento.

test dati

Test dei dati: esegui dei test su dati nuovi che il modello non ha mai visto prima per capire in che modo il modello interpreta l’immagine. Se i risultati non corrispondono alle aspettative, ripeti i quattro passaggi fino a raggiungere un livello di precisione accettabile.

Le tecniche di Deep Learning possono sembrare complicate, ma degli esempi semplici sono un ottimo modo per iniziare e capire più approfonditamente questa tecnologia.

Suggerimento: le tecniche di Deep Learning sono molto utilizzate nell’Image Recognition in quanto consentono di ottenere risultati robusti e altamente precisi. Il Deep Learning tende a funzionare meglio con un numero elevato di dati di addestramento e tecniche quali il transfer learning riescono a semplificare il workflow dell’Image Recognition. Deep Learning Toolbox™ mette a disposizione un framework per progettare e implementare reti neurali profonde con algoritmi, modelli pre-addestrati e app.

Image Recognition mediante Machine Learning

Un approccio all’Image Recognition basato sul Machine Learning prevede l’identificazione e l’estrazione delle feature principali dalle immagini e il loro utilizzo quali input per un modello di Machine Learning.

  • Addestramento dei dati: inizia con una raccolta di immagini e inseriscile nelle rispettive categorie associate.
  • Estrazione delle feature: seleziona le feature rilevanti in ciascuna immagine. Un algoritmo di estrazione di feature potrebbe estrarre delle feature di bordo o angolo da utilizzare per diversificare le classi nei dati.
  • Creazione di un modello di Machine Learning: queste feature vengono aggiunte a un modello di Machine Learning, che le separerà in categorie distinte, per poi utilizzare tali informazioni in fase di analisi e classificazione di nuovi oggetti.
Workflow del Machine Learning

Workflow del Machine Learning per l’Image Recognition.

È possibile utilizzare svariati algoritmi di Machine Learning e metodi di estrazione delle feature, che offrono più combinazioni per creare un modello accurato per il riconoscimento degli oggetti.

Esempio di Machine Learning

Esempio di Machine Learning con Image Recognition per la classificazione di cifre usando le feature HOG e un classificatore SVM.

Suggerimento: l’uso del Machine Learning per il riconoscimento oggetti offre una maggiore flessibilità, in quanto consente di scegliere la combinazione migliore di feature e classificatori per l’apprendimento. È possibile ottenere risultati accurati con un numero minimo di dati. Statistics and Machine Learning Toolbox™ offre funzioni e applicazioni per descrivere, analizzare e modellare i dati.

Image Recognition: Deep Learning e Machine Learning a confronto

Come si fa a sapere quando usare il Deep Learning e quando il Machine Learning per l’Image Recognition? In linea generale, la differenza è che il Machine Learning prevede la scelta manuale delle feature mentre il Deep Learning l’apprendimento automatico.

Image Recognition con tecniche tradizionali di elaborazione delle immagini

Oltre al Deep Learning e al Machine Learning, molti metodi classici di elaborazione delle immagini sono estremamente efficaci per effettuare l’Image Recognition in alcune applicazioni. Le tecniche di elaborazione delle immagini tendono a essere particolarmente adatte alle applicazioni di riconoscimento “basate su pixel” come:

  • Image Recognition basato sui colori: spesso i colori rappresentano un ottimo modo per individuare feature per l’Image Recognition. Feature quali tonalità, saturazione e valore (HSV) o rosso, verde e blu (RGB) possono offrire informazioni su un’immagine.
  • Confronto di modelli: questa tecnica usa una piccola immagine, o un modello, per trovare regioni corrispondenti in un’immagine più grande.
  • Segmentazione di immagini e analisi Blob: in questo caso vengono utilizzate delle proprietà semplici degli oggetti, quali la dimensione, il colore o la forma.
Suggerimento: in genere, se un oggetto può essere riconosciuto adottando un approccio semplice come la segmentazione di immagini, è meglio iniziare proprio con questo tipo di approccio. Potresti avere una soluzione robusta che non richiede centinaia o migliaia di immagini di addestramento o una soluzione complicata. Image Processing Toolbox™ potrebbe disporre di tutti gli strumenti che ti servono.

Image Recognition con MATLAB

MATLAB® semplifica i passaggi dell’Image Recognition più laboriosi.

  1. App di etichettatura immagini: dati puliti e pre-elaborati aumentano le probabilità che l’Image Recognition porti a buoni risultati. Con l’app Image Labeler, è possibile automatizzare il processo di ritaglio e di etichettatura delle immagini.
Etichettatura interattiva di immagini e video.

Etichettatura interattiva di immagini e video.

  1. Esplorazione degli algoritmi di Deep Learning e di Machine Learning: all’inizio, potrebbe essere difficile scegliere tra le tecniche di Deep Learning o quelle di Machine Learning. MATLAB offre la possibilità di provare tutte le combinazioni di approcci. Analizza i modelli pre-addestrati per il Deep Learning oppure gli algoritmi di classificazione del Machine Learning.

Sfrutta l’interoperabilità con reti e architetture di rete da framework come TensorFlow™, Keras, PyTorch e Caffe2 usando le funzionalità di importazione e di esportazione di ONNX™ (Open Neural Network Exchange).

Integrazione con framework basati su Python.

  1. Generazione automatica di codice per la distribuzione: Infine, l’algoritmo potrebbe dover funzionare al di fuori dell’ambiente desktop. MATLAB mette a disposizione degli strumenti per la generazione di codice per distribuire ovunque l’algoritmo di Image Recognition: sul web, su hardware embedded o server di produzione.
Una volta creati gli algoritmi, è possibile utilizzare workflow automatizzati per generare codice CUDA® o TensorRT con GPU Coder™ per l’esecuzione di test Hardware-In-the-Loop. Il codice generato può essere integrato nei progetti esistenti e utilizzato per verificare gli algoritmi di rilevamento oggetti su GPU desktop o su GPU embedded come la piattaforma NVIDIA® Jetson o NVIDIA Drive.

Per saperne di più sull’Image Recognition

Consulta degli esempi di Deep Learning nella documentazione.
Guarda questo video contenente istruzioni dettagliate su come creare un classificatore preciso in modo interattivo
Questo esempio mostra come creare un sistema CBIR tramite un workflow BoF personalizzato.
Scopri come usare le funzioni di Computer Vision Toolbox™ per la classificazione delle categorie di immagini creando un modello BoVW.
Scopri che cos’è la visione artificiale, come funziona, perché è importante e come usare MATLAB per la visione artificiale.