Identificer placeringen af ​​anomalier ved hjælp af Amazon Lookout for Vision i kanten uden at bruge en GPU PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Identificer placeringen af ​​anomalier ved hjælp af Amazon Lookout for Vision i kanten uden at bruge en GPU

Automatisk defektdetektering ved hjælp af computervision hjælper med at forbedre kvaliteten og sænke omkostningerne ved inspektion. Defektdetektering involverer identifikation af tilstedeværelsen af ​​en defekt, klassificering af typer af defekter og identifikation af, hvor defekterne er lokaliseret. Mange fremstillingsprocesser kræver detektion med en lav latenstid, med begrænsede computerressourcer og med begrænset tilslutning.

Amazon Lookout for Vision er en maskinlæringstjeneste (ML), der hjælper med at opdage produktfejl ved hjælp af computervision til at automatisere kvalitetsinspektionsprocessen i dine produktionslinjer, uden at der kræves nogen ML-ekspertise. Lookout for Vision inkluderer nu muligheden for at angive placeringen og typen af ​​anomalier ved hjælp af semantisk segmentering ML-modeller. Disse tilpassede ML-modeller kan enten implementeres til AWS Cloud vha cloud API'er eller til tilpasset kanthardware ved hjælp af AWS IoT Greengrass. Lookout for Vision understøtter nu inferens på en x86-computerplatform, der kører Linux med eller uden en NVIDIA GPU-accelerator og på enhver NVIDIA Jetson-baseret edge-enhed. Denne fleksibilitet tillader detektering af defekter på eksisterende eller ny hardware.

I dette indlæg viser vi dig, hvordan du opdager defekte dele ved hjælp af Lookout for Vision ML-modeller, der kører på et kantapparat, som vi simulerer ved hjælp af en Amazon Elastic Compute Cloud (Amazon EC2) forekomst. Vi gennemgår træning af de nye semantiske segmenteringsmodeller, eksporterer dem som AWS IoT Greengrass-komponenter og kører inferens i kun CPU-tilstand med Python-eksempelkode.

Løsningsoversigt

I dette indlæg bruger vi et sæt billeder af legetøjs udlændinge sammensat af normale og defekte billeder såsom manglende lemmer, øjne eller andre dele. Vi træner en Lookout for Vision-model i skyen for at identificere defekte legetøjsudlændinge. Vi kompilerer modellen til en mål-X86 CPU, pakker den trænede Lookout for Vision-model som en AWS IoT Greengrass-komponent og implementerer modellen til en EC2-instans uden en GPU ved hjælp af AWS IoT Greengrass-konsollen. Til sidst demonstrerer vi et Python-baseret eksempelprogram, der kører på EC2 (C5a.2xl)-forekomsten, der henter legetøjsudlændingebillederne fra edge-enhedens filsystem, kører slutningen om Lookout for Vision-modellen ved hjælp af gRPC interface, og sender inferensdataene til en MQTT emne i AWS Cloud. Scriptet udsender et billede, der inkluderer farven og placeringen af ​​defekterne på det unormale billede.

Følgende diagram illustrerer løsningsarkitekturen. Det er vigtigt at bemærke, at for hver defekttype, du ønsker at detektere i lokalisering, skal du have 10 markerede anomalibilleder i træning og 10 i testdata, for i alt 20 billeder af den type. Til dette indlæg søger vi efter manglende lemmer på legetøjet.

Løsningen har følgende arbejdsgang:

  1. Upload et træningsdatasæt og et testdatasæt til Amazon Simple Storage Service (Amazon S3).
  2. Brug den nye Lookout for Vision UI til at tilføje en anomalitype og markere, hvor disse anomalier er i trænings- og testbillederne.
  3. Træn en Lookout for Vision-model i skyen.
  4. Kompiler modellen til målarkitekturen (X86), og implementer modellen til EC2 (C5a.2xl)-instansen ved hjælp af AWS IoT Greengrass-konsollen.
  5. Kilde billeder fra lokal disk.
  6. Kør slutninger på den implementerede model via gRPC-grænsefladen og hent et billede af anomalimasker, der er overlejret på det originale billede.
  7. Send slutningsresultaterne til en MQTT-klient, der kører på edge-instansen.
  8. Modtag MQTT-meddelelsen om et emne i AWS IoT Core i AWS Cloud for yderligere overvågning og visualisering.

