Librerie software di “Machining Learning” consentono oggi di implementare applicazioni di controllo visivo “semplicemente” partendo da un numero molto elevato di immagini che riprendono oggetti conformi e non conformi.
La novità dei sistemi d’elaborazione immagini industriali sono le librerie software di “Machine Learning” che permettono di implementare applicazioni di controllo visivo partendo da un elevato numero di immagini che riprendono oggetti conformi e non.
di Remo Sala, Prof. Dipartimento di Meccanica. remo.sala@polimi.it
Nel panorama dei sistemi di elaborazione di immagine industriali, la principale novità è sicuramente la disponibilità di librerie di software di “Machining Learning” che consentono di implementare applicazioni di controllo visivo “semplicemente” a partire da un numero molto elevato di immagini che riprendono oggetti conformi e non conformi. Le basi teoriche di queste tecniche di apprendimento automatico sono state sviluppate a partire dagli anni ’60, ma solo da pochi anni la disponibilità di un hardware estremamente potente e a costi contenuti ne ha permesso una proficua introduzione nella realtà industriale.
Per chiarire le differenze tra le tecniche algoritmiche e quelle di Machine Learning immaginiamo – spiega l’Autore del Dipartimento di Meccanica del Politecnico di Milano – di dover riconoscere in una serie di immagini due oggetti diversi: ad esempio un cerchio e un quadrato. Immaginiamo anche di strutturare l’ambiente in modo che l’estrazione della figura geometrica dallo sfondo sia banale: l’oggetto nero e lo sfondo bianco. Consideriamo anche l’ulteriore ipotesi che il cerchio e il quadrato siano sempre completamente all’interno della immagine, senza mai arrivare sul bordo.
L’approccio algoritmico tradizionale prevede che un esperto definisca il parametro che permette di classificare i due oggetti e il valore di soglia di tale parametro che permette di discriminare il cerchio dal quadrato.
Nel nostro semplice esempio, l’algoritmo potrebbe essere quello di seguito riportato. Passo 1: estrarre il baricentro dell’oggetto; passo 2: calcolare per ogni punto del contorno la sua distanza dal baricentro; passo 3: se le distanze così ottenute sono tutte uguali l’oggetto è un cerchio, se tali distanze variano tra un valore minimo e uno massimo l’oggetto sarà un quadrato.
Il passo 3 merita un commento. Nel mondo reale il concetto di uguaglianza non esiste, quindi sia i punti del cerchio che quelli del quadrato avranno un valore minimo e un valore massimo; nel cerchio la differenza sarà una quantità piccola, nel quadrato una quantità più importante. Per discriminare le due classi di oggetti bisognerà quindi fissare un valore di soglia: se la differenza tra la distanza massima e quella minima è inferiore a tale valore l’oggetto sarà un cerchio, se superiore un quadrato.
Questo significa che nell’approccio algoritmico classico l’esperto umano definisce sia il parametro di classificazione (distanza dei punti del contorno dal baricentro) sia la soglia che permette di discriminare le due classi.
Nell’approccio Machine Learning, l’esperto umano definisce solo il parametro di classificazione, mentre il valore della soglia che permette di discriminare due classi viene definito in automatico.
APPROCCIO MACHINE LEARNING
La classificazione dei cerchi e dei quadrati può essere sviluppata anche con un approccio “Machine Learning”: in pratica si prenderanno delle immagini contenenti ognuna o un cerchio o un quadrato e si calcolerà per ognuna la differenza tra la distanza massima e la distanza minima dei punti del baricentro. Questo dato, unitamente alla classificazione dell’oggetto come cerchio o quadrato verrà inviato a un classificatore che, in automatico, solitamente utilizzando metodi statistici, definirà il valore di soglia che discrimina la classe dei cerchi dalla classe dei quadrati.
Questo significa che nell’approccio Machine Learning l’esperto umano definisce solo il parametro di classificazione (distanza dei punti del contorno dal baricentro), mentre il valore della soglia che permette di discriminare le due classi viene definito in automatico.
APPROCCIO DEEP LEARNING
La classificazione sopra descritta può essere realizzata anche con un approccio “Deep Learning”: si prende una rete CNN, Convolutional Neural Network, preaddestrata a riconoscere forme e la si addestra a riconoscere cerchi e quadrati in modo specifico. In primo luogo, bisogna acquisire un numero importante di immagini, ciascuna delle quali contiene un singolo cerchio o un singolo quadrato, ben evidente rispetto allo sfondo. Queste immagini devono essere acquisite in modo da rappresentare tutti i possibili scenari plausibili in termine di posizione ed orientazione dei due oggetti, tenendo conto di tutte le ragionevoli variazioni delle condizioni ambientali che possono presentarsi dove il sistema verrà installato.
Da ognuna delle immagini sarà quindi necessario ritagliare con una maschera di dimensioni costanti il cerchio o il quadrato in essa contenuto; le sotto immagini così ottenute sono quelle che verranno utilizzate per addestrare la rete. L’addestramento della rete, semplificando la procedura reale, avviene facendo analizzare alla rete la singola immagine e informandola sul risultato atteso (cerchio o quadrato in funzione dell’oggetto contenuto nella immagine).
Questo significa che nell’approccio Deep Learning l’esperto umano si limita a fornire al sistema un numero opportuno, molto elevato, di immagini classificate, lasciando che sia il sistema a definire il parametro di classificazione e il valore della soglia che permette di discriminare le due classi.
Nell’approccio Deep Learning, l’esperto umano si limita a fornire al sistema un numero opportuno, molto elevato, di immagini classificate, lasciando che sia il sistema a definire il parametro di classificazione e il valore della soglia che permette di discriminare due classi.
APPLICARE LA TECNICA DI VOLTA IN VOLTA PIÙ EFFICACE
Chiarito che un problema di visione può essere affrontato e risolto con tecniche diverse, è importante applicare, in funzione dello specifico ambito applicativo, la tecnica più efficace. In base a quanto detto risulterà ad esempio chiaro che, dovendo discriminare cerchi e quadrati, la soluzione più efficace è l’approccio algoritmico classico. Generalizzando il discorso, tutte le volte in cui è evidente il parametro di classificazione ed è altrettanto semplice definire la soglia di classificazione, la soluzione algoritmica tradizionale risulta sempre vincente.
In modo complementare, l’approccio “Deep Learning” deve essere utilizzato esclusivamente quando non sono evidenti i parametri di classificazione e risulta difficile definire la soglia per separare gli oggetti in cerchi e in quadrati. Il problema di visione che trae i maggiori vantaggi dall’utilizzo del Deep Learning è sicuramente il controllo visivo, operazione con la quale un operatore attribuisce un oggetto, semplicemente osservandolo, alla classe dei conformi piuttosto che a quella dei non conformi.
Quindi gli sviluppatori dispongono oggi di uno strumento molto potente per affrontare e risolvere questa specifica problematica, spesso impossibile da affrontare con le tecniche algoritmiche in quanto è impossibile codificare in un modo deterministico il processo decisionale umane. Va tuttavia sottolineato che il Deep Learning è uno strumento potente, ma che va sempre aiutato mettendo in pratica tutte le buone pratiche necessarie per realizzare un sistema di visione efficace: dettagliata definizione delle specifiche; dialogo costruttivo tra utente e integratore; illuminazione ambientale costante e finalizzata a esaltare i dettagli da analizzare. ©ÈUREKA!
Il problema di visione che trae maggiori vantaggi dall’utilizzo del Deep Learning è il controllo visivo, operazione con la quale un operatore attribuisce un oggetto, semplicemente osservandolo, alla classe dei conformi o a quella dei non conformi.