Questo sito utilizza cookie, anche di terze parti, per raccogliere i Suoi dati di navigazione e personallizare la Sua esperienza utente. Per maggiori informazioni cliccare qui.
Chiudendo questo banner, scorrendo questa pagina o cliccando qualunque suo elemento acconsente all'uso dei cookie.

Ok

Come creare un’applicazione Deep Learning in 5 fasi

Come creare un’applicazione Deep Learning in 5 fasi

5 fasi per creare e sviluppare reti neurali di deep learning

Il deep learning è un sottoinsieme del machine learning ispirato al funzionamento del cervello umano. 

Grazie al deep learning è possibile semplificare e accelerare l'implementazione delle applicazioni machine vision: migliaia di righe di codice vengono infatti sostituite da una semplice rete neurale addestrata con immagini e pochissima codifica.

L'ottima notizia è che il deep learning non è più un metodo disponibile solo ai ricercatori o a persone altamente specializzate e con budget notevoli. Oggi, molti strumenti sono gratuiti, i tutorial sono facili da trovare, il costo dell'hardware è basso e perfino i set di dati per l'addestramento sono disponibili a titolo gratuito.

Ciò fornisce l’opportunità di fare cose che prima erano impensabili nel settore machine vision, per esempio il deep learning può essere utilizzato per riconoscere anomalie impreviste, il che è solitamente molto difficile o quasi impossibile da fare con la codifica tradizionale.

Un notevole vantaggio dell'installazione delle reti neurali di deep learning è che consentono di prendere decisioni complesse con hardware minimo e potenza di elaborazione molto ridotta; questo è possibile grazie ai sistemi basati su ARM o FPGA a basso costo e le nuove telecamere per inferenza come la FLIR Firefly DL

 

Il processi del Deep Learning: addestramento e inferenza.

 

ADDESTRAMENTO: insegnare cosa è giusto e cosa e sbagliato

Durante la fase di addestramento, viene definito il numero di neuroni e i livelli che comprenderà la rete neurale e la si espone ai dati di addestramento etichettati. Con questi dati, la rete neurale apprende da sola che cosa è "giusto" o "sbagliato". Per esempio, se si sta valutando della frutta, si mostreranno alla rete neurale immagini dei frutti etichettate con "Grado A", "Grado B", "Grado C" e così via. La rete neurale quindi calcola le proprietà di ciascun grado, come dimensione, forma, colore, uniformità del colore e così via. Non è necessario definire manualmente queste caratteristiche né programmare che cosa è troppo grande o troppo piccolo, la rete neurale si addestra da sola. Una volta che è terminata la fase di addestramento, il risultato è una rete neurale addestrata.

 

INFERENZA: insegnare a prendere decisioni autonomamente

Il processo di valutazione di nuove immagini utilizzando una rete neurale per prendere delle decisioni è detto inferenza. Quando le viene presentata una nuova immagine, la rete neurale addestrata fornirà un'inferenza (cioè una risposta): come "Grado A con il 95% di confidenza".

 

 Le 5 fasi per creare un’applicazione Deep Learning 

 

Fase 1: Identificare la funzione di deep learning più appropriata per la nostra applicazione. 

Esistono diversi tipi di funzione, elenchiamo di seguito le più comuni:


CLASSIFICAZIONE

La funzione di classificazione implica l'ordinamento delle immagini in varie classi e il loro raggruppamento in base a proprietà comuni (Es. separare una parte difettosa da una funzionante su una linea produttiva). 

Classificazione utilizzata per identificare i saldatori difettosi utilizzando una FLIR Firefly DL

Classificazione utilizzata per identificare i saldatori difettosi utilizzando una FLIR Firefly DL.

 

RILEVAZIONE E LOCALIZZAZIONE

Utilizzando questa funzione, è possibile identificare delle caratteristiche in un'immagine e fornire le coordinate del riquadro che la delimita per stabilirne posizione e dimensione. (Per esempio, questa funzione può essere utilizzata per rilevare una persona che viola un parametro di sicurezza intorno ai robot su una linea produttiva o identificare una singola parte difettosa su un sistema di convogliamento della linea di assemblaggio/produzione.)

 

SEGMENTAZIONE

Solitamente questa funzione viene utilizzata per identificare quali pixel di un'immagine appartengono agli oggetti corrispondenti. (per esempio veicolo autonomo / Sistemi di assistenza alla guida avanzati, noti come ADAS).

Rilevazione, localizzazione e segmentazione utilizzate per identificare gli oggetti e la relativa posizione. Rilevazione, localizzazione e segmentazione utilizzate per identificare gli oggetti e la relativa posizione

 

RILEVAZIONI ANOMALIE

