Industriell automatisering hos Tyson med datasyn, AWS Panorama og Amazon SageMaker

Kilde node: 1575225

Dette er den første i en todelt bloggserie om hvordan Tyson Foods, Inc., bruker Amazon SageMaker og AWS Panorama til å automatisere industrielle prosesser ved kjøttpakkeriene deres ved å bringe fordelene med kunstig intelligens-applikasjoner på kanten. I del én diskuterer vi en varetellingsapplikasjon for pakkelinjer. I del to diskuterer vi en synsbasert anomalideteksjonsløsning på kanten for prediktivt vedlikehold av industrielt utstyr.

Som en av de største foredlere og markedsførere av kylling, storfekjøtt og svinekjøtt i verden, Tyson Foods, Inc., er kjent for å bringe innovative løsninger til sine produksjons- og pakkeanlegg. I februar 2020, Tyson annonsert sin plan om å bringe Computer Vision (CV) til sine kyllingplanter og lanserte en pilot med AWS for å banebrytende innsats for lagerstyring. Tyson samarbeidet med Amazon ML Solutions Lab å lage en toppmoderne CV-løsning for telling av kyllingbrett som gir sanntidsinnsikt i pakkede lagernivåer. I dette innlegget gir vi en oversikt over AWS-arkitekturen og en fullstendig gjennomgang av løsningen for å demonstrere nøkkelkomponentene i bretttellingsrørledningen som er satt opp ved Tysons anlegg. Vi vil fokusere på datainnsamling og merking, opplæring og distribusjon av CV-modeller på kanten ved hjelp av Amazon SageMaker, Apache MXNet Gluonog AWS Panorama.

Driftsdyktighet er en nøkkelprioritet hos Tyson Foods. Tyson bruker strenge kvalitetssikringstiltak (QA) i sine emballasjelinjer, og sikrer at bare de pakkede produktene som passerer deres kvalitetskontrollprotokoller blir sendt til kundene. For å møte kundenes etterspørsel og ligge i forkant av ethvert produksjonsproblem, overvåker Tyson nøye antall pakket kyllingbrett. Nåværende manuelle teknikker for å telle kyllingbrett som består QA er imidlertid ikke nøyaktige og gir ikke et klart bilde av over/under produksjonsnivåer. Alternative strategier som å overvåke timebasert totalvekt av produksjon per stativ gir ikke umiddelbar tilbakemelding til anleggets ansatte. Med en behandlingskapasitet for kylling på 45,000,000 XNUMX XNUMX hode per uke, er produksjonsnøyaktighet og effektivitet avgjørende for Tysons virksomhet. CV kan effektivt brukes i slike scenarier for å nøyaktig estimere mengden kylling som behandles i sanntid, og gir ansatte mulighet til å identifisere potensielle flaskehalser i emballasje og produksjonslinjer etter hvert som de oppstår. Dette muliggjør implementering av korrigerende tiltak og forbedrer produksjonseffektiviteten.

Streaming og prosessering av videostrømmer på stedet i skyen for CV-applikasjoner krever høy nettverksbåndbredde og klargjøring av relevant infrastruktur. Dette kan være en uoverkommelig oppgave. AWS Panorama fjerner disse kravene og gjør det mulig for Tyson å behandle videostrømmer på kanten på AWS Panorama Appliance. Det reduserer ventetiden til/fra skyen og båndbreddekostnadene, samtidig som det gir et brukervennlig grensesnitt for å administrere enheter og applikasjoner på kanten.

Objektdeteksjon er en av de mest brukte CV-algoritmene som kan lokalisere posisjonen til objekter i bilder og videoer. Denne teknologien brukes for tiden i ulike virkelige applikasjoner som fotgjengerspotting i autonome kjøretøy, oppdage svulster i medisinske skanninger, folk som teller systemer for å overvåke fotgjenger i butikklokaler, blant annet. Det er også avgjørende for brukstilfeller for lagerstyring, som for eksempel telling av kjøttbrett for Tyson, å redusere avfall ved å lage en tilbakemeldingssløyfe med produksjonsprosesser, kostnadsbesparelser og levering av kundeforsendelser i tide.

De følgende delene av dette blogginnlegget skisserer hvordan vi bruker live-stream-videoer fra en av Tyson Foods-fabrikkene for å trene en objektdeteksjonsmodell ved hjelp av Amazon SageMaker. Deretter distribuerer vi den i kanten med AWS Panorama-enheten.

AWS Panorama

AWS Panorama er en maskinlæringsenhet (ML) som lar organisasjoner bringe CV til lokale kameraer for å lage spådommer lokalt med høy nøyaktighet og lav ventetid. AWS Panorama Appliance er en maskinvareenhet som lar deg kjøre applikasjoner som bruker ML til å samle inn data fra videostrømmer, sende ut video med tekst og grafiske overlegg og samhandle med andre AWS-tjenester. Enheten kan kjøre flere CV-modeller mot flere videostrømmer parallelt og sende ut resultatene i sanntid. Den er designet for bruk i kommersielle og industrielle omgivelser.

AWS Panorama Appliance lar deg kjøre selvstendige CV-applikasjoner på kanten, uten å sende bilder til AWS Cloud. Du kan også bruke AWS SDK på AWS Panorama Appliance for å integrere med andre AWS-tjenester og bruke dem til å spore data fra applikasjonen over tid. For å bygge og distribuere applikasjoner bruker du AWS Panorama Application CLI. CLI er et kommandolinjeverktøy som genererer standard applikasjonsmapper og konfigurasjonsfiler, bygger containere med Docker og laster opp eiendeler.

AWS Panorama støtter modeller bygget med Apache MX Nett, mørkt nett, GluonCV, Keras, ONNX, PyTorch, tensorflowog TensorFlow Lite. Referere til denne blogginnlegg for å lære mer om å bygge applikasjoner på AWS Panorama. Under distribusjonsprosessen tar AWS Panorama seg av å kompilere modellen som er spesifikk for kantplattformen Amazon SageMaker Neo-samling. Resultatene kan rutes til AWS-tjenester som Amazon S3, Amazon CloudWatch eller integrert med lokale forretningsapplikasjoner. Implementeringsloggene lagres i Amazon CloudWatch.

For å spore enhver endring i inferensskriptlogikk eller trent modell, kan man lage en ny versjon av applikasjonen. Applikasjonsversjoner er uforanderlige øyeblikksbilder av en applikasjons konfigurasjon. AWS Panorama lagrer tidligere versjoner av applikasjonene dine slik at du kan rulle tilbake oppdateringer som ikke lykkes, eller kjøre forskjellige versjoner på forskjellige apparater.

For mer informasjon, se AWS Panorama-side. For å lære mer om å bygge eksempelapplikasjoner, se AWS Panorama-eksempler.

Tilnærming

En anleggsansatt fyller kontinuerlig inn pakkede kyllingbrett i plastbøtter og stabler dem over tid, som vist i forrige figur. Vi ønsker å kunne detektere og telle det totale antallet skuffer på tvers av alle hyllene som er stablet vertikalt.

En trent objektdeteksjonsmodell kan forutsi avgrensende bokser for alle skuffene plassert i en søppelkasse ved hver videoramme. Dette kan brukes til å måle brettantall i en søppelkasse ved et gitt tilfelle. Vi vet også at det til enhver tid kun fylles én søppel med pakkede brett; brettet teller kontinuerlig svinger fra høy (under fylling) til lav (når en ny søppelkasse hindrer sikten til fylt søppel).

Med denne kunnskapen bruker vi følgende strategi for å telle totalt antall kyllingbrett:

  1. Oppretthold to forskjellige tellere – lokale og globale. Global teller opprettholder det totale antallet skuffer som er kassert, og den lokale telleren lagrer maksimalt antall skuffer plassert i en ny søppel.
  2. Oppdater den lokale telleren etter hvert som nye skuffer legges i beholderen.
  3. Oppdag en ny bin-hendelse på følgende måter:
    1. Antall brett i en gitt ramme går til null. (eller)
    2. Strømmen av brettnummer i den siste n rammer faller kontinuerlig.
  4. Når den nye bin-hendelsen er oppdaget, legg til den lokale tellerverdien til den globale telleren.
  5. Tilbakestill den lokale telleren til null.

Vi testet denne algoritmen på flere timer med video og fikk konsistente resultater.

Trening av en objektdeteksjonsmodell med Amazon SageMaker

Oppretting av datasett:

Ta nye bilder for merkejobber

Ta nye bilder for merkejobber

Vi samlet inn bildeprøver fra pakkelinjen ved å bruke AWS Panorama Appliance. Skriptet for å behandle bilder og lagre dem ble pakket som en applikasjon og distribuert på AWS Panorama. Applikasjonen samler videobilder fra et lokalt kamera satt opp nær pakkesonen og lagrer dem med 60 sekunders mellomrom til en Amazon S3 bøtte; dette forhindrer opptak av lignende bilder i videosekvensen med noen få sekunders mellomrom. Vi maskerer også tilstøtende områder i bildet som ikke er relevante for brukssaken.

Vi merket kyllingbrettene med avgrensningsbokser ved hjelp av Amazon SageMaker Ground Truth's streaming merkejobb. Vi setter også opp en Amazon S3 Event-varsling som publiseres objektskapte hendelser til en Amazon enkel varslingstjeneste (SNS)-emne, som fungerer som inndatakilde for merkejobben. Når AWS Panorama-applikasjonsskriptet lagrer et bilde i en S3-bøtte, publiseres en hendelsesvarsling til SNS-emnet, som deretter sender dette bildet til merkejobben. Ettersom kommentatorene merker hvert innkommende bilde, lagrer Ground Truth etikettene i en manifestfil, som inneholder S3-banen til bildet samt koordinatene til avgrensningsboksene for kyllingbrett.

Vi utfører flere dataforsterkninger (for eksempel: tilfeldig støy, tilfeldig kontrast og lysstyrke, kanalblanding) på de merkede bildene for å gjøre modellen robust overfor variasjoner i det virkelige liv. De originale og utvidede bildene ble kombinert for å danne et enhetlig datasett.

Modellopplæring:

Når merkejobben er fullført, utløser vi manuelt en AWS Lambda funksjon. Denne Lambda-funksjonen samler bilder og deres tilsvarende etiketter fra utdatamanifestet til en LST-fil. Våre opplærings- og testfiler hadde bilder samlet inn fra forskjellige pakkelinjer for å forhindre datalekkasje i evalueringen. Lambda-funksjonen utløser deretter en Amazon SageMaker-treningsjobb.

Vi bruker SageMaker skriptmodus, som lar deg ta med dine egne treningsalgoritmer og trene modeller direkte mens du holder deg innenfor de brukervennlige rammene til Amazon SageMaker. Vi trener modeller som SSD, Yolo-v3 (for sanntids inferenslatens) med ulike ryggradsnettverkskombinasjoner fra GluonCV Model Zoo for gjenstandsdeteksjon i script-modus. Nevrale nettverk har en tendens til å overopprette treningsdata, noe som fører til dårlige resultater utenom prøven. GluonCV gir bildenormalisering og bildeforstørrelser, for eksempel randomisert bildeflipping og beskjæring, for å redusere overtilpasning under trening. De modell treningskode er containerisert og bruker Docker-bildet i vårt AWS Elastic Container Registry. Opplæringsjobben tar S3-bildemappen og LST-filbanene som innganger og lagrer den beste modellartefakten (.params og .json) til S3 ved ferdigstillelse.

Model Evaluering Pipeline

Model Evaluering Pipeline

Topp 2-modellene basert på vårt testsett var SSD-resnet50 og Yolov3-darketnet53, med en mAP-score på 0.91 hver. Vi utførte også tester i den virkelige verden ved å distribuere en slutningsapplikasjon på AWS Panorama-enheten sammen med den trente modellen. Inferensskriptet lagrer spådommene og videorammer i en Amazon S3-bøtte. Vi opprettet en annen SageMaker Ground Truth-jobb for å kommentere grunnsannhet og utførte deretter ytterligere kvantitativ modellevaluering. Grunnsannheten og forutsagte markeringsboksetiketter på bilder ble lagret i S3 for kvalitativ evaluering. Modellene var i stand til å generalisere på de virkelige dataene og ga konsistent ytelse som ligner på testsettet vårt.

Du kan finne fullstendige, ende-til-ende-eksempler på å lage tilpassede opplæringsjobber, trene toppmoderne objektdeteksjonsmodeller, implementere Hyperparameter Optimization (HPO) og modelldistribusjon på Amazon SageMaker på AWS Labs GitHub repo.

Utplassering av applikasjon for telling av kjøttbrett

Produksjonsarkitektur

Produksjonsarkitektur

Før distribusjon pakker vi alle ressursene våre – modell, slutningsskript, kamera og global variabelkonfigurasjon i én enkelt beholder som nevnt i dette blogginnlegget. Vår kontinuerlige integrering og kontinuerlige distribusjon (CI/CD)-pipeline oppdaterer enhver endring i slutningsskriptet som en ny applikasjonsversjon. Når den nye applikasjonsversjonen er publisert, distribuerer vi den programmatisk ved hjelp av boto3 SDK i Python.

Ved applikasjonsdistribusjon oppretter AWS Panorama først en AWS SageMaker Neo Compilation-jobb for å kompilere modellen for AWS Panorama-enheten. Inferensapplikasjonsskriptet importerer den kompilerte modellen på enheten og utfører kyllingbrettdeteksjon ved hver ramme. I tillegg til SageMaker Neo-Compilation, aktiverte vi kvantisering etter trening ved å legge til en os.environ['TVM_TENSORRT_USE_FP16'] = '1' flagg i manuset. Dette reduserer størrelsen på modellvekter fra float 32 til float 16, reduserer modellstørrelsen med det halve og forbedrer ventetiden uten forringelse av ytelsen. Konklusjonsresultatene fanges inn AWS SiteWise Monitor gjennom MQTT-meldinger fra AWS Panorama-enheten via AWS IoT-kjerne. Resultatene blir deretter skjøvet til Amazon S3 og visualisert inn Amazon QuickSight Dashboards. Fabrikkledere og ansatte kan se disse dashbordene direkte for å forstå gjennomstrømmingen til hver pakkelinje i sanntid.

konklusjonen

Ved å kombinere AWS Cloud-tjenester som Amazon SageMaker, Amazon S3 og edge-tjenester som AWS Panorama, tilfører Tyson Foods Inc. kunstig intelligens for å automatisere menneskeintensive industrielle prosesser som lagertelling i sine produksjonsanlegg. Sanntids kantslutningsevner gjør det mulig for Tyson å identifisere over-/underproduksjon og dynamisk justere produksjonsflyten for å maksimere effektiviteten. Videre, ved å eie AWS Panorama-enheten på kanten, kan Tyson også spare kostnader forbundet med dyr nettverksbåndbredde for å overføre videofiler til skyen og kan nå behandle alle sine video-/bilderessurser lokalt i nettverket.

Dette blogginnlegget gir deg en ende-kant-applikasjonsoversikt og referansearkitekturer for utvikling av en CV-applikasjon med AWS Panorama. Vi diskuterte 3 forskjellige aspekter ved å bygge en CV-søknad.

  1. Data: Datainnsamling, prosessering og merking ved hjelp av AWS Panorama og Amazon SageMaker Ground Truth.
  2. Modell: Modelltrening og evaluering ved bruk av Amazon SageMaker og AWS Lambda
  3. Søknadspakke: Bunting av opplært modell, skript og konfigurasjonsfiler for AWS Panorama.

Følg med på del to av denne serien om hvordan Tyson bruker AWS Panorama for CV-basert prediktivt vedlikehold av industrielle maskiner.

Klikk her. for å starte reisen med AWS Panorama. For å lære mer om å samarbeide med ML Solutions Lab, se Amazon Machine Learning Solutions Lab.


Om forfatterne

Divya Bhargavi er dataforsker ved Amazon ML Solutions Lab hvor hun jobber med kunder på tvers av ulike vertikaler og bruker kreativ problemløsning for å generere verdi for kunder med toppmoderne ML/AI-løsninger.

Dilip Subramaniam er seniorutvikler med Emerging Technologies-teamet hos Tyson Foods. Han brenner for å bygge distribuerte applikasjoner i stor skala for å løse forretningsproblemer og forenkle prosesser ved å bruke sin kunnskap innen programvareutvikling, 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/

Tidstempel:

Mer fra AWS maskinlæringsblogg