# Έλεγχος αποθεμάτων από συσκευή IoT ![Μια σκίτσο-παρουσίαση αυτής της ενότητας](../../../../../translated_images/lesson-20.0211df9551a8abb300fc8fcf7dc2789468dea2eabe9202273ac077b0ba37f15e.el.jpg) > Σκίτσο από τη [Nitya Narasimhan](https://github.com/nitya). Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση. ## Ερωτηματολόγιο πριν την ενότητα [Ερωτηματολόγιο πριν την ενότητα](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/39) ## Εισαγωγή Στην προηγούμενη ενότητα μάθατε για τις διάφορες χρήσεις της ανίχνευσης αντικειμένων στο λιανικό εμπόριο. Επίσης, μάθατε πώς να εκπαιδεύετε έναν ανιχνευτή αντικειμένων για να αναγνωρίζει αποθέματα. Σε αυτή την ενότητα θα μάθετε πώς να χρησιμοποιείτε τον ανιχνευτή αντικειμένων από τη συσκευή IoT σας για να μετράτε αποθέματα. Σε αυτή την ενότητα θα καλύψουμε: * [Μετρήσεις αποθεμάτων](../../../../../5-retail/lessons/2-check-stock-device) * [Χρήση του ανιχνευτή αντικειμένων από τη συσκευή IoT](../../../../../5-retail/lessons/2-check-stock-device) * [Πλαίσια οριοθέτησης](../../../../../5-retail/lessons/2-check-stock-device) * [Εκ νέου εκπαίδευση του μοντέλου](../../../../../5-retail/lessons/2-check-stock-device) * [Μετρήστε αποθέματα](../../../../../5-retail/lessons/2-check-stock-device) > 🗑 Αυτή είναι η τελευταία ενότητα αυτού του έργου, οπότε αφού ολοκληρώσετε αυτή την ενότητα και την εργασία, μην ξεχάσετε να καθαρίσετε τις υπηρεσίες cloud σας. Θα χρειαστείτε τις υπηρεσίες για να ολοκληρώσετε την εργασία, οπότε βεβαιωθείτε ότι την ολοκληρώσατε πρώτα. > > Ανατρέξτε στον [οδηγό καθαρισμού του έργου σας](../../../clean-up.md) αν χρειάζεστε οδηγίες για το πώς να το κάνετε. ## Μετρήσεις αποθεμάτων Οι ανιχνευτές αντικειμένων μπορούν να χρησιμοποιηθούν για τον έλεγχο αποθεμάτων, είτε μετρώντας τα αποθέματα είτε διασφαλίζοντας ότι βρίσκονται στη σωστή θέση. Συσκευές IoT με κάμερες μπορούν να τοποθετηθούν σε όλο το κατάστημα για να παρακολουθούν τα αποθέματα, ξεκινώντας από σημεία υψηλής σημασίας όπου η αναπλήρωση είναι κρίσιμη, όπως περιοχές με μικρό αριθμό αντικειμένων υψηλής αξίας. Για παράδειγμα, αν μια κάμερα δείχνει ένα ράφι που μπορεί να χωρέσει 8 κονσέρβες τοματοπολτού και ο ανιχνευτής αντικειμένων ανιχνεύει μόνο 7 κονσέρβες, τότε λείπει μία και πρέπει να αναπληρωθεί. ![7 κονσέρβες τοματοπολτού σε ένα ράφι, 4 στην επάνω σειρά, 3 στην κάτω](../../../../../translated_images/stock-7-cans-tomato-paste.f86059cc573d7becaa89a0eafb9d2cd7e2fe37405a530fe565990e2333d0e4a1.el.png) Στην παραπάνω εικόνα, ένας ανιχνευτής αντικειμένων έχει ανιχνεύσει 7 κονσέρβες τοματοπολτού σε ένα ράφι που μπορεί να χωρέσει 8 κονσέρβες. Η συσκευή IoT όχι μόνο μπορεί να στείλει ειδοποίηση για την ανάγκη αναπλήρωσης, αλλά μπορεί επίσης να δώσει ένδειξη για τη θέση του ελλείποντος αντικειμένου, σημαντική πληροφορία αν χρησιμοποιείτε ρομπότ για την αναπλήρωση των ραφιών. > 💁 Ανάλογα με το κατάστημα και τη δημοτικότητα του προϊόντος, η αναπλήρωση πιθανότατα δεν θα γινόταν αν έλειπε μόνο μία κονσέρβα. Θα χρειαστεί να δημιουργήσετε έναν αλγόριθμο που καθορίζει πότε να γίνει αναπλήρωση με βάση το προϊόν, τους πελάτες και άλλα κριτήρια. ✅ Σε ποιες άλλες περιπτώσεις θα μπορούσατε να συνδυάσετε την ανίχνευση αντικειμένων και τα ρομπότ; Μερικές φορές, λάθος προϊόντα μπορεί να βρίσκονται στα ράφια. Αυτό μπορεί να οφείλεται σε ανθρώπινο λάθος κατά την αναπλήρωση ή σε πελάτες που αλλάζουν γνώμη και τοποθετούν ένα αντικείμενο σε λάθος θέση. Όταν πρόκειται για μη ευπαθή προϊόντα, όπως κονσέρβες, αυτό είναι απλώς μια ενόχληση. Αν πρόκειται για ευπαθή προϊόντα, όπως κατεψυγμένα ή ψυγείου, αυτό μπορεί να σημαίνει ότι το προϊόν δεν μπορεί πλέον να πωληθεί, καθώς είναι αδύνατο να γνωρίζουμε πόσο καιρό ήταν εκτός ψυγείου. Η ανίχνευση αντικειμένων μπορεί να χρησιμοποιηθεί για την ανίχνευση μη αναμενόμενων αντικειμένων, ειδοποιώντας έναν άνθρωπο ή ένα ρομπότ να επιστρέψει το αντικείμενο μόλις ανιχνευθεί. ![Μια κονσέρβα baby corn σε λάθος ράφι με τοματοπολτό](../../../../../translated_images/stock-rogue-corn.be1f3ada8c4578544641af66671c1711a4c02297f14cc7f503354dae0d30a954.el.png) Στην παραπάνω εικόνα, μια κονσέρβα baby corn έχει τοποθετηθεί στο ράφι δίπλα στον τοματοπολτό. Ο ανιχνευτής αντικειμένων το έχει ανιχνεύσει, επιτρέποντας στη συσκευή IoT να ειδοποιήσει έναν άνθρωπο ή ένα ρομπότ να επιστρέψει την κονσέρβα στη σωστή της θέση. ## Χρήση του ανιχνευτή αντικειμένων από τη συσκευή IoT Ο ανιχνευτής αντικειμένων που εκπαιδεύσατε στην προηγούμενη ενότητα μπορεί να χρησιμοποιηθεί από τη συσκευή IoT σας. ### Εργασία - δημοσίευση μιας έκδοσης του ανιχνευτή αντικειμένων Οι εκδόσεις δημοσιεύονται από την πύλη Custom Vision. 1. Ανοίξτε την πύλη Custom Vision στο [CustomVision.ai](https://customvision.ai) και συνδεθείτε αν δεν το έχετε ήδη κάνει. Στη συνέχεια, ανοίξτε το έργο σας `stock-detector`. 1. Επιλέξτε την καρτέλα **Performance** από τις επιλογές στο επάνω μέρος. 1. Επιλέξτε την τελευταία έκδοση από τη λίστα *Iterations* στο πλάι. 1. Επιλέξτε το κουμπί **Publish** για την έκδοση. ![Το κουμπί δημοσίευσης](../../../../../translated_images/custom-vision-object-detector-publish-button.34ee379fc650ccb9856c3868d0003f413b9529f102fc73c37168c98d721cc293.el.png) 1. Στον διάλογο *Publish Model*, ορίστε τον *Prediction resource* στη `stock-detector-prediction` υπηρεσία που δημιουργήσατε στην προηγούμενη ενότητα. Αφήστε το όνομα ως `Iteration2` και επιλέξτε το κουμπί **Publish**. 1. Μόλις δημοσιευθεί, επιλέξτε το κουμπί **Prediction URL**. Αυτό θα εμφανίσει λεπτομέρειες για το API πρόβλεψης, τις οποίες θα χρειαστείτε για να καλέσετε το μοντέλο από τη συσκευή IoT σας. Το κάτω μέρος είναι με την ένδειξη *If you have an image file*, και αυτές είναι οι λεπτομέρειες που θέλετε. Αντιγράψτε το URL που εμφανίζεται, το οποίο θα είναι κάτι σαν: ```output https://.api.cognitive.microsoft.com/customvision/v3.0/Prediction//detect/iterations/Iteration2/image ``` Όπου το `` θα είναι η τοποθεσία που χρησιμοποιήσατε κατά τη δημιουργία της υπηρεσίας Custom Vision και το `` θα είναι ένα μεγάλο ID που αποτελείται από γράμματα και αριθμούς. Επίσης, αντιγράψτε την τιμή του *Prediction-Key*. Αυτό είναι ένα ασφαλές κλειδί που πρέπει να περάσετε όταν καλείτε το μοντέλο. Μόνο εφαρμογές που περνούν αυτό το κλειδί επιτρέπεται να χρησιμοποιούν το μοντέλο, οποιαδήποτε άλλη εφαρμογή απορρίπτεται. ![Ο διάλογος API πρόβλεψης που δείχνει το URL και το κλειδί](../../../../../translated_images/custom-vision-prediction-key-endpoint.30c569ffd0338864f319911f052d5e9b8c5066cb0800a26dd6f7ff5713130ad8.el.png) ✅ Όταν δημοσιεύεται μια νέα έκδοση, θα έχει διαφορετικό όνομα. Πώς νομίζετε ότι θα αλλάζατε την έκδοση που χρησιμοποιεί μια συσκευή IoT; ### Εργασία - χρήση του ανιχνευτή αντικειμένων από τη συσκευή IoT Ακολουθήστε τον σχετικό οδηγό παρακάτω για να χρησιμοποιήσετε τον ανιχνευτή αντικειμένων από τη συσκευή IoT σας: * [Arduino - Wio Terminal](wio-terminal-object-detector.md) * [Υπολογιστής μονού πίνακα - Raspberry Pi/Εικονική συσκευή](single-board-computer-object-detector.md) ## Πλαίσια οριοθέτησης Όταν χρησιμοποιείτε τον ανιχνευτή αντικειμένων, δεν λαμβάνετε μόνο τα ανιχνευμένα αντικείμενα με τις ετικέτες και τις πιθανότητές τους, αλλά λαμβάνετε και τα πλαίσια οριοθέτησης των αντικειμένων. Αυτά ορίζουν πού ο ανιχνευτής αντικειμένων ανίχνευσε το αντικείμενο με τη δεδομένη πιθανότητα. > 💁 Ένα πλαίσιο οριοθέτησης είναι ένα πλαίσιο που ορίζει την περιοχή που περιέχει το ανιχνευμένο αντικείμενο, ένα πλαίσιο που ορίζει τα όρια του αντικειμένου. Τα αποτελέσματα μιας πρόβλεψης στην καρτέλα **Predictions** στο Custom Vision έχουν τα πλαίσια οριοθέτησης σχεδιασμένα πάνω στην εικόνα που στάλθηκε για πρόβλεψη. ![4 κονσέρβες τοματοπολτού σε ένα ράφι με προβλέψεις για τις 4 ανιχνεύσεις](../../../../../translated_images/custom-vision-stock-prediction.942266ab1bcca3410ecdf23643b9f5f570cfab2345235074e24c51f285777613.el.png) Στην παραπάνω εικόνα, ανιχνεύθηκαν 4 κονσέρβες τοματοπολτού. Στα αποτελέσματα, ένα κόκκινο τετράγωνο είναι σχεδιασμένο για κάθε αντικείμενο που ανιχνεύθηκε στην εικόνα, υποδεικνύοντας το πλαίσιο οριοθέτησης. ✅ Ανοίξτε τις προβλέψεις στο Custom Vision και εξετάστε τα πλαίσια οριοθέτησης. Τα πλαίσια οριοθέτησης ορίζονται με 4 τιμές - top, left, height και width. Αυτές οι τιμές είναι σε κλίμακα 0-1, που αντιπροσωπεύουν τις θέσεις ως ποσοστό του μεγέθους της εικόνας. Η αρχή (η θέση 0,0) είναι η επάνω αριστερή γωνία της εικόνας, οπότε η τιμή top είναι η απόσταση από την κορυφή, και το κάτω μέρος του πλαισίου οριοθέτησης είναι το top συν το height. ![Ένα πλαίσιο οριοθέτησης γύρω από μια κονσέρβα τοματοπολτού](../../../../../translated_images/bounding-box.1420a7ea0d3d15f71e1ffb5cf4b2271d184fac051f990abc541975168d163684.el.png) Η παραπάνω εικόνα έχει πλάτος 600 pixels και ύψος 800 pixels. Το πλαίσιο οριοθέτησης ξεκινά 320 pixels κάτω, δίνοντας μια τιμή top 0.4 (800 x 0.4 = 320). Από τα αριστερά, το πλαίσιο ξεκινά 240 pixels, δίνοντας μια τιμή left 0.4 (600 x 0.4 = 240). Το ύψος του πλαισίου είναι 240 pixels, δίνοντας μια τιμή height 0.3 (800 x 0.3 = 240). Το πλάτος του πλαισίου είναι 120 pixels, δίνοντας μια τιμή width 0.2 (600 x 0.2 = 120). | Συντεταγμένη | Τιμή | | ------------ | ----: | | Top | 0.4 | | Left | 0.4 | | Height | 0.3 | | Width | 0.2 | Χρησιμοποιώντας ποσοστιαίες τιμές από 0-1, ανεξάρτητα από το μέγεθος στο οποίο κλιμακώνεται η εικόνα, το πλαίσιο οριοθέτησης ξεκινά στο 0.4 της διαδρομής κατά μήκος και κάτω, και έχει ύψος 0.3 και πλάτος 0.2. Μπορείτε να χρησιμοποιήσετε τα πλαίσια οριοθέτησης σε συνδυασμό με τις πιθανότητες για να αξιολογήσετε πόσο ακριβής είναι μια ανίχνευση. Για παράδειγμα, ένας ανιχνευτής αντικειμένων μπορεί να ανιχνεύσει πολλαπλά αντικείμενα που επικαλύπτονται, για παράδειγμα ανιχνεύοντας μια κονσέρβα μέσα σε μια άλλη. Ο κώδικάς σας θα μπορούσε να εξετάσει τα πλαίσια οριοθέτησης, να κατανοήσει ότι αυτό είναι αδύνατο, και να αγνοήσει οποιαδήποτε αντικείμενα έχουν σημαντική επικάλυψη με άλλα αντικείμενα. ![Δύο πλαίσια οριοθέτησης που επικαλύπτουν μια κονσέρβα τοματοπολτού](../../../../../translated_images/overlap-object-detection.d431e03cae75072a2760430eca7f2c5fdd43045bfd72dadcbf12711f7cd6c2ae.el.png) Στο παραπάνω παράδειγμα, ένα πλαίσιο οριοθέτησης υποδεικνύει μια προβλεπόμενη κονσέρβα τοματοπολτού με πιθανότητα 78.3%. Ένα δεύτερο πλαίσιο είναι ελαφρώς μικρότερο και βρίσκεται μέσα στο πρώτο πλαίσιο με πιθανότητα 64.3%. Ο κώδικάς σας μπορεί να ελέγξει τα πλαίσια οριοθέτησης, να δει ότι επικαλύπτονται πλήρως, και να αγνοήσει την χαμηλότερη πιθανότητα, καθώς δεν είναι δυνατόν να υπάρχει μια κονσέρβα μέσα σε μια άλλη. ✅ Μπορείτε να σκεφτείτε μια περίπτωση όπου είναι έγκυρο να ανιχνεύεται ένα αντικείμενο μέσα σε ένα άλλο; ## Εκ νέου εκπαίδευση του μοντέλου Όπως και με τον ταξινομητή εικόνων, μπορείτε να επανεκπαιδεύσετε το μοντέλο σας χρησιμοποιώντας δεδομένα που συλλέγονται από τη συσκευή IoT σας. Χρησιμοποιώντας αυτά τα δεδομένα από τον πραγματικό κόσμο, θα διασφαλίσετε ότι το μοντέλο σας λειτουργεί καλά όταν χρησιμοποιείται από τη συσκευή IoT. Σε αντίθεση με τον ταξινομητή εικόνων, δεν μπορείτε απλώς να προσθέσετε μια ετικέτα σε μια εικόνα. Αντίθετα, πρέπει να εξετάσετε κάθε πλαίσιο οριοθέτησης που ανιχνεύθηκε από το μοντέλο. Αν το πλαίσιο είναι γύρω από λάθος αντικείμενο, πρέπει να διαγραφεί. Αν βρίσκεται σε λάθος θέση, πρέπει να διορθωθεί. ### Εργασία - εκ νέου εκπαίδευση του μοντέλου 1. Βεβαιωθείτε ότι έχετε συλλέξει μια σειρά από εικόνες χρησιμοποιώντας τη συσκευή IoT σας. 1. Από την καρτέλα **Predictions**, επιλέξτε μια εικόνα. Θα δείτε κόκκινα πλαίσια που υποδεικνύουν τα πλαίσια οριοθέτησης των ανιχνευμένων αντικειμένων. 1. Εξετάστε κάθε πλαίσιο οριοθέτησης. Επιλέξτε το πρώτα και θα δείτε ένα αναδυόμενο παράθυρο που δείχνει την ετικέτα. Χρησιμοποιήστε τις λαβές στις γωνίες του πλαισίου για να προσαρμόσετε το μέγεθος αν χρειάζεται. Αν η ετικέτα είναι λάθος, αφαιρέστε την με το κουμπί **X** και προσθέστε τη σωστή ετικέτα. Αν το πλαίσιο δεν περιέχει αντικείμενο, διαγράψτε το με το κουμπί του κάδου απορριμμάτων. 1. Κλείστε τον επεξεργαστή όταν τελειώσετε και η εικόνα θα μετακινηθεί από την καρτέλα **Predictions** στην καρτέλα **Training Images**. Επαναλάβετε τη διαδικασία για όλες τις προβλέψεις. 1. Χρησιμοποιήστε το κουμπί **Train** για να επανεκπαιδεύσετε το μοντέλο σας. Μόλις εκπαιδευτεί, δημοσιεύστε την έκδοση και ενημερώστε τη συσκευή IoT σας να χρησιμοποιεί το URL της νέας έκδοσης. 1. Επαναφέρετε τον κώδικά σας και δοκιμάστε τη συσκευή IoT σας. ## Μετρήστε αποθέματα Χρησιμοποιώντας έναν συνδυασμό του αριθμού των ανιχνευμένων αντικειμένων και των πλαισίων οριοθέτησης, μπορείτε να μετρήσετε τα αποθέματα σε ένα ράφι. ### Εργασία - μετρήστε αποθέματα Ακολουθήστε τον σχετικό οδηγό παρακάτω για να μετρήσετε αποθέματα χρησιμοποιώντας τα αποτελέσματα από τον ανιχνευτή αντικειμένων από τη συσκευή IoT σας: * [Arduino - Wio Terminal](wio-terminal-count-stock.md) * [Υπολογιστής μονού πίνακα - Raspberry Pi/Εικονική συσκευή](single-board-computer-count-stock.md) --- ## 🚀 Πρόκληση Μπορείτε να ανιχνεύσετε λάθος αποθέματα; Εκπαιδεύστε το μοντέλο σας σε πολλαπ --- **Αποποίηση ευθύνης**: Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.