Trin 5, 6 og 7 er koordineret med prøven Python-applikationen.

Forudsætninger

Inden du går i gang, skal du udfylde følgende forudsætninger. Til dette indlæg bruger vi en EC2 c5.2xl-instans og installerer AWS IoT Greengrass V2 på den for at prøve de nye funktioner. Hvis du vil køre på en NVIDIA Jetson, skal du følge trinene i vores tidligere indlæg, Amazon Lookout for Vision understøtter nu visuel inspektion af produktfejl i kanten.

  1. Opret en AWS-konto.
  2. Start en EC2-instans, som vi kan installere AWS IoT Greengrass på, og brug den nye CPU-only inference mode. Du kan også bruge en Intel X86 64 bit maskine med 8 gigabyte ram eller mere (vi bruger en c5a.2xl, men alt med mere end 8 gigabyte på x86-platformen burde virke) kører Ubuntu 20.04.
  3. Installer AWS IoT Greengrass V2:
    git clone https://github.com/aws-samples/amazon-lookout-for-vision.git
    cd edge
    # be sure to edit the installation script to match your region, also adjust any device names and groups!
    vi install_greengrass.sh

  4. Installer det nødvendige system og Python 3-afhængigheder (Ubuntu 20.04):
    # install Ubuntu dependencies on the EC2 instance
    ./install-ec2-ubuntu-deps.sh
    pip3 install -r requirements.txt
    # Replace ENDPOINT variable in sample-client-file-mqtt.py with the value on the AWS console AWS IoT->Things->l4JetsonXavierNX->Interact.  
    # Under HTTPS. It will be of type <name>-ats.iot.<region>.amazon.com 

Upload datasættet og træne modellen

Vi bruger legetøjs aliens datasæt at demonstrere løsningen. Datasættet indeholder normale og unormale billeder. Her er et par eksempler på billeder fra datasættet.

Følgende billede viser en normal legetøjsudlænding.

Identificer placeringen af ​​anomalier ved hjælp af Amazon Lookout for Vision i kanten uden at bruge en GPU PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Følgende billede viser en legetøjsudlænding, der mangler et ben.

Identificer placeringen af ​​anomalier ved hjælp af Amazon Lookout for Vision i kanten uden at bruge en GPU PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Følgende billede viser en legetøjsudlænding, der mangler et hoved.

Identificer placeringen af ​​anomalier ved hjælp af Amazon Lookout for Vision i kanten uden at bruge en GPU PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

I dette indlæg leder vi efter manglende lemmer. Vi bruger den nye brugergrænseflade til at tegne en maske omkring fejlene i vores trænings- og testdata. Dette vil fortælle de semantiske segmenteringsmodeller, hvordan man identificerer denne type defekt.

  1. Start med at uploade dit datasæt, enten via Amazon S3 eller fra din computer.
  2. Sorter dem i mapper med titlen normal , anomaly.
  3. Når du opretter dit datasæt, skal du vælge Vedhæft automatisk etiketter til billeder baseret på mappenavnet.Dette giver os mulighed for at sortere de unormale billeder fra senere og tegne de områder ind, der skal mærkes med en defekt.
    Identificer placeringen af ​​anomalier ved hjælp af Amazon Lookout for Vision i kanten uden at bruge en GPU PlatoBlockchain Data Intelligence. Lodret søgning. Ai.
  4. Prøv at holde nogle billeder tilbage til senere test af begge normal , anomaly.
  5. Når alle billederne er blevet tilføjet til datasættet, skal du vælge Tilføj anomalietiketter.
  6. Begynd at mærke data ved at vælge Begynd at mærke.
  7. For at fremskynde processen kan du vælge flere billeder og klassificere dem som Normal or Anomaly.
    Identificer placeringen af ​​anomalier ved hjælp af Amazon Lookout for Vision i kanten uden at bruge en GPU PlatoBlockchain Data Intelligence. Lodret søgning. Ai.
    Hvis du vil fremhæve anomalier ud over at klassificere dem, skal du fremhæve, hvor uregelmæssighederne er placeret.
  8. Vælg det billede, du vil kommentere.
  9. Brug tegneværktøjerne til at vise det område, hvor en del af motivet mangler, eller tegn en maske over defekten.
  10. Vælg Send og luk at beholde disse ændringer.
    Identificer placeringen af ​​anomalier ved hjælp af Amazon Lookout for Vision i kanten uden at bruge en GPU PlatoBlockchain Data Intelligence. Lodret søgning. Ai.
  11. Gentag denne proces for alle dine billeder.
  12. Når du er færdig, skal du vælge Gem for at fortsætte dine ændringer. Nu er du klar til at træne din model.
    Identificer placeringen af ​​anomalier ved hjælp af Amazon Lookout for Vision i kanten uden at bruge en GPU PlatoBlockchain Data Intelligence. Lodret søgning. Ai.
  13. Vælg Tog model.

