Højopløselige billeder er meget udbredt i dagens verden, fra satellitbilleder til droner og DLSR-kameraer. Fra dette billede kan vi fange skader som følge af naturkatastrofer, uregelmæssigheder i produktionsudstyr eller meget små defekter såsom defekter på printkort (PCB'er) eller halvledere. Det kan være en udfordring at bygge anomalidetektionsmodeller ved hjælp af billeder i høj opløsning, fordi moderne computervisionsmodeller typisk ændrer størrelsen på billeder til en lavere opløsning for at passe ind i hukommelsen til træning og løbeslutning. En væsentlig reduktion af billedopløsningen betyder, at visuel information vedrørende defekten forringes eller helt går tabt.
En tilgang til at overvinde disse udfordringer er at bygge modeller i to trin. Trin 1-modeller detekterer et område af interesse, og Trin 2-modeller detekterer defekter på det beskårede område af interesse og opretholder derved tilstrækkelig opløsning til små detekteringer.
I dette indlæg gennemgår vi, hvordan man bygger et effektivt to-trins defektdetektionssystem ved hjælp af Tilpassede etiketter til Amazon-genkendelse og sammenlign resultaterne for denne specifikke use case med et-trins modeller. Bemærk, at flere et-trins modeller er effektive selv ved lavere eller ændrede billedopløsninger, og andre kan rumme store billeder i mindre partier.
Løsningsoversigt
Til vores use case bruger vi en datasæt af billeder af PCB'er med syntetisk genererede manglende hulstifter, som vist i følgende eksempel.
Vi bruger dette datasæt til at demonstrere, at en et-trins tilgang, der bruger objektdetektering, resulterer i subpar-detektionsydelse for de manglende hulstiftedefekter. En to-trins model foretrækkes, hvor vi bruger Rekognition Custom Labels først til objektdetektering for at identificere stifterne og derefter en anden trins model til at klassificere beskårne billeder af stifterne i stifter med manglende huller eller normale stifter.
Træningsprocessen for en Rekognition Custom Labels-model består af flere trin, som illustreret i det følgende diagram.
Først bruger vi Amazon Simple Storage Service (Amazon S3) for at gemme billeddataene. Dataene indtages Amazon Sagemaker Jupyter-notebooks, hvor typisk en dataforsker vil inspicere billederne og forbehandle dem, fjerne alle billeder, der er af dårlig kvalitet, såsom slørede billeder eller dårlige lysforhold, og ændre størrelsen på eller beskære billederne. Derefter opdeles data i trænings- og testsæt, og Amazon SageMaker Ground Truth etiketteringsjob køres for at mærke billedsættene og udlæse en tog- og testmanifestfil. Manifestfilerne bruges af Rekognition Custom Labels til træning.
Et-trins modeltilgang
Den første tilgang, vi tager til at identificere manglende huller på printkortet, er at mærke de manglende huller og træne en objektdetekteringsmodel til at identificere de manglende huller. Det følgende er et billedeksempel fra datasættet.
Vi træner en model med et datasæt med 95 billeder brugt som træning og 20 billeder brugt til test. Følgende tabel opsummerer vores resultater.
Evalueringsresultater | |||||
F1 score | Gennemsnitlig præcision | Samlet tilbagekaldelse | |||
0.468 | 0.750 | 0.340 | |||
Træningstid | Træningsdatasæt | Test af datasæt | |||
Trænet på 1.791 timer | 1 etiket, 95 billeder | 1 etiket, 20 billeder | |||
Per Label Performance | |||||
Etiketnavn | F1 score | Test billeder | Precision | Recall | Antaget tærskel |
missing_hole |
0.468 | 20 | 0.750 | 0.340 | 0.053 |
Den resulterende model har høj præcision, men lav genkaldelse, hvilket betyder, at når vi lokaliserer et område for et manglende hul, har vi normalt ret, men vi mangler en masse manglende huller, der er til stede på printkortet. For at opbygge et effektivt defektdetektionssystem er vi nødt til at forbedre tilbagekaldelsen. Den lave ydeevne af denne model kan skyldes, at defekterne er små på dette højopløselige billede af printkortet, så modellen har ingen reference til en sund pin.
Dernæst undersøger vi at opdele billedet i fire eller seks afgrøder afhængigt af PCB-størrelsen og mærke både sunde og manglende huller. Det følgende er et eksempel på det resulterende beskårne billede.
Vi træner en model med 524 billeder brugt som træning og 106 billeder brugt til test. Vi opretholder de samme PCB'er, der bruges i tog og test, som fuldpensionsmodellen. Resultaterne for beskåret sunde stifter vs. manglende huller er vist i følgende tabel.
Evalueringsresultater | |||||
F1 score | Gennemsnitlig præcision | Samlet tilbagekaldelse | |||
0.967 | 0.989 | 0.945 | |||
Træningstid | Træningsdatasæt | Test af datasæt | |||
Trænet på 2.118 timer | 2 etiketter, 524 billeder | 2 etiketter, 106 billeder | |||
Per Label Performance | |||||
Etiketnavn | F1 score | Test billeder | Precision | Recall | Antaget tærskel |
missing_hole |
0.949 | 42 | 0.980 | 0.920 | 0.536 |
pin |
0.984 | 106 | 0.998 | 0.970 | 0.696 |
Både præcision og genkaldelse er blevet væsentligt forbedret. Træning af modellen med zoomede beskårne billeder og en reference til modellen for sunde stifter hjalp. Tilbagekaldelsen er dog stadig på 92 %, hvilket betyder, at vi stadig ville gå glip af 8 % af de manglende huller og lade defekter gå ubemærket forbi.
Dernæst udforsker vi en to-trins modeltilgang, hvor vi kan forbedre modellens ydeevne yderligere.
To-trins model tilgang
Til to-trinsmodellen træner vi to modeller: en til at opdage stifter og en til at opdage om stiften mangler eller ej på zoomede beskårne billeder af stiften. Det følgende er et billede fra datasættet til registrering af pinde.
Dataene ligner vores tidligere eksperiment, hvor vi beskærede PCB'en til fire eller seks beskårne billeder. Denne gang mærker vi alle stifter og gør ingen forskel på, om stiften mangler hul eller ej. Vi træner denne model med 522 billeder og tester med 108 billeder, idet vi opretholder den samme tog/test-split som tidligere eksperimenter. Resultaterne er vist i følgende tabel.
Evalueringsresultater | |||||
F1 score | Gennemsnitlig præcision | Samlet tilbagekaldelse | |||
1.000 | 0.999 | 1.000 | |||
Træningstid | Træningsdatasæt | Test af datasæt | |||
Trænet på 1.581 timer | 1 etiket, 522 billeder | 1 etiket, 108 billeder | |||
Per Label Performance | |||||
Etiketnavn | F1 score | Test billeder | Precision | Recall | Antaget tærskel |
pin |
1.000 | 108 | 0.999 | 1.000 | 0.617 |
Modellen registrerer stifterne perfekt på dette syntetiske datasæt.
Dernæst bygger vi modellen for at skelne for manglende huller. Vi bruger beskårne billeder af hullerne til at træne modellens anden fase, som vist i de følgende eksempler. Denne model er adskilt fra de tidligere modeller, fordi det er en klassifikationsmodel og vil være fokuseret på den snævre opgave at afgøre, om stiften mangler et hul.
Vi træner denne anden-fase-model på 16,624 billeder og tester på 3,266, idet vi opretholder de samme tog/test-opdelinger som de tidligere eksperimenter. Følgende tabel opsummerer vores resultater.
Evalueringsresultater | |||||
F1 score | Gennemsnitlig præcision | Samlet tilbagekaldelse | |||
1.000 | 1.000 | 1.000 | |||
Træningstid | Træningsdatasæt | Test af datasæt | |||
Trænet på 6.660 timer | 2 etiketter, 16,624 billeder | 2 etiketter, 3,266 billeder | |||
Per Label Performance | |||||
Etiketnavn | F1 score | Test billeder | Precision | Recall | Antaget tærskel |
anomaly |
1.000 | 88 | 1.000 | 1.000 | 0.960 |
normal |
1.000 | 3,178 | 1.000 | 1.000 | 0.996 |
Igen modtager vi perfekt præcision og tilbagekaldelse på dette syntetiske datasæt. Ved at kombinere den tidligere model til registrering af stifter med denne model for klassificering af manglende hul i andet trin, kan vi bygge en model, der udkonkurrerer enhver enkelttrinsmodel.
Følgende tabel opsummerer de eksperimenter, vi udførte.
Eksperiment | Type | Beskrivelse | F1 score | Precision | Recall |
1 | Et-trins model | Objektdetektionsmodel til at opdage manglende huller på hele billeder | 0.468 | 0.75 | 0.34 |
2 | Et-trins model | Objektdetektionsmodel til at opdage sunde stifter og manglende huller på beskårne billeder | 0.967 | 0.989 | 0.945 |
3 | To-trins model | Trin 1: Genstandsdetektering på alle ben | 1.000 | 0.999 | 1.000 |
Trin 2: Billedklassificering af sund pin eller manglende huller | 1.000 | 1.000 | 1.000 | ||
End-to-end gennemsnit | 1.000 | 0.9995 | 1.000 |
Inferens pipeline
Du kan bruge følgende arkitektur til at implementere et- og to-trins modellerne, som vi beskrev i dette indlæg. Følgende hovedkomponenter er involveret:
For modeller i et trin kan du sende et inputbillede til API Gateway-endepunktet, efterfulgt af Lambda til enhver grundlæggende billedforbehandling og rute til det trænede modelslutpunkt for Rekognition Custom Labels. I vores eksperimenter undersøgte vi et-trins modeller, der kun kan detektere manglende huller, og manglende huller og sunde stifter.
For modeller i to trin kan du på samme måde sende et billede til API Gateway-slutpunktet efterfulgt af Lambda. Lambda fungerer som en orkestrator, der først kalder objektdetektionsmodellen (uddannet ved hjælp af Rekognition Custom Labels), som genererer området af interesse. Det originale billede beskæres derefter i Lambda-funktionen og sendes til en anden Rekognition Custom Labels-klassificeringsmodel for at detektere defekter i hvert beskåret billede.
Konklusion
I dette indlæg trænede vi et- og to-trinsmodeller til at opdage manglende huller i PCB'er ved hjælp af Rekognition Custom Labels. Vi rapporterede resultater for forskellige modeller; i vores tilfælde klarede to-trins modeller sig bedre end andre varianter. Vi opfordrer kunder med billeder i høj opløsning fra andre domæner til at teste modellens ydeevne med et- og totrinsmodeller. Overvej desuden følgende måder at udvide løsningen på:
- Glidende vinduesafgrøder til dine faktiske datasæt
- Genbrug af dine objektdetekteringsmodeller i samme pipeline
- Forudmærkning af arbejdsgange ved hjælp af afgrænsningsrammeforudsigelser
Om forfatterne
Andreas Karagounis er Data Science Manager hos Accenture. Han har en master i datalogi fra Brown University. Han har en baggrund i computervision og arbejder sammen med kunder om at løse deres forretningsmæssige udfordringer ved hjælp af datavidenskab og maskinlæring.
Yogesh Chaturvedi er Principal Solutions Architect hos AWS med fokus på computervision. Han arbejder med kunder for at løse deres forretningsmæssige udfordringer ved hjælp af cloud-teknologier. Uden for arbejdet nyder han at vandre, rejse og se sport.
Shreyas Subramanian er Principal Data Scientist og hjælper kunder ved at bruge maskinlæring til at løse deres forretningsudfordringer ved hjælp af AWS-platformen. Shreyas har en baggrund i storskala optimering og maskinlæring og i brugen af machine learning og forstærkningslæring til at accelerere optimeringsopgaver.
Selimcan "Kan" Sakar er en cloud-first udvikler og Solutions Architect hos AWS Accenture Business Group med fokus på nye teknologier som GenAI, ML og blockchain. Når han ikke ser modeller samles, kan han ses cykle eller spille klarinet.
- SEO Powered Content & PR Distribution. Bliv forstærket i dag.
- PlatoData.Network Vertical Generative Ai. Styrk dig selv. Adgang her.
- PlatoAiStream. Web3 intelligens. Viden forstærket. Adgang her.
- PlatoESG. Kulstof, CleanTech, Energi, Miljø, Solenergi, Affaldshåndtering. Adgang her.
- PlatoHealth. Bioteknologiske og kliniske forsøgs intelligens. Adgang her.
- Kilde: https://aws.amazon.com/blogs/machine-learning/defect-detection-in-high-resolution-imagery-using-two-stage-amazon-rekognition-custom-labels-models/
- :har
- :er
- :ikke
- :hvor
- 1
- 100
- 116
- 118
- 16
- 20
- 500
- 54
- 7
- a
- accelererende
- Accenture
- imødekomme
- handlinger
- faktiske
- Derudover
- adresse
- Alle
- Amazon
- Amazon-anerkendelse
- Amazon Web Services
- an
- ,
- afsløring af anomalier
- En anden
- enhver
- api
- tilgang
- arkitektur
- ER
- AS
- At
- AWS
- baggrund
- grundlæggende
- BE
- fordi
- være
- blockchain
- board
- både
- Boks
- brun
- bygge
- Bygning
- virksomhed
- men
- by
- Opkald
- kameraer
- CAN
- fange
- tilfælde
- udfordringer
- udfordrende
- klassificering
- Klassificere
- Cloud
- kombinerer
- sammenligne
- fuldstændig
- komponenter
- computer
- Datalogi
- Computer Vision
- betingelser
- gennemført
- Overvej
- består
- Converge
- korrigere
- afgrøde
- afgrøder
- skik
- Kunder
- skader
- data
- datalogi
- dataforsker
- demonstrere
- Afhængigt
- indsætte
- beskrevet
- opdage
- Detektion
- bestemmelse
- Udvikler
- katastrofer
- skelnen
- Domæner
- Dont
- Drones
- grund
- hver
- Effektiv
- smergel
- nye teknologier
- tilskynde
- Endpoint
- udstyr
- Endog
- eksempel
- eksempler
- Udvid
- eksperiment
- eksperimenter
- udforske
- udforsket
- File (Felt)
- Filer
- Fornavn
- passer
- Fokus
- fokuserede
- efterfulgt
- efter
- Til
- fire
- fra
- fuld
- funktion
- yderligere
- gateway
- genereret
- genererer
- Go
- Ground
- gruppe
- Have
- he
- sund
- hjulpet
- hjælper
- Høj
- høj opløsning
- besidder
- Hole
- Huller
- Hvordan
- How To
- Men
- http
- HTTPS
- identificere
- identificere
- if
- billede
- Billedklassificering
- billeder
- Forbedre
- forbedret
- in
- oplysninger
- indgang
- interesse
- ind
- involverede
- Karriere
- jpg
- etiket
- mærkning
- Etiketter
- stor
- storstilet
- læring
- lad
- Belysning
- tabte
- Lot
- Lav
- lavere
- maskine
- machine learning
- Main
- vedligeholde
- Vedligeholdelse
- lave
- leder
- Produktion
- Kan..
- betyder
- midler
- Hukommelse
- glip af
- mangler
- ML
- model
- modeller
- Moderne
- smal
- Natural
- Behov
- ingen
- normal
- objekt
- Objektdetektion
- of
- on
- ONE
- kun
- optimering
- or
- original
- Andet
- Andre
- vores
- udkonkurrerede
- udkonkurrerer
- output
- uden for
- i løbet af
- Overvind
- perfekt
- perfekt
- ydeevne
- fyr
- perron
- plato
- Platon Data Intelligence
- PlatoData
- spiller
- fattige
- Indlæg
- Precision
- foretrækkes
- præsentere
- fremherskende
- tidligere
- Main
- behandle
- kvalitet
- modtage
- reducere
- henvisningen
- region
- fjernelse
- rapporteret
- Løsning
- resulterer
- Resultater
- R
- Kør
- kører
- sagemaker
- samme
- satellit
- Videnskab
- Videnskabsmand
- Anden
- set
- Halvledere
- send
- sendt
- adskille
- Tjenester
- sæt
- flere
- vist
- betydeligt
- lignende
- Tilsvarende
- Simpelt
- SIX
- Størrelse
- lille
- mindre
- So
- løsninger
- Løsninger
- SOLVE
- specifikke
- delt
- splits
- Sport
- Stage
- Steps
- Stadig
- opbevaring
- butik
- sådan
- tilstrækkeligt
- syntetisk
- syntetisk
- systemet
- bord
- Tag
- Opgaver
- opgaver
- Teknologier
- prøve
- Test
- at
- deres
- Them
- derefter
- derved
- Disse
- denne
- tid
- til
- nutidens
- Tog
- uddannet
- Kurser
- Traveling
- to
- typisk
- universitet
- brug
- brug tilfælde
- anvendte
- ved brug af
- sædvanligvis
- forskellige
- meget
- vision
- vs
- ser
- måder
- we
- web
- webservices
- hvornår
- som
- vilje
- vindue
- med
- Arbejde
- arbejdsgange
- virker
- world
- ville
- Du
- Din
- zephyrnet