Med maskininlärning (ML) har kraftfullare teknologier blivit tillgängliga som kan automatisera uppgiften att upptäcka visuella anomalier i en produkt. Att implementera sådana ML-lösningar är dock tidskrävande och dyrt eftersom det innebär att hantera och sätta upp komplex infrastruktur och ha rätt ML-kunskaper. Dessutom behöver ML-applikationer mänsklig tillsyn för att säkerställa noggrannhet med avvikelsedetektering, hjälpa till att tillhandahålla kontinuerliga förbättringar och omskola modeller med uppdaterade förutsägelser. Men du tvingas ofta välja mellan ett system som endast är ML eller endast för människor. Företag letar efter det bästa av två världar och integrerar ML-system i ditt arbetsflöde samtidigt som de håller ett mänskligt öga på resultaten för att uppnå högre precision.
I det här inlägget visar vi hur du enkelt kan ställa in Amazon Lookout For Vision för att träna en visuell avvikelsedetekteringsmodell med hjälp av en datauppsättning för tryckta kretskort, använd ett arbetsflöde för människa i slingan för att granska förutsägelserna med Amazon Augmented AI (Amazon A2I), utöka datasetet för att införliva mänsklig input och träna om modellen.
Lösningsöversikt
Lookout for Vision är en ML-tjänst som hjälper till att upptäcka produktdefekter med hjälp av datorseende för att automatisera kvalitetskontrollprocessen i dina tillverkningslinjer, utan att ML-expertis krävs. Du kan komma igång med så få som 30 produktbilder (20 normala, 10 anomala) för att träna din unika ML-modell. Lookout for Vision använder din unika ML-modell för att analysera dina produktbilder i nästan realtid och upptäcka produktdefekter, vilket gör att din fabrikspersonal kan diagnostisera och vidta korrigerande åtgärder.
Amazon A2I är en ML-tjänst som gör det enkelt att bygga de arbetsflöden som krävs för mänsklig granskning. Amazon A2I ger mänsklig granskning till alla utvecklare, tar bort de odifferentierade tunga lyften i samband med att bygga mänskliga granskningssystem eller hanterar ett stort antal mänskliga granskare, oavsett om de körs på AWS eller inte.
För att komma igång med Lookout for Vision skapar vi ett projekt, skapar ett dataset, tränar en modell och kör inferens på testbilder. Efter att ha gått igenom dessa steg visar vi dig hur du snabbt kan ställa in en mänsklig granskningsprocess med Amazon A2I och träna om din modell med utökade eller mänskliga granskade datauppsättningar. Vi tillhandahåller även en medföljande Jupyter anteckningsbok.
Arkitekturöversikt
Följande diagram illustrerar lösningsarkitekturen.
Lösningen har följande arbetsflöde:
- Ladda upp data från källan till Amazon enkel lagringstjänst (Amazon S3).
- Kör Lookout for Vision för att bearbeta data från Amazon S3-vägen.
- Lagra slutledningsresultat i Amazon S3 för granskning nedströms.
- Använd Lookout for Vision för att avgöra om en ingångsbild är skadad och verifiera att konfidensnivån är över 70 %. Om under 70 % startar vi en mänsklig loop för en arbetare för att manuellt avgöra om en bild är skadad.
- En privat arbetsstyrka undersöker och validerar de upptäckta skadorna och ger feedback.
- Uppdatera träningsdata med motsvarande feedback för efterföljande modellomskolning.
- Upprepa omskolningscykeln för kontinuerlig modellomskolning.
Förutsättningar
Innan du börjar ska du utföra följande steg för att ställa in Jupyter-anteckningsboken:
- Skapa en notebook-instans in Amazon SageMaker.
- När anteckningsboken är aktiv väljer du Öppna Jupyter.
- Välj på Jupyter-instrumentpanelen Nya, och välj terminal.
- Ange följande kod i terminalen:
- Öppna anteckningsboken för det här inlägget:
Amazon-Lookout-for-Vision-and-Amazon-A2I-Integration.ipynb
.
Du är nu redo att köra anteckningsbokens celler.
- Kör installationsmiljösteget för att ställa in de nödvändiga Python SDK:erna och variablerna:
I det första steget måste du definiera följande:
- region – Regionen där ditt projekt är beläget
- Projektnamn – Namnet på ditt Lookout for Vision-projekt
- skopa – Namnet på Amazon S3-hinken där vi matar ut modellresultaten
- model_version – Din modellversion (standardinställningen är 1)
- Skapa S3-hinkarna för att lagra bilder:
- Skapa en manifestfil från datamängden genom att köra cellen i avsnittet Skapa en manifestfil från datamängden i anteckningsboken.
Lookout for Vision använder den här manifestfilen för att fastställa platsen för filerna, såväl som etiketterna som är associerade med filerna.
Ladda upp kretskortsbilder till Amazon S3
För att träna en Lookout for Vision-modell måste vi kopiera exempeldataset från vår lokala Jupyter-anteckningsbok till Amazon S3:
Skapa ett Lookout for Vision-projekt
Du har ett par alternativ för hur du skapar ditt Lookout for Vision-projekt: Lookout for Vision-konsolen, AWS-kommandoradsgränssnitt (AWS CLI), eller Boto3 SDK. Vi valde Boto3 SDK i det här exemplet, men rekommenderar starkt att du också kollar in konsolmetoden.
Stegen vi tar med SDK är:
- Skapa ett projekt (namnet definierades i början) och berätta för ditt projekt var du kan hitta din träningsdatauppsättning. Detta görs via manifestfilen för utbildning.
- Berätta för ditt projekt var du kan hitta din testdatauppsättning. Detta görs via manifestfilen för test.
Detta andra steg är valfritt. I allmänhet är all testrelaterad kod valfri; Lookout for Vision fungerar också med bara en träningsdatauppsättning. Vi använder båda eftersom träning och testning är en vanlig (bästa) praxis när man tränar AI- och ML-modeller.
Skapa en manifestfil från datamängden
Lookout for Vision använder den här manifestfilen för att fastställa platsen för filerna, såväl som etiketterna som är associerade med filerna. Se följande kod:
Skapa ett Lookout for Vision-projekt
Följande kommando skapar ett Lookout for Vision-projekt:
Skapa och träna en modell
I det här avsnittet går vi igenom stegen för att skapa utbildnings- och testdatauppsättningar, träna modellen och vara värd för modellen.
Skapa tränings- och testdataset från bilder i Amazon S3
Efter att vi skapat Lookout for Vision-projektet skapar vi projektdataset genom att använda exempelbilderna vi laddade upp till Amazon S3 tillsammans med manifestfilerna. Se följande kod:
Träna modellen
Efter att vi skapat Lookout for Vision-projektet och datamängderna kan vi träna vår första modell:
När utbildningen är klar kan vi se tillgängliga modellmått:
Du bör se en utdata som liknar följande.
Metrics | Modell RNA | status Meddelande | prestanda | Modellprestanda |
F1-poäng | 1 | TRÄNAD | Utbildningen genomförd framgångsrikt. | 0.93023 |
Precision | 1 | TRÄNAD | Utbildningen genomförd framgångsrikt. | 0.86957 |
Recall | 1 | TRÄNAD | Utbildningen genomförd framgångsrikt. | 1 |
Värd för modellen
Innan vi kan använda vår nyutbildade Lookout for Vision-modell måste vi vara värd för den:
Konfigurera Amazon A2I för att granska prognoser från Lookout for Vision
I det här avsnittet ställer du in en mänsklig granskningsloop i Amazon A2I för att granska slutsatser som ligger under konfidensgränsen. Du måste först skapa en privat arbetsstyrka och skapa ett användargränssnitt för mänskliga uppgifter.
Skapa en arbetskraft
Du måste skapa en arbetskraft via SageMaker-konsolen. Notera ARN av arbetskraften och ange dess värde i anteckningsbokens cell:
Följande skärmdump visar detaljerna för ett privat team som heter lfv-a2i
och dess motsvarande ARN.
Skapa ett användargränssnitt för mänskliga uppgifter
Du skapar nu en mänsklig uppgift UI-resurs: en UI-mall i flytande HTML. Denna HTML-sida renderas till de mänskliga arbetarna närhelst en mänsklig loop krävs. För över 70 förbyggda användargränssnitt, se amazon-a2i-sample-task-uis GitHub -repo.
Följ stegen i anteckningsboken Skapa ett användargränssnitt för mänskliga uppgifter för att skapa webbformuläret, initiera Amazon A2I API:er och inspektera utdata:
Skapa ett arbetsflöde för mänskliga uppgifter
Arbetsflödesdefinitioner låter dig ange följande:
- Arbetarmallen eller användargränssnittet för mänskliga uppgifter som du skapade i föregående steg.
- Arbetsstyrkan som dina uppgifter skickas till. För det här inlägget är det den privata arbetsstyrkan du skapade i de nödvändiga stegen.
- Instruktionerna som din personal får.
Detta inlägg använder Create Flow Definition
API för att skapa en arbetsflödesdefinition. Resultaten av mänsklig granskning lagras i en Amazon S3-hink, som kan nås av klientapplikationen. Kör cellen Skapa ett arbetsflöde för mänskliga uppgifter i anteckningsboken och inspektera resultatet:
Gör förutsägelser och starta en mänsklig loop baserat på tröskeln för konfidensnivån
I det här avsnittet går vi igenom en rad nya bilder och använder Lookout for Vision SDK för att avgöra om våra indatabilder är skadade eller inte, och om de ligger över eller under ett definierat tröskelvärde. För det här inlägget sätter vi tröskelns konfidensnivå till 70. Om vårt resultat är under 70 startar vi en mänsklig loop för en arbetare att manuellt avgöra om vår bild är normal eller en anomali. Se följande kod:
Du bör få utdata som visas i följande skärmdump.
Slutför din recension och kontrollera statusen för den mänskliga loopen
Om slutledningsresultaten ligger under den definierade tröskeln skapas en mänsklig loop. Vi kan granska statusen för dessa jobb och vänta på resultat:
Arbetslaget ser följande skärmdump för att välja rätt etikett för bilden.
Se resultaten av Amazon A2I-arbetsflödet och flytta objekt till rätt mapp för omskolning
Efter att arbetslagsmedlemmarna har slutfört de mänskliga loopuppgifterna, låt oss använda resultaten av uppgifterna för att sortera våra bilder i rätt mappar för att träna en ny modell. Se följande kod:
Träna om din modell baserat på utökade datauppsättningar från Amazon A2I
Utbildning av en ny modellversion kan utlösas som ett batchjobb enligt ett schema, manuellt efter behov, baserat på hur många nya bilder som har lagts till i utbildningsmapparna, och så vidare. I det här exemplet använder vi Lookout for Vision SDK för att träna om vår modell med hjälp av bilderna som vi nu har inkluderat i vår modifierade datauppsättning. Följ den medföljande Jupyter-anteckningsboken som kan laddas ner från [GitHub-LINK] för hela anteckningsboken.
Du bör se en utdata som liknar följande.
Nu när vi har tränat en ny modell med hjälp av nyligen tillagda bilder, låt oss kolla modellmåtten! Vi visar resultaten från den första modellen och den andra modellen samtidigt:
Du bör se en utdata som liknar följande. Tabellen visar två modeller: en värdmodell (ModelVersion:1
) och den omskolade modellen (ModelVersion:2
). Prestandan för den omskolade modellen är bättre med de mänskliga granskade och märkta bilderna.
Metrics | ModelVersion | status | Status meddelande | Modellprestanda |
F1-poäng | 2 | TRÄNAD | Utbildningen genomförd framgångsrikt. | 0.98 |
Precision | 2 | TRÄNAD | Utbildningen genomförd framgångsrikt. | 0.96 |
Recall | 2 | TRÄNAD | Utbildningen genomförd framgångsrikt. | 1 |
F1-poäng | 1 | VÄRD | Modellen är igång. | 0.93023 |
Precision | 1 | VÄRD | Modellen är igång. | 0.86957 |
Recall | 1 | VÄRD | Modellen är igång. | 1 |
Städa upp
Kör Stoppa modellen och saneringsresurserna cell för att rensa upp resurserna som skapades. Ta bort alla Lookout for Vision-projekt som du inte längre använder och ta bort objekt från Amazon S3 för att spara kostnader. Se följande kod:
Slutsats
Det här inlägget visade hur du kan använda Lookout for Vision och Amazon A2I för att träna modeller för att upptäcka defekter i objekt som är unika för ditt företag och definiera villkor för att skicka förutsägelserna till ett mänskligt arbetsflöde med etiketter för att granska och uppdatera resultaten. Du kan använda den mänskliga märkta utdatan för att utöka träningsdatauppsättningen för omträning för att förbättra modellens noggrannhet.
Börja din resa mot upptäckt och identifiering av industriell anomali genom att besöka Håll utkik efter Vision Developer Guide och Amazon A2I utvecklarguide.
Om författaren
Dennis Thurmon är en lösningsarkitekt på AWS, med en passion för artificiell intelligens och maskininlärning. Baserad i Seattle, Washington, arbetade Dennis som systemutvecklingsingenjör i Amazon Go- och Amazon Books-teamet innan han fokuserade på att hjälpa AWS-kunder att få liv i sina arbetsbelastningar i AWS-molnet.
Amit Gupta är AI Services Solutions Architect på AWS. Han brinner för att möjliggöra för kunder med välarkitekterade maskininlärningslösningar i stor skala.
Neel Sendas är Senior Technical Account Manager på Amazon Web Services. Neel arbetar med företagskunder för att designa, distribuera och skala molnapplikationer för att uppnå sina affärsmål. Han har arbetat med olika ML-användningsfall, allt från upptäckt av anomalier till prediktiv produktkvalitet för tillverkning och logistikoptimering. När han inte hjälper kunderna, dyker han i golf och salsadans.
- '
- "
- 100
- 11
- 7
- 9
- Konto
- aktiv
- AI
- Alla
- tillåta
- amason
- Amazon Go
- Amazon Web Services
- avvikelse av anomali
- api
- API: er
- Ansökan
- tillämpningar
- arkitektur
- artificiell intelligens
- Konstgjord intelligens och maskininlärning
- AWS
- BÄST
- ombord
- Böcker
- SLUTRESULTAT
- Byggnad
- företag
- fall
- byta
- cloud
- moln applikationer
- koda
- Gemensam
- Företag
- komponent
- Datorsyn
- förtroende
- innehåll
- Kostar
- Par
- Skapa
- Aktuella
- Kunder
- instrumentbräda
- datum
- Designa
- Detektering
- Utvecklare
- utvecklare
- Utveckling
- ingenjör
- Företag
- företagskunder
- Miljö
- ögat
- Förnamn
- flöda
- följer
- formen
- format
- framtida
- Allmänt
- gå
- GitHub
- här.
- värd
- Hur ser din drömresa ut
- How To
- HTTPS
- Identifiering
- bild
- industriell
- Infrastruktur
- Intelligens
- IT
- Jobb
- Lediga jobb
- Jupyter Notebook
- hålla
- Etiketter
- Large
- inlärning
- Nivå
- linje
- Flytande
- lokal
- läge
- logistik
- maskininlärning
- Produktion
- Medlemmar
- Metrics
- ML
- modell
- flytta
- nummer
- Tillbehör
- prestanda
- Personal
- Portal
- Precision
- Förutsägelser
- privat
- Produkt
- Produktkvalitet
- projektet
- projekt
- Python
- kvalitet
- RE
- resurs
- Resurser
- respons
- Resultat
- omskolning
- återgår
- översyn
- Körning
- rinnande
- sagemaker
- Skala
- sDK
- Seattle
- ser
- Tjänster
- in
- inställning
- Enkelt
- färdigheter
- So
- Lösningar
- Spot
- starta
- igång
- status
- förvaring
- lagra
- subdomäner
- system
- System
- Teknisk
- Tekniken
- testa
- Testning
- källan
- tid
- Utbildning
- ui
- Uppdatering
- värde
- utsikt
- syn
- vänta
- washington
- webb
- webbservice
- inom
- Arbete
- arbetare
- arbetsflöde
- arbetskraft
- fungerar