Dette er et gæsteindlæg forfattet af Andrew Masek, softwareingeniør hos The Barcode Registry og Erik Quisling, CEO for The Barcode Registry.
Produktforfalskning er den største enkeltstående kriminelle virksomhed i verden. Med en vækst på over 10,000 % i de sidste to årtier, er salget af forfalskede varer nu samlet på 1.7 billioner USD om året på verdensplan, hvilket er mere end narkotika og menneskesmugling. Selvom traditionelle metoder til forebyggelse af forfalskning som unikke stregkoder og produktverifikation kan være meget effektive, virker nye maskinlæringsteknologier (ML) såsom objektdetektering meget lovende. Med objektgenkendelse kan du nu tage et billede af et produkt og næsten øjeblikkeligt vide, om produktet sandsynligvis er lovligt eller svigagtigt.
Stregkoderegister (i samarbejde med sin partner Buyabarcode.com) er en fuldserviceløsning, der hjælper kunder med at forhindre produktsvindel og forfalskning. Det gør den ved at sælge unikke GS1-registrerede stregkoder, verificere produktejerskab og registrere brugernes produkter og stregkoder i en omfattende database. Deres seneste tilbud, som vi diskuterer i dette indlæg, bruger Amazon SageMaker at skabe objektdetekteringsmodeller for at hjælpe med øjeblikkelig at genkende forfalskede produkter.
Oversigt over løsning
For at bruge disse objektdetekteringsmodeller skal du først indsamle data for at træne dem. Virksomheder uploader kommenterede billeder af deres produkter til Stregkoderegistret hjemmeside. Efter dette er data uploadet til Amazon Simple Storage Service (Amazon S3) og behandlet af AWS Lambda funktioner, kan du bruge den til at træne en SageMaker objektdetektionsmodel. Denne model er hostet på et SageMaker-slutpunkt, hvor webstedet forbinder det med slutbrugeren.
Der er tre vigtige trin til oprettelse af stregkoderegistret, der bruges til at oprette en brugerdefineret objektdetekteringsmodel med SageMaker:
- Opret et træningsscript, som SageMaker kan køre.
- Byg en Docker-container fra træningsscriptet og upload det til Amazon ECR.
- Brug SageMaker-konsollen til at træne en model med den brugerdefinerede algoritme.
Produktdata
Som en forudsætning for at træne en objektdetekteringsmodel har du brug for en AWS-konto og træningsbilleder, der består af mindst 100 billeder i høj kvalitet (høj opløsning og under flere lysforhold) af dit objekt. Som med enhver ML-model er data af høj kvalitet altafgørende. For at træne en objektdetektionsmodel har vi brug for billeder, der indeholder de relevante produkter samt afgrænsningsfelter, der beskriver, hvor produkterne er på billederne, som vist i følgende eksempel.
For at træne en effektiv model er der brug for billeder af hvert af et mærkes produkter med forskellige baggrunde og lysforhold - cirka 30-100 unikke kommenterede billeder for hvert produkt.
Når billederne er uploadet til webserveren, uploades de til Amazon S3 ved hjælp af AWS SDK til PHP. En Lambda-begivenhed udløses, hver gang et billede uploades. Funktionen fjerner Exif-metadata fra billederne, hvilket nogle gange kan få dem til at se roteret ud, når de åbnes af ML-bibliotekerne, der senere bruges til at træne modellen. De tilknyttede afgrænsningsboksdata gemmes i JSON-filer og uploades til Amazon S3 for at ledsage billederne.
SageMaker til objektdetektionsmodeller
SageMaker er en administreret ML-tjeneste, der inkluderer en række værktøjer til opbygning, træning og hosting af modeller i skyen. Især bruger TheBarcodeRegistry SageMaker til sin objektdetektionstjeneste på grund af SageMakers pålidelige og skalerbare ML-modeltræning og hostingtjenester. Dette betyder, at mange mærker kan have deres egne objektdetektionsmodeller trænet og hostet, og selvom brugen stiger uforudsigeligt, vil der ikke være nogen nedetid.
Stregkoderegistret bruger brugerdefinerede Docker-containere, der er uploadet til Amazon Elastic Container Registry (Amazon ECR) for at få mere finkornet kontrol af objektdetektionsalgoritmen, der anvendes til træning og inferens samt understøttelse af Multi Model Server (MMS). MMS er meget vigtigt i tilfælde af forfalskningsdetektering, fordi det giver mulighed for, at flere mærkers modeller hostes omkostningseffektivt på den samme server. Alternativt kan du bruge den indbyggede objektdetektionsalgoritme til hurtigt at implementere standardmodeller udviklet af AWS.
Træn en brugerdefineret objektdetekteringsmodel med SageMaker
Først skal du tilføje din objektdetektionsalgoritme. I dette tilfælde skal du uploade en Docker-container med scripts til at træne en Yolov5-objektdetektionsmodel til Amazon ECR:
- På SageMaker-konsollen, under Notesbog i navigationsruden skal du vælge Notebook-forekomster.
- Vælg Opret notesbogsforekomst.
- Indtast et navn til notesbogsforekomsten og under Tilladelser og kryptering vælg en AWS identitets- og adgangsstyring (IAM) rolle med de nødvendige tilladelser.
- Åbne Git repositories menu.
- Type Klon kun et offentligt Git-lager til denne notesbogsforekomst og indsæt følgende Git repository URL: https://github.com/portoaj/SageMakerObjectDetection
- Klik Opret notesbogsforekomst og vent cirka fem minutter på, at forekomstens status opdateres fra Verserende til I brug i Notebook-forekomst menu.
- Når notesbogen er I brug, vælg det og klik handlinger , Åbn Jupyter for at starte notebook-forekomsten på en ny fane.
- Vælg SageMakerObjectDetection mappe og klik derefter på
sagemakerobjectdetection.ipynb
for at starte Jupyter-notebooken. - Vælg
conda_python3
kerne og klik Indstil kerne. - Vælg kodecellen og indstil
aws_account_id
variabel til dit AWS-konto-id. - Klik Kør for at begynde processen med at bygge en Docker-container og uploade den til Amazon ECR. Denne proces kan tage omkring 20 minutter at fuldføre.
- Når Docker-beholderen er blevet uploadet, skal du vende tilbage til Notebook-forekomster menuen, vælg din instans og klik handlinger , Stands for at lukke din notebook-forekomst ned.
Efter at algoritmen er bygget og skubbet til Amazon ECR, kan du bruge den til at træne en model via SageMaker-konsollen.
- På SageMaker-konsollen, under Kurser i navigationsruden skal du vælge Træningsjob.
- Vælg Opret træningsjob.
- Indtast et navn til jobbet og vælg AWS identitets- og adgangsstyring (IAM) rolle med de nødvendige tilladelser.
- Til Algoritmekilde, Vælg Din egen algoritmebeholder i ECR.
- Til Container, skal du indtaste registreringsstien.
- Indstilling af en enkelt ml.p2.xlarge-instans under ressourcekonfigurationen burde være tilstrækkelig til at træne en Yolov5-model.
- Angiv Amazon S3-placeringer for både dine inputdata og outputsti og eventuelle andre indstillinger, såsom konfiguration af en VPC via Amazon Virtual Private Cloud (Amazon VPC) eller aktivere Managed Spot Training.
- Vælg Opret træningsjob.
Du kan spore modellens træningsfremskridt på SageMaker-konsollen.
Automatiseret modeltræning
Følgende diagram illustrerer den automatiserede modeltræningsarbejdsgang:
For at få SageMaker til at begynde at træne objektdetekteringsmodellen, så snart en bruger er færdig med at uploade deres data, bruger webserveren Amazon API Gateway at underrette en Lambda-funktion om, at mærket er færdigt, og at påbegynde et træningsjob.
Når et brands model trænes med succes, Amazon Eventbridge kalder en Lambda-funktion, der flytter den trænede model ind i live-endepunktets S3-spand, hvor den endelig er klar til inferens. Et nyere alternativ til at bruge Amazon EventBridge til at flytte modeller gennem MLOps livscyklus, som du bør overveje, er SageMaker Pipelines.
Vær vært for modellen til slutning
Følgende diagram illustrerer inferens workflow:
For at bruge de trænede modeller kræver SageMaker, at en slutningsmodel hostes af et slutpunkt. Slutpunktet er serveren eller rækken af servere, der bruges til faktisk at være vært for inferensmodellen. I lighed med den træningscontainer, vi oprettede, hostes en Docker-container til inferens i Amazon ECR. Inferensmodellen bruger den Docker-beholder og tager inputbilledet, som brugeren tog med sin telefon, kører det gennem den trænede objektdetekteringsmodel og udsender resultatet.
Igen bruger Barcode Registry brugerdefinerede Docker-beholdere til inferensmodellen for at muliggøre brugen af Multi Model Server, men hvis der kun er behov for én model, kan den nemt hostes gennem den indbyggede objektdetekteringsalgoritme.
Konklusion
Stregkoderegistret (sammen med sin partner Buyabarcode.com) bruger AWS til hele sin objektdetekteringspipeline. Webserveren gemmer pålideligt data i Amazon S3 og bruger API Gateway og Lambda funktioner til at forbinde webserveren til skyen. SageMaker træner og hoster let ML-modeller, hvilket betyder, at en bruger kan tage et billede af et produkt på sin telefon og se, om produktet er en forfalskning. Dette indlæg viser, hvordan man opretter og hoster en objektdetekteringsmodel ved hjælp af SageMaker, samt hvordan man automatiserer processen.
I test var modellen i stand til at opnå over 90 % nøjagtighed på et træningssæt med 62 billeder og et testsæt på 32 billeder, hvilket er ret imponerende for en model trænet uden menneskelig indblanding. For at komme i gang med at træne objektdetektionsmodeller selv, tjek den officielle dokumentation eller lære at implementer en objektdetekteringsmodel til kanten ved hjælp af AWS IoT Greengrass.
Indholdet og meningerne i dette indlæg er tredjepartsforfatterens, og AWS er ikke ansvarlig for indholdet eller nøjagtigheden af dette indlæg.
Om forfatterne
Andrew Masek, Software Engineer hos The Barcode Registry.
Erik Quisling, administrerende direktør for The Barcode Registry.
- Coinsmart. Europas bedste Bitcoin og Crypto Exchange.
- Platoblokkæde. Web3 Metaverse Intelligence. Viden forstærket. FRI ADGANG.
- CryptoHawk. Altcoin radar. Gratis prøveversion.
- Kilde: https://aws.amazon.com/blogs/machine-learning/how-the-barcode-registry-detects-counterfeit-products-using-object-detection-and-amazon-sagemaker/
- "
- 000
- 10
- 100
- 7
- Om
- adgang
- Konto
- algoritme
- Skønt
- Amazon
- api
- Automatiseret
- AWS
- grænse
- Boks
- brands
- Bygning
- indbygget
- Årsag
- Direktør
- Cloud
- kode
- indsamler
- Virksomheder
- Konfiguration
- Konsol
- Container
- Beholdere
- indhold
- kontrol
- Counterfeit
- Oprettelse af
- Criminal
- skik
- Kunder
- data
- Database
- indsætte
- Detektion
- udviklet
- forskellige
- diskutere
- Docker
- ned
- nedetid
- Narkotika
- nemt
- Edge
- Effektiv
- muliggør
- Endpoint
- ingeniør
- Enterprise
- begivenhed
- eksempel
- Endelig
- Fornavn
- efter
- bedrageri
- funktion
- Git
- varer
- Dyrkning
- Gæst
- gæst Indlæg
- hjælpe
- hjælper
- Hvordan
- How To
- HTTPS
- menneskelig
- Identity
- billede
- vigtigt
- tingenes internet
- IT
- Job
- Nøgle
- seneste
- lancere
- LÆR
- læring
- placeringer
- maskine
- machine learning
- lykkedes
- ML
- model
- modeller
- mere
- bevæge sig
- Navigation
- notesbog
- tilbyde
- officiel
- Udtalelser
- ordrer
- Andet
- ejerskab
- partner
- billede
- smuk
- Forebyggelse
- private
- behandle
- Produkt
- Produkter
- lovende
- offentlige
- hurtigt
- genkende
- relevant
- Repository
- ressource
- ansvarlige
- Kør
- salg
- skalerbar
- SDK
- tjeneste
- Tjenester
- sæt
- lignende
- Simpelt
- Snap
- Software
- Software Engineer
- løsninger
- Spot
- starte
- påbegyndt
- Status
- opbevaring
- forhandler
- Succesfuld
- support
- Teknologier
- Test
- verdenen
- tredjepart
- Gennem
- tid
- værktøjer
- spor
- traditionelle
- Kurser
- tog
- enestående
- Opdatering
- brug
- Verifikation
- Virtual
- vente
- web
- Webserver
- Hjemmeside
- uden
- world
- verdensplan
- år