Automatizzare la defect recognition

Il controllo di qualità nelle linee di produzione è ancora oggi un processo manuale. E’ possibile automatizzare questo processo sfruttando immagini e video?

1

Conoscere ciò che è sbagliato per riconoscere ciò che è giusto?

Il controllo di qualità nelle line di produzione è ancora oggi un processo manuale, che richiede un largo impiego di risorse, sia economiche che non, e può essere soggetto ad errori. E’ possibile automatizzare questo processo sfruttando immagini e video? Certamente, ma realizzare un modello di apprendimento automatico di solito richiede un numero elevato di immagini necessarie ad addestrare il modello. Questo potrebbe non essere un problema se si è, ad esempio, una fabbrica che produce milioni di articoli al giorno e si ha la possibilità di montare una macchina fotografica e catturare un gran numero di immagini del prodotto. La parte difficile è che tali algoritmi richiedono solitamente le immagini sia di prodotti difettosi sia di quelli non difettosi. I prodotti corretti sono simili tra loro, ma la maggior parte dei prodotti difettosi sono unici e non sono prevedibili nella loro varietà rendendo così estremamente difficile disporre di un set di immagini che li rappresenti completamente. Il sistema realizzato consente il rilevamento di anomalie anche senza la necessità di utilizzare immagini di prodotti difettosi durante l'allenamento. In questo modo è possibile impostare un sistema di garanzia della qualità che impara come devono apparire i prodotti e come rilevare le deviazioni dalla norma. In altre parole, dobbiamo sapere cosa è giusto e non conoscere ogni forma sbagliata.

2

La soluzione che hai sempre sognato

La soluzione realizzata si compone di due parti. La prima riguarda l’addestramento del modello di apprendimento automatico utilizzando solo esempi corretti del prodotto. Per raggiungere questo obiettivo, è stato utilizzato un algoritmo di deep learning chiamato autoencoder. La seconda parte tratta di come acquisire le immagini da una linea di produzione ad alta velocità e prepararle per l'algoritmo di apprendimento automatico. Per spiegare il funzionamento della soluzione, una cui variante è stata realizzata e testata con successo in ambito industriale, ipotizziamo di dover identificare i difetti lungo la linea di produzione di caramelle molto piccole, ad esempio mentine.

3

La magia dell’autoencoder

Il cuore della soluzione è un modello di rete neurale chiamato autoencoder, addestrato su un gran numero di immagini. La caratteristica peculiare del metodo è quella per cui durante la fase di allenamento della rete neurale si utilizzano solamente le immagini di prodotti non difettosi, e non vi è alcuna classe di errore. Con questo approccio il modello finale può quindi rilevare qualsiasi tipo di deviazione dal normale aspetto del prodotto: sia i difetti che si sono già verificati sia i nuovi difetti. Un autoencoder, rappresentato schematicamente nella figura, è un speciale artificial neural network in grado di codificare nel contesto dell’unsupervised learning: fornito un dato all’ autoencoder senza specificarne il significato, l'autoencoder impara da solo quali caratteristiche sono tipiche di quel dato e quali no. Un autoencoder è composto da un encoder e un decoder. L'encoder riceve i dati di input e li trasforma in una rappresentazione interna. Il decoder accetta questa rappresentazione interna e ne costruisce l'output. Il layer contenente la rappresentazione interna è generalmente più piccolo del layer di input e output e viene chiamato bottleneck layer.

Gli autoencoder sono addestrati per produrre dati di output il più possibile simili ai dati di input. Si può pensare ad un'operazione di copia e incolla, con un piccolo segreto intermedio. Il segreto degli autoencoder è nei layer che contengono la rappresentazione interna. Questi layer formano un collo di bottiglia per le informazioni contenute nei dati di addestramento. Poiché i bottleneck layer sono generalmente molto più piccoli dei livelli di input, il codice di autoencoder è obbligato ad acquisire solo le proprietà essenziali dei dati. Questa proprietà può essere utilizzata per rilevare le anomalie: non appena si verifica un'anomalia questa non può essere ricostruita in modo efficace dall'encoder automatico poiché durante il processo di allenamento, nella rete neurale, non si è sviluppata nessuna struttura che potrebbe rappresentare l’anomalia stessa. Se si confronta quindi l’output dell’autoencoder con il suo input e si rileva una grande la differenza si può assumere di essere in presenza di un'anomalia. L'autoencoder "riparte" automaticamente i difetti dell'immagine, in modo che le diverse posizioni indicano la tipologia di difetto. Queste deviazioni potrebbero fornire informazioni più dettagliate sul tipo di difetto (ad esempio "rottura" vs. "ammaccatura").

4

Come passare dall’algoritmo al reale rilevamento dei difetti?

La seconda parte della soluzione riguarda la modalità con cui includere l'algoritmo di autoencoder nella linea di produzione delle mentine. La soluzione identificata è quella di registrare le immagini delle caramelle durante il processo di produzione. Dal momento che le immagini rilevate possono contenere simultaneamente più di una caramella, risulta importante ritagliarle così da avere visione del singolo prodotto. La disponibilità delle immagini sul singolo prodotto permette così l’auto-addestramento dell’autoencoder.

5

Futuri sviluppi

Come mostrato nel nostro esempio il sistema sviluppato consente di rilevare in modo affidabile i difetti lungo la linea di produzione di mentine, determinando anche la posizione e la tipologia dell’anomalia. La soluzione può essere facilmente trasferita ad altri tipi di problemi e consentire un rilevamento automatico e affidabile delle anomalie. Il grande vantaggio del metodo è infatti quello per cui non sono richiesti esempi di oggetti difettosi per l'allenamento e che le deviazioni dalla norma possono essere sempre rilevate. Oltre all’applicazione nel controllo di qualità tramite ispezione visiva, la soluzione può essere utilizzata per effettuare manutenzione predittiva. I dati del sensore potrebbero essere utilizzati per rilevare, per primi, gli scostamenti nel processo di produzione. Alcuni difetti superficiali, tuttavia, potrebbero risultare particolarmente difficoltosi da rilevare. Per ovviare a questo si potrebbero sperimentare diversi tipi di illuminazione e telecamere per catturare immagini in specifiche gamme di lunghezze d'onda.