Πίνακας περιεχομένων:

Επίδειξη Sipeed MaiX Bit OpenMV - Όραμα υπολογιστή: 3 βήματα
Επίδειξη Sipeed MaiX Bit OpenMV - Όραμα υπολογιστή: 3 βήματα

Βίντεο: Επίδειξη Sipeed MaiX Bit OpenMV - Όραμα υπολογιστή: 3 βήματα

Βίντεο: Επίδειξη Sipeed MaiX Bit OpenMV - Όραμα υπολογιστή: 3 βήματα
Βίντεο: Εκπληκτικό βίντεο του F-35 δείχνει την τρελή ικανότητα ελιγμών του 2024, Ιούλιος
Anonim
Image
Image

Αυτό είναι το δεύτερο άρθρο στη σειρά για το Sipeed AI στην πλατφόρμα μικροελεγκτών Edge. Αυτή τη φορά θα γράψω για το MaiX Bit (σύνδεσμος στο Seeed Studio Shop), έναν μικρότερο, έτοιμο πίνακα ανάπτυξης. Οι προδιαγραφές του μοιάζουν πολύ με το MaiX Dock, τον πίνακα που χρησιμοποίησα για το τελευταίο σεμινάριο, αφού χρησιμοποιούν το ίδιο τσιπ, Kendryte K210.

Θα χρησιμοποιήσουμε το υλικολογισμικό micropython για να δοκιμάσουμε κάποια επίδειξη OpenMV. Ακολουθεί περιγραφή από την αρχική σελίδα του OpenMV:

Το έργο OpenMV αφορά τη δημιουργία μονάδων όρασης χαμηλού κόστους, επεκτάσιμων, που υποστηρίζουν Python και στοχεύει να γίνει το «Arduino of Machine Vision».… Η Python διευκολύνει πολύ την εργασία με αλγόριθμους μηχανικής όρασης. Για παράδειγμα, η μέθοδος find_blobs () στον κώδικα βρίσκει χρώματα και επιστρέφει μια λίστα με αντικείμενα 8 τιμών που αντιπροσωπεύουν κάθε χρωματική λάμπα που βρέθηκε. Στην Python η επανάληψη μέσω της λίστας αντικειμένων που επιστρέφονται από το find_blobs () και η σχεδίαση ενός ορθογωνίου γύρω από κάθε χρωματική λεκέδα γίνεται εύκολα σε δύο μόνο γραμμές κώδικα.

Έτσι, παρά το γεγονός ότι το MaiX Bit διαθέτει αποκλειστικό επιταχυντή νευρωνικών δικτύων, μερικές φορές μπορεί να είναι ευκολότερο να χρησιμοποιήσετε απλούς κωδικοποιημένους αλγόριθμους OpenMV για να κάνετε τη δουλειά ή να τους χρησιμοποιήσετε ο ένας δίπλα στον άλλο.

Μερικές περιπτώσεις χρήσης που μου έρχονται στο μυαλό είναι:

1) Ανίχνευση γραμμής για bot follower γραμμής

2) Ανίχνευση φανών με ανίχνευση κύκλου και χρώματος

3) Χρήση ανίχνευσης προσώπου για την εύρεση των προσώπων για αναγνώριση προσώπου (με DNN)

Αποθήκη Github για αυτό το άρθρο

Βήμα 1: Firmware Flash Micropython

Συνδεθείτε στο MaiX Bit
Συνδεθείτε στο MaiX Bit

Πρώτα απ 'όλα θα πρέπει να αναβοσβήσουμε το firmware micropython στον πίνακα μας. Ένα προ -μεταγλωττισμένο δυαδικό αρχείο περιλαμβάνεται στο github repository για αυτό το άρθρο, μαζί με το kflash.py (ένα βοηθητικό πρόγραμμα flash). Εάν θέλετε να μεταγλωττίσετε το υλικολογισμικό από τον πηγαίο κώδικα, απλώς κατεβάστε τον πηγαίο κώδικα από τη διεύθυνση https://github.com/sipeed/MaixPy, εγκαταστήστε την αλυσίδα εργαλείων και μεταγλωττίστε τον πηγαίο κώδικα στο αρχείο maixpy.bin. Αναλυτικές οδηγίες κατασκευής μπορείτε να βρείτε εδώ.

Αναβοσβήνετε το δυαδικό αρχείο με

sudo python3 kflash.py kpu.bin

Μετά την επιτυχή αναβοσβήσιμο ακολουθήστε το επόμενο βήμα.

Βήμα 2: Συνδεθείτε στο Bit MaiX