Når du har gennemført disse trin, kan du navigere til projektet og Modeller side for at kontrollere ydeevnen af ​​den trænede model. Du kan starte processen med at eksportere modellen til målkantenheden når som helst efter, at modellen er trænet.

Genoplær modellen med korrigerede billeder

Nogle gange er anomalimærkningen måske ikke helt korrekt. Du har chancen for at hjælpe din model med at lære dine anomalier bedre at kende. For eksempel er følgende billede identificeret som en anomali, men viser ikke missing_limbs tag.

Identificer placeringen af ​​anomalier ved hjælp af Amazon Lookout for Vision i kanten uden at bruge en GPU PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Lad os åbne editoren og rette dette.

Gå gennem alle billeder, du finder som dette. Hvis du finder ud af, at det er mærket en anomali forkert, kan du bruge viskelæderværktøjet til at fjerne det forkerte mærke.

Identificer placeringen af ​​anomalier ved hjælp af Amazon Lookout for Vision i kanten uden at bruge en GPU PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Du kan nu træne din model igen og opnå bedre nøjagtighed.

Kompiler og pak modellen som en AWS IoT Greengrass-komponent

I dette afsnit gennemgår vi trinene til at kompilere legetøjs-alien-modellen til vores målkant-enhed og pakke modellen som en AWS IoT Greengrass-komponent.

  1. På Lookout for Vision-konsollen skal du vælge dit projekt.
  2. Vælg i navigationsruden Edge model pakker.
  3. Vælg Opret modelpakkejob.
  4. Til Job navn, indtast et navn.
  5. Til Job beskrivelse, indtast en valgfri beskrivelse.
  6. Vælg Gennemse modeller.
  7. Vælg modelversionen (legetøjsudlændingemodellen bygget i forrige afsnit).
  8. Vælg Vælg.
    Identificer placeringen af ​​anomalier ved hjælp af Amazon Lookout for Vision i kanten uden at bruge en GPU PlatoBlockchain Data Intelligence. Lodret søgning. Ai.
  9. Hvis du kører dette på Amazon EC2 eller en X86-64 enhed, skal du vælge Målplatform Og vælg Linux, X86og CPU.
    Hvis du bruger CPU, kan du lade kompileringsindstillingerne være tomme, hvis du ikke er sikker og ikke har en NVIDIA GPU. Hvis du har en Intel-baseret platform, der understøtter AVX512, kan du tilføje disse kompileringsmuligheder for at optimere for bedre ydeevne: {"mcpu": "skylake-avx512"}.
    Identificer placeringen af ​​anomalier ved hjælp af Amazon Lookout for Vision i kanten uden at bruge en GPU PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Du kan se dit jobnavn og status vises som In progress. Modelpakkejobbet kan tage et par minutter at fuldføre. Når modelpakkejobbet er færdigt, vises status som Success.
  10. Vælg dit jobnavn (i vores tilfælde er det aliensblogcpux86) for at se jobdetaljerne.
    Identificer placeringen af ​​anomalier ved hjælp af Amazon Lookout for Vision i kanten uden at bruge en GPU PlatoBlockchain Data Intelligence. Lodret søgning. Ai.
  11. Vælg Opret modelpakkejob.
    Identificer placeringen af ​​anomalier ved hjælp af Amazon Lookout for Vision i kanten uden at bruge en GPU PlatoBlockchain Data Intelligence. Lodret søgning. Ai.
  12. Indtast detaljerne for Komponentnavn, Komponentbeskrivelse (valgfri), Komponentversionog Komponentplacering.Lookout for Vision gemmer komponentopskrifter og artefakter på denne Amazon S3-placering.
  13. Vælg Fortsæt implementeringen i Greengrass at implementere komponenten til målkantenheden.
    Identificer placeringen af ​​anomalier ved hjælp af Amazon Lookout for Vision i kanten uden at bruge en GPU PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

