8.7 KiB
Καλέστε τον ανιχνευτή αντικειμένων από τη συσκευή IoT σας - Εικονικό IoT Hardware και Raspberry Pi
Μόλις δημοσιευθεί ο ανιχνευτής αντικειμένων σας, μπορεί να χρησιμοποιηθεί από τη συσκευή IoT σας.
Αντιγράψτε το έργο του ταξινομητή εικόνων
Το μεγαλύτερο μέρος του ανιχνευτή αποθεμάτων σας είναι ίδιο με τον ταξινομητή εικόνων που δημιουργήσατε σε προηγούμενο μάθημα.
Εργασία - αντιγράψτε το έργο του ταξινομητή εικόνων
-
Δημιουργήστε έναν φάκελο με όνομα
stock-counter
είτε στον υπολογιστή σας αν χρησιμοποιείτε εικονική συσκευή IoT, είτε στο Raspberry Pi σας. Αν χρησιμοποιείτε εικονική συσκευή IoT, βεβαιωθείτε ότι έχετε ρυθμίσει ένα εικονικό περιβάλλον. -
Ρυθμίστε το υλικό της κάμερας.
- Αν χρησιμοποιείτε Raspberry Pi, θα χρειαστεί να τοποθετήσετε την PiCamera. Ίσως θελήσετε επίσης να σταθεροποιήσετε την κάμερα σε μια συγκεκριμένη θέση, για παράδειγμα, κρεμώντας το καλώδιο πάνω από ένα κουτί ή κονσέρβα, ή στερεώνοντας την κάμερα σε ένα κουτί με διπλής όψης ταινία.
- Αν χρησιμοποιείτε εικονική συσκευή IoT, θα χρειαστεί να εγκαταστήσετε το CounterFit και το CounterFit PyCamera shim. Αν πρόκειται να χρησιμοποιήσετε στατικές εικόνες, τότε τραβήξτε μερικές εικόνες που ο ανιχνευτής αντικειμένων σας δεν έχει δει ακόμα. Αν πρόκειται να χρησιμοποιήσετε την κάμερα του υπολογιστή σας, βεβαιωθείτε ότι είναι τοποθετημένη έτσι ώστε να βλέπει το απόθεμα που ανιχνεύετε.
-
Αναπαράγετε τα βήματα από το μάθημα 2 του έργου κατασκευής για να τραβήξετε εικόνες από την κάμερα.
-
Αναπαράγετε τα βήματα από το μάθημα 2 του έργου κατασκευής για να καλέσετε τον ταξινομητή εικόνων. Το μεγαλύτερο μέρος αυτού του κώδικα θα επαναχρησιμοποιηθεί για την ανίχνευση αντικειμένων.
Αλλάξτε τον κώδικα από ταξινομητή σε ανιχνευτή εικόνων
Ο κώδικας που χρησιμοποιήσατε για την ταξινόμηση εικόνων είναι πολύ παρόμοιος με τον κώδικα για την ανίχνευση αντικειμένων. Η κύρια διαφορά είναι η μέθοδος που καλείται στο Custom Vision SDK και τα αποτελέσματα της κλήσης.
Εργασία - αλλάξτε τον κώδικα από ταξινομητή σε ανιχνευτή εικόνων
-
Διαγράψτε τις τρεις γραμμές κώδικα που ταξινομούν την εικόνα και επεξεργάζονται τις προβλέψεις:
results = predictor.classify_image(project_id, iteration_name, image) for prediction in results.predictions: print(f'{prediction.tag_name}:\t{prediction.probability * 100:.2f}%')
Αφαιρέστε αυτές τις τρεις γραμμές.
-
Προσθέστε τον παρακάτω κώδικα για να ανιχνεύσετε αντικείμενα στην εικόνα:
results = predictor.detect_image(project_id, iteration_name, image) threshold = 0.3 predictions = list(prediction for prediction in results.predictions if prediction.probability > threshold) for prediction in predictions: print(f'{prediction.tag_name}:\t{prediction.probability * 100:.2f}%')
Αυτός ο κώδικας καλεί τη μέθοδο
detect_image
στον predictor για να εκτελέσει τον ανιχνευτή αντικειμένων. Στη συνέχεια, συγκεντρώνει όλες τις προβλέψεις με πιθανότητα πάνω από ένα όριο, εκτυπώνοντάς τες στην κονσόλα.Σε αντίθεση με έναν ταξινομητή εικόνων που επιστρέφει μόνο ένα αποτέλεσμα ανά ετικέτα, ο ανιχνευτής αντικειμένων θα επιστρέψει πολλαπλά αποτελέσματα, οπότε οποιαδήποτε με χαμηλή πιθανότητα πρέπει να φιλτραριστούν.
-
Εκτελέστε αυτόν τον κώδικα και θα τραβήξει μια εικόνα, θα τη στείλει στον ανιχνευτή αντικειμένων και θα εκτυπώσει τα ανιχνευμένα αντικείμενα. Αν χρησιμοποιείτε εικονική συσκευή IoT, βεβαιωθείτε ότι έχετε ορίσει μια κατάλληλη εικόνα στο CounterFit ή ότι η κάμερα του υπολογιστή σας είναι επιλεγμένη. Αν χρησιμοποιείτε Raspberry Pi, βεβαιωθείτε ότι η κάμερά σας δείχνει αντικείμενα σε ένα ράφι.
pi@raspberrypi:~/stock-counter $ python3 app.py tomato paste: 34.13% tomato paste: 33.95% tomato paste: 35.05% tomato paste: 32.80%
💁 Ίσως χρειαστεί να προσαρμόσετε το
threshold
σε μια κατάλληλη τιμή για τις εικόνες σας.Θα μπορείτε να δείτε την εικόνα που τραβήχτηκε και αυτές τις τιμές στην καρτέλα Predictions στο Custom Vision.
💁 Μπορείτε να βρείτε αυτόν τον κώδικα στον φάκελο code-detect/pi ή code-detect/virtual-iot-device.
😀 Το πρόγραμμα καταμέτρησης αποθεμάτων σας ήταν επιτυχές!
Αποποίηση ευθύνης:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης Co-op Translator. Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις ενδέχεται να περιέχουν σφάλματα ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.