Τώρα το MaiX Bit μας πρέπει να είναι προσβάσιμο μέσω σειριακής σύνδεσης USB με baudrate 115200. Μπορείτε να χρησιμοποιήσετε το αγαπημένο σας λογισμικό για σειριακή επικοινωνία ή απλώς εντολές cat και echo, ό, τι ταιριάζει στις ανάγκες σας. Χρησιμοποιούσα οθόνη για σειριακή επικοινωνία και το βρίσκω πολύ βολικό.

Η εντολή για τη δημιουργία σειριακής συνεδρίας επικοινωνίας με οθόνη είναι

sudo screen /dev /ttyUSB0 115200

όπου /dev /ttyUSB0 είναι η διεύθυνση της συσκευής σας.

Mightσως χρειαστεί να πατήσετε το κουμπί επαναφοράς στον μικροελεγκτή σας για να δείτε το μήνυμα χαιρετισμού και την ερώτηση διερμηνέα python.

Βήμα 3: Εκτελέστε τα Demos

Τώρα μπορείτε να αποκτήσετε πρόσβαση στη λειτουργία αντιγραφής πατώντας Ctrl+E και αντιγράψτε και επικολλήστε τους κωδικούς επίδειξης. Για να τα εκτελέσετε πατήστε Ctrl+D σε λειτουργία αντιγραφής.

Εάν δεν θέλετε να εγγράψετε τα βίντεο, πρέπει να σχολιάσετε τις γραμμές εγγραφής βίντεο. Διαφορετικά, ο κωδικός θα εξαιρέσει εάν δεν έχει εισαχθεί κάρτα SD

Ακολουθούν σύντομες περιγραφές για κάθε επίδειξη:

Εύρεση κύκλων - χρησιμοποιεί τη λειτουργία find_circles από το OpenMV. Χρειάζεται περισσότερη προσαρμογή για τη συγκεκριμένη εφαρμογή σας, ιδιαίτερα το κατώφλι (ελέγχει ποιοι κύκλοι ανιχνεύονται από τον μετασχηματισμό του κόλπου. Επιστρέφονται μόνο κύκλοι με μέγεθος μεγαλύτερο ή ίσο με το κατώφλι) και τιμές r_min, r_max.

Εύρεση ορθογωνίων - χρησιμοποιεί τη λειτουργία find_rects από το OpenMV. Μπορείτε να παίξετε με την τιμή κατωφλίου, αλλά η τιμή που έχω στο demo λειτουργεί αρκετά καλά για την εύρεση ορθογωνίων.

Εύρεση προσώπων, εύρεση ματιών - χρησιμοποιεί τη λειτουργία find_features με το Haar Cascades για τον εντοπισμό των ματιών και του μετωπικού προσώπου στην εικόνα. Μπορείτε να παίξετε με τις τιμές κατωφλίου και κλίμακας για τη σωστή αντιστάθμιση ταχύτητας-ακρίβειας.

Εύρεση άπειρων γραμμών - χρησιμοποιεί τη συνάρτηση find_lines για να βρει όλες τις άπειρες γραμμές στην εικόνα χρησιμοποιώντας τον μετασχηματισμό hough.

Ανίχνευση χρώματος - χρησιμοποιεί τη λειτουργία get_statistics για τη λήψη αντικειμένου εκατοστημορίου και στη συνέχεια μετατρέπει τις μέσες τιμές της πλειάδας LAB σε πλειάδα τιμών RGB. Έγραψα αυτό το παράδειγμα μόνος μου και λειτουργεί αρκετά καλά, αλλά λάβετε υπόψη ότι τα αποτελέσματα της ανίχνευσης χρώματος θα επηρεαστούν από τις συνθήκες φωτισμού περιβάλλοντος.

Μπορείτε να βρείτε πολλά ακόμη ενδιαφέροντα demos στο αποθετήριο github OpenMV! Είναι ως επί το πλείστον συμβατά με τον μικροπύθωνα MaiX Bit, το μόνο που πρέπει να θυμάστε είναι να προσθέσετε το sensor.run (1) μετά τη ρύθμιση του pixformat και του καρέ.

Ευτυχισμένος πειραματισμός με τον κώδικα OpenMV. Εάν έχετε οποιεσδήποτε ερωτήσεις ή θέλετε να μοιραστείτε μερικά από τα ενδιαφέροντά σας αποτελέσματα, μη διστάσετε να επικοινωνήσετε μαζί μου στο Youtube ή στο LinkedIn. Τώρα, με συγχωρείτε, θα πάω να φτιάξω μερικά ρομπότ!

Συνιστάται: