Industriel automation hos Tyson med computervision, AWS Panorama og Amazon SageMaker

Kildeknude: 1575225

Dette er den første i en todelt blogserie om, hvordan Tyson Foods, Inc., bruger Amazon SageMaker og AWS Panorama til at automatisere industrielle processer på deres kødpakkerier ved at bringe fordelene ved kunstig intelligens-applikationer på kanten. I første del diskuterer vi en lageroptællingsansøgning for pakkelinjer. I del to diskuterer vi en synsbaseret anomalidetektionsløsning på kanten til forudsigelig vedligeholdelse af industrielt udstyr.

Som en af ​​de største forarbejdere og markedsførere af kylling, oksekød og svinekød i verden, Tyson Foods, Inc., er kendt for at bringe innovative løsninger til deres produktions- og pakkeanlæg. I februar 2020, Tyson annoncerede sin plan om at bringe Computer Vision (CV) til sine kyllingeplanter og lancerede et pilotprojekt med AWS for at pionere indsatsen for lagerstyring. Tyson samarbejdede med Amazon ML Solutions Lab at skabe en avanceret kyllingebakketæller CV-løsning, der giver realtidsindsigt i pakkede lagerniveauer. I dette indlæg giver vi et overblik over AWS-arkitekturen og en komplet gennemgang af løsningen for at demonstrere nøglekomponenterne i bakketællerpipelinen, der er opsat på Tysons fabrik. Vi vil fokusere på dataindsamling og mærkning, træning og implementering af CV-modeller på kanten ved hjælp af Amazon SageMaker, Apache MXNet Gluonog AWS Panorama.

Operationel ekspertise er en nøgleprioritet hos Tyson Foods. Tyson anvender strenge kvalitetssikringsforanstaltninger (QA) i deres pakkelinjer, der sikrer, at kun de emballerede produkter, der opfylder deres kvalitetskontrolprotokoller, sendes til sine kunder. For at imødekomme kundernes efterspørgsel og være på forkant med ethvert produktionsproblem, overvåger Tyson nøje antallet af pakkede kyllingebakker. De nuværende manuelle teknikker til at tælle kyllingebakker, der består QA, er dog ikke nøjagtige og giver ikke et klart billede af over-/underproduktionsniveauer. Alternative strategier såsom overvågning af den samlede timevægt af produktionen pr. stativ giver ikke øjeblikkelig feedback til fabrikkens medarbejdere. Med en kyllingeforarbejdningskapacitet på 45,000,000 dyr om ugen er produktionsnøjagtighed og effektivitet afgørende for Tysons forretning. CV kan effektivt bruges i sådanne scenarier til nøjagtigt at estimere mængden af ​​kylling, der behandles i realtid, hvilket giver medarbejderne mulighed for at identificere potentielle flaskehalse i emballage og produktionslinjer, efterhånden som de opstår. Dette muliggør implementering af korrigerende foranstaltninger og forbedrer produktionseffektiviteten.

Streaming og behandling af on-premise videostreams i skyen til CV-applikationer kræver høj netværksbåndbredde og levering af relevant infrastruktur. Dette kan være en omkostningskrævende opgave. AWS Panorama fjerner disse krav og gør det muligt for Tyson at behandle videostreams i kanten på AWS Panorama Appliance. Det reducerer latens til/fra skyen og båndbreddeomkostninger, samtidig med at det giver en brugervenlig grænseflade til styring af enheder og applikationer på kanten.

Objektdetektion er en af ​​de mest brugte CV-algoritmer, der kan lokalisere objekters position i billeder og videoer. Denne teknologi bliver i øjeblikket brugt i forskellige virkelige applikationer, såsom fodgængerspotting i autonome køretøjer, påvisning af tumorer i medicinske scanninger, mennesker, der tæller systemer til at overvåge fodfald i detailhandelsområder, blandt andet. Det er også afgørende for lagerstyringsbrug, såsom optælling af kødbakker for Tyson, at reducere spild ved at skabe en feedback-loop med produktionsprocesser, omkostningsbesparelser og levering af kundeforsendelser til tiden.