AWS IoT Greengrass-komponenten og modelartefakter er blevet oprettet på din AWS-konto.

Implementer modellen

Sørg for, at du har AWS IoT Greengrass V2 installeret på din målenhed til din konto, før du fortsætter. For instruktioner, se Installer AWS IoT Greengrass Core-softwaren.

I dette afsnit gennemgår vi trinene til at implementere legetøjs-alien-modellen til edge-enheden ved hjælp af AWS IoT Greengrass-konsollen.

Identificer placeringen af ​​anomalier ved hjælp af Amazon Lookout for Vision i kanten uden at bruge en GPU PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

  1. På AWS IoT Greengrass-konsollen skal du navigere til din edge-enhed.
  2. Vælg Implementer for at starte implementeringstrinene.
  3. Type Kerneenhed (fordi implementeringen er til en enkelt enhed) og indtast et navn for Målnavn.Målnavnet er det samme navn, som du brugte til at navngive kerneenheden under installationen af ​​AWS IoT Greengrass V2.
  4. Vælg din komponent. I vores tilfælde er komponentnavnet aliensblogcpux86, som indeholder toy alien-modellen.
  5. Vælg Næste.
  6. Konfigurer komponenten (valgfrit).
  7. Vælg Næste.
  8. Udvid Implementeringspolitikker.
  9. Til Komponentopdateringspolitik, Vælg Giv komponenter beskedDette gør det muligt for den allerede installerede komponent (en tidligere version af komponenten) at udskyde en opdatering, indtil du er klar til at opdatere.
  10. Til Fejlhåndteringspolitik, Vælg Rul ikke tilbage.I tilfælde af fejl giver denne mulighed os mulighed for at undersøge fejlene i implementeringen.
  11. Vælg Næste.
  12. Gennemgå listen over komponenter, der vil blive implementeret på målenheden (kantenheden).
  13. Vælg Næste.Du bør se beskeden Deployment successfully created.
  14. For at validere, at modelimplementeringen var vellykket, skal du køre følgende kommando på din edge-enhed:
    sudo /greengrass/v2/bin/greengrass-cli component list

Du bør se et lignende output, der kører aliensblogcpux86 livscyklus opstartsscript:

Komponenter, der i øjeblikket kører i Greengrass:

Components currently running in Greengrass:
 
Component Name: aws.iot.lookoutvision.EdgeAgent
    Version: 0.1.34
    State: RUNNING
    Configuration: {"Socket":"unix:///tmp/aws.iot.lookoutvision.EdgeAgent.sock"}
 Component Name: aliensblogcpux86
    Version: 1.0.0
    State: RUNNING
    Configuration: {"Autostart":false}

Kør slutninger på modellen

Bemærk: Hvis du kører Greengrass som en anden bruger end den du er logget ind som, skal du ændre tilladelserne til filen /tmp/aws.iot.lookoutvision.EdgeAgent.sock:

chmod 666 /tmp/aws.iot.lookoutvision.EdgeAgent.sock

