Un problema comune nella produzione è verificare che i prodotti soddisfino gli standard di qualità. È possibile utilizzare l'ispezione manuale su un sottoinsieme dei prodotti, ma in genere non è sufficientemente scalabile per soddisfare la domanda man mano che la produzione cresce. In questo post, passo attraverso i passaggi per creare una soluzione di visione artificiale end-to-end che identifica le anomalie visive nei prodotti che utilizzano Amazon Lookout per la visione. Ti mostrerò come addestrare un modello che esegue il rilevamento delle anomalie, utilizzare il modello in tempo reale, aggiornare il modello quando sono disponibili nuovi dati e come monitorare il modello.
Panoramica della soluzione
Immagina una fabbrica che produce mattoncini Lego. I mattoni vengono trasportati su un nastro trasportatore davanti a una telecamera che determina se soddisfano gli standard di qualità della fabbrica. Quando un mattone sulla cintura rompe un raggio di luce, il dispositivo scatta una foto e la invia ad Amazon Lookout for Vision per il rilevamento delle anomalie. Se viene identificato un mattone difettoso, viene spinto via dal nastro da uno spintore.
Il diagramma seguente illustra l'architettura della nostra soluzione di rilevamento delle anomalie, che utilizza Amazon Lookout for Vision, Servizio di archiviazione semplice Amazon (Amazon S3) e un Raspberry Pi.
Amazon Lookout for Vision è un servizio di machine learning (ML) che utilizza la visione artificiale per aiutarti a identificare i difetti visivi nei prodotti senza bisogno di alcuna esperienza ML. Utilizza il deep learning per eliminare la necessità di ambienti accuratamente calibrati in termini di illuminazione e angolazione della telecamera, che richiedono molte tecniche di visione artificiale esistenti.
Per iniziare con Amazon Lookout for Vision, devi fornire dati che il servizio possa utilizzare durante l'addestramento dei modelli di deep learning sottostanti. Il set di dati utilizzato in questo post è costituito da 289 immagini normali e 116 anomale di un mattoncino Lego, che sono ospitate in un bucket S3 che ho reso pubblico in modo da poter scaricare il set di dati.
Per rendere lo scenario più realistico, ho variato l'illuminazione e la posizione della telecamera tra le immagini. Inoltre, utilizzo 20 immagini di prova e 9 nuove immagini per aggiornare successivamente il modello con immagini sia normali che anomale. Le immagini anomale sono state create disegnando e graffiando il mattone, cambiando il colore del mattone, aggiungendo altri mattoni e rompendo piccoli pezzi per simulare difetti di produzione. L'immagine seguente mostra la configurazione fisica utilizzata durante la raccolta delle immagini di allenamento.
Pre-requisiti
Per seguire questo post, avrai bisogno di quanto segue:
- Un account AWS per addestrare e utilizzare Amazon Lookout for Vision
- Una fotocamera (per questo post utilizzo una fotocamera Pi)
- Un dispositivo in grado di eseguire codice (io uso un Raspberry Pi 4)
Allena il modello
Per utilizzare il set di dati durante l'addestramento di un modello, devi prima caricare i dati di addestramento su Amazon S3 e creare un progetto Amazon Lookout for Vision. Un progetto è un'astrazione attorno al set di dati di addestramento e più versioni del modello. Puoi pensare a un progetto come a una raccolta di risorse relative a uno specifico caso d'uso della visione artificiale. Ad esempio, in questo post, utilizzo un set di dati ma creo più versioni del modello mentre ottimizzo gradualmente il modello per il caso d'uso con nuovi dati, il tutto entro i limiti di un progetto.
Puoi utilizzare l'SDK, Interfaccia della riga di comando di AWS (AWS CLI) e Console di gestione AWS per eseguire tutti i passaggi necessari per creare e addestrare un modello. Per questo post, utilizzo una combinazione dell'AWS CLI e della console per addestrare e avviare il modello e utilizzo l'SDK per inviare immagini per il rilevamento delle anomalie dal Raspberry Pi.
Per addestrare il modello, completiamo i seguenti passaggi di alto livello:
- Carica i dati di allenamento su Amazon S3.
- Crea un progetto Amazon Lookout for Vision.
- Crea un set di dati Amazon Lookout for Vision.
- Allena il modello.
Carica i dati di allenamento su Amazon S3
Per iniziare, completare i seguenti passi:
- Scarica il set di dati sul tuo computer.
- Crea un bucket S3 e carica i dati di addestramento.
Ho chiamato il mio bucket l4vdemo, ma i nomi dei bucket devono essere univoci a livello globale, quindi assicurati di cambiarlo se copi il codice seguente. Assicurati di mantenere la struttura delle cartelle nel set di dati, perché Amazon Lookout for Vision la utilizza per etichettare automaticamente le immagini normali e anomale in base al nome della cartella. È possibile utilizzare lo strumento di etichettatura integrato sulla console Amazon Lookout for Vision o Amazon SageMaker verità fondamentale per etichettare i dati, ma l'etichettatrice automatica consente di mantenere la struttura delle cartelle e risparmiare tempo.
Crea un progetto Amazon Lookout for Vision
Ora sei pronto per creare il tuo progetto.
- Nella console Amazon Lookout per Vision, scegli Progetti nel pannello di navigazione.
- Scegli Crea progetto.
- Nel Nome del progetto, inserisci un nome.
- Scegli Crea progetto.
Crea il set di dati
Per questo post, creo un singolo set di dati e importa i dati di addestramento dal bucket S3 in cui ho caricato i dati nel passaggio 1.
- Scegli Crea set di dati.
- Seleziona importa le immagini dal bucket S3.
- Nel URI S3, inserisci l'URI del tuo bucket (per questo post, s3: // l4vdemo /, ma assicurati di utilizzare il nome univoco del bucket che hai creato).
- Nel Etichettatura automatica, selezionare Allega automaticamente etichette alle immagini in base al nome della cartella.
Ciò consente di utilizzare la struttura di cartelle esistente per dedurre se le immagini sono normali o anomale.
- Scegli Crea set di dati.
Allena il modello
Dopo aver creato il set di dati, il numero di immagini etichettate e senza etichetta dovrebbe essere visibile nel file Filtri riquadro, nonché il numero di immagini normali e anomale.
- Per iniziare ad addestrare un modello di deep learning, scegli Modello di treno.
L'addestramento del modello può richiedere alcune ore a seconda del numero di immagini nel set di dati di addestramento.
- Al termine della formazione, nel riquadro di navigazione, scegli Modelli nell'ambito del tuo progetto.
Dovresti vedere il modello appena creato elencato con lo stato Formazione completata.
- Scegli il modello per visualizzare le metriche delle prestazioni come precisione, richiamo e punteggio F1, durata dell'addestramento e altri metadati del modello.
Usa il modello
Ora che un modello è stato addestrato, proviamolo su dati che non ha visto prima. Per utilizzare il modello, è necessario prima iniziare a ospitarlo per eseguire il provisioning di tutte le risorse di backend necessarie per eseguire inferenze in tempo reale.
Quando si avvia l'hosting del modello, si passano sia il nome del progetto che la versione del modello come argomenti per identificare il modello. È inoltre necessario specificare il numero di unità di inferenza da utilizzare; ogni unità consente circa cinque richieste al secondo.
Per utilizzare il modello ospitato, utilizzare il comando detect-anomalies e passare il progetto e la versione del modello insieme all'immagine per eseguire l'inferenza su:
Il set di dati che utilizziamo in questo post contiene 20 immagini e ti incoraggio a testare il modello con immagini diverse.
Quando si esegue l'inferenza su un mattone anomalo, la risposta potrebbe essere la seguente:
Tieni presente che ti viene addebitato il modello finché è in esecuzione, quindi interrompilo quando non ti serve più:
Aggiorna il modello
Non appena sono disponibili nuovi dati, potresti voler mantenere o aggiornare il modello per adattarlo a nuovi tipi di difetti e aumentare le prestazioni complessive del modello. Il set di dati contiene nove immagini nella cartella dei nuovi dati, che utilizzo per aggiornare il modello. Per aggiornare un modello Amazon Lookout for Vision, esegui un rilevamento di prova e verifica le previsioni della macchina per correggere le previsioni del modello e aggiungi le immagini verificate al tuo set di dati di addestramento.
Esegui un rilevamento di prova
Per eseguire un rilevamento di prova, completare i seguenti passaggi:
- Sulla console Amazon Lookout per Vision, sotto il tuo modello nel riquadro di navigazione, scegli Rilevamenti di prova.
- Scegli Eseguire il rilevamento di prova.
- Nel Nome della prova, inserisci un nome.
- Nel Importa immagini, selezionare Importa immagini dal bucket S3.
- Nel URI S3, inserisci l'URI della cartella dei nuovi dati che hai caricato nel passaggio 1 dell'addestramento del modello
- Scegli Fai una prova
Verifica le previsioni della macchina
Quando il rilevamento della prova è completo, è possibile verificare le previsioni della macchina.
- Scegli Verifica le previsioni della macchina.
- Selezionare uno Corretto o errato per etichettare le immagini
- Quando tutte le immagini sono state etichettate, scegli Aggiungi immagini verificate al set di dati.
Questo aggiorna il tuo set di dati di allenamento con i nuovi dati.
Addestra nuovamente il modello
Dopo aver aggiornato il set di dati di addestramento con i nuovi dati, è possibile vedere che il numero di immagini etichettate nel set di dati è aumentato, insieme al numero di immagini verificate.
- Scegli Modello di treno per addestrare una nuova versione del modello.
- Quando il nuovo modello si sta allenando, sul Modelli è possibile verificare che sia in corso l'addestramento di una nuova versione del modello. Al termine della formazione, è possibile visualizzare le metriche delle prestazioni del modello in Modelli pagina e inizia a utilizzare la nuova versione.
Applicazione di rilevamento delle anomalie
Ora che ho addestrato il mio modello, usiamolo con il Raspberry Pi per ordinare i mattoncini Lego. In questo caso d'uso, ho configurato un Raspberry Pi con una fotocamera che si attiva ogni volta che un sensore del raggio di interruzione rileva un mattoncino Lego. Usiamo il seguente codice:
Monitoraggio del modello
Quando il sistema è attivo e in esecuzione, puoi utilizzare il dashboard di Amazon Lookout for Vision per visualizzare i metadati dei progetti in esecuzione, come il numero di anomalie rilevate durante un periodo di tempo specifico. La dashboard fornisce una panoramica di tutti i progetti in corso, nonché informazioni aggregate come il rapporto di anomalie totali.
Prezzi
Il costo della soluzione si basa sul tempo necessario per addestrare il modello e sul tempo di esecuzione del modello. Puoi dividere il costo tra tutti i prodotti analizzati per ottenere un costo per prodotto. Supponendo che un mattone venga analizzato al secondo ininterrottamente per un mese, il costo della soluzione, esclusi hardware e formazione, è di circa $ 0.001 per mattone, supponendo di utilizzare 1 unità di inferenza. Tuttavia, se aumenti la velocità di produzione e analizzi cinque mattoni al secondo, il costo è di circa $ 0.0002 per mattone.
Conclusione
Ora sai come utilizzare Amazon Lookout for Vision per addestrare, eseguire, aggiornare e monitorare un'applicazione di rilevamento delle anomalie. Il caso d'uso in questo post è ovviamente semplificato; avrai altri requisiti specifici per le tue esigenze. Molti fattori influenzano la latenza totale end-to-end quando si esegue l'inferenza su un'immagine. Il modello Amazon Lookout for Vision viene eseguito nel cloud, il che significa che è necessario valutare e testare la disponibilità della rete e la larghezza di banda per garantire che i requisiti possano essere soddisfatti. Per evitare di creare colli di bottiglia, è possibile utilizzare un interruttore di circuito nell'applicazione per gestire i timeout e prevenire la congestione in caso di problemi di rete.
Ora che sai come addestrare, testare, utilizzare e aggiornare un modello ML per il rilevamento delle anomalie, provalo con i tuoi dati! Per ulteriori dettagli su Amazon Lookout for Vision, per favore visita la pagina web!
Informazioni sugli autori
Niklas Palma è un Solutions Architect presso AWS a Stoccolma, Svezia, dove aiuta i clienti dei paesi nordici ad avere successo nel cloud. È particolarmente appassionato di tecnologie serverless insieme a IoT e machine learning. Al di fuori del lavoro, Niklas è un appassionato sciatore di fondo e snowboarder, nonché un maestro della caldaia.
- 100
- 116
- 7
- 9
- Il mio account
- Tutti
- Amazon
- rilevamento anomalie
- Applicazioni
- architettura
- argomenti
- in giro
- disponibilità
- AWS
- Larghezza
- costruire
- il cambiamento
- carico
- classificazione
- Cloud
- codice
- Raccolta
- Uncommon
- fiducia
- Creazione
- Corrente
- Clienti
- cruscotto
- dati
- apprendimento profondo
- Richiesta
- rivelazione
- fabbrica
- Nome
- seguire
- Hardware
- di hosting
- Come
- Tutorial
- HTTPS
- identificare
- Immagine
- Aumento
- informazioni
- IoT
- sicurezza
- IT
- etichettatura
- per il tuo brand
- apprendimento
- leggera
- linea
- Lunghi
- machine learning
- visione artificiale
- gestione
- consigliato per la
- Metrica
- ML
- modello
- nomi
- Navigazione
- Rete
- Nordici
- Altro
- performance
- Precisione
- Previsioni
- Produzione
- Prodotti
- progetto
- progetti
- la percezione
- qualità
- Raspberry Pi
- tempo reale
- Requisiti
- Risorse
- risposta
- Correre
- running
- sagemaker
- sdk
- serverless
- set
- Un'espansione
- piccole
- So
- Soluzioni
- velocità
- standard
- inizia a
- iniziato
- Stato dei servizi
- conservazione
- Svezia
- sistema
- Tecnologie
- dice
- test
- I progetti
- tempo
- Training
- trasportato
- prova
- Aggiornanento
- Aggiornamenti
- URI
- Visualizza
- visione
- entro
- Lavora