De følgende sektioner af dette blogindlæg skitserer, hvordan vi bruger live-stream-videoer fra en af ​​Tyson Foods-fabrikkerne til at træne en objektdetekteringsmodel ved hjælp af Amazon SageMaker. Vi implementerer det derefter i kanten med AWS Panorama-enheden.

AWS Panorama

AWS Panorama er en maskinlæringsanordning (ML), der giver organisationer mulighed for at bringe CV til on-premise kameraer for at lave forudsigelser lokalt med høj nøjagtighed og lav latenstid. AWS Panorama Appliance er en hardwareenhed, der giver dig mulighed for at køre applikationer, der bruger ML til at indsamle data fra videostreams, output video med tekst og grafiske overlejringer og interagere med andre AWS-tjenester. Apparatet kan køre flere CV-modeller mod flere videostreams parallelt og udsende resultaterne i realtid. Den er designet til brug i kommercielle og industrielle omgivelser.

AWS Panorama Appliance giver dig mulighed for at køre selvstændige CV-applikationer på kanten uden at sende billeder til AWS Cloud. Du kan også bruge AWS SDK på AWS Panorama Appliance til at integrere med andre AWS-tjenester og bruge dem til at spore data fra applikationen over tid. For at bygge og implementere applikationer bruger du AWS Panorama Application CLI. CLI er et kommandolinjeværktøj, der genererer standard applikationsmapper og konfigurationsfiler, bygger containere med Docker og uploader aktiver.

AWS Panorama understøtter modeller bygget med Apache MX Net, mørkt net, GluonCV, Keras, ONNX, PyTorch, TensorFlowog TensorFlow Lite. Henvise til denne blogindlæg for at lære mere om at bygge applikationer på AWS Panorama. Under implementeringsprocessen sørger AWS Panorama for at kompilere den model, der er specifik for edge-platformen igennem Amazon SageMaker Neo-kompilation. Inferensresultaterne kan dirigeres til AWS-tjenester såsom Amazon S3, Amazon CloudWatch eller integreres med on-premise line-of-business-applikationer. Implementeringslogfilerne gemmes i Amazon CloudWatch.

For at spore enhver ændring i inferens script logik eller trænet model, kan man oprette en ny version af applikationen. Applikationsversioner er uforanderlige snapshots af en applikations konfiguration. AWS Panorama gemmer tidligere versioner af dine applikationer, så du kan rulle opdateringer tilbage, der ikke lykkes, eller køre forskellige versioner på forskellige apparater.

For mere information, se AWS Panorama-side. For at lære mere om at bygge eksempler på applikationer, se AWS Panorama-prøver.

Tilgang

En fabriksmedarbejder fylder løbende pakkede kyllingebakker i plastikbeholdere og stabler dem over tid, som vist på den foregående figur. Vi ønsker at være i stand til at detektere og tælle det samlede antal bakker på tværs af alle de lodret stablede skraldespande.

En trænet objektdetekteringsmodel kan forudsige afgrænsningskasser for alle bakkerne, der er placeret i en bin ved hver videoramme. Dette kan bruges til at måle bakkeantal i en beholder i et givet tilfælde. Vi ved også, at der på et hvilket som helst tidspunkt kun fyldes én beholder med pakkede bakker; bakkens tæller svinger kontinuerligt fra høj (under påfyldning) til lav (når en ny beholder hindrer udsynet til den fyldte beholder).

Med denne viden anvender vi følgende strategi til at tælle det samlede antal kyllingebakker:

  1. Vedligehold to forskellige tællere – lokale og globale. Den globale tæller sørger for, at det samlede antal bakker opbevares, og den lokale tæller opbevarer det maksimale antal bakker, der er placeret i en ny beholder.
  2. Opdater den lokale tæller, efterhånden som nye bakker lægges i skraldespanden.
  3. Registrer en ny bin-hændelse på følgende måder:
    1. Bakkeantallet i en given ramme går til nul. (eller)
    2. Strømmen af ​​bakkenumre i den sidste n rammer falder kontinuerligt.
  4. Når den nye bin-hændelse er detekteret, skal du tilføje den lokale tællerværdi til den globale tæller.
  5. Nulstil den lokale tæller til nul.

Vi testede denne algoritme på flere timers video og fik ensartede resultater.

