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: rilevamento oggetti, riconoscimento oggetti, riconoscimento immagini, segmentazione di immagini, ispezione visiva, Scopri di più sull’estrazione delle feature, video sul pattern recognition, elaborazione di nuvole di punti, Deep Learning, Visione artificiale