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/ro/5-retail/lessons/2-check-stock-device/README.md

15 KiB

Verificarea stocului de pe un dispozitiv IoT

O prezentare grafică a lecției

Prezentare grafică realizată de Nitya Narasimhan. Click pe imagine pentru o versiune mai mare.

Chestionar înainte de lecție

Chestionar înainte de lecție

Introducere

În lecția anterioară ai învățat despre diferitele utilizări ale detectării obiectelor în retail. De asemenea, ai învățat cum să antrenezi un detector de obiecte pentru a identifica stocul. În această lecție vei învăța cum să folosești detectorul de obiecte de pe dispozitivul tău IoT pentru a număra stocul.

În această lecție vom acoperi:

🗑 Aceasta este ultima lecție din acest proiect, așa că după ce finalizezi lecția și sarcina, nu uita să cureți serviciile cloud. Vei avea nevoie de aceste servicii pentru a finaliza sarcina, așa că asigură-te că o finalizezi mai întâi.

Consultă ghidul de curățare a proiectului dacă este necesar pentru instrucțiuni despre cum să faci acest lucru.

Numărarea stocului

Detectoarele de obiecte pot fi utilizate pentru verificarea stocului, fie pentru numărarea acestuia, fie pentru a se asigura că stocul este acolo unde ar trebui să fie. Dispozitivele IoT cu camere pot fi amplasate în tot magazinul pentru a monitoriza stocul, începând cu zonele de interes unde este important să se reumple rafturile, cum ar fi zonele în care sunt stocate articole de valoare mare în cantități mici.

De exemplu, dacă o cameră este îndreptată spre un set de rafturi care pot ține 8 conserve de pastă de tomate, iar un detector de obiecte detectează doar 7 conserve, atunci una lipsește și trebuie reumplută.

7 conserve de pastă de tomate pe un raft, 4 pe rândul de sus, 3 pe rândul de jos

În imaginea de mai sus, un detector de obiecte a detectat 7 conserve de pastă de tomate pe un raft care poate ține 8 conserve. Dispozitivul IoT nu doar că poate trimite o notificare despre necesitatea reumplerii, dar poate chiar să ofere o indicație despre locația articolului lipsă, informație importantă dacă folosești roboți pentru a reumple rafturile.

💁 În funcție de magazin și de popularitatea articolului, probabil că reumplerea nu ar avea loc dacă lipsește doar o conservă. Ar trebui să construiești un algoritm care determină când să reumpli rafturile pe baza produselor, clienților și altor criterii.

În ce alte scenarii ai putea combina detectarea obiectelor și roboții?

Uneori, stocul greșit poate ajunge pe rafturi. Acest lucru poate fi o eroare umană la reumplere sau clienți care se răzgândesc în privința unei achiziții și pun un articol în primul loc disponibil. Când este vorba de un articol neperisabil, cum ar fi conservele, acest lucru este doar o neplăcere. Dacă este vorba de un articol perisabil, cum ar fi produsele congelate sau refrigerate, acest lucru poate însemna că produsul nu mai poate fi vândut, deoarece ar putea fi imposibil de determinat cât timp a fost în afara congelatorului.

Detectarea obiectelor poate fi utilizată pentru a detecta articole neașteptate, alertând din nou un om sau un robot să returneze articolul imediat ce este detectat.

O conservă de porumb pentru bebeluși pe raftul de pastă de tomate

În imaginea de mai sus, o conservă de porumb pentru bebeluși a fost pusă pe raftul de pastă de tomate. Detectorul de obiecte a detectat acest lucru, permițând dispozitivului IoT să notifice un om sau un robot să returneze conserva la locația corectă.

Apelarea detectorului de obiecte de pe dispozitivul IoT

Detectorul de obiecte pe care l-ai antrenat în lecția anterioară poate fi apelat de pe dispozitivul tău IoT.

Sarcină - publicarea unei iterații a detectorului de obiecte

