Industriell automation hos Tyson med datorvision, AWS Panorama och Amazon SageMaker

Källnod: 1575225

Detta är den första i en tvådelad bloggserie om hur Tyson Foods, Inc., använder Amazon SageMaker och AWS Panorama för att automatisera industriella processer på sina köttförpackningsanläggningar genom att ta med fördelarna med artificiell intelligens-applikationer på kanten. I del ett diskuterar vi en lagerräkningsansökan för förpackningslinjer. I del två diskuterar vi en synbaserad lösning för avvikelsedetektering vid kanten för prediktivt underhåll av industriell utrustning.

Som en av de största förädlarna och marknadsförarna av kyckling, nötkött och fläsk i världen, Tyson Foods, Inc., är känt för att ta med innovativa lösningar till sina produktions- och förpackningsanläggningar. I februari 2020, Tyson meddelade sin plan att ta Computer Vision (CV) till sina kycklinganläggningar och lanserade en pilot med AWS för att banbryta ansträngningar för lagerhantering. Tyson samarbetade med Amazon ML Solutions Lab att skapa en toppmodern CV-lösning för kycklingbrickor som ger realtidsinsikter om packade lagernivåer. I det här inlägget ger vi en översikt över AWS-arkitekturen och en komplett genomgång av lösningen för att demonstrera nyckelkomponenterna i pipelinen för brickräkning som satts upp vid Tysons fabrik. Vi kommer att fokusera på datainsamling och märkning, utbildning och implementering av CV-modeller vid kanten med hjälp av Amazon SageMaker, Apache MXNet Gluonoch AWS Panorama.

Operationell excellens är en nyckelprioritet hos Tyson Foods. Tyson använder strikta kvalitetssäkringsåtgärder (QA) i sina förpackningslinjer, vilket säkerställer att endast de förpackade produkter som klarar deras kvalitetskontrollprotokoll skickas till sina kunder. För att möta kundernas efterfrågan och ligga steget före alla produktionsproblem övervakar Tyson noga antalet packade kycklingbrickor. Men nuvarande manuella tekniker för att räkna kycklingbrickor som klarar QA är inte korrekta och ger inte en tydlig bild av över-/underproduktionsnivåer. Alternativa strategier som övervakning av produktionens totalvikt per timme per ställ ger inte omedelbar feedback till fabrikens anställda. Med en bearbetningskapacitet för kyckling på 45,000,000 XNUMX XNUMX djur per vecka är produktionsnoggrannhet och effektivitet avgörande för Tysons verksamhet. CV kan effektivt användas i sådana scenarier för att noggrant uppskatta mängden kyckling som bearbetas i realtid, vilket ger anställda möjlighet att identifiera potentiella flaskhalsar i förpackningar och produktionslinjer när de uppstår. Detta möjliggör implementering av korrigerande åtgärder och förbättrar produktionseffektiviteten.

Streaming och bearbetning av videoströmmar på plats i molnet för CV-applikationer kräver hög nätverksbandbredd och tillhandahållande av relevant infrastruktur. Detta kan vara en kostnadskrävande uppgift. AWS Panorama tar bort dessa krav och gör det möjligt för Tyson att bearbeta videoströmmar i kanten på AWS Panorama Appliance. Det minskar latens till/från molnet och bandbreddskostnader, samtidigt som det ger ett lättanvänt gränssnitt för hantering av enheter och applikationer i kanten.

Objektdetektering är en av de mest använda CV-algoritmerna som kan lokalisera objekts position i bilder och videor. Denna teknik används för närvarande i olika verkliga tillämpningar som fotgängare i autonoma fordon, upptäcka tumörer i medicinska skanningar, människor som räknar system för att övervaka fotgängare i butiksutrymmen, bland annat. Det är också avgörande för användningsfall för lagerhantering, såsom räkning av köttbrickor för Tyson, att minska slöseriet genom att skapa en återkopplingsslinga med produktionsprocesser, kostnadsbesparingar och leverans av kundförsändelser i tid.

Följande avsnitt av det här blogginlägget beskriver hur vi använder livestreamade videor från en av Tyson Foods fabriker för att träna en objektdetekteringsmodell med Amazon SageMaker. Vi distribuerar den sedan i kanten med AWS Panorama-enheten.

AWS Panorama

AWS Panorama är ett maskininlärningsverktyg (ML) som tillåter organisationer att ta med CV till lokala kameror för att göra förutsägelser lokalt med hög noggrannhet och låg latens. AWS Panorama Appliance är en hårdvaruenhet som låter dig köra applikationer som använder ML för att samla in data från videoströmmar, mata ut video med text och grafiska överlagringar och interagera med andra AWS-tjänster. Apparaten kan köra flera CV-modeller mot flera videoströmmar parallellt och mata ut resultaten i realtid. Den är designad för användning i kommersiella och industriella miljöer.

AWS Panorama Appliance gör att du kan köra fristående CV-applikationer i kanten, utan att skicka bilder till AWS Cloud. Du kan också använda AWS SDK på AWS Panorama Appliance för att integrera med andra AWS-tjänster och använda dem för att spåra data från applikationen över tid. För att bygga och distribuera applikationer använder du AWS Panorama Application CLI. CLI är ett kommandoradsverktyg som genererar standardprogrammappar och konfigurationsfiler, bygger behållare med Docker och laddar upp tillgångar.

AWS Panorama stöder modeller byggda med Apache MX Net, mörkt nät, GluonCV, Keras, ONNX, PyTorch, TensorFlowoch TensorFlow Lite. Hänvisa till detta blogginlägg för att lära dig mer om att bygga applikationer på AWS Panorama. Under driftsättningsprocessen tar AWS Panorama hand om att kompilera modellen som är specifik för kantplattformen Amazon SageMaker Neo-kompilering. Resultaten kan dirigeras till AWS-tjänster som Amazon S3, Amazon CloudWatch eller integreras med lokala affärsapplikationer. Distributionsloggarna lagras i Amazon CloudWatch.

För att spåra någon förändring i inferensskriptlogik eller tränad modell kan man skapa en ny version av applikationen. Applikationsversioner är oföränderliga ögonblicksbilder av en applikations konfiguration. AWS Panorama sparar tidigare versioner av dina applikationer så att du kan återställa uppdateringar som inte är framgångsrika, eller köra olika versioner på olika apparater.

Mer information finns i AWS Panorama-sida. För att lära dig mer om att bygga exempelapplikationer, se AWS Panorama Samples.

Tillvägagångssätt

En anläggningsanställd fyller kontinuerligt i packade kycklingbrickor i plastkärl och staplar dem över tiden, som visas i föregående figur. Vi vill kunna upptäcka och räkna det totala antalet brickor över alla kärl staplade vertikalt.

En tränad objektdetekteringsmodell kan förutsäga begränsningsrutor för alla brickor som placeras i en papperskorg vid varje videobildruta. Detta kan användas för att mäta brickantalet i en papperskorg vid ett givet tillfälle. Vi vet också att vid varje tidpunkt fylls bara en behållare med packade brickor; brickantalet pendlar kontinuerligt från högt (under påfyllning) till lågt (när en ny behållare hindrar sikten på den fyllda behållaren).

Med denna kunskap antar vi följande strategi för att räkna totalt antal kycklingbrickor:

  1. Underhåll två olika diskar – lokala och globala. Den globala räknaren upprätthåller det totala antalet brickor i arkivet och den lokala räknaren lagrar maximalt antal brickor som placeras i en ny behållare.
  2. Uppdatera den lokala räknaren när nya brickor placeras i papperskorgen.
  3. Upptäck en ny bin-händelse på följande sätt:
    1. Antalet fack i en given ram går till noll. (eller)
    2. Strömmen av facknummer i den sista n ramar sjunker kontinuerligt.
  4. När den nya bin-händelsen har upptäckts, lägg till det lokala räknarvärdet till den globala räknaren.
  5. Återställ den lokala räknaren till noll.

Vi testade den här algoritmen på flera timmars video och fick konsekventa resultat.

Träna en objektdetekteringsmodell med Amazon SageMaker

