Che cos’è l’Image Recognition?
3 cose da sapere
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.
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:
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.
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).
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.
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 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 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: 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 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.
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.
È 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 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.
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:
MATLAB® semplifica i passaggi dell’Image Recognition più laboriosi.
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.
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).
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.
Amplia le tue conoscenze consultando la documentazione, gli esempi, guardando video e molto altro ancora.
Scopri argomenti simili comunemente utilizzati con i prodotti MATLAB e Simulink.
30 giorni di prova gratuita
Inizia oraSeleziona un sito web
Seleziona un sito web per visualizzare contenuto tradotto dove disponibile e vedere eventi e offerte locali. In base alla tua area geografica, ti consigliamo di selezionare: United States.
Puoi anche selezionare un sito web dal seguente elenco:
Come ottenere le migliori prestazioni del sito
Per ottenere le migliori prestazioni del sito, seleziona il sito cinese (in cinese o in inglese). I siti MathWorks per gli altri paesi non sono ottimizzati per essere visitati dalla tua area geografica.
Americhe
Europa
L’Image Recognition in un’applicazione di ispezione visiva per individuare componenti difettosi.
Workflow del Machine Learning per l’Image Recognition.
Esempio di Machine Learning con Image Recognition per la classificazione di cifre usando le feature HOG e un classificatore SVM.
Etichettatura interattiva di immagini e video.
Integrazione con framework basati su Python.