Che cos’è il riconoscimento di pattern?
Il pattern recognition è il processo di classificazione dei dati di input in oggetti, classi o categorie mediante l’utilizzo di algoritmi informatici sulla base di caratteristiche chiave o regolarità. Il pattern recognition trova applicazione, ad esempio, nella visione artificiale, la segmentazione di immagini, il rilevamento di oggetti, l’elaborazione radar, il riconoscimento vocale e la classificazione testuale.
Il pattern recognition prevede due metodi di classificazione: classificazione con supervisione e senza supervisione. Per applicare il pattern recognition con supervisione, è necessario disporre di un vasto set di dati etichettati; in caso contrario, è possibile provare ad adottare un approccio senza supervisione.
Pattern recognition con il Machine Learning e il Deep Learning
Con MATLAB® è possibile utilizzare tecniche di Machine Learning o Deep Learning in applicazioni di pattern recognition.
Un approccio basato sul Machine Learning consiste nel preparare i dati, estrarre manualmente le feature, al fine di differenziare le classi presenti nei dati, e addestrare un modello di Machine Learning per classificare nuovi oggetti. Le tecniche o modelli di Machine Learning più diffusi per il rilevamento di oggetti includono le ACF (Aggregate Channel Feature), la classificazione SVM mediante le funzionalità degli istogrammi dei gradienti orientati (HOG) e Viola-Jones. Questi metodi sono tutti disponibili in MATLAB®.
Un approccio basato sul Deep Learning consiste nel preparare i dati, addestrare la rete neurale profonda e testare il modello addestrato su nuovi dati. I modelli di Deep Learning più diffusi utilizzati per il pattern recognition sono R-CNN e YOLO v2, anche questi disponibili in MATLAB. Negli ultimi anni, gli approcci basati sul Deep Learning hanno acquisito maggiore popolarità rispetto a quelli basati sul Machine Learning.
Le principali differenze tra gli approcci basati sul Machine Learning e il Deep Learning consistono nel fatto che i modelli di Deep Learning richiedono un set di dati più grande e più tempo per l’addestramento, mentre i modelli di Machine Learning possono essere addestrati con un set di dati più piccolo, possono essere più facili da interpretare e da sottoporre a debug se non funzionano come previsto, ma producono una precisione inferiore rispetto a un modello di Deep Learning addestrato su un vasto set di dati etichettati.
Un’applicazione diffusa del pattern recognition nel settore ingegneristico è il rilevamento di difetti in fase di fabbricazione per migliorare la qualità dei prodotti e ridurre i costi di produzione nelle applicazioni industriali. La figura qui sotto mostra come le aziende utilizzano tecniche basate sulla visione con MATLAB per rilevare in maniera efficace i difetti in tre fasi: acquisizione delle immagini, elaborazione delle immagini per migliorare la qualità e modellazione dell’IA per classificare l’oggetto come buono o difettoso.
Applicazione di ispezione ottica che impiega il pattern recognition per verificare la presenza di difetti in componenti prodotti.
Classificazione con supervisione
I metodi di classificazione con supervisione per il pattern recognition applicano algoritmi di apprendimento con supervisione ai dati di input, abbinando manualmente i dati di addestramento etichettati agli output desiderati.
Nella visione artificiale, le tecniche di pattern recognition con supervisione sono utilizzate per il riconoscimento ottico dei caratteri (OCR), il rilevamento e la classificazione di oggetti.
Rilevamento di un segnale di stop (sinistra) ed etichettatura automatica di componenti in un impianto di trattamento gas (destra).
Classificazione senza supervisione
I metodi di classificazione senza supervisione consistono nell’individuare strutture nascoste in dati non etichettati mediante tecniche di segmentazione o clustering. I metodi di classificazione senza supervisione più diffusi includono:
- Clustering K-means
- Modelli di misture gaussiane
- Modelli di Markov di tipo hidden
Le tecniche di pattern recognition senza supervisione sono utilizzate anche per il rilevamento di oggetti e la segmentazione di immagini, in particolare per attività in cui è difficile ottenere dati etichettati sufficienti per applicare il rilevamento e la classificazione di oggetti con supervisione.
Rilevamento di oggetti in movimento mediante classificazione dei pixel dell’immagine in primo piano (pixel bianchi) e sullo sfondo (pixel neri) utilizzando i modelli di misture gaussiane. Vedi l’esempio per maggiori dettagli.
Segmentazione di immagini basata sui colori mediante clustering k-means.
Esempi e consigli pratici
Riferimenti software
Vedere anche: MATLAB per il Deep Learning, rilevamento oggetti, riconoscimento oggetti, riconoscimento immagini, segmentazione di immagini, ispezione visiva, Scopri di più sull’estrazione delle feature, Machine Learning, video sul pattern recognition, elaborazione di nuvole di punti, Deep Learning, Visione artificiale
Apprendi le nozioni base relative ai metodi pratici di Machine Learning per i problemi di classificazione.