Automazione industriale presso Tyson con visione artificiale, AWS Panorama e Amazon SageMaker

Nodo di origine: 1575225

Questo è il primo di una serie di blog in due parti su come Tyson Foods, Inc. sta utilizzando Amazon SageMaker e AWS Panorama per automatizzare i processi industriali nei loro impianti di confezionamento della carne portando i vantaggi delle applicazioni di intelligenza artificiale all'edge. Nella prima parte, discutiamo un'applicazione di conteggio delle scorte per le linee di confezionamento. Nella seconda parte, discutiamo di una soluzione di rilevamento delle anomalie basata sulla visione all'edge per la manutenzione predittiva delle apparecchiature industriali.

Essendo uno dei più grandi trasformatori e distributori di pollo, manzo e maiale al mondo, Tyson Alimenti, Inc., è nota per portare soluzioni innovative ai propri impianti di produzione e confezionamento. Nel febbraio 2020, Tyson ha annunciato il suo piano per portare Computer Vision (CV) nei suoi impianti di pollame e ha lanciato un progetto pilota con AWS per aprire la strada agli sforzi sulla gestione dell'inventario. Tyson ha collaborato con Laboratorio di soluzioni Amazon ML per creare una soluzione CV all'avanguardia per il conteggio dei vassoi di pollo che fornisce informazioni in tempo reale sui livelli di inventario confezionato. In questo post, forniamo una panoramica dell'architettura AWS e una panoramica completa della soluzione per dimostrare i componenti chiave nella pipeline di conteggio dei vassoi allestita nello stabilimento di Tyson. Ci concentreremo sulla raccolta e l'etichettatura dei dati, sulla formazione e sulla distribuzione di modelli CV all'edge Amazon Sage Maker, Apache MXNet Gluonee Panorama AWS.

L'eccellenza operativa è una priorità chiave per Tyson Foods. Tyson adotta misure rigorose di garanzia della qualità (QA) nelle proprie linee di confezionamento, assicurando che solo i prodotti confezionati che superano i protocolli di controllo qualità vengano spediti ai propri clienti. Per soddisfare la domanda dei clienti e stare al passo con qualsiasi problema di produzione, Tyson monitora da vicino il conteggio dei vassoi di pollo confezionati. Tuttavia, le attuali tecniche manuali per contare le vaschette di pollo che superano il QA non sono accurate e non presentano un quadro chiaro dei livelli di produzione sovra/sotto. Strategie alternative come il monitoraggio del peso totale orario della produzione per rack non forniscono un feedback immediato ai dipendenti dell'impianto. Con una capacità di lavorazione del pollo di 45,000,000 di capi a settimana, l'accuratezza e l'efficienza della produzione sono fondamentali per l'attività di Tyson. Il CV può essere utilizzato efficacemente in tali scenari per stimare con precisione la quantità di pollo lavorata in tempo reale, consentendo ai dipendenti di identificare potenziali colli di bottiglia nelle linee di confezionamento e di produzione nel momento in cui si verificano. Ciò consente l'attuazione di misure correttive e migliora l'efficienza della produzione.

Lo streaming e l'elaborazione di flussi video on-premise nel cloud per le applicazioni CV richiedono un'elevata larghezza di banda di rete e il provisioning dell'infrastruttura pertinente. Questo può essere un compito proibitivo. AWS Panorama rimuove questi requisiti e consente a Tyson di elaborare flussi video all'edge sull'appliance AWS Panorama. Riduce la latenza da/verso il cloud e i costi della larghezza di banda, fornendo al contempo un'interfaccia facile da usare per la gestione di dispositivi e applicazioni all'edge.

Il rilevamento degli oggetti è uno degli algoritmi CV più comunemente utilizzati in grado di localizzare la posizione degli oggetti in immagini e video. Questa tecnologia è attualmente utilizzata in varie applicazioni della vita reale come l'individuazione di pedoni nei veicoli autonomi, il rilevamento di tumori nelle scansioni mediche, i sistemi di conteggio delle persone per monitorare il passaggio negli spazi commerciali, tra gli altri. È inoltre fondamentale per i casi d'uso della gestione dell'inventario, come il conteggio dei vassoi di carne per Tyson, ridurre gli sprechi creando un ciclo di feedback con i processi di produzione, il risparmio sui costi e la consegna puntuale delle spedizioni dei clienti.