Vi er nu klar til at køre slutninger om modellen. På din edge-enhed skal du køre følgende kommando for at indlæse modellen (erstat med modelnavnet brugt i din komponent):

# run command to load the model# This will load the model into running state pass
# the name of the model component as a parameter.
python3 warmup-model.py <modelName>

For at generere slutninger skal du køre følgende kommando med kildefilnavnet (erstat med stien og filnavnet på billedet for at kontrollere og erstatte med modelnavnet brugt til din komponent):

python3 sample-client-file-mqtt.py </path/to/images> <modelName>

start client ['sample-client-file.py', 'aliens-dataset/anomaly/1.png', 'aliensblogcpux86']
channel set
shape=(380, 550, 3)
Image is anomalous, (90.05860090255737 % confidence) contains defects with total area over .1%: {'missing_limbs': '#FFFFFF'}

Modellen forudsiger korrekt billedet som unormalt (missing_limbs) med en konfidensscore på 0.9996867775917053. Det fortæller os masken af ​​anomalimærket missing_limbs og det procentvise areal. Svaret indeholder også bitmapdata, som du kan afkode af, hvad det fandt.

Download og åbn filen blended.png, som ligner følgende billede. Bemærk området fremhævet med defekten omkring benene.

Identificer placeringen af ​​anomalier ved hjælp af Amazon Lookout for Vision i kanten uden at bruge en GPU PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Kundehistorier

Med AWS IoT Greengrass og Lookout for Vision kan du nu automatisere visuel inspektion med computervision for processer som kvalitetskontrol og defektvurdering – alt sammen på kanten og i realtid. Du kan proaktivt identificere problemer såsom deleskade (som buler, ridser eller dårlig svejsning), manglende produktkomponenter eller defekter med gentagne mønstre på selve produktionslinjen – hvilket sparer dig tid og penge. Kunder som Tyson og Baxter opdager styrken ved Lookout for Vision til at øge kvaliteten og reducere driftsomkostningerne ved at automatisere visuel inspektion.

"Operational excellence er en nøgleprioritet hos Tyson Foods. Forudsigelig vedligeholdelse er et væsentligt aktiv for at nå dette mål ved løbende at forbedre den samlede udstyrseffektivitet (OEE). I 2021 lancerede Tyson Foods et maskinlæringsbaseret computervisionsprojekt for at identificere svigtende produktbærere under produktionen for at forhindre dem i at påvirke teammedlemmernes sikkerhed, drift eller produktkvalitet. Modellerne trænet ved hjælp af Amazon Lookout for Vision klarede sig godt. Pindetektionsmodellen opnåede 95 % nøjagtighed på tværs af begge klasser. Amazon Lookout for Vision-modellen blev indstillet til at yde en nøjagtighed på 99.1 % til fejlfinding af pinde. Det klart mest spændende resultat af dette projekt var fremskyndelsen af ​​udviklingstiden. Selvom dette projekt bruger to modeller og en mere kompleks applikationskode, tog det 12 % mindre udviklertid at fuldføre. Dette projekt til overvågning af tilstanden af ​​produktbærerne hos Tyson Foods blev afsluttet på rekordtid ved hjælp af AWS-administrerede tjenester såsom Amazon Lookout for Vision."

—Audrey Timmerman, senior applikationsudvikler, Tyson Foods.

"Latency og inferencing hastighed er afgørende for vurdering i realtid og kritiske kvalitetstjek af vores fremstillingsprocesser. Amazon Lookout for Vision edge på en CPU-enhed giver os mulighed for at opnå dette på produktionsudstyr, hvilket gør os i stand til at levere omkostningseffektive AI-visionløsninger i stor skala."

—AK Karan, Global Senior Director – Digital Transformation, Integrated Supply Chain, Baxter International Inc.

Ryd op