Træning af en objektdetekteringsmodel med Amazon SageMaker

Oprettelse af datasæt:

Optagelse af nye billeder til etiketteringsjob

Optagelse af nye billeder til etiketteringsjob

Vi indsamlede billedprøver fra emballagelinjen ved hjælp af AWS Panorama Appliance. Scriptet til at behandle billeder og gemme dem blev pakket som et program og implementeret på AWS Panorama. Applikationen indsamler videobilleder fra et lokalt kamera, der er sat op i nærheden af ​​pakkezonen og gemmer dem med 60 sekunders intervaller til en Amazon S3 spand; dette forhindrer optagelse af lignende billeder i videosekvensen med et par sekunders mellemrum. Vi maskerer også tilstødende områder i billedet, som ikke er relevante for brugssagen.

Vi mærkede kyllingebakkerne med afgrænsningskasser ved hjælp af Amazon SageMaker Ground Truth's streaming mærkningsjob. Vi har også oprettet en Amazon S3 Event-meddelelse, der udgiver objektskabte begivenheder til en Amazon Simple Notification Service (SNS)-emne, der fungerer som inputkilde for mærkningsjobbet. Når AWS Panorama-applikationsscriptet gemmer et billede i en S3-bøtte, udgives en hændelsesmeddelelse til SNS-emnet, som derefter sender dette billede til mærkningsjobbet. Efterhånden som annotatorerne mærker hvert indkommende billede, gemmer Ground Truth etiketterne i en manifestfil, som indeholder S3-stien til billedet samt koordinater for kyllingebakke-afgrænsningskasser.

Vi udfører adskillige dataforstørrelser (for eksempel: tilfældig støj, tilfældig kontrast og lysstyrke, kanal-shuffle) på de mærkede billeder for at gøre modellen robust over for variationer i det virkelige liv. De originale og udvidede billeder blev kombineret for at danne et samlet datasæt.

Modeltræning:

Når mærkningsjobbet er afsluttet, udløser vi manuelt en AWS Lambda fungere. Denne Lambda-funktion samler billeder og deres tilsvarende etiketter fra outputmanifestet til en LST fil. Vores trænings- og testfiler havde billeder indsamlet fra forskellige pakkelinjer for at forhindre enhver datalækage i evalueringen. Lambda-funktionen udløser derefter et Amazon SageMaker-træningsjob.

Vi anvender SageMaker Script-tilstand, som giver dig mulighed for at medbringe dine egne træningsalgoritmer og direkte træne modeller, mens du holder dig inden for Amazon SageMakers brugervenlige rammer. Vi træner modeller som SSD, Yolo-v3 (til real-time inferens latency) med forskellige backbone netværk kombinationer fra GluonCV Model Zoo til objektdetektion i script-tilstand. Neurale netværk har en tendens til at overfitte træningsdata, hvilket fører til dårlige resultater uden for prøven. GluonCV giver billednormalisering og billedforstørrelser, såsom randomiseret billedvending og beskæring, for at hjælpe med at reducere overtilpasning under træning. Det model træningskode er containeriseret og bruger Docker-billedet i vores AWS Elastic Container Registry. Træningsjobbet tager S3-billedmappen og LST-filstierne som input og gemmer den bedste modelartefakt (.params , .json) til S3 efter færdiggørelse.

Model Evaluering Pipeline

Model Evaluering Pipeline

Top-2 modeller baseret på vores testsæt var SSD-resnet50 , Yolov3-darketnet53, med en mAP-score på 0.91 hver. Vi udførte også test i den virkelige verden ved at implementere en inferensapplikation på AWS Panorama-enheden sammen med den trænede model. Inferensscriptet gemmer forudsigelserne og videoframes i en Amazon S3-bøtte. Vi oprettede endnu et SageMaker Ground Truth-job til at kommentere grundsandhed og udførte derefter yderligere kvantitativ modelevaluering. Grundsandheden og forudsagte afgrænsningsboksetiketter på billeder blev gemt i S3 til kvalitativ evaluering. Modellerne var i stand til at generalisere på data fra den virkelige verden og gav ensartet ydeevne svarende til vores testsæt.

