I sistemi di visione artificiale fanno sempre più uso di tecnologie di Machine Learning, Deep Learning e Reti Neurali. Il significato di questi termini non è sempre chiaro a tutti. Non bisogna però fare l’errore di considerare queste tecnologie come la soluzione per risolvere qualsiasi problematica di visione. Meglio quindi conoscerne i limiti per poter utilizzare queste tecnologie nel modo migliore.
di Fabio Rosi
L’intelligenza artificiale nei sistemi di visione
Per prima cosa farei una spiegazione veloce dei termini e dei principi di funzionamento. Premetto che quello che segue è una grande semplificazione di questa complessa scienza, con termini non sempre scientificamente appropriati.
Machine Learning, Deep Learning e Reti Neurali fanno tutte parte della grande famiglia dell’Intelligenza Artificiale.
Il Machine Learning (in italiano Apprendimento Automatico) sono una serie di algoritmi per apprendere informazioni e generare decisioni partendo da una serie di dati di apprendimento senza utilizzare modelli matematici o statistici predeterminati.
In pratica, nei sistemi di visione artificiale che utilizzano il machine learning, di solito si forniscono all’algoritmo una serie di immagini dei difetti in modo che vengano poi in seguito riconosciuti come tali.
Questa azione viene chiamata Apprendimento Supervisionato (Supervised Learning) ed è il tipo di apprendimento più utilizzato nei sistemi di visione artificiale di questo tipo. I dati di apprendimento in ingresso (le immagini dei difetti e le informazioni relative alla loro caratterizzazione) sono selezionati manualmente, ossia supervisionati. Tutte queste informazioni vengono “digerite” dall’algoritmo in modo tale che identifichi una regola generale che permetta di trovare i difetti catalogati nelle immagini che vedrà di volta in volta.
Una specie di scatola magica che impara dalle immagini dei difetti e fornisce un giudizio sull’immagine che sta vedendo in quel momento.
Nella nostra scatola magica ci sono delle reti neurali, ossia degli algoritmi capaci di apprendere, un po’ come la mente umana. Nel 2019 sono state catalogate ben 29 tipologie base di reti neurali, 5 di queste vengono definite Deep (profonde). La differenza principale tra una rete neurale semplice e una rete neurale profonda sta nel numero di strati intermedi nascosti (hidden layers). La rete neurale semplice ha un solo strato intermedio a differenza della rete neurale profonda che ne ha più di uno, ad ogni strato corrisponde un differente livello di astrazione del “ragionamento”.
Il Deep Learning, ossia l’elaborazione delle informazioni effettuata da una rete neurale profonda, fornisce risultati spesso più attendibili di quelli eseguiti da una rete neurale monostrato.
Vantaggi e svantaggi del Machine Learning nei sistemi di visione artificiale
Machine Learning e Deep Learning sono ultimamente due parole molto usate nell’ambiente dell’industria 4.0. A prescindere dagli aspetti “modaioli” dei due termini, bisognerebbe capire se queste tecnologie possono essere utilizzate in modo proficuo.
La risposta a questa domanda è dipendente dal tipo di applicazione del sistema di visione.
Vediamo i principali vantaggi.
- La semplicità d’implementazione a livello operativo è il principale vantaggio. Infatti è sufficiente inserire le immagini dei difetti ogni volta che si presentano.
- Dopo un apprendimento cospicuo, la rete “deep” permette di avere risultati abbastanza precisi anche in condizione di rumore dell’informazione, che nel caso dei sistemi di visione artificiale significa riflessi, pezzi sporchi, variazione luminosa dell’ambiente, ecc.
- Sempre dopo un apprendimento formato da numerosi casi, il “deep learning” riesce a riconoscere un difetto generalizzato anche senza avere acquisito il campione precedentemente.
Vediamo ora gli svantaggi.
- Quella che prima abbiamo definito una scatola magica, è in gergo chiamata Black Box. Il problema della Scatola Nera risiede nel fatto che non ci permesso sapere la regola che comporta la scelta tra buono e scarto. Questo è spesso un grosso problema che rende in parecchi casi il “deep learning” poco affidabile, per cui è preferibile utilizzarlo in applicazioni dove non è richiesta la sicurezza del risultato.
- Per fare in modo che una logica di Deep Learning funzioni bene è necessaria una quantità di informazioni notevole. Su alcune applicazioni più di 1000 immagini spesso non sono sufficienti per creare una regola abbastanza affidabile.
- Non avendo una logica di elaborazione oggettiva basata su un modello matematico o statistico, l’unico modo per assicurarsi una buona probabilità del riconoscimento del difetto sta nel fornire alla rete neurale tutte le possibili casistiche di difetto in tutte le possibili posizioni, profondità, forme e colorazioni, ed in alcuni casi la combinazione di queste informazioni è gigantesca. Se infatti una particolare forma non viene catalogata, è facile che il sistema non lo riconosca. Può capitare ad esempio che difetti enormi non vengano rilevati semplicemente perché sono stati catalogati una serie di difetti piccoli o medi.
- Queste logiche non permettono di garantire l’affidabilità nel tempo anche su difetti che prima venivano riconosciuti come tali. Questo perché le logiche neurali non accumulano le informazioni, ma le “assorbono”, si dice infatti che “accumulano l’esperienza” non i dati. Quindi, man mano che diamo nuove informazioni, quelle vecchie tendono ad essere “diluite” nel processo. Questa “diluizione” non è una caratteristiche prettamente negativa perché perfeziona l’apprendimento. Purtroppo però non si può avere la sicurezza sulla ripetibilità della valutazione del sistema di visione se non bloccando il processo di apprendimento.
- Uno dei principali problemi deriva dal processo di apprendimento supervisionato. Infatti, considerata la mole di informazioni da fornire alla rete “deep”, può capitare l’errore umano di fornire un dato errato, ossia un difetto che non è un difetto o viceversa. La rete neurale ha la capacità di nascondere questa acquisizione errata, risultando difficile se non impossibile la ricerca di questa anomalia. Il risultato è un incremento dell’inaffidabilità del sistema.
- Un apprendimento supervisionato sufficiente per far funzionare la rete neurale in modo adeguato spesso ha costi tali da non giustificare l’operazione soprattutto in relazione al grado di affidabilità raggiunto.
La soluzione VEA per il Machine Learning nei sistemi di visione
Test effettuati presso alcuni nostri clienti hanno dimostrato che le tecnologie di Deep Learning sono ottime perché riescono a catalogare efficacemente un buon numero di difetti, ma sono costose da gestire e non riescono a superare il livello di affidabilità che hanno gli attuali algoritmi proprietari in “logica ibrida”. Infatti gli attuali algoritmi VEA in “logica ibrida” risultano ad oggi più funzionali, più rapidi da implementare e soprattutto più affidabili e controllabili di una rete neurale “deep”.
Gli algoritmi in “logica ibrida”, sviluppati a partire dal 2007 da VEA, adottano già un apprendimento supervisionato preimpostato basato parzialmente su rete neurale, ma che adotta logiche di tipo statistico e matematico per rafforzarne la stabilità.
Le ultime tipologie di reti neurali deep, unite alla crescente capacità di elaborazione dei processori, presentano comunque parecchi vantaggi. La soluzione quindi sta nel minimizzare gli svantaggi.
Da qui nasce la tecnologia proprietaria Regulated Machine Learning. Si tratta di una serie di algoritmi ibridi formati da due gruppi distinti di logiche.
Il primo gruppo “learning” è formato da logiche di Deep Learning che apprendono la casistica dei difetti, astraendone i concetti.
Il secondo gruppo “supervision” è formato da logiche ibride capaci di valutare se il risultato delle gruppo “learning” è sufficientemente affidabile, in caso contrario vengono presi come riferimento i risultati delle logiche “supervision”.
L’uso complementare delle due logiche ha dato fin’ora ottimi risultati senza perdere in affidabilità.
Inoltre il livello di astrazione delle logiche Deep Learning è così alto da permettere la costruzione di “pacchetti” precostituiti di apprendimento, evitando lunghe e costose sessioni di apprendimento a carico del cliente.