You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/da/5-retail/lessons/2-check-stock-device
co-op-translator[bot] 3a1a853e91
🌐 Update translations via Co-op Translator (#547)
4 weeks ago
..
README.md 🌐 Update translations via Co-op Translator (#547) 4 weeks ago
assignment.md 🌐 Update translations via Co-op Translator (#547) 4 weeks ago
single-board-computer-count-stock.md 🌐 Update translations via Co-op Translator (#547) 4 weeks ago
single-board-computer-object-detector.md 🌐 Update translations via Co-op Translator (#547) 4 weeks ago
wio-terminal-count-stock.md 🌐 Update translations via Co-op Translator (#547) 4 weeks ago
wio-terminal-object-detector.md 🌐 Update translations via Co-op Translator (#547) 4 weeks ago

README.md

Tjek lager fra en IoT-enhed

En sketchnote-oversigt over denne lektion

Sketchnote af Nitya Narasimhan. Klik på billedet for en større version.

Quiz før lektionen

Quiz før lektionen

Introduktion

I den forrige lektion lærte du om de forskellige anvendelser af objektdetektion i detailhandlen. Du lærte også, hvordan man træner en objektdetektor til at identificere lager. I denne lektion vil du lære, hvordan du bruger din objektdetektor fra din IoT-enhed til at tælle lager.

I denne lektion dækker vi:

🗑 Dette er den sidste lektion i dette projekt, så efter at have gennemført denne lektion og opgaven, skal du huske at rydde op i dine cloud-tjenester. Du skal bruge tjenesterne for at fuldføre opgaven, så sørg for at gøre det først.

Se guiden til at rydde op i dit projekt, hvis du har brug for instruktioner til, hvordan du gør dette.

Lageroptælling

Objektdetektorer kan bruges til lagerkontrol, enten til at tælle lager eller sikre, at lageret er, hvor det skal være. IoT-enheder med kameraer kan placeres rundt om i butikken for at overvåge lageret, startende med hotspots, hvor det er vigtigt at genopfylde varer, såsom områder med små mængder af højværdiartikler.

For eksempel, hvis et kamera peger på en hylde, der kan rumme 8 dåser tomatpuré, og en objektdetektor kun registrerer 7 dåser, mangler der én, som skal genopfyldes.

7 dåser tomatpuré på en hylde, 4 på øverste række, 3 på nederste række

I billedet ovenfor har en objektdetektor registreret 7 dåser tomatpuré på en hylde, der kan rumme 8 dåser. Ikke alene kan IoT-enheden sende en notifikation om behovet for genopfyldning, men den kan også give en indikation af, hvor den manglende vare befinder sig, hvilket er vigtig information, hvis du bruger robotter til at genopfylde hylder.

💁 Afhængigt af butikken og varens popularitet ville genopfyldning sandsynligvis ikke ske, hvis kun én dåse manglede. Du skal bygge en algoritme, der bestemmer, hvornår der skal genopfyldes, baseret på dine varer, kunder og andre kriterier.

I hvilke andre scenarier kunne du kombinere objektdetektion og robotter?

Nogle gange kan det forkerte lager være på hylderne. Dette kan skyldes menneskelige fejl under genopfyldning eller kunder, der ombestemmer sig og placerer en vare på den første ledige plads. Når det drejer sig om ikke-letfordærvelige varer som konserves, er dette en irritation. Hvis det er letfordærvelige varer som frosne eller kølede produkter, kan det betyde, at varen ikke længere kan sælges, da det kan være umuligt at afgøre, hvor længe varen har været ude af fryseren.

Objektdetektion kan bruges til at opdage uventede varer og igen advare en person eller robot om at returnere varen, så snart den opdages.

En vildfaren dåse babymajs på tomatpuréhylden

I billedet ovenfor er en dåse babymajs blevet placeret på hylden ved siden af tomatpuréen. Objektdetektoren har registreret dette, hvilket gør det muligt for IoT-enheden at give besked til en person eller robot om at returnere dåsen til dens korrekte placering.

Kald din objektdetektor fra din IoT-enhed

Den objektdetektor, du trænede i den sidste lektion, kan kaldes fra din IoT-enhed.

Opgave - udgiv en iteration af din objektdetektor

Iterationer udgives fra Custom Vision-portalen.

  1. Åbn Custom Vision-portalen på CustomVision.ai, og log ind, hvis du ikke allerede har den åben. Åbn derefter dit stock-detector-projekt.

  2. Vælg fanen Performance fra mulighederne øverst.

  3. Vælg den nyeste iteration fra listen Iterations i siden.

  4. Vælg knappen Publish for iterationen.

    Udgiv-knappen

  5. I dialogboksen Publish Model skal du indstille Prediction resource til den stock-detector-prediction-ressource, du oprettede i den sidste lektion. Lad navnet være Iteration2, og vælg knappen Publish.

  6. Når den er udgivet, skal du vælge knappen Prediction URL. Dette vil vise detaljer om forudsigelses-API'en, som du skal bruge for at kalde modellen fra din IoT-enhed. Den nederste sektion er mærket If you have an image file, og det er disse detaljer, du skal bruge. Tag en kopi af den viste URL, som vil være noget i stil med:

    https://<location>.api.cognitive.microsoft.com/customvision/v3.0/Prediction/<id>/detect/iterations/Iteration2/image
    

    Hvor <location> vil være den placering, du brugte, da du oprettede din Custom Vision-ressource, og <id> vil være en lang ID bestående af bogstaver og tal.

    Tag også en kopi af værdien Prediction-Key. Dette er en sikker nøgle, som du skal sende, når du kalder modellen. Kun applikationer, der sender denne nøgle, har tilladelse til at bruge modellen, alle andre applikationer afvises.

    Dialogboksen for forudsigelses-API, der viser URL og nøgle

Når en ny iteration udgives, vil den have et andet navn. Hvordan tror du, at du ville ændre den iteration, som en IoT-enhed bruger?

Opgave - kald din objektdetektor fra din IoT-enhed

Følg den relevante guide nedenfor for at bruge objektdetektoren fra din IoT-enhed:

Afgrænsningsbokse

Når du bruger objektdetektoren, får du ikke kun de registrerede objekter med deres tags og sandsynligheder, men også afgrænsningsboksene for objekterne. Disse definerer, hvor objektdetektoren registrerede objektet med den givne sandsynlighed.

💁 En afgrænsningsboks er en boks, der definerer det område, der indeholder det registrerede objekt, en boks, der definerer grænsen for objektet.

Resultaterne af en forudsigelse i fanen Predictions i Custom Vision har afgrænsningsboksene tegnet på det billede, der blev sendt til forudsigelse.

4 dåser tomatpuré på en hylde med forudsigelser for de 4 registreringer på 35,8 %, 33,5 %, 25,7 % og 16,6 %

I billedet ovenfor blev 4 dåser tomatpuré registreret. I resultaterne er en rød firkant overlejret for hvert objekt, der blev registreret i billedet, hvilket angiver afgrænsningsboksen for billedet.

Åbn forudsigelserne i Custom Vision, og tjek afgrænsningsboksene.

Afgrænsningsbokse defineres med 4 værdier - top, venstre, højde og bredde. Disse værdier er på en skala fra 0-1, der repræsenterer positionerne som en procentdel af billedets størrelse. Oprindelsen (0,0-positionen) er øverste venstre hjørne af billedet, så topværdien er afstanden fra toppen, og bunden af afgrænsningsboksen er toppen plus højden.

En afgrænsningsboks omkring en dåse tomatpuré

Billedet ovenfor er 600 pixels bredt og 800 pixels højt. Afgrænsningsboksen starter 320 pixels nede, hvilket giver en topkoordinat på 0,4 (800 x 0,4 = 320). Fra venstre starter afgrænsningsboksen 240 pixels inde, hvilket giver en venstre koordinat på 0,4 (600 x 0,4 = 240). Højden på afgrænsningsboksen er 240 pixels, hvilket giver en højdeværdi på 0,3 (800 x 0,3 = 240). Bredden på afgrænsningsboksen er 120 pixels, hvilket giver en breddeværdi på 0,2 (600 x 0,2 = 120).

Koordinat Værdi
Top 0,4
Venstre 0,4
Højde 0,3
Bredde 0,2

Ved at bruge procentværdier fra 0-1 betyder det, at uanset hvilken størrelse billedet skaleres til, starter afgrænsningsboksen 0,4 af vejen hen og ned og er 0,3 af højden og 0,2 af bredden.

Du kan bruge afgrænsningsbokse kombineret med sandsynligheder til at evaluere, hvor præcis en registrering er. For eksempel kan en objektdetektor registrere flere objekter, der overlapper hinanden, for eksempel registrere én dåse inde i en anden. Din kode kunne se på afgrænsningsboksene, forstå, at dette er umuligt, og ignorere eventuelle objekter, der har en betydelig overlapning med andre objekter.

To afgrænsningsbokse, der overlapper en dåse tomatpuré

I eksemplet ovenfor angav en afgrænsningsboks en forudsagt dåse tomatpuré med 78,3 %. En anden afgrænsningsboks er lidt mindre og er inde i den første afgrænsningsboks med en sandsynlighed på 64,3 %. Din kode kan tjekke afgrænsningsboksene, se, at de overlapper fuldstændigt, og ignorere den lavere sandsynlighed, da det ikke er muligt, at én dåse er inde i en anden.

Kan du tænke på en situation, hvor det er gyldigt at registrere ét objekt inde i et andet?

Gen-træn modellen

Ligesom med billedklassifikatoren kan du gen-træne din model ved hjælp af data indsamlet af din IoT-enhed. Brug af disse data fra den virkelige verden vil sikre, at din model fungerer godt, når den bruges fra din IoT-enhed.

I modsætning til billedklassifikatoren kan du ikke bare tagge et billede. I stedet skal du gennemgå hver afgrænsningsboks, der er registreret af modellen. Hvis boksen er omkring det forkerte objekt, skal den slettes, og hvis den er på det forkerte sted, skal den justeres.

Opgave - gen-træn modellen

  1. Sørg for, at du har indsamlet en række billeder ved hjælp af din IoT-enhed.

  2. Fra fanen Predictions skal du vælge et billede. Du vil se røde bokse, der angiver afgrænsningsboksene for de registrerede objekter.

  3. Gennemgå hver afgrænsningsboks. Vælg den først, og du vil se en pop-up, der viser tagget. Brug håndtagene på hjørnerne af afgrænsningsboksen til at justere størrelsen, hvis det er nødvendigt. Hvis tagget er forkert, skal du fjerne det med knappen X og tilføje det korrekte tag. Hvis afgrænsningsboksen ikke indeholder et objekt, skal du slette den med skraldespandsknappen.

  4. Luk editoren, når du er færdig, og billedet flyttes fra fanen Predictions til fanen Training Images. Gentag processen for alle forudsigelser.

  5. Brug knappen Train til at gen-træne din model. Når den er trænet, skal du udgive iterationen og opdatere din IoT-enhed til at bruge URL'en for den nye iteration.

  6. Genudrul din kode, og test din IoT-enhed.

Tæl lager

Ved at kombinere antallet af registrerede objekter og afgrænsningsboksene kan du tælle lageret på en hylde.

Opgave - tæl lager

Følg den relevante guide nedenfor for at tælle lager ved hjælp af resultaterne fra objektdetektoren fra din IoT-enhed:


🚀 Udfordring

Kan du registrere forkert lager? Træn din model på flere objekter, og opdater derefter din app til at advare dig, hvis det forkerte lager registreres.

Måske kan du endda tage det et skridt videre og registrere lager side om side på samme hylde og se, om noget er blevet placeret forkert ved at definere grænser for afgrænsningsboksene.

Quiz efter lektionen

Quiz efter lektionen

Gennemgang & Selvstudie

Opgave

Brug din objektdetektor på kanten


Ansvarsfraskrivelse:
Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten Co-op Translator. Selvom vi bestræber os på at sikre nøjagtighed, skal du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os ikke ansvar for eventuelle misforståelser eller fejltolkninger, der måtte opstå som følge af brugen af denne oversættelse.