Skapande av datamängder:

Fånga nya bilder för etikettjobb

Fånga nya bilder för etikettjobb

Vi samlade in bildprover från förpackningslinjen med hjälp av AWS Panorama Appliance. Skriptet för att bearbeta bilder och spara dem paketerades som ett program och distribuerades på AWS Panorama. Applikationen samlar in videorutor från en lokal kamera som är placerad nära förpackningszonen och sparar dem med 60 sekunders intervall till en Amazon S3 hink; detta förhindrar att liknande bilder tas i videosekvensen med några sekunders mellanrum. Vi maskerar också intilliggande områden i bilden som inte är relevanta för användningsfallet.

Vi märkte kycklingbrickorna med avgränsningslådor med hjälp av Amazon SageMaker Ground Truth's strömmande märkningsjobb. Vi ställer också in en Amazon S3 Event-avisering som publiceras objekt skapade händelser till en Amazon enkel meddelandetjänst (SNS) ämne, som fungerar som indatakälla för märkningsjobbet. När AWS Panorama-applikationsskriptet sparar en bild i en S3-bucket publiceras ett händelsemeddelande till SNS-ämnet, som sedan skickar denna bild till etikettjobbet. När kommentatorerna märker varje inkommande bild, sparar Ground Truth etiketterna i en manifestfil, som innehåller S3-sökvägen till bilden samt koordinater för avgränsningsrutor för kycklingbrickor.

Vi utför flera dataförstärkningar (till exempel: slumpmässigt brus, slumpmässig kontrast och ljusstyrka, kanalblandning) på de märkta bilderna för att göra modellen robust mot variationer i verkligheten. De ursprungliga och utökade bilderna kombinerades för att bilda en enhetlig datauppsättning.

Modellutbildning:

När märkningsjobbet är klart utlöser vi manuellt en AWS Lambda fungera. Denna Lambda-funktion buntar ihop bilder och deras motsvarande etiketter från utdatamanifestet till en LST-fil. Våra utbildnings- och testfiler hade bilder insamlade från olika förpackningslinjer för att förhindra eventuella dataläckor vid utvärdering. Lambdafunktionen utlöser sedan ett Amazon SageMaker-träningsjobb.

Vi använder SageMaker skriptläge, som låter dig ta med dina egna träningsalgoritmer och direkt träna modeller samtidigt som du håller dig inom Amazon SageMakers användarvänliga ramar. Vi tränar modeller som SSD, Yolo-v3 (för inferens latens i realtid) med olika stamnätskombinationer från GluonCV Model Zoo för objektdetektering i script-läge. Neurala nätverk har en tendens att överanpassa träningsdata, vilket leder till dåliga resultat utanför provet. GluonCV tillhandahåller bildnormalisering och bildförstärkningar, såsom randomiserad bildvändning och beskärning, för att hjälpa till att minska överanpassning under träning. De modell träningskod är containeriserad och använder Docker-bilden i vårt AWS Elastic Container Registry. Utbildningsjobbet tar S3-bildmappen och LST-filsökvägar som indata och sparar den bästa modellartefakten (.params och .json) till S3 efter färdigställandet.

Model Evaluation Pipeline

Model Evaluation Pipeline

Topp-2 modellerna baserade på vårt testset var SSD-resnet50 och Yolov3-darketnet53, med en mAP-poäng på 0.91 vardera. Vi utförde också tester i verkligheten genom att distribuera en slutledningsapplikation på AWS Panorama-enheten tillsammans med den tränade modellen. Slutledningsskriptet sparar förutsägelserna och videoramarna i en Amazon S3-hink. Vi skapade ytterligare ett SageMaker Ground Truth-jobb för att kommentera marksanning och utförde sedan ytterligare kvantitativ modellutvärdering. Grundsanningen och förutspådda begränsningsrutaetiketter på bilder sparades i S3 för kvalitativ utvärdering. Modellerna kunde generalisera på verkliga data och gav konsekvent prestanda liknande den i vårt testset.

