Industriële automatisering bij Tyson met computer vision, AWS Panorama en Amazon SageMaker

Bronknooppunt: 1575225

Dit is de eerste in een tweedelige blogserie over hoe Tyson Foods, Inc. Amazon SageMaker en AWS Panorama gebruikt om industriële processen in hun vleesverpakkingsfabrieken te automatiseren door de voordelen van kunstmatige-intelligentietoepassingen naar de rand te brengen. In deel één bespreken we een inventarisatietoepassing voor verpakkingslijnen. In deel twee bespreken we een op visie gebaseerde anomaliedetectieoplossing aan de rand voor voorspellend onderhoud van industriële apparatuur.

Als een van de grootste verwerkers en verkopers van kip, rundvlees en varkensvlees ter wereld, Tyson Foods, Inc., staat bekend om het brengen van innovatieve oplossingen voor hun productie- en verpakkingsfabrieken. In februari 2020, Tyson aangekondigd haar plan om Computer Vision (CV) naar haar kippenfabrieken te brengen en lanceerde een pilot met AWS om baanbrekend werk te doen op het gebied van voorraadbeheer. Tyson werkte samen met Amazon ML Solutions-lab om een ​​ultramoderne CV-oplossing voor het tellen van kippentrays te creëren die realtime inzicht biedt in verpakte voorraadniveaus. In dit bericht geven we een overzicht van de AWS-architectuur en een volledige doorloop van de oplossing om de belangrijkste componenten te demonstreren in de traytelpijplijn die is opgezet in de fabriek van Tyson. We zullen ons concentreren op het verzamelen en labelen van gegevens, training en implementatie van CV-modellen aan de rand met behulp van Amazon Sage Maker, Apache MXNet Gluon en AWS-panorama.

Operationele uitmuntendheid is een topprioriteit bij Tyson Foods. Tyson past strikte maatregelen voor kwaliteitsborging (QA) toe in hun verpakkingslijnen, zodat alleen die verpakte producten die voldoen aan hun kwaliteitscontroleprotocollen naar zijn klanten worden verzonden. Om aan de vraag van de klant te voldoen en productieproblemen voor te blijven, houdt Tyson het aantal verpakte kippentrays nauwlettend in de gaten. De huidige handmatige technieken om kippentrays te tellen die QA passeren, zijn echter niet nauwkeurig en geven geen duidelijk beeld van over-/onderproductieniveaus. Alternatieve strategieën, zoals het bewaken van het totale productiegewicht per uur per rek, geven de fabrieksmedewerkers geen onmiddellijke feedback. Met een verwerkingscapaciteit voor kippen van 45,000,000 stuks per week zijn de nauwkeurigheid en efficiëntie van de productie van cruciaal belang voor de activiteiten van Tyson. CV kan in dergelijke scenario's effectief worden gebruikt om de hoeveelheid verwerkte kip in realtime nauwkeurig te schatten, waardoor werknemers potentiële knelpunten in verpakkings- en productielijnen kunnen identificeren zodra ze zich voordoen. Dit maakt de implementatie van corrigerende maatregelen mogelijk en verbetert de productie-efficiëntie.

Voor het streamen en verwerken van on-premise videostreams in de cloud voor CV-toepassingen is een hoge netwerkbandbreedte en het beschikbaar stellen van relevante infrastructuur vereist. Dit kan een onbetaalbare taak zijn. AWS Panorama verwijdert deze vereisten en stelt Tyson in staat videostreams aan de rand op de AWS Panorama Appliance te verwerken. Het vermindert latentie van/naar de cloud en bandbreedtekosten, terwijl het een gebruiksvriendelijke interface biedt voor het beheren van apparaten en applicaties aan de rand.

Objectdetectie is een van de meest gebruikte CV-algoritmen die de positie van objecten in afbeeldingen en video's kunnen lokaliseren. Deze technologie wordt momenteel gebruikt in verschillende real-life toepassingen, zoals het spotten van voetgangers in autonome voertuigen, het detecteren van tumoren in medische scans, mensentelsystemen om voetstappen in winkelruimtes te monitoren, onder andere. Het is ook van cruciaal belang voor gebruiksscenario's voor voorraadbeheer, zoals het tellen van vleestrays voor Tyson, om afval te verminderen door een feedbacklus te creëren met productieprocessen, kostenbesparingen en op tijd afleveren van klantzendingen.

In de volgende secties van deze blogpost wordt beschreven hoe we livestreamvideo's van een van de Tyson Foods-fabrieken gebruiken om een ​​objectdetectiemodel te trainen met Amazon SageMaker. Die zetten we dan aan de rand in met het AWS Panorama toestel.

AWS-panorama

AWS Panorama is een apparaat voor machine learning (ML) waarmee organisaties cv's naar on-premise camera's kunnen brengen om lokaal voorspellingen te doen met hoge nauwkeurigheid en lage latentie. De AWS Panorama Appliance is een hardwareapparaat waarmee u toepassingen kunt uitvoeren die ML gebruiken om gegevens uit videostreams te verzamelen, video met tekst en grafische overlays uit te voeren en te communiceren met andere AWS-services. Het apparaat kan meerdere CV-modellen parallel uitvoeren tegen meerdere videostreams en de resultaten in realtime weergeven. Het is ontworpen voor gebruik in commerciële en industriële omgevingen.

Met de AWS Panorama Appliance kunt u op zichzelf staande CV-applicaties aan de rand draaien, zonder afbeeldingen naar de AWS Cloud te sturen. U kunt ook de AWS SDK op de AWS Panorama Appliance gebruiken om te integreren met andere AWS-services en deze gebruiken om gegevens van de toepassing in de loop van de tijd te volgen. Om applicaties te bouwen en te implementeren, gebruikt u de AWS Panorama Application CLI. De CLI is een opdrachtregelprogramma dat standaardtoepassingsmappen en configuratiebestanden genereert, containers bouwt met Docker en activa uploadt.

AWS Panorama ondersteunt modellen gebouwd met Apache MX Net, donker net, GluonCV, Keras, ONNX, PyTorch, TensorFlow en TensorFlow Lite. Verwijzen naar dit blogpost voor meer informatie over het bouwen van applicaties op AWS Panorama. Tijdens het implementatieproces zorgt AWS Panorama voor het samenstellen van het model dat specifiek is voor het edge-platform via Amazon SageMaker Neo-compilatie. De inferentieresultaten kunnen worden doorgestuurd naar AWS-services zoals Amazon S3, Amazon CloudWatch of worden geïntegreerd met on-premise line-of-business-applicaties. De implementatielogboeken worden opgeslagen in Amazon CloudWatch.

Om elke wijziging in de logica van het inferentiescript of het getrainde model bij te houden, kan men een nieuwe versie van de toepassing maken. Applicatieversies zijn onveranderlijke snapshots van de configuratie van een applicatie. AWS Panorama slaat eerdere versies van uw applicaties op, zodat u updates die niet succesvol zijn terug kunt draaien of verschillende versies op verschillende apparaten kunt uitvoeren.

Voor meer informatie wordt verwezen naar de AWS Panorama-pagina. Raadpleeg voor meer informatie over het bouwen van voorbeeldtoepassingen: AWS-panoramavoorbeelden.

Aanpak

Een fabrieksmedewerker vult continu verpakte kippentrays in plastic bakken en stapelt deze in de loop van de tijd op, zoals te zien is in de vorige afbeelding. We willen het totale aantal trays in alle verticaal gestapelde bakken kunnen detecteren en tellen.

Een getraind objectdetectiemodel kan begrenzingsvakken voorspellen van alle laden die bij elk videoframe in een bak worden geplaatst. Dit kan worden gebruikt om het aantal trays in een bak op een bepaald moment te meten. We weten ook dat er op elk moment slechts één bak wordt gevuld met ingepakte trays; de traytellingen schommelen continu van hoog (tijdens het vullen) naar laag (wanneer een nieuwe bak het zicht op de gevulde bak belemmert).

Met deze kennis hanteren we de volgende strategie om het totale aantal kippentrays te tellen:

  1. Houd twee verschillende tellers bij: lokaal en globaal. Globale teller houdt het totale aantal trays in de container en de lokale teller slaat het maximale aantal trays op dat in een nieuwe bak wordt geplaatst.
  2. Werk de lokale teller bij als er nieuwe trays in de prullenbak worden geplaatst.
  3. Detecteer een nieuwe bingebeurtenis op de volgende manieren:
    1. Het aantal trays in een bepaald frame gaat naar nul. (of)
    2. De stroom ladenummers in de laatste n frames vallen continu weg.
  4. Zodra de nieuwe bingebeurtenis is gedetecteerd, voegt u de lokale tellerwaarde toe aan de globale teller.
  5. Zet de lokale teller op nul.

We hebben dit algoritme getest op enkele uren video en kregen consistente resultaten.

Een objectdetectiemodel trainen met Amazon SageMaker