Du kan finde komplette ende-til-ende-eksempler på oprettelse af tilpassede træningsjob, træning af avancerede objektdetekteringsmodeller, implementering af Hyperparameter Optimization (HPO) og modelimplementering på Amazon SageMaker på AWS Labs GitHub repo.

Implementering af applikation til tælling af kødbakker

Produktionsarkitektur

Produktionsarkitektur

Før implementering pakker vi alle vores aktiver – model, inferensscript, kamera og global variabelkonfiguration i en enkelt container som nævnt i dette blogindlæg. Vores pipeline for kontinuerlig integration og kontinuerlig udrulning (CI/CD) opdaterer enhver ændring i inferensscriptet som en ny applikationsversion. Når den nye applikationsversion er udgivet, implementerer vi den programmatisk ved hjælp af boto3 SDK i Python.

Efter applikationsimplementering opretter AWS Panorama først et AWS SageMaker Neo Compilation-job for at kompilere modellen til AWS Panorama-enheden. Inferensapplikationsscriptet importerer den kompilerede model på enheden og udfører kyllingebakkedetektion ved hver frame. Ud over SageMaker Neo-Compilation aktiverede vi kvantisering efter træning ved at tilføje en os.environ['TVM_TENSORRT_USE_FP16'] = '1' flag i scriptet. Dette reducerer størrelsen af ​​modelvægte fra float 32 til float 16, reducerer modelstørrelsen til det halve og forbedrer latenstiden uden forringelse af ydeevnen. Konklusionens resultater er fanget i AWS SiteWise Monitor gennem MQTT-meddelelser fra AWS Panorama-enheden via AWS IoT kerne. Resultaterne skubbes derefter til Amazon S3 og visualiseres ind Amazon QuickSight Dashboards. Fabrikkens ledere og medarbejdere kan direkte se disse dashboards for at forstå gennemløbet af hver pakkelinje i realtid.

Konklusion

Ved at kombinere AWS Cloud-service som Amazon SageMaker, Amazon S3 og edge-service som AWS Panorama tilfører Tyson Foods Inc. kunstig intelligens til at automatisere menneskeintensive industrielle processer som lageroptælling i sine produktionsanlæg. Egenskaber til kantslutning i realtid gør det muligt for Tyson at identificere over-/underproduktion og dynamisk justere deres produktionsflow for at maksimere effektiviteten. Ydermere, ved at eje AWS Panorama-enheden på kanten, er Tyson også i stand til at spare omkostninger forbundet med dyr netværksbåndbredde til at overføre videofiler til skyen og kan nu behandle alle deres video-/billedaktiver lokalt i deres netværk.

Dette blogindlæg giver dig en end-end edge ansøgningsoversigt og referencearkitekturer til udvikling af en CV ansøgning med AWS Panorama. Vi diskuterede 3 forskellige aspekter af opbygningen af ​​en edge CV-ansøgning.

  1. data: Dataindsamling, -behandling og -mærkning ved hjælp af AWS Panorama og Amazon SageMaker Ground Truth.
  2. Model: Modeltræning og evaluering ved hjælp af Amazon SageMaker og AWS Lambda
  3. Anvendelsespakke: Samling af trænet model, scripts og konfigurationsfiler til AWS Panorama.

Følg med i del to af denne serie om, hvordan Tyson bruger AWS Panorama til CV-baseret forudsigelig vedligeholdelse af industrielle maskiner.

Klik link. for at starte din rejse med AWS Panorama. For at lære mere om at samarbejde med ML Solutions Lab, se Amazon Machine Learning Solutions Lab.


Om forfatterne

Divya Bhargavi er data scientist ved Amazon ML Solutions Lab hvor hun arbejder med kunder på tværs af forskellige vertikaler og anvender kreativ problemløsning til at skabe værdi for kunder med state-of-the-art ML/AI-løsninger.

Dilip Subramaniam er seniorudvikler hos Emerging Technologies-teamet hos Tyson Foods. Han brænder for at bygge store distribuerede applikationer til at løse forretningsproblemer og forenkle processer ved hjælp af sin viden inden for softwareudvikling, maskinlæring og big data.

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

Tidsstempel:

Mere fra AWS Machine Learning Blog