Cos’è e a cosa serve un sistema ADR

Le domande a cui rispondiamo più spesso

Un sistema ADR è un insieme di computer, telecamere ed altri tipi di apparecchiature elettroniche equipaggiate con l’opportuno software che, installati su una linea di produzione industriale, permettono di ottenere il riconoscimento automatico in tempo reale dei difetti di produzione di quella linea.

È possibile realizzare sistemi ADR con software di tipo tradizionale, ma le migliori performance si ottengono con sistemi basati su algoritmi di Intelligenza Artificiale, Machine Learning Supervisionato, Reti Neurali Profonde e Transfer Learning.

Un sistema ADR permette di analizzare con poco sforzo tutta la produzione, quindi di intercettare la maggior parte dei difetti non solo prima che questi vengano messi sul mercato, ma anche prima che subiscano ulteriori lavorazioni.

In questo modo vengono minimizzati i costi dovuti ai malfunzionamenti che i difetti creano, alle rilavorazioni, alla gestione degli scarti e, per quanto riguarda i pezzi difettosi che escono dalla fabbrica, i costi di gestione dei resi, di gestione della garanzia e di deterioramento del brand.

 

Uno degli effetti di un sistema ADR è di rilevare un gran numero di dati. Questi dati, oltre che per rilevare eventuali difetti, forniscono una panoramica molto completa delle performance della linea di produzione e quindi ne consentono un monitoraggio in tempo reale che altrimenti necessiterebbe di essere realizzato a parte.

Inoltre, se adeguatamente analizzati, questi dati forniscono utilissime indicazioni per perseguire un miglioramento continuo della produzione.

Ovviamente, l’algoritmo è la cosa più importante: senza di quello non si può fare nulla. Ma ci sono molte altre cose che a prima vista possono sembrare solo dei dettagli, ma che invece possono essere la reale differenza tra il fallimento ed il successo del progetto. Tra l’altro, uno dei benefici di un sistema ADR è la possibilità di raccogliere dati interessantissimi … vogliamo rinunciarci?

Se consideriamo un sistema ADR basato su Machine Learning Supervisionato, un sistema ADR completo deve supportare le fasi tipiche del suo ciclo di vita, in particolare:

  • acquisizione dei dati e dei relativi metadati
  • trasmissione dei dati e dei metadati al sottosistema di memorizzazione
  • memorizzazione dei dati e dei metadati
  • classificazione manuale dei dati
  • addestramento dell’algoritmo (una Rete Neurale Profonda nel nostro caso)
  • deploy dell’algoritmo per il riconoscimento in tempo reale
  • interfacciamento con gli operatori, con la linea di produzione ed eventualmente col sistema informativo aziendale
  • monitoraggio globale del sistema

No, ma è altamente consigliato, perché in questo modo si ottiene un sistema:

Il Machine Learning è un insieme di tecniche che permettono ad una macchina, ma sarebbe meglio dire ad un software, id imparare a svolgere un compito che non è codificato direttamente nel programma, ma che appunto viene appreso tramite un apposito processo. Questa è esattamente la caratteristica che consente ad un sistema generico di specializzarsi su un problema specifico.

Il Machine Learning Supervisionato è un particolare tipo di Machine Learning in cui il processo di apprendimento consiste essenzialmente nell’analisi di un certo numero di esempi per i quali è stato già svolto in precedenza il compito richiesto da un supervisore, generalmente da un tecnico specializzato. Se prendiamo in esame un problema di classificazione come quello del riconoscimento dei difetti, questo significa che l’addestratore (cioè il data scientist) sottopone al sistema un insieme di immagini per le quali è stato già stabilito se mostrano elementi difettati o meno e lo conduce ad imparare a classificarle esso stesso.

Una Rete Neurale Profonda (Deep Neural Network – DNN) è innanzi tutto una Rete Neurale, cioè un un insieme di neuroni (un modello matematico molto semplice, ma potente, che è stato definito ispirandosi al funzionamento del cervello animale) interconnessi tra loro. Rispetto alle prime reti neurali, definite già molti anni fa, le reti neurali profonde hanno la caratteristica di avere molti strati di neuroni, concatenati tra loro. Quello che ne risulta un un modello matematico molto complesso, ma anche molto potente, che è stato possibile domare solo negli ultimi anni, grazie all’aumento dei dati e della potenza di calcolo disponibili ed al miglioramento degli algoritmi di apprendimento.

Il Transfer Learning è una tecnica di Machine Learning grazie alla quale è possibile riutilizzare dei modelli addestrati in un certo ambito come base per creare modelli di ambito diverso.

In particolare, parlando di addestramento supervisionato, è stato osservato che nell’addestramento di reti neurali profonde si verifica che che gli strati iniziali della rete tendono a riconoscere delle caratteristiche generali dell’input per poi specializzarsi sempre di più verso l’obiettivo mano a mano che gli strati si avvicinano a quello finale, che ovviamente è super specializzato. Questo consente, nel momento in cui si vuole addestrare una rete per un compito diverso di non ripartire da un modello impostato con valori casuali dei parametri, ma di riutilizzare i valori ottenuti nel precedente addestramento, velocizzando in questo modo non poco il nuovo addestramento. Addirittura, è possibile, almeno in un primo momento, non addestrare affatto la prima parte della rete.

Di fatto, i sistemi di machine Learning esistenti dispongono di librerie di modelli di rete già addestrati con milioni di immagini di ogni tipo, che possono convenientemente essere utilizzati anche per il riconoscimento automatico dei difetti.

L’uso di GAN nei sistemi ADR è una delle frontiere più promettenti, soprattutto per risolvere il problema della scarsità di campioni in generale ed in particolare di quelli positivi, cioè che mostrano un difetto. Purtroppo, però, trattandosi di un tema ancora di ricerca, non siste ancora una metodologia ben assestata e comunque non è una tecnologia facile da utilizzare in un ambiente produttivo, quindi ADR-Flow per il momento non la supporta.

C’è da notare, comunque, che il fatto che ADR-Flow non la supporti non vuol dire che non è possibile utilizzarla: semplicemente ADR-Flow non mette a disposizione funzionalità specifiche che ne facilitino l’adozione.