Iterațiile sunt publicate din portalul Custom Vision.

  1. Accesează portalul Custom Vision la CustomVision.ai și autentifică-te dacă nu l-ai deschis deja. Apoi deschide proiectul stock-detector.

  2. Selectează fila Performance din opțiunile de sus.

  3. Selectează cea mai recentă iterație din lista Iterations din lateral.

  4. Apasă butonul Publish pentru iterație.

    Butonul de publicare

  5. În dialogul Publish Model, setează Prediction resource la resursa stock-detector-prediction pe care ai creat-o în lecția anterioară. Lasă numele ca Iteration2 și apasă butonul Publish.

  6. După publicare, apasă butonul Prediction URL. Acesta va afișa detalii despre API-ul de predicție, iar tu vei avea nevoie de acestea pentru a apela modelul de pe dispozitivul tău IoT. Secțiunea de jos este etichetată If you have an image file, și acestea sunt detaliile de care ai nevoie. Ia o copie a URL-ului afișat, care va arăta ceva de genul:

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

    Unde <location> va fi locația pe care ai utilizat-o când ai creat resursa Custom Vision, iar <id> va fi un ID lung format din litere și cifre.

    De asemenea, ia o copie a valorii Prediction-Key. Aceasta este o cheie securizată pe care trebuie să o transmiți când apelezi modelul. Doar aplicațiile care transmit această cheie au permisiunea de a utiliza modelul, orice alte aplicații sunt respinse.

    Dialogul API de predicție care arată URL-ul și cheia

Când o nouă iterație este publicată, aceasta va avea un nume diferit. Cum crezi că ai putea schimba iterația pe care o folosește un dispozitiv IoT?

Sarcină - apelarea detectorului de obiecte de pe dispozitivul IoT

Urmează ghidul relevant de mai jos pentru a utiliza detectorul de obiecte de pe dispozitivul tău IoT:

Casete delimitatoare

Când utilizezi detectorul de obiecte, nu primești doar obiectele detectate cu etichetele și probabilitățile lor, ci primești și casetele delimitatoare ale obiectelor. Acestea definesc unde detectorul de obiecte a detectat obiectul cu probabilitatea dată.

💁 O casetă delimitatoare este o casetă care definește zona ce conține obiectul detectat, o casetă care definește limita pentru obiect.

Rezultatele unei predicții în fila Predictions din Custom Vision au casetele delimitatoare desenate pe imaginea care a fost trimisă pentru predicție.

4 conserve de pastă de tomate pe un raft cu predicții pentru cele 4 detectări de 35.8%, 33.5%, 25.7% și 16.6%

În imaginea de mai sus, au fost detectate 4 conserve de pastă de tomate. În rezultate, un pătrat roșu este suprapus pentru fiecare obiect detectat în imagine, indicând caseta delimitatoare pentru imagine.

Deschide predicțiile în Custom Vision și verifică casetele delimitatoare.

Casetele delimitatoare sunt definite cu 4 valori - top, left, height și width. Aceste valori sunt pe o scară de la 0 la 1, reprezentând pozițiile ca procent din dimensiunea imaginii. Originea (poziția 0,0) este colțul din stânga sus al imaginii, astfel încât valoarea top este distanța de sus, iar partea de jos a casetei delimitatoare este top plus height.

O casetă delimitatoare în jurul unei conserve de pastă de tomate

Imaginea de mai sus are 600 de pixeli lățime și 800 de pixeli înălțime. Caseta delimitatoare începe la 320 de pixeli în jos, oferind o coordonată top de 0.4 (800 x 0.4 = 320). De la stânga, caseta delimitatoare începe la 240 de pixeli în lateral, oferind o coordonată left de 0.4 (600 x 0.4 = 240). Înălțimea casetei delimitatoare este de 240 de pixeli, oferind o valoare height de 0.3 (800 x 0.3 = 240). Lățimea casetei delimitatoare este de 120 de pixeli, oferind o valoare width de 0.2 (600 x 0.2 = 120).

Coordonată Valoare
Top 0.4
Left 0.4
Height 0.3
Width 0.2

Utilizarea valorilor procentuale de la 0 la 1 înseamnă că, indiferent de dimensiunea la care este scalată imaginea, caseta delimitatoare începe la 0.4 din lungime și înălțime și are 0.3 din înălțime și 0.2 din lățime.