Gegevensset maken:

Nieuwe afbeeldingen vastleggen voor labeltaken

Nieuwe afbeeldingen vastleggen voor labeltaken

We verzamelden beeldstalen van de verpakkingslijn met behulp van de AWS Panorama Appliance. Het script om afbeeldingen te verwerken en op te slaan was verpakt als een applicatie en geïmplementeerd op AWS Panorama. De applicatie verzamelt videoframes van een on-premise camera die is opgesteld in de buurt van de verpakkingszone en slaat ze op met intervallen van 60 seconden op een Amazon S3 emmer; dit voorkomt het vastleggen van vergelijkbare beelden in de videoreeks die een paar seconden uit elkaar liggen. We maskeren ook aangrenzende gebieden in de afbeelding die niet relevant zijn voor de use-case.

We hebben de kippentrays met begrenzingsvakken gelabeld met: Amazon SageMaker Ground Truth's streaming labeling taak. We hebben ook een Amazon S3-gebeurtenismelding ingesteld die publiceert door objecten gemaakte gebeurtenissen een Amazon eenvoudige meldingsservice (SNS)-onderwerp, dat fungeert als invoerbron voor de labeltaak. Wanneer het AWS Panorama-toepassingsscript een afbeelding opslaat in een S3-bucket, wordt een gebeurtenismelding gepubliceerd naar het SNS-onderwerp, dat deze afbeelding vervolgens naar de labeltaak stuurt. Terwijl de annotators elke binnenkomende afbeelding labelen, slaat Ground Truth de labels op in een manifestbestand, dat het S3-pad van de afbeelding bevat, evenals de coördinaten van omsluitende kaders voor kippentrays.

We voeren verschillende gegevensverbeteringen uit (bijvoorbeeld: willekeurige ruis, willekeurig contrast en helderheid, kanaalshuffle) op de gelabelde afbeeldingen om het model robuust te maken voor variaties in het echte leven. De originele en verbeterde afbeeldingen werden gecombineerd om een ​​uniforme dataset te vormen.

Model opleiding:

Zodra de labeltaak is voltooid, activeren we handmatig een AWS Lambda functie. Deze Lambda-functie bundelt afbeeldingen en de bijbehorende labels van het uitvoermanifest in een LST-bestand. In onze trainings- en testbestanden werden afbeeldingen verzameld van verschillende verpakkingslijnen om datalekken bij de evaluatie te voorkomen. De Lambda-functie activeert vervolgens een Amazon SageMaker-trainingstaak.

Wij gebruiken SageMaker-scriptmodus, waarmee je je eigen trainingsalgoritmen kunt gebruiken en modellen direct kunt trainen terwijl je binnen de gebruiksvriendelijke grenzen van Amazon SageMaker blijft. We trainen modellen zoals SSD, Yolo-v3 (voor realtime inferentielatentie) met verschillende backbone-netwerkcombinaties van GluonCV Model Zoo voor objectdetectie in scriptmodus. Neurale netwerken hebben de neiging om trainingsgegevens te overfitten, wat leidt tot slechte out-of-sample resultaten. GluonCV biedt beeldnormalisatie en beeldverbeteringen, zoals willekeurig beeld omdraaien en bijsnijden, om overfitting tijdens de training te helpen verminderen. De model trainingscode is gecontaineriseerd en gebruikt de Docker-image in ons AWS Elastic Container Registry. De trainingstaak neemt de S3-afbeeldingsmap en LST-bestandspaden als invoer en slaat het beste modelartefact op (.parameters en .json) naar S3 na voltooiing.

Model evaluatie pijplijn

Model evaluatie pijplijn

De top-2 modellen op basis van onze testset waren: SSD-resnet50 en Yolov3-darknet53, met elk een mAP-score van 0.91. We hebben ook real-world tests uitgevoerd door samen met het getrainde model een inferentietoepassing op het AWS Panorama-apparaat te implementeren. Het inferentiescript slaat de voorspellingen en videoframes op in een Amazon S3-bucket. We hebben nog een SageMaker Ground Truth-taak gemaakt voor het annoteren van de grondwaarheid en hebben vervolgens aanvullende kwantitatieve modelevaluatie uitgevoerd. De grondwaarheid en voorspelde begrenzingsvaklabels op afbeeldingen werden opgeslagen in S3 voor kwalitatieve evaluatie. De modellen waren in staat om te generaliseren op de gegevens uit de echte wereld en leverden consistente prestaties op die vergelijkbaar waren met die op onze testset.

U kunt volledige, end-to-end voorbeelden vinden van het maken van aangepaste trainingstaken, het trainen van ultramoderne objectdetectiemodellen, het implementeren van Hyperparameter Optimization (HPO) en modelimplementatie op Amazon SageMaker op de AWS Labs GitHub-opslagplaats.

Toepassing voor het tellen van vleestrays implementeren

Productie Architectuur

Productie Architectuur

Vóór de implementatie verpakken we al onze activa - model, inferentiescript, camera en globale variabele configuratie in een enkele container zoals vermeld in deze blog post. Onze pijplijn voor continue integratie en continue implementatie (CI/CD) werkt elke wijziging in het inferentiescript bij als een nieuwe applicatieversie. Zodra de nieuwe applicatieversie is gepubliceerd, implementeren we deze programmatisch met behulp van boto3 SDK in Python.

Bij de implementatie van de applicatie maakt AWS Panorama eerst een AWS SageMaker Neo Compilation-taak om het model voor het AWS Panorama-apparaat te compileren. Het script voor de inferentietoepassing importeert het gecompileerde model op het apparaat en voert bij elk frame kippentraydetectie uit. Naast SageMaker Neo-Compilation hebben we kwantisering na de training mogelijk gemaakt door a os.environ['TVM_TENSORRT_USE_FP16'] = '1' vlag in het script. Dit vermindert de grootte van modelgewichten van float 32 tot float 16, waardoor de modelgrootte met de helft wordt verminderd en de latentie wordt verbeterd zonder dat de prestaties achteruitgaan. De gevolgtrekkingsresultaten worden vastgelegd in AWS SiteWise-monitor via MQTT-berichten van het AWS Panorama-apparaat via AWS IoT-kern. De resultaten worden vervolgens naar Amazon S3 gepusht en gevisualiseerd in Amazon QuickSight Dashboards. De fabrieksmanagers en medewerkers kunnen deze dashboards direct bekijken om de doorvoer van elke verpakkingslijn in realtime te begrijpen.

Conclusie

Door AWS Cloud-service zoals Amazon SageMaker, Amazon S3 en edge-service zoals AWS Panorama te combineren, voegt Tyson Foods Inc. kunstmatige intelligentie toe om mensintensieve industriële processen te automatiseren, zoals het tellen van de voorraad in zijn fabrieken. Dankzij realtime edge-inferentiemogelijkheden kan Tyson over-/onderproductie identificeren en hun productiestroom dynamisch aanpassen om de efficiëntie te maximaliseren. Bovendien kan Tyson, door het AWS Panorama-apparaat aan de rand te bezitten, ook de kosten besparen die gepaard gaan met dure netwerkbandbreedte om videobestanden naar de cloud over te brengen en kan het nu al hun video-/beeldmiddelen lokaal in hun netwerk verwerken.

Deze blogpost biedt u een end-end edge-applicatieoverzicht en referentiearchitecturen voor het ontwikkelen van een CV-applicatie met AWS Panorama. We hebben 3 verschillende aspecten van het bouwen van een edge-cv-toepassing besproken.

  1. Data: Gegevensverzameling, verwerking en labeling met behulp van AWS Panorama en Amazon SageMaker Ground Truth.
  2. Model: Modeltraining en evaluatie met Amazon SageMaker en AWS Lambda
  3. Applicatiepakket: Bundeling van getrainde modellen, scripts en configuratiebestanden voor AWS Panorama.

Blijf op de hoogte voor deel twee van deze serie over hoe Tyson AWS Panorama gebruikt voor CV-gebaseerd voorspellend onderhoud van industriële machines.

Klik hier om uw reis te beginnen met AWS Panorama. Voor meer informatie over samenwerken met ML Solutions Lab, zie: Amazon Machine Learning Solutions-lab.


Over de auteurs

Divya Bhargavi is een datawetenschapper bij de Amazon ML Solutions-lab waar ze met klanten in verschillende branches werkt en creatieve probleemoplossing toepast om waarde voor klanten te genereren met state-of-the-art ML/AI-oplossingen.

Dilip Subramaniam is Senior Developer bij het Emerging Technologies-team van Tyson Foods. Hij heeft een passie voor het bouwen van grootschalige gedistribueerde applicaties om zakelijke problemen op te lossen en processen te vereenvoudigen met behulp van zijn kennis op het gebied van softwareontwikkeling, machine learning en big data.

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

Tijdstempel:

Meer van AWS Blog over machine learning