Detta är ett gästinlägg författat av Andrew Masek, mjukvaruingenjör på The Barcode Registry och Erik Quisling, VD för The Barcode Registry.
Produktförfalskning är det enskilt största kriminella företaget i världen. Med en tillväxt på över 10,000 1.7 % under de senaste två decennierna uppgår försäljningen av förfalskade varor nu till XNUMX biljoner dollar per år över hela världen, vilket är mer än narkotika och människohandel. Även om traditionella metoder för att förebygga förfalskning som unika streckkoder och produktverifiering kan vara mycket effektiva, verkar nya maskininlärningstekniker (ML) som objektdetektering mycket lovande. Med objektdetektering kan du nu ta en bild av en produkt och nästan omedelbart veta om den produkten sannolikt är legitim eller bedräglig.
Smakämnen Streckkodsregistret (i samarbete med sin partner Buyabarcode.com) är en komplett lösning som hjälper kunder att förhindra produktbedrägerier och förfalskning. Den gör detta genom att sälja unika GS1-registrerade streckkoder, verifiera produktägande och registrera användarnas produkter och streckkoder i en omfattande databas. Deras senaste erbjudande, som vi diskuterar i det här inlägget, använder Amazon SageMaker att skapa objektdetekteringsmodeller som hjälper dig att omedelbart känna igen förfalskade produkter.
Översikt över lösningen
För att använda dessa objektdetekteringsmodeller måste du först samla in data för att träna dem. Företag laddar upp kommenterade bilder av sina produkter till streckkodsregistret webbplats. Efter denna data laddas upp till Amazon enkel lagringstjänst (Amazon S3) och bearbetad av AWS Lambda funktioner, kan du använda den för att träna en SageMaker-objektdetekteringsmodell. Denna modell är värd på en SageMaker-slutpunkt, där webbplatsen kopplar den till slutanvändaren.
Det finns tre viktiga steg för att skapa streckkodsregistret för att skapa en anpassad objektdetekteringsmodell med SageMaker:
- Skapa ett träningsskript som SageMaker kan köra.
- Bygg en Docker-behållare från träningsskriptet och ladda upp den till Amazon ECR.
- Använd SageMaker-konsolen för att träna en modell med den anpassade algoritmen.
Produktdata
Som en förutsättning för att träna en objektdetekteringsmodell behöver du ett AWS-konto och träningsbilder, bestående av minst 100 högkvalitativa (högupplösta och i flera ljusförhållanden) bilder av ditt objekt. Som med alla ML-modeller är data av hög kvalitet av största vikt. För att träna en objektdetekteringsmodell behöver vi bilder som innehåller de relevanta produkterna samt begränsningsrutor som beskriver var produkterna finns i bilderna, som visas i följande exempel.
För att träna en effektiv modell behövs bilder på var och en av ett varumärkes produkter med olika bakgrund och ljusförhållanden – cirka 30–100 unika kommenterade bilder för varje produkt.
När bilderna har laddats upp till webbservern laddas de upp till Amazon S3 med hjälp av AWS SDK för PHP. En Lambda-händelse utlöses varje gång en bild laddas upp. Funktionen tar bort Exif-metadata från bilderna, vilket ibland kan göra att de visas roterade när de öppnas av ML-biblioteken som senare används för att träna modellen. Den associerade bounding box-datan lagras i JSON-filer och laddas upp till Amazon S3 för att åtfölja bilderna.
SageMaker för objektdetekteringsmodeller
SageMaker är en hanterad ML-tjänst som inkluderar en mängd olika verktyg för att bygga, träna och hosta modeller i molnet. I synnerhet använder TheBarcodeRegistry SageMaker för sin objektdetekteringstjänst på grund av SageMakers pålitliga och skalbara ML-modellutbildning och värdtjänster. Detta innebär att många märken kan ha sina egna objektdetekteringsmodeller utbildade och värdda och även om användningen ökar oförutsägbart kommer det inte att bli några stillestånd.
Streckkodsregistret använder anpassade Docker-behållare som laddas upp till Amazon Elastic Container Registry (Amazon ECR) för att få en mer finkornig kontroll av objektdetekteringsalgoritmen som används för träning och slutledning samt stöd för Multi Model Server (MMS). MMS är mycket viktigt för användningen av förfalskningsupptäckt eftersom det gör att flera märkesmodeller kan lagras kostnadseffektivt på samma server. Alternativt kan du använda den inbyggda objektdetekteringsalgoritm att snabbt distribuera standardmodeller utvecklade av AWS.
Träna en anpassad objektdetekteringsmodell med SageMaker
Först måste du lägga till din objektdetekteringsalgoritm. I det här fallet laddar du upp en Docker-behållare med skript för att träna en Yolov5-objektdetekteringsmodell till Amazon ECR:
- På SageMaker-konsolen, under Notebook välj i navigeringsfönstret Notebook-instanser.
- Välja Skapa anteckningsbokinstans.
- Ange ett namn för anteckningsbokförekomsten och under Behörigheter och kryptering välj en AWS identitets- och åtkomsthantering (IAM) roll med nödvändiga behörigheter.
- Öppna Git-arkiv meny.
- Välja Klona bara ett offentligt Git-arkiv till den här anteckningsboksinstansen och klistra in följande Git-repository URL: https://github.com/portoaj/SageMakerObjectDetection
- Klicka Skapa anteckningsbokinstans och vänta cirka fem minuter tills instansens status uppdateras från Avvaktan till I tjänst i Anteckningsbok instans meny.
- När anteckningsboken är I tjänst, välj det och klicka Handlingar och Öppna Jupyter för att starta anteckningsbokförekomsten på en ny flik.
- Välj SageMakerObjectDetection katalog och klicka sedan på
sagemakerobjectdetection.ipynb
för att starta Jupyter-anteckningsboken. - Välj
conda_python3
kärna och klicka Ställ in kärnan. - Välj kodcellen och ställ in
aws_account_id
variabel till ditt AWS-konto-ID. - Klicka Körning för att påbörja processen att bygga en Docker-behållare och ladda upp den till Amazon ECR. Denna process kan ta cirka 20 minuter att slutföra.
- När Docker-behållaren har laddats upp går du tillbaka till Notebook-instanser menyn, välj din instans och klicka Handlingar och Sluta för att stänga av din notebook-instans.
Efter att algoritmen har byggts och skjutits till Amazon ECR kan du använda den för att träna en modell via SageMaker-konsolen.
- På SageMaker-konsolen, under Utbildning välj i navigeringsfönstret Träningsjobb.
- Välja Skapa träningsjobb.
- Ange ett namn för jobbet och välj AWS identitets- och åtkomsthantering (IAM) roll med nödvändiga behörigheter.
- För Algoritmkälla, Välj Din egen algoritmbehållare i ECR.
- För Behållare, ange registersökvägen.
- Att ställa in en enda ml.p2.xlarge-instans under resurskonfigurationen borde vara tillräckligt för att träna en Yolov5-modell.
- Ange Amazon S3-platser för både din indata och utdatasökväg och andra inställningar som att konfigurera en VPC via Amazon Virtual Private Cloud (Amazon VPC) eller aktivera Managed Spot Training.
- Välja Skapa träningsjobb.
Du kan spåra modellens träningsframsteg på SageMaker-konsolen.
Automatiserad modellutbildning
Följande diagram illustrerar det automatiserade arbetsflödet för modellutbildning:
För att få SageMaker att börja träna objektdetekteringsmodellen så snart en användare har laddat upp sina data, använder webbservern Amazon API Gateway att meddela en lambdafunktion att varumärket är klart och att påbörja ett träningsjobb.
När ett varumärkes modell tränas framgångsrikt, Amazon EventBridge anropar en Lambda-funktion som flyttar den tränade modellen in i live-ändpunktens S3-skopa, där den äntligen är redo för slutledning. Ett nyare alternativ till att använda Amazon EventBridge för att flytta modeller genom MLOps livscykel som du bör överväga är SageMaker-rörledningar.
Värd modellen för slutledning
Följande diagram illustrerar slutledningsarbetsflödet:
För att kunna använda de tränade modellerna kräver SageMaker att en slutpunktsmodell är värd för en slutpunkt. Slutpunkten är servern eller arrayen av servrar som används för att faktiskt vara värd för slutledningsmodellen. I likhet med utbildningsbehållaren som vi skapade, finns en Docker-behållare för slutledning i Amazon ECR. Slutledningsmodellen använder den Docker-behållaren och tar indatabilden som användaren tog med sin telefon, kör den genom den tränade objektdetekteringsmodellen och matar ut resultatet.
Återigen använder streckkodsregistret anpassade Docker-behållare för slutledningsmodellen för att möjliggöra användningen av Multi Model Server, men om det bara behövs en modell som enkelt kan vara värd genom den inbyggda objektdetekteringsalgoritmen.
Slutsats
Streckkodsregistret (i samarbete med sin partner Buyabarcode.com) använder AWS för hela sin objektdetekteringspipeline. Webbservern lagrar data på ett tillförlitligt sätt i Amazon S3 och använder API Gateway och Lambda-funktioner för att ansluta webbservern till molnet. SageMaker tränar och är värd för ML-modeller, vilket innebär att en användare kan ta en bild av en produkt på sin telefon och se om produkten är en förfalskning. Det här inlägget visar hur man skapar och är värd för en objektdetekteringsmodell med SageMaker, samt hur man automatiserar processen.
Vid testning kunde modellen uppnå över 90 % noggrannhet på en träningsuppsättning med 62 bilder och en testuppsättning med 32 bilder, vilket är ganska imponerande för en modell som tränats utan mänsklig inblandning. För att komma igång med att träna objektdetektionsmodeller själv kolla in den officiella dokumentation eller lära dig hur distribuera en objektdetekteringsmodell till kanten med AWS IoT Greengrass.
Innehållet och åsikterna i det här inlägget tillhör tredjepartsförfattaren och AWS ansvarar inte för innehållet eller noggrannheten i detta inlägg.
Om författarna
Andrew Masek, mjukvaruingenjör på The Barcode Registry.
Erik Quisling, VD för The Barcode Registry.
- Myntsmart. Europas bästa bitcoin- och kryptobörs.
- Platoblockchain. Web3 Metaverse Intelligence. Kunskap förstärkt. FRI TILLGÅNG.
- CryptoHawk. Altcoin radar. Gratis provperiod.
- Källa: 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 oss
- tillgång
- Konto
- algoritm
- Även
- amason
- api
- Automatiserad
- AWS
- gränsen
- Box
- varumärken
- Byggnad
- inbyggd
- Orsak
- VD
- cloud
- koda
- samla
- Företag
- konfiguration
- Konsol
- Behållare
- Behållare
- innehåll
- kontroll
- Förfalskade
- Skapa
- Kriminell
- beställnings
- Kunder
- datum
- Databas
- distribuera
- Detektering
- utvecklade
- olika
- diskutera
- Hamnarbetare
- ner
- stilleståndstid
- Läkemedel
- lätt
- kant
- Effektiv
- möjliggör
- Slutpunkt
- ingenjör
- Företag
- händelse
- exempel
- Slutligen
- Förnamn
- efter
- bedrägeri
- fungera
- gå
- varor
- Odling
- Gäst
- gäst inlägg
- hjälpa
- hjälper
- Hur ser din drömresa ut
- How To
- HTTPS
- humant
- Identitet
- bild
- med Esport
- iot
- IT
- Jobb
- Nyckel
- senaste
- lansera
- LÄRA SIG
- inlärning
- platser
- Maskinen
- maskininlärning
- förvaltade
- ML
- modell
- modeller
- mer
- flytta
- Navigering
- anteckningsbok
- erbjuda
- tjänsteman
- Åsikter
- beställa
- Övriga
- ägande
- partnern
- Bild
- pretty
- Förebyggande
- privat
- process
- Produkt
- Produkter
- lovande
- allmän
- snabbt
- känner igen
- relevanta
- Repository
- resurs
- ansvarig
- Körning
- försäljning
- skalbar
- sDK
- service
- Tjänster
- in
- liknande
- Enkelt
- snap
- Mjukvara
- Programvara ingenjör
- lösning
- Spot
- starta
- igång
- status
- förvaring
- lagrar
- Framgångsrikt
- stödja
- Tekniken
- Testning
- världen
- tredje part
- Genom
- tid
- verktyg
- spår
- traditionell
- Utbildning
- tåg
- unika
- Uppdatering
- användning
- Verifiering
- Virtuell
- vänta
- webb
- webbserver
- Webbplats
- utan
- världen
- inom hela sverige
- år