Πίνακας περιεχομένων:
- Προμήθειες
- Βήμα 1: Εγκατάσταση Python και OpenCV
- Βήμα 2: Ποια είναι τα χαρακτηριστικά που μοιάζουν με το Haar;
- Βήμα 3: Κωδικοποίηση σε Python
- Βήμα 4: Προγραμματισμός του Arduino
- Βήμα 5: Συμπέρασμα
Βίντεο: Συσκευή παρακολούθησης προσώπου! Python & Arduino: 5 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:34
Από Techovator0819Κανάλι μου στο Youtube Ακολουθήστε περισσότερα από τον συγγραφέα:
Σχετικά: Μου αρέσει απλά να φτιάχνω νέα πράγματα. Όπως πράγματα που αφορούν μικροελεγκτές, μηχανολογία, Τεχνητή Νοημοσύνη, Πληροφορική και οτιδήποτε άλλο με ενδιαφέρει. Και εδώ θα βρείτε όλα τα… Περισσότερα για το Techovator0819 »
Γεια σε όλους εκεί έξω που διαβάζουν αυτό το διδακτικό. Αυτή είναι μια συσκευή παρακολούθησης προσώπου που λειτουργεί σε μια βιβλιοθήκη python που ονομάζεται OpenCV. Το βιογραφικό σημείωσε «Computer Vision». Στη συνέχεια, δημιούργησα μια σειριακή διεπαφή μεταξύ του υπολογιστή μου και του Arduino UNO. Αυτό σημαίνει ότι αυτό δεν λειτουργεί μόνο στην Python.
Αυτή η συσκευή αναγνωρίζει το πρόσωπό σας στο καρέ, στη συνέχεια στέλνει ορισμένες εντολές στο Arduino για να τοποθετήσει την κάμερα με τέτοιο τρόπο ώστε να παραμένει μέσα στο κάδρο! Ακούγεται καλό? Ας το κάνουμε αμέσως.
Προμήθειες
1. Arduino UNO
2. 2 x Servo Motors (Οποιοσδήποτε σερβοκινητήρας θα είναι καλός, αλλά χρησιμοποίησα το Tower Pro SG90)
3. Εγκατάσταση Python
4. Εγκατάσταση OpenCV
5. Κάμερα Ιστού
Βήμα 1: Εγκατάσταση Python και OpenCV
Η εγκατάσταση της Python είναι αρκετά απλή!
www.python.org/downloads/
Μπορείτε να ακολουθήσετε τον παραπάνω σύνδεσμο για να κατεβάσετε την έκδοση python (Mac, Windows ή Linux) που σας ταιριάζει καλύτερα (64 bit ή 32 bit). Η υπόλοιπη διαδικασία εγκατάστασης είναι απλή και θα σας καθοδηγήσει η διεπαφή.
Μόλις ολοκληρώσετε την εγκατάσταση, ανοίξτε τη γραμμή εντολών και πληκτρολογήστε τα ακόλουθα:
pip εγκατάσταση opencv-python
Αυτό θα πρέπει να εγκαταστήσει τη βιβλιοθήκη openCV. Σε περίπτωση προβλημάτων λήψης, μπορείτε να δείτε αυτήν τη σελίδα.
Αφού δημιουργήσαμε το Περιβάλλον και όλες τις προϋποθέσεις, ας δούμε πώς μπορούμε πραγματικά να το φτιάξουμε!
Βήμα 2: Ποια είναι τα χαρακτηριστικά που μοιάζουν με το Haar;
Τα χαρακτηριστικά που μοιάζουν με Haar είναι χαρακτηριστικά μιας ψηφιακής εικόνας. Το όνομα προέρχεται από τα κύματα Haar. Πρόκειται για οικογένεια τετραγώνων κυμάτων που χρησιμοποιούνται για την αναγνώριση χαρακτηριστικών σε μια ψηφιακή εικόνα. Οι καταρράκτες Haar είναι βασικά ένας ταξινομητής που μας βοηθά να ανιχνεύσουμε αντικείμενα (στην περίπτωσή μας) χρησιμοποιώντας τα χαρακτηριστικά που μοιάζουν με τον λαγό.
Στην περίπτωσή μας, για λόγους απλότητας, θα χρησιμοποιήσουμε προ-εκπαιδευμένους καταρράκτες Haar για τον εντοπισμό προσώπων. Μπορείτε να ακολουθήσετε αυτόν τον σύνδεσμο μιας σελίδας github και να κατεβάσετε το αρχείο xml για τον καταρράκτη Haar.
1. Κάντε κλικ στο 'haarcascade_frontalface_alt.xml'
2. Κάντε κλικ στο κουμπί 'Raw' στο επάνω δεξί τμήμα του παραθύρου κωδικού.
3. Θα σας κατευθύνει σε άλλη σελίδα με μόνο κείμενο.
4. Κάντε δεξί κλικ και πατήστε "Αποθήκευση ως.."
5. Αποθηκεύστε τον στον ίδιο κατάλογο ή φάκελο με αυτόν του κώδικα python που πρόκειται να γράψετε.
Βήμα 3: Κωδικοποίηση σε Python
εισαγωγή cv2
εισαγωγή numpy ως np εισαγωγή σειριακού χρόνου εισαγωγής
Εισάγουμε όλες τις βιβλιοθήκες που χρειαζόμαστε.
ard = serial. Serial ("COM3", 9600)
Δημιουργούμε ένα σειριακό αντικείμενο που ονομάζεται «ard». Καθορίζουμε επίσης το όνομα θύρας και το BaudRate ως παραμέτρους.
face_cascade = cv2. CascadeClassifier ('haarcascade_frontalface_default.xml')
Δημιουργούμε ένα άλλο αντικείμενο για τον καταρράκτη Haar. Βεβαιωθείτε ότι το αρχείο HaarCascade παραμένει στον ίδιο φάκελο με αυτό το πρόγραμμα python.
vid = cv2. VideoCapture (0)
Δημιουργούμε ένα αντικείμενο που καταγράφει βίντεο από την κάμερα web. 0 ως παράμετρος σημαίνει την πρώτη κάμερα ιστού συνδεδεμένη στον υπολογιστή μου.
docs.opencv.org/2.4/modules/objdetect/doc/cascade_classification.html
ενώ True:
_, frame = vid.read ()#διαβάζει το τρέχον πλαίσιο στη μεταβλητή πλαίσιο γκρι = cv2.cvtColor (πλαίσιο, cv2. COLOR_BGR2GRAY)#μετατρέπει πλαίσιο -> κλίμακα σε γκρι εικόνα#η ακόλουθη γραμμή ανιχνεύει πρόσωπα. #Πρώτη παράμετρος είναι η εικόνα στην οποία θέλετε να ανιχνεύσετε στο #minSize = () καθορίζει το ελάχιστο μέγεθος του προσώπου σε pixel #Κάντε κλικ στον παραπάνω σύνδεσμο για να μάθετε περισσότερα σχετικά με τα πρόσωπα ταξινόμησης Cascade = face_cascade.detectMultiScale (γκρι, minSize = (80, 80), minNeighbors = 3) #A για βρόχο για τον εντοπισμό των προσώπων. για (x, y, w, h) σε όψεις: cv2. ορθογώνιο (πλαίσιο, (x, y), (x+w, y+h), (255, 0, 0), 2)#σχεδιάζει ένα ορθογώνιο γύρω το πρόσωπο Xpos = x+(w/2)#υπολογίζει τη συντεταγμένη Χ του κέντρου του προσώπου. Ypos = y+(h/2) #υπολογίζει τον συντεταγμένο Y του κέντρου του προσώπου εάν Xpos> 280: #Οι ακόλουθοι κώδικες μπλοκάρουν αν το πρόσωπο είναι ard.write ('L'.encode ()) #on αριστερά, δεξιά, πάνω ή κάτω σε σχέση με το time.sleep (0,01) #κέντρο του πλαισίου. elif Xpos 280: ard.write ('D'.encode ()) time.sleep (0.01) elif Ypos <200: ard.write (' U'.encode ()) time.sleep (0.01) else: ard.write ('S'.encode ()) time.sleep (0.01) break cv2.imshow (' frame ', frame)#εμφανίζει το πλαίσιο σε ξεχωριστό παράθυρο. k = cv2.waitKey (1) & 0xFF εάν (k == ord ('q')): #if 'q' πατηθεί στο πληκτρολόγιο, βγαίνει από τον βρόχο while Διακοπή
cv2.destroyAllWindows () #κλείνει όλα τα παράθυρα
ard.close () #κλείνει τη σειριακή επικοινωνία
vid.release () #σταματά να λαμβάνει βίντεο από την κάμερα ιστού.
Βήμα 4: Προγραμματισμός του Arduino
Μη διστάσετε να τροποποιήσετε το πρόγραμμα σύμφωνα με τη ρύθμιση υλικού που ταιριάζει στις ανάγκες σας.
#περιλαμβάνω
Servo servoX;
Servo servoY;
int x = 90;
int y = 90;
void setup () {
// βάλτε τον κωδικό εγκατάστασης εδώ, για να εκτελεστεί μία φορά: Serial.begin (9600); servoX.attach (9); servoY.attach (10); servoX.write (x); servoY.write (y); καθυστέρηση (1000)? }
char input = ""; // η σειριακή είσοδος αποθηκεύεται σε αυτήν τη μεταβλητή
void loop () {
// βάλτε τον κύριο κωδικό σας εδώ, για να εκτελείται επανειλημμένα: if (Serial.available ()) {// ελέγχει εάν υπάρχουν δεδομένα στη σειριακή είσοδο buffer = Serial.read (); // διαβάζει τα δεδομένα σε μια μεταβλητή εάν (εισαγωγή == 'U') {servoY.write (y+1); // ρυθμίζει τη γωνία σερβο σύμφωνα με την είσοδο y += 1; // ενημερώνει την τιμή της γωνίας} else if (εισαγωγή == 'D') {servoY.write (y-1); y -= 1; } else {servoY.write (y); } if (εισαγωγή == 'L') {servoX.write (x-1); x -= 1; } else if (εισαγωγή == 'R') {servoX.write (x+1); x += 1; } else {servoX.write (x); } input = ""; // καθαρίζει τη μεταβλητή} // η διαδικασία επαναλαμβάνεται συνεχώς !!:)}
Βήμα 5: Συμπέρασμα
Αυτός είναι ένας ωραίος και ένας διαδραστικός τρόπος μέσω του οποίου μπορείτε να σχεδιάσετε την ενσωμάτωση του Computer Vision στα έργα σας Arduino. Το Computer Vision είναι στην πραγματικότητα αρκετά διασκεδαστικό. Και ελπίζω πραγματικά ότι σας άρεσε. Αν ναι, ενημερώστε με στα σχόλια. Και παρακαλώ εγγραφείτε στο κανάλι μου στο youtube. Ευχαριστώ εκ των προτέρων <3 <3
youtube.com/channel/UCNOSfI_iQ7Eb7-s8CrExGfw/videos
Συνιστάται:
Δημιουργήστε μια συσκευή παρακολούθησης ενέργειας χρησιμοποιώντας ένα ηλεκτρόνιο σωματιδίων: 5 βήματα (με εικόνες)
Δημιουργήστε μια συσκευή παρακολούθησης ενέργειας χρησιμοποιώντας ένα ηλεκτρόνιο σωματιδίων: Στις περισσότερες επιχειρήσεις, θεωρούμε ότι η ενέργεια είναι επιχειρηματική δαπάνη. Ο λογαριασμός εμφανίζεται στα μηνύματα ηλεκτρονικού ταχυδρομείου ή στα email μας και τον πληρώνουμε πριν από την ημερομηνία ακύρωσης. Με την εμφάνιση του IoT και των έξυπνων συσκευών, η Energy αρχίζει να παίρνει μια νέα θέση σε μια επιχείρηση
Airduino: Κινητή συσκευή παρακολούθησης ποιότητας αέρα: 5 βήματα
Airduino: Mobile Air Quality Monitor: Καλώς ορίσατε στο έργο μου, Airduino. Το όνομά μου είναι Robbe Breens. Σπουδάζω τεχνολογία πολυμέσων και επικοινωνιών στο Howest στο Kortrijk του Βελγίου. Στο τέλος του δεύτερου εξαμήνου, πρέπει να φτιάξουμε μια συσκευή IoT, η οποία είναι ένας πολύ καλός τρόπος για να
Xpedit - Συσκευή παρακολούθησης ατμόσφαιρας για πεζοπορία και πεζοπορία: 12 βήματα (με εικόνες)
Xpedit - Συσκευή παρακολούθησης ατμόσφαιρας για πεζοπορία και πεζοπορία: Όταν σχεδιάζετε να κάνετε ένα ταξίδι περιπέτειας ή να κάνετε πεζοπορία στη φύση, είναι απαραίτητο να έχετε μια συσκευή στο σακίδιο σας που σας βοηθά να κατανοήσετε το περιβάλλον. Για το επερχόμενο ταξίδι περιπέτειάς μου, σχεδίαζα να φτιάξω μια φορητή συσκευή που βοηθά
The Floger: μια συσκευή παρακολούθησης του καιρού Παράμετρος: 6 βήματα
The Floger: Device to Monitor Weather Parameter: Μια μικρή συνδεδεμένη και AUTONOMUS συσκευή για την παρακολούθηση αρκετών χρήσιμων παραλλαγών που θα σας βοηθήσουν στην κηπουρική. Αυτή η συσκευή έχει σχεδιαστεί για να μετρά διαφορετικές παραμέτρους καιρού: Θερμοκρασία δαπέδου και αέρα Φωτεινότητα υγρασίας δαπέδου και αέρα Εμφάνιση σε
Ακατέργαστη συσκευή παρακολούθησης από GPS και αμφίδρομα ραδιόφωνα: 7 βήματα
Ακατέργαστη συσκευή παρακολούθησης από GPS και αμφίδρομα ραδιόφωνα: Έτσι, ήθελα να αποκτήσω μια συσκευή παρακολούθησης. Μόλις κοίταξα στην αγορά, συνειδητοποίησα ότι οι τιμές για ένα από αυτά τα πράγματα ξεκινούν από ένα χέρι και φτάνουν μέχρι ένα πόδι ή περισσότερο! Η τρέλα πρέπει να σταματήσει! Σίγουρα οι αρχές του να γνωρίζεις πού κάτι