Udfør følgende trin for at fjerne de aktiver, du har oprettet fra din konto, og undgå enhver løbende fakturering:

  1. På Lookout for Vision-konsollen skal du navigere til dit projekt.
  2. handlinger menuen skal du slette dine datasæt.
    Identificer placeringen af ​​anomalier ved hjælp af Amazon Lookout for Vision i kanten uden at bruge en GPU PlatoBlockchain Data Intelligence. Lodret søgning. Ai.
  3. Slet dine modeller.
    Identificer placeringen af ​​anomalier ved hjælp af Amazon Lookout for Vision i kanten uden at bruge en GPU PlatoBlockchain Data Intelligence. Lodret søgning. Ai.
  4. På Amazon S3-konsollen skal du tømme de buckets, du har oprettet, og derefter slette buckets.
  5. På Amazon EC2-konsollen skal du slette den instans, du startede med at køre AWS IoT Greengrass.
  6. På AWS IoT Greengrass-konsollen skal du vælge implementeringer i navigationsruden.
  7. Slet dine komponentversioner.
    Identificer placeringen af ​​anomalier ved hjælp af Amazon Lookout for Vision i kanten uden at bruge en GPU PlatoBlockchain Data Intelligence. Lodret søgning. Ai.
  8. På AWS IoT Greengrass-konsollen skal du slette AWS IoT-ting, grupper og enheder.

Konklusion

I dette indlæg beskrev vi et typisk scenarie for industriel defektdetektion ved kanten ved hjælp af defektlokalisering og implementeret til en enhed, der kun er CPU. Vi gik gennem nøglekomponenterne i cloud- og edge-livscyklussen med et ende-til-ende eksempel ved hjælp af Lookout for Vision og AWS IoT Greengrass. Med Lookout for Vision trænede vi en anomalidetektionsmodel i skyen ved hjælp af legetøjs alien-datasæt, kompilerede modellen til en målarkitektur og pakkede modellen som en AWS IoT Greengrass-komponent. Med AWS IoT Greengrass implementerede vi modellen til en edge-enhed. Vi demonstrerede en Python-baseret prøveapplikation, der henter alien-legetøjsbilleder fra edge-enhedens lokale filsystem, kører konklusionerne på Lookout for Vision-modellen ved kanten ved hjælp af gRPC-grænsefladen og sender inferensdata til et MQTT-emne i AWS Sky.

I et fremtidigt indlæg vil vi vise, hvordan man kører slutninger på en strøm af billeder i realtid ved hjælp af en GStreamer-mediepipeline.

Start din rejse mod industriel anomalidetektion og identifikation ved at besøge Amazon Lookout for Vision , AWS IoT Greengrass ressource sider.


Om forfatterne

Identificer placeringen af ​​anomalier ved hjælp af Amazon Lookout for Vision i kanten uden at bruge en GPU PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Manish Talreja er en Senior Industrial ML Practice Manager med AWS Professional Services. Han hjælper AWS-kunder med at nå deres forretningsmål ved at designe og bygge innovative løsninger, der bruger AWS ML og IoT-tjenester på AWS Cloud.

Identificer placeringen af ​​anomalier ved hjælp af Amazon Lookout for Vision i kanten uden at bruge en GPU PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Ryan Vanderwerf er partnerløsningsarkitekt hos Amazon Web Services. Han har tidligere leveret Java virtuel maskine-fokuseret rådgivning og projektudvikling som softwareingeniør hos OCI på Grails og Micronaut-teamet. Han var chefarkitekt/direktør for produkter hos ReachForce, med fokus på software og systemarkitektur til AWS Cloud SaaS-løsninger til marketing data management. Ryan har bygget adskillige SaaS-løsninger inden for adskillige domæner, såsom finans-, medie-, telekom- og e-læringsvirksomheder siden 1996.

Identificer placeringen af ​​anomalier ved hjælp af Amazon Lookout for Vision i kanten uden at bruge en GPU PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Prakash Krishnan er Senior Software Development Manager hos Amazon Web Services. Han leder ingeniørholdene, der bygger distribuerede systemer i stor skala for at anvende hurtige, effektive og meget skalerbare algoritmer til deep learning-baserede billed- og videogenkendelsesproblemer.

Tidsstempel:

Mere fra AWS maskinindlæring