Questo tipo di funzione di deep learning può essere utilizzata per identificare le regioni che non corrispondono a uno schema. (Un esempio tipico di un'applicazione dove la rilevazione delle anomalie potrebbe esse sarebbe il controllo delle scorte e la gestione dell'inventario nei supermercati.)

 

Fase 2: Selezionare il proprio framework

Una volta che è stata determinata la funzione di deep learning che si vuole utilizzare, è necessario un set di strumenti (gli sviluppatori lo chiamano "framework") che meglio si adatti alle proprie esigenze. Questi framework forniranno una selezione di reti neurali di partenza e strumenti per l'addestramento e il test della rete.

Alcune delle società tecnologiche più grandi al mondo che si contengono posizioni dominanti nel settore del deep learning, framework come TensorFlow di Google, Caffe2 di Facebook e OpenVino di Intel (tutti gratuiti) dimostrano il quantum degli investimenti e delle risorse che si riversano nel mercato del deep learning. Dall'altra parte di quello spettro, c'è anche Pytorch, una soluzione open-source che ora fa parte di Facebook. Questi strumenti sono facili da utilizzare e forniscono un'ottima documentazione (inclusi gli esempi), quindi perfino un neofita può addestrare e installare una rete neurale con il minimo sforzo.

 

Fase 3 - Preparazione dei dati di addestramento per la rete neurale

A seconda del tipo di dati che si vogliono valutare, sarà necessario un repository di immagini con tutte le caratteristiche che ci si auspica di utilizzare nella propria valutazione, nonché con un'etichettatura appropriata

Vi sono diverse strade per ottenere un dataset di immagini:

Per i casi d'uso più comuni, si potrebbe trovare un dataset pre-etichettato che corrisponde ai requisiti specifici acquistabile online (in molti casi, anche gratuito).

Affidarsi ad aziende che impiegano la tecnologia di simulazione e la teoria di computer vision avanzata per creare pacchetti di set di addestramento artificiali ad alta fedeltà. Questi dataset sono commentati e ottimizzati per l'addestramento di algoritmi.

Se le prime due opzioni non fossero disponibili, sarebbe necessario prendere le proprie immagini ed etichettarle individualmente. Questo processo è semplificato da diversi strumenti disponibili sul mercato

 

Fase 4 - Addestrare e convalidare la rete neurale per assicurare l'accuratezza

Dopo aver preparato i dati, sarà necessario addestrare, testare e convalidare l'accuratezza della propria rete neurale. Questa fase implica la configurazione e l'esecuzione degli script sul proprio computer finché il processo di addestramento non fornisce livelli accettabili di accuratezza per il caso d'uso specifico.

Una delle best-practice raccomandate è tenere separati dati di addestramento e di test per garantire che i dati di test utilizzati per la propria valutazione non siano utilizzati durante l'addestramento.

 

Fase 5 - Installare la rete neurale ed eseguire l'inferenza sui nuovi dati

L'ultima fase riguarda l'installazione della rete neurale addestrata nell'hardware selezionato per testarne le prestazioni e raccogliere i dati sul campo.

Esistono vari metodi di installazione, ciascuna con vari pro e contro. Ad esempio, l’installazione sul cloud vede risparmi significativi sul costo dell'hardware, possibilità di scalare rapidamente e di installare e propagare le modifiche in varie sedi ma ha come svantaggio la necessità di una connessione Internet, latenza superiore rispetto all'installazione edge (dovuta al volume dei trasferimenti dei dati tra l'hardware locale e il cloud) ed affidabilità inferiore (i problemi di connessione possono causare interruzioni importanti). 
L’installazione Edge (PC standard) è ideale per applicazioni a prestazioni elevate, è un metodo altamente personalizzabile e con prezzi flessibili (poiché i componenti possono essere selezionati in base all'applicazione) ma generalmente l'ingombro è significativamente superiore.
L’installazione Edge (ARM, FPGA e telecamere per inferenza come FLIR Firefly DL) è ideale per applicazioni compatte che richiedono più fotocamere in un sistema (ciò aiuta a scaricare la richiesta di elaborazione su varie fotocamere). Richiede un basso consumo energetico, risparmi significativi sull'hardware periferico, elevata affidabilità ma non idoneo per attività impegnative dal punto di vista computazionale, la soluzione basata su VPU ha un rapporto prestazioni/potenza superiore rispetto alle soluzioni FPGA.

 

Il Deep Learning fa al caso tuo?

Il Deep Learning è una tecnologia in grado di spostare i confini delle applicazioni machine vision, ma non si presta a tutte le applicazioni. Non ancora per lo meno.

Per sapere se il il tuo processo produttivo può essere migliorato col Deep Learing, contattaci per una consulenza gratuita e senza impegno.