Le sezioni seguenti di questo post del blog descrivono come utilizziamo i video in live streaming da uno degli stabilimenti Tyson Foods per addestrare un modello di rilevamento degli oggetti utilizzando Amazon SageMaker. Lo distribuiamo quindi all'edge con il dispositivo AWS Panorama.

Panorama AWS

AWS Panorama è un'appliance di machine learning (ML) che consente alle organizzazioni di portare CV su telecamere on-premise per fare previsioni in locale con elevata precisione e bassa latenza. AWS Panorama Appliance è un dispositivo hardware che ti consente di eseguire applicazioni che utilizzano ML per raccogliere dati da flussi video, generare video con testo e sovrapposizioni grafiche e interagire con altri servizi AWS. L'appliance può eseguire più modelli CV su più flussi video in parallelo e produrre i risultati in tempo reale. È progettato per l'uso in ambienti commerciali e industriali.

L'appliance AWS Panorama ti consente di eseguire applicazioni CV indipendenti all'edge, senza inviare immagini al cloud AWS. Puoi anche utilizzare l'SDK AWS sull'appliance AWS Panorama per integrarsi con altri servizi AWS e utilizzarli per tenere traccia dei dati dell'applicazione nel tempo. Per creare e distribuire applicazioni, utilizza l'AWS Panorama Application CLI. La CLI è uno strumento da riga di comando che genera cartelle di applicazioni e file di configurazione predefiniti, crea contenitori con Docker e carica risorse.

AWS Panorama supporta modelli creati con Rete Apache MX, rete scura, Gluon CV, Keras, ONNX, PyTorch, TensorFlowe TensorFlow Lite. Fare riferimento a questo post del blog per ulteriori informazioni sulla creazione di applicazioni su AWS Panorama. Durante il processo di distribuzione AWS Panorama si occupa di compilare il modello specifico per la piattaforma edge tramite Compilazione Amazon SageMaker Neo. I risultati dell'inferenza possono essere indirizzati a servizi AWS come Amazon S3, Amazon CloudWatch o integrati con applicazioni line-of-business on-premise. I log di distribuzione sono archiviati in Amazon CloudWatch.

Per tenere traccia di qualsiasi modifica nella logica dello script di inferenza o nel modello addestrato, è possibile creare una nuova versione dell'applicazione. Versioni dell'applicazione sono snapshot immutabili della configurazione di un'applicazione. AWS Panorama salva le versioni precedenti delle tue applicazioni in modo che tu possa ripristinare gli aggiornamenti non riusciti o eseguire versioni diverse su dispositivi diversi.

Per ulteriori informazioni, fare riferimento alla Pagina panoramica di AWS. Per ulteriori informazioni sulla creazione di applicazioni di esempio, fare riferimento a Esempi di AWS Panorama.

Approccio

Un dipendente dell'impianto riempie continuamente vassoi di pollo confezionati in contenitori di plastica e li impila nel tempo, come mostrato nella figura precedente. Vogliamo essere in grado di rilevare e contare il numero totale di vassoi su tutti i contenitori impilati verticalmente.

Un modello di rilevamento degli oggetti addestrato può prevedere i riquadri di delimitazione di tutti i vassoi posizionati in un cestino in ogni fotogramma video. Questo può essere utilizzato per misurare i conteggi dei vassoi in un contenitore in una determinata istanza. Sappiamo anche che in qualsiasi momento viene riempito un solo bidone di vassoi confezionati; i conteggi dei vassoi oscillano continuamente da alto (durante il riempimento) a basso (quando un nuovo bidone ostruisce la visuale del bidone pieno).

Con questa conoscenza, adottiamo la seguente strategia per contare il numero totale di vassoi di pollo:

  1. Mantieni due diversi contatori: locale e globale. Il contatore globale mantiene i vassoi totali smistati e il contatore locale memorizza il numero massimo di vassoi inseriti in un nuovo scomparto.
  2. Aggiorna il contatore locale quando i nuovi vassoi vengono inseriti nel cestino.
  3. Rileva un nuovo evento bin nei seguenti modi:
    1. Il conteggio dei vassoi in un dato frame va a zero. (o)
    2. Il flusso di numeri del vassoio nell'ultimo n i fotogrammi cadono continuamente.
  4. Una volta rilevato il nuovo evento bin, aggiungere il valore del contatore locale al contatore globale.
  5. Azzerare il contatore locale.

Abbiamo testato questo algoritmo su diverse ore di video e ottenuto risultati coerenti.

Addestrare un modello di rilevamento degli oggetti con Amazon SageMaker

Creazione set di dati:

Acquisizione di nuove immagini per l'etichettatura dei lavori

Acquisizione di nuove immagini per l'etichettatura dei lavori

Abbiamo raccolto campioni di immagini dalla linea di confezionamento utilizzando AWS Panorama Appliance. Lo script per elaborare le immagini e salvarle è stato impacchettato come applicazione e distribuito su AWS Panorama. L'applicazione raccoglie i fotogrammi video da una telecamera in loco installata vicino alla zona di confezionamento e li salva a intervalli di 60 secondi in un Amazon S3 benna; questo impedisce di catturare immagini simili nella sequenza video che si trovano a pochi secondi di distanza l'una dall'altra. Mascheriamo anche le regioni adiacenti nell'immagine che non sono rilevanti per il caso d'uso.

Abbiamo etichettato i vassoi di pollo con delle scatole di delimitazione Amazon SageMaker verità di base lavoro di etichettatura in streaming. Abbiamo anche impostato una notifica di evento Amazon S3 che pubblica eventi creati dagli oggetti a un Servizio di notifica semplice Amazon (SNS), che funge da origine di input per il processo di etichettatura. Quando lo script dell'applicazione AWS Panorama salva un'immagine in un bucket S3, viene pubblicata una notifica di evento nell'argomento SNS, che quindi invia questa immagine al processo di etichettatura. Poiché gli annotatori etichettano ogni immagine in arrivo, Ground Truth salva le etichette in un file manifest, che contiene il percorso S3 dell'immagine e le coordinate dei riquadri di delimitazione del vassoio di pollo.

Eseguiamo diversi aumenti di dati (ad esempio: rumore casuale, contrasto e luminosità casuali, riproduzione casuale dei canali) sulle immagini etichettate per rendere il modello resistente alle variazioni nella vita reale. Le immagini originali e aumentate sono state combinate per formare un set di dati unificato.

Formazione modello:

Una volta completato il lavoro di etichettatura, attiviamo manualmente un AWS Lambda funzione. Questa funzione Lambda raggruppa le immagini e le relative etichette dal manifest di output in un file File LST. I nostri file di formazione e test contenevano immagini raccolte da diverse linee di confezionamento per prevenire qualsiasi perdita di dati durante la valutazione. La funzione Lambda quindi attiva un processo di addestramento Amazon SageMaker.

Usiamo Modalità script SageMaker, che ti consente di portare i tuoi algoritmi di addestramento e addestrare direttamente i modelli rimanendo all'interno dei confini di facile utilizzo di Amazon SageMaker. Formiamo modelli come SSD, Yolo-v3 (per latenza di inferenza in tempo reale) con varie combinazioni di reti backbone da Zoo modello GluonCV per il rilevamento di oggetti in modalità script. Le reti neurali hanno la tendenza a sovradimensionare i dati di addestramento, portando a scarsi risultati fuori campione. GluonCV fornisce la normalizzazione e l'aumento dell'immagine, come capovolgimento e ritaglio randomizzati delle immagini, per ridurre l'overfitting durante l'allenamento. Il codice di addestramento del modello è containerizzato e utilizza l'immagine Docker nel nostro AWS Elastic Container Registry. Il lavoro di addestramento prende la cartella dell'immagine S3 e i percorsi dei file LST come input e salva il miglior artefatto del modello (.parametri ed .json) a S3 al termine.

Pipeline di valutazione del modello

Pipeline di valutazione del modello

I primi 2 modelli basati sul nostro set di test erano SSD-resnet50 ed Yolov3-darketnet53, con un punteggio mAP di 0.91 ciascuno. Abbiamo anche eseguito test nel mondo reale distribuendo un'applicazione di inferenza sul dispositivo AWS Panorama insieme al modello addestrato. Lo script di inferenza salva le previsioni e i fotogrammi video in un bucket Amazon S3. Abbiamo creato un altro lavoro SageMaker Ground Truth per annotare la verità di base e quindi eseguito un'ulteriore valutazione quantitativa del modello. La verità di base e le etichette del riquadro di delimitazione previsto sulle immagini sono state salvate in S3 per la valutazione qualitativa. I modelli sono stati in grado di generalizzare sui dati del mondo reale e hanno prodotto prestazioni coerenti simili a quelle del nostro set di test.

Puoi trovare esempi completi end-to-end di creazione di job di addestramento personalizzati, addestramento di modelli di rilevamento di oggetti all'avanguardia, implementazione di Hyperparameter Optimization (HPO) e distribuzione di modelli su Amazon SageMaker su Amazon SageMaker Repo GitHub di AWS Labs.

Distribuzione dell'applicazione per il conteggio dei vassoi di carne

Architettura di produzione

Architettura di produzione

Prima della distribuzione, confezioniamo tutte le nostre risorse: modello, script di inferenza, telecamera e configurazione delle variabili globali in un unico contenitore, come menzionato in questo post del blog. La nostra pipeline di integrazione continua e distribuzione continua (CI/CD) aggiorna qualsiasi modifica nello script di inferenza come una nuova versione dell'applicazione. Una volta pubblicata la nuova versione dell'applicazione, la distribuiamo a livello di codice utilizzando boto3 SDK in Python.

Al momento della distribuzione dell'applicazione, AWS Panorama crea prima un processo di compilazione AWS SageMaker Neo per compilare il modello per il dispositivo AWS Panorama. Lo script dell'applicazione di inferenza importa il modello compilato sul dispositivo ed esegue il rilevamento del vassoio di pollo ad ogni frame. Oltre a SageMaker Neo-Compilation, abbiamo abilitato la quantizzazione post-allenamento aggiungendo a os.environ['TVM_TENSORRT_USE_FP16'] = '1' flag nello script. Ciò riduce le dimensioni dei pesi del modello da float 32 a float 16, diminuendo la dimensione del modello della metà e migliorando la latenza senza degrado delle prestazioni. I risultati dell'inferenza vengono acquisiti Monitoraggio di AWS SiteWise tramite messaggi MQTT dal dispositivo AWS Panorama tramite Nucleo AWS IoT. I risultati vengono quindi inviati ad Amazon S3 e visualizzati in Amazon QuickSight Cruscotti. I direttori di stabilimento e i dipendenti possono visualizzare direttamente questi dashboard per comprendere la produttività di ogni linea di confezionamento in tempo reale.

Conclusione

Combinando il servizio AWS Cloud come Amazon SageMaker, Amazon S3 e un servizio edge come AWS Panorama, Tyson Foods Inc. sta infondendo l'intelligenza artificiale per automatizzare i processi industriali ad alta intensità umana come il conteggio dell'inventario nei suoi impianti di produzione. Le capacità di inferenza edge in tempo reale consentono a Tyson di identificare la produzione in eccesso o in difetto e di regolare dinamicamente il flusso di produzione per massimizzare l'efficienza. Inoltre, possedendo il dispositivo AWS Panorama all'edge, Tyson è anche in grado di risparmiare sui costi associati alla costosa larghezza di banda di rete per trasferire i file video sul cloud e ora può elaborare tutte le risorse video/immagine localmente nella propria rete.

Questo post del blog fornisce una panoramica dell'applicazione perimetrale end-end e architetture di riferimento per lo sviluppo di un'applicazione CV con AWS Panorama. Abbiamo discusso 3 diversi aspetti della creazione di un'applicazione CV edge.

  1. Dati: raccolta, elaborazione ed etichettatura dei dati tramite AWS Panorama e Amazon SageMaker Ground Truth.
  2. Modello: Formazione e valutazione del modello utilizzando Amazon SageMaker e AWS Lambda
  3. Pacchetto applicativo: raggruppamento di modelli, script e file di configurazione addestrati per AWS Panorama.

Resta sintonizzato per la seconda parte di questa serie su come Tyson utilizza AWS Panorama per la manutenzione predittiva basata su CV di macchine industriali.

Clicchi qui per iniziare il tuo viaggio con AWS Panorama. Per ulteriori informazioni sulla collaborazione con ML Solutions Lab, vedere Lab di Amazon Machine Learning Solutions.


Informazioni sugli autori

Divya Bhargavi è un data scientist presso il Laboratorio di soluzioni Amazon ML dove lavora con clienti in vari verticali e applica soluzioni creative di problem solving per generare valore per i clienti con soluzioni ML/AI all'avanguardia.

Dilip Subramaniam è un Senior Developer con il team Emerging Technologies di Tyson Foods. È appassionato di creazione di applicazioni distribuite su larga scala per risolvere problemi aziendali e semplificare i processi utilizzando le sue conoscenze in sviluppo software, machine learning e big data.

Fonte: https://aws.amazon.com/blogs/machine-learning/industrial-automation-at-tyson-with-computer-vision-aws-panorama-and-amazon-sagemaker/

Timestamp:

Di più da Blog di apprendimento automatico AWS