Poți utiliza casetele delimitatoare combinate cu probabilitățile pentru a evalua cât de precisă este o detectare. De exemplu, un detector de obiecte poate detecta mai multe obiecte care se suprapun, de exemplu detectând o conservă în interiorul alteia. Codul tău ar putea analiza casetele delimitatoare, înțelege că acest lucru este imposibil și ignora orice obiecte care au o suprapunere semnificativă cu alte obiecte.

Două casete delimitatoare suprapunându-se pe o conservă de pastă de tomate

În exemplul de mai sus, o casetă delimitatoare indică o conservă de pastă de tomate prezisă la 78.3%. O a doua casetă delimitatoare este puțin mai mică și se află în interiorul primei casete delimitatoare, cu o probabilitate de 64.3%. Codul tău poate verifica casetele delimitatoare, vedea că se suprapun complet și ignora probabilitatea mai mică, deoarece nu există nicio posibilitate ca una să fie în interiorul celeilalte.

Poți să te gândești la o situație în care este valid să detectezi un obiect în interiorul altuia?

Reantrenarea modelului

La fel ca în cazul clasificatorului de imagini, poți reantrena modelul folosind date capturate de dispozitivul tău IoT. Utilizarea acestor date din lumea reală va asigura că modelul funcționează bine atunci când este utilizat de pe dispozitivul tău IoT.

Spre deosebire de clasificatorul de imagini, nu poți doar să etichetezi o imagine. În schimb, trebuie să revizuiești fiecare casetă delimitatoare detectată de model. Dacă caseta este în jurul unui lucru greșit, trebuie să fie ștearsă, iar dacă este în locația greșită, trebuie ajustată.

Sarcină - reantrenarea modelului

  1. Asigură-te că ai capturat o gamă de imagini folosind dispozitivul tău IoT.

  2. Din fila Predictions, selectează o imagine. Vei vedea casete roșii care indică casetele delimitatoare ale obiectelor detectate.

  3. Lucrează prin fiecare casetă delimitatoare. Selectează-o mai întâi și vei vedea un pop-up care arată eticheta. Folosește mânerele de pe colțurile casetei delimitatoare pentru a ajusta dimensiunea, dacă este necesar. Dacă eticheta este greșită, elimin-o cu butonul X și adaugă eticheta corectă. Dacă caseta delimitatoare nu conține un obiect, șterge-o cu butonul coș de gunoi.

  4. Închide editorul când ai terminat, iar imaginea va trece de la fila Predictions la fila Training Images. Repetă procesul pentru toate predicțiile.

  5. Folosește butonul Train pentru a reantrena modelul. După ce s-a antrenat, publică iterația și actualizează dispozitivul IoT pentru a utiliza URL-ul noii iterații.

  6. Re-deployează codul și testează dispozitivul IoT.

Numărarea stocului

Folosind o combinație între numărul de obiecte detectate și casetele delimitatoare, poți număra stocul de pe un raft.

Sarcină - numărarea stocului

Urmează ghidul relevant de mai jos pentru a număra stocul folosind rezultatele detectorului de obiecte de pe dispozitivul tău IoT:


🚀 Provocare

Poți detecta stocul incorect? Antrenează modelul pe mai multe obiecte, apoi actualizează aplicația pentru a te alerta dacă este detectat stocul greșit.

Poate chiar du-te mai departe și detectează stocul alăturat pe același raft și vezi dacă ceva a fost pus în locul greșit, definind limite pentru casetele delimitatoare.

Chestionar după lecție

Chestionar după lecție

Recapitulare și studiu individual

Sarcină

Folosește detectorul de obiecte la margine


Declinare de responsabilitate:
Acest document a fost tradus folosind serviciul de traducere AI Co-op Translator. Deși ne străduim să asigurăm acuratețea, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa natală ar trebui considerat sursa autoritară. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm responsabilitatea pentru eventualele neînțelegeri sau interpretări greșite care pot apărea din utilizarea acestei traduceri.