Du kan hitta kompletta, heltäckande exempel på att skapa anpassade utbildningsjobb, träna toppmoderna objektdetekteringsmodeller, implementera Hyperparameter Optimization (HPO) och modelldistribution på Amazon SageMaker på AWS Labs GitHub repo.

Installera applikation för att räkna köttbrickor

Produktionsarkitektur

Produktionsarkitektur

Innan implementering paketerar vi alla våra tillgångar – modell, slutledningsskript, kamera och global variabelkonfiguration i en enda behållare som nämns i detta blogginlägg. Vår pipeline för kontinuerlig integration och kontinuerlig distribution (CI/CD) uppdaterar alla ändringar i slutledningsskriptet som en ny applikationsversion. När den nya applikationsversionen har publicerats distribuerar vi den programmatiskt med boto3 SDK i Python.

Vid applikationsdistribution skapar AWS Panorama först ett AWS SageMaker Neo Compilation-jobb för att kompilera modellen för AWS Panorama-enheten. Inferensapplikationsskriptet importerar den kompilerade modellen till enheten och utför kycklingbrickadetektering vid varje bildruta. Förutom SageMaker Neo-Compilation, aktiverade vi kvantisering efter träning genom att lägga till en os.environ['TVM_TENSORRT_USE_FP16'] = '1' flagga i manuset. Detta minskar storleken på modellvikterna från float 32 till float 16, minskar modellstorleken med hälften och förbättrar latensen utan försämring av prestanda. Slutledningsresultaten fångas in AWS SiteWise Monitor genom MQTT-meddelanden från AWS Panorama-enheten via AWS IoT-kärna. Resultaten skjuts sedan till Amazon S3 och visualiseras in Amazon QuickSight Instrumentbrädor. Anläggningscheferna och de anställda kan direkt se dessa instrumentpaneler för att förstå genomströmningen av varje förpackningslinje i realtid.

Slutsats

Genom att kombinera AWS Cloud-tjänster som Amazon SageMaker, Amazon S3 och edge-tjänster som AWS Panorama, tillför Tyson Foods Inc. artificiell intelligens för att automatisera mänskligt intensiva industriella processer som lagerräkning i sina tillverkningsanläggningar. Egenskaper för kantslutningar i realtid gör det möjligt för Tyson att identifiera över-/underproduktion och dynamiskt justera sitt produktionsflöde för att maximera effektiviteten. Dessutom, genom att äga AWS Panorama-enheten vid kanten, kan Tyson också spara kostnader förknippade med dyr nätverksbandbredd för att överföra videofiler till molnet och kan nu bearbeta alla sina video-/bildtillgångar lokalt i sitt nätverk.

Det här blogginlägget ger dig en översikt över applikationer i slutändan och referensarkitekturer för att utveckla en CV-applikation med AWS Panorama. Vi diskuterade tre olika aspekter av att bygga en CV-ansökan.

  1. Data: Datainsamling, bearbetning och märkning med AWS Panorama och Amazon SageMaker Ground Truth.
  2. Modell: Modellträning och utvärdering med Amazon SageMaker och AWS Lambda
  3. Applikationspaket: Samling av utbildad modell, skript och konfigurationsfiler för AWS Panorama.

Håll ögonen öppna för del två av den här serien om hur Tyson använder AWS Panorama för CV-baserat prediktivt underhåll av industrimaskiner.

Klicka här. för att börja din resa med AWS Panorama. För att lära dig mer om att samarbeta med ML Solutions Lab, se Amazon Machine Learning Solutions Lab.


Om författarna

Divya Bhargavi är datavetare vid Amazon ML Solutions Lab där hon arbetar med kunder över olika vertikaler och tillämpar kreativ problemlösning för att skapa värde för kunder med toppmoderna ML/AI-lösningar.

Dilip Subramaniam är seniorutvecklare med Emerging Technologies-teamet på Tyson Foods. Han brinner för att bygga storskaliga distribuerade applikationer för att lösa affärsproblem och förenkla processer med hjälp av sina kunskaper inom mjukvaruutveckling, maskininlärning och big data.

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

Tidsstämpel:

Mer från AWS-maskininlärningsblogg