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

Κουδούνι πόρτας με αναγνώριση προσώπου: 7 βήματα (με εικόνες)
Κουδούνι πόρτας με αναγνώριση προσώπου: 7 βήματα (με εικόνες)

Βίντεο: Κουδούνι πόρτας με αναγνώριση προσώπου: 7 βήματα (με εικόνες)

Βίντεο: Κουδούνι πόρτας με αναγνώριση προσώπου: 7 βήματα (με εικόνες)
Βίντεο: Η CINDERELLA ΚΟΡΟΪΔΕΎΕΙ ΤΟΥΣ ΧΕΙΤΕΡΣ ΠΟΥ ΤΗΝ ΑΠΟΚΑΛΟΥΝ ΑΝΕΥΘΥΝΗ 2024, Ιούλιος
Anonim
Κουδούνι πόρτας με αναγνώριση προσώπου
Κουδούνι πόρτας με αναγνώριση προσώπου

Κίνητρο

Πρόσφατα, υπήρξε ένα κύμα ληστειών στη χώρα μου που στοχεύουν ηλικιωμένους στα σπίτια τους. Συνήθως, η πρόσβαση παρέχεται από τους ίδιους τους ενοίκους αφού οι επισκέπτες τους πείθουν ότι είναι φροντιστές/νοσηλευτές. Είναι απλά πέρα από τα λόγια, πόσο θυμωμένος και λυπημένος με κάνουν αυτές οι ιστορίες. Το σπίτι πρέπει να είναι το πρώτο σας ασφαλές καταφύγιο και ακόμη περισσότερο αν είστε ήδη σε ευάλωτη θέση όταν βρίσκεστε έξω. Με αυτό κατά νου, ξεκίνησα αυτό το έργο.

Γενικές πληροφορίες

Το σύστημα κουδουνιών έχει σχεδιαστεί κυρίως για ηλικιωμένους ή άτομα με προβλήματα όρασης και είναι αρκετά απλό στη λειτουργία του. Εν ολίγοις, ο διακόπτης κουδουνιού της πόρτας ενεργοποιεί την κάμερα για λήψη λήψης. Στη συνέχεια, τα πρόσωπα στο πλάνο εντοπίζονται και αντιστοιχίζονται με μια λίστα επιτρεπόμενων και μαύρη λίστα. Ο επιβάτης λαμβάνει σαφή οπτική ανατροφοδότηση με καθαρή οθόνη φωτεινού σηματοδότη. Με αυτόν τον τρόπο, το πράσινο, κίτρινο ή κόκκινο φως υποδεικνύει ότι το πρόσωπο ή τα πρόσωπα βρίσκονται στη λίστα επιτρεπόμενων, άγνωστο στο σύστημα ή στη μαύρη λίστα αντίστοιχα. Εάν ενεργοποιηθεί το κίτρινο ή το κόκκινο φως, η φωτογραφία αποστέλλεται από ένα bot Telegram για να ενημερώσει/προειδοποιήσει έναν συγγενή ή επιστάτη.

Επίπεδο εμπειρογνωμοσύνης

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

Βήμα 1: Υλικά

Υλικά
Υλικά

Λίστα προϊόντων με ελάχιστες απαιτήσεις:

Προϊόν Σύνδεσμος Σχόλιο
Raspberry Pi 3b RPi Ο σύνδεσμος δείχνει το RPi 4 αφού έχει πολύ καλύτερη απόδοση και σχεδόν ίση τιμή με το RPi 3b.
Micro SD Αμαζόνα Μια κάρτα micro SD 16 GB ή μεγαλύτερη θα κάνει τη δουλειά. Αλλά οι κάρτες 16 GB στο Amazon έχουν τώρα σχεδόν την ίδια τιμή με τις κάρτες 32 GB.
Κάμερα Raspberry Pi Αμαζόνα Η κάμερα v1 είναι φθηνότερη, αλλά η v2 είναι καλύτερη και θα υποστηρίζεται περισσότερο.
Ευέλικτο καλώδιο FPC 15 ακίδων Αμαζόνα Το μήκος εξαρτάται πραγματικά από τις συνθήκες εκτέλεσης αυτού του έργου. Εάν θέλετε απλά να δημιουργήσετε ένα πρωτότυπο, το αρχικό εύκαμπτο καλώδιο θα κάνει τη δουλειά.
Τροφοδοτικό 5v micro usb Adafruit Αυτό δεν άφησε ποτέ να χαλάσει! Μεγάλη ποιότητα. (Δεν υπάρχει στη φωτογραφία)
Κουμπιά arcade με ενσωματωμένο LED Αμαζόνα Επιλέξτε το μέγεθος που θέλετε, αλλά ο σχεδιασμός CAD βασίζεται σε κουμπιά 60mm
Αντιστάσεις Αμαζόνα Χρειάζεστε μόνο μερικές αντιστάσεις 1k και 100 ohm. Τα κανονικά 1/4W είναι καλά.
Πυκνωτές 0,1 uF Αμαζόνα Τρεις πυκνωτές χρειάζονται. (Δεν υπάρχει στη φωτογραφία)
Καλώδια Jumper / καλώδιο κορδέλας AmazonAmazon Εάν θέλετε να εξοικονομήσετε χρήματα, μπορείτε επίσης να χρησιμοποιήσετε ένα παλιό καλώδιο κορδέλας δισκέτας (δείτε τη φωτογραφία).
Συρρικνωμένος σωλήνας / Ηλεκτρική ταινία AmazonAmazon

Εργαλεία που χρειάζονται:

Εργαλείο Ουσιώδης? Σχόλιο
Συγκολλητικό σίδερο Ναί
Πολύμετρο Ναί
Απογυμνωτής καλωδίων Ναί Or μπορείτε να χρησιμοποιήσετε ένα μαχαίρι/ψαλίδι.
Κόφτης λέιζερ Οχι
Τρισδιάστατος εκτυπωτής Οχι
Σφιγκτήρες Οχι Χρήσιμο για τη διατήρηση του κουτιού μαζί στη φάση των δοκιμών.

Παρατηρήσεις:

Για να αυξήσω την προσβασιμότητα του έργου, αποφάσισα να το αναπτύξω χρησιμοποιώντας ένα Raspberry Pi 3b. Ενώ αυξάνει την προσβασιμότητα, μειώνει τις δυνατότητες της εφαρμογής, καθώς οι RPi δεν είναι τόσο γρήγοροι. Αν ψάχνετε για έναν υπολογιστή με μεγαλύτερη ταχύτητα, ίσως θελήσετε να ρίξετε μια ματιά στο NVIDIA Jetson Nano

Βήμα 2: Καλωδίωση

Καλωδίωση
Καλωδίωση
Καλωδίωση
Καλωδίωση
Καλωδίωση
Καλωδίωση

Το σχηματικό διάγραμμα είναι το πιο κατατοπιστικό για αυτό το βήμα και είναι αρκετά αυτονόητο. Σε περίπτωση που είστε νέοι στα ηλεκτρονικά, μπορείτε να χρησιμοποιήσετε την εικόνα θρύλου. Η τιμή του στοιχείου (εάν ισχύει) αναφέρεται στο σχηματικό διάγραμμα. Οι φωτογραφίες μπορεί να βοηθήσουν να δούμε πώς κατασκευάζω το κύκλωμα. Βασικά, συνέδεσα όλα τα στοιχεία όσο το δυνατόν πιο κοντά στο κουμπί arcade, με αποτέλεσμα μια σαφή επισκόπηση του τι συμβαίνει.

Παρατηρήσεις:

  • Μου αρέσει πολύ να χρησιμοποιώ συνδέσεις καλωδίων με κορδέλα, καθώς είναι πολύ πιο ανθεκτικές από τη χρήση καλωδίων ενός βραχυκυκλωτήρα.
  • Όπως προτείνεται, χρησιμοποίησα ένα καλώδιο κορδέλας από έναν παλιό υπολογιστή. Αυτό είναι λίγο δύσκολο, αν και θα πρέπει να επιβεβαιώσετε χειροκίνητα τη διαμόρφωση του καλωδίου. Σε αυτό το έργο για παράδειγμα, ανακάλυψα ότι ορισμένες τρύπες συνδέονταν μεταξύ τους (πιθανότατα χρησιμοποιήθηκαν ως γείωση για την αρχική εφαρμογή). Ως εκ τούτου, έπρεπε να πάρω ένα διαφορετικό καλώδιο αργότερα, όπως μπορείτε να δείτε στις εικόνες.

Βήμα 3: Χτίζοντας το περίβλημα

Χτίζοντας το περίβλημα
Χτίζοντας το περίβλημα
Χτίζοντας το περίβλημα
Χτίζοντας το περίβλημα
Χτίζοντας το περίβλημα
Χτίζοντας το περίβλημα
Χτίζοντας το περίβλημα
Χτίζοντας το περίβλημα

Περίβλημα κάμερας

Πολλές θήκες για την picamera μπορούν να μεταφορτωθούν ελεύθερα από το διαδίκτυο. Έτσι, επιλέγω να μην επανεφεύρω τον τροχό και να επιλέξω ένα βασικό αλλά ωραίο περίβλημα από το διαδίκτυο: thingiverse.com - Θήκη/περίβλημα κάμερας Raspberry pi. (Φωνάξτε τον σχεδιαστή VGer.)

Περίβλημα φανάρι

Για το περίβλημα του φανάρι, σχεδίασα ένα μικρό κουτί στο Autodesk Fusion 360 (το οποίο μπορείτε να κατεβάσετε δωρεάν, δείτε Παρατηρήσεις) που ταιριάζει σε όλο το υλικό. Στο συνημμένο, μπορείτε να βρείτε το αρχείο που έχω στείλει στην τοπική εταιρεία κοπής λέιζερ. Έτσι, ο σχεδιασμός βασίζεται σε πάχος πλάκας 6mm. Ωστόσο, εάν θέλετε να προσαρμόσετε τα πράγματα, μπορείτε να έχετε πρόσβαση σε όλα τα είδη μορφών αρχείων χρησιμοποιώντας αυτόν τον σύνδεσμο. Όπως φαίνεται στις εικόνες, μπορείτε επίσης να χρησιμοποιήσετε ένα κουτί από χαρτόνι εάν δεν έχετε πρόσβαση σε κόφτη λέιζερ. Χρησιμοποίησα το κουτί από χαρτόνι στην εικόνα για πρωτότυπο και λειτουργεί σαν γούρι.

Η συναρμολόγηση είναι αρκετά ευθεία:

  1. Τοποθετήστε τους διακόπτες Arcade.
  2. Φροντίστε να μην έχετε τα καλώδια για το κουδούνι της πόρτας.
  3. Συνδέστε το καλώδιο κορδέλας στο RPi.
  4. Βιδώστε το RPi στο κάτω πλαίσιο.
  5. Συνδέστε τα καλώδια του κουδουνιού πόρτας σε έναν συνδετήρα καλωδίου και τοποθετήστε το επίσης στο κάτω πλαίσιο.
  6. Συνδέστε την Picamera στο RPi.
  7. Τρυπήστε μια τρύπα σε ένα από τα πλαϊνά πάνελ για το καλώδιο μεταγωγής κουδουνιού και το καλώδιο τροφοδοσίας RPi.

Ο σύνδεσμος σύρματος χρησιμοποιείται ως σημείο στερέωσης για τα καλώδια του διακόπτη κουδουνιού, έτσι ώστε να μπορεί να στερεωθεί αργότερα σε ένα υπάρχον κουδούνι. Όλα είναι πλέον στη θέση τους και μπορούν να κολληθούν μεταξύ τους. Ωστόσο, ίσως να θέλετε πρώτα να ολοκληρώσετε τα επόμενα βήματα, για να βεβαιωθείτε ότι όλα λειτουργούν όπως υποτίθεται ότι είναι.

Παρατηρήσεις:

Το Autodesk Fusion 360 διατίθεται ελεύθερα για χομπίστες! Αν θέλετε να λάβετε το αντίγραφό σας, επισκεφθείτε αυτόν τον σύνδεσμο: autodesk.com - Fusion 360 For Hobbyists. Υπάρχουν ορισμένοι όροι, οπότε φροντίστε να τους διαβάσετε και να τους εφαρμόσετε. Wasταν το πρώτο μου έργο με το Fusion 360 και δεν έχω μεγάλη εμπειρία στη χρήση λογισμικού CAD, αλλά πρέπει να πω ότι μου αρέσει πολύ το λογισμικό και όλα τα πρόσθετα εργαλεία που έρχονται με το Fusion 360

Βήμα 4: Διαμόρφωση της κάμερας

Διαμόρφωση της κάμερας
Διαμόρφωση της κάμερας
Διαμόρφωση της κάμερας
Διαμόρφωση της κάμερας
Διαμόρφωση της κάμερας
Διαμόρφωση της κάμερας

Υποτίθεται ότι έχετε εγκαταστήσει το Raspbian και ότι εκτελείται σε λειτουργία GUI. Εάν δεν έχετε ακόμη εγκαταστήσει το Raspbian, μπορείτε να ακολουθήσετε αυτό το άρθρο: raspberrypi.org - Εγκατάσταση εικόνων λειτουργικού συστήματος. Εάν κάνετε εκκίνηση του Raspbian, θα πρέπει να δείτε μια επιφάνεια εργασίας όπως φαίνεται στις εικόνες.

Ας διαμορφώσουμε την κάμερα στο RPi και θα δούμε αν λειτουργεί! Η μέθοδος που περιγράφεται εδώ είναι απευθείας από το raspberrypi.org - Τεκμηρίωση. Αρχικά, ας ενημερώσουμε τα τελευταία πακέτα (συμπεριλαμβανομένου του υλικολογισμικού κάμερας) εκτελώντας τις ακόλουθες εντολές σε ένα παράθυρο τερματικού (δείτε εικόνες):

sudo apt ενημέρωση

sudo apt πλήρης αναβάθμιση

Στη συνέχεια, η κάμερα πρέπει να ενεργοποιηθεί χρησιμοποιώντας την ακόλουθη εντολή:

sudo raspi-config

Στο μενού, μεταβείτε στο 5. Επιλογές διασύνδεσης -> Κάμερα P1. Επιλέξτε να ενεργοποιήσετε την κάμερα και επανεκκινήστε το RPi εκτελώντας:

επανεκκίνηση

Η κάμερα θα πρέπει τώρα να έχει ρυθμιστεί σωστά. Μπορεί να δοκιμαστεί ανοίγοντας ένα παράθυρο τερματικού και να εκτελέσει:

raspistill -v -o /home/pi/test.jpg

Η εικόνα αποθηκεύεται στο: /home /pi.

Βήμα 5: Ρύθμιση του Docker

Ρύθμιση του Docker
Ρύθμιση του Docker
Ρύθμιση του Docker
Ρύθμιση του Docker
Ρύθμιση του Docker
Ρύθμιση του Docker
Ρύθμιση του Docker
Ρύθμιση του Docker

Για να αποφύγω την εξάρτηση και τα σφάλματα εγκατάστασης, αποφάσισα να δημιουργήσω μια προσαρμοσμένη εικόνα Docker για αυτό το έργο (δείτε wikipedia.org - Docker). Εάν δεν χρησιμοποιήσατε ή ακούσατε ποτέ για το Docker, μην ανησυχείτε, θα εξηγήσω βήμα προς βήμα πώς να το χρησιμοποιήσετε σε αυτό το έργο. Στην πραγματικότητα, είναι εξαιρετικά εύκολο! Σε περίπτωση που θέλετε να εκτελέσετε αυτό το έργο σε τοπική εγκατάσταση (αντί σε κοντέινερ Docker), θα σας δώσω μερικές συμβουλές. Αλλά συνιστάται ιδιαίτερα να χρησιμοποιήσετε την εικόνα Docker. Μετά από όλα, το χτίζω για να σας διευκολύνω να τρέξετε αυτό το έργο!

Τι είναι το Docker;

Σημείωση: αυτό το μέρος παρέχει κάποιες πληροφορίες παρασκηνίου σχετικά με το Docker, οι οποίες μπορούν να παραλειφθούν εάν θέλετε απλώς να εκτελέσετε τον κώδικα.

Αυτό το έργο είναι η πρώτη φορά που χρησιμοποίησα το Docker και είναι απλά φοβερό! Maybeσως έχετε ακούσει για virtualenv ή Anaconda για Python; Λοιπόν, το Docker είναι αρκετά παρόμοιο με την έννοια ότι μπορείτε εύκολα να διαχειριστείτε εκδόσεις πακέτων και να εκτελέσετε διαφορετικές εκδόσεις Python σε ένα σύστημα κεντρικού υπολογιστή χρησιμοποιώντας διαφορετικό περιβάλλον (ή κοντέινερ όπως ονομάζεται στο Docker). Αλλά, σε σύγκριση με το virtualenv και το Anaconda, το Docker είναι πολύ πιο ισχυρό αφού δεν περιορίζεται να περιέχει μόνο πακέτα Python. Πράγματι, σε ένα δοχείο Docker, μπορείτε να εγκαταστήσετε και να διαχειριστείτε επίσης τα πακέτα ενός επιθυμητού λειτουργικού συστήματος. Για παράδειγμα, σκεφτείτε έναν ιστότοπο στον οποίο θέλετε να μετεγκαταστήσετε και ο οποίος εκτελεί ένα πλαίσιο ιστού Python (π.χ. Django) με μια βάση δεδομένων (π.χ. MySQL). Χωρίς κοντέινερ Docker, θα πρέπει να εγκαταστήσετε όλα τα πακέτα στο νέο διακομιστή, μια διαδικασία που είναι πολύ επιρρεπής σε σφάλματα και σφάλματα. Από την άλλη πλευρά, όταν ο ιστότοπός σας έχει δημιουργηθεί στο Docker, η μετεγκατάσταση είναι βασικά τόσο εύκολη όσο η μετακίνηση του αρχείου εικόνας/αρχείων στον νέο διακομιστή και η εκτέλεσή του/αυτών. Όπως μπορείτε να φανταστείτε, το Docker είναι πολύ χρήσιμο και για έργα σε Instructables;)! Αν θέλετε να μάθετε περισσότερα για το Docker, ανατρέξτε στον ιστότοπό τους: docker.org - Docker: Enterprise Container Platform. Τώρα, ας σηκωθούμε και τρέχουμε με το Docker!

Εγκατάσταση του Docker

Εγκαταστήστε το Docker εκτελώντας:

curl -sSL https://get.docker.com | SH

Στη συνέχεια, ο χρήστης προστίθεται στην ομάδα χρηστών 'docker', η οποία παρέχει τα δικαιώματα εκτέλεσης του Docker. Αυτό γίνεται από:

sudo usermod -aG docker $ USER

Τώρα, θα πρέπει να μπορείτε να εκτελέσετε το Docker. Αυτό μπορεί να επικυρωθεί εκτελώντας την εικόνα του hello-world:

docker run hello-world

Τέλος, ας τραβήξουμε την εικόνα Docker που περιέχει όλες τις εξαρτήσεις που απαιτούνται για την εκτέλεση των σεναρίων Python του κουδουνιού. Αυτή η διαδικασία μπορεί να διαρκέσει λίγο αφού η εικόνα είναι αρκετά μεγάλη (~ 1,5 GB). Εκτέλεση:

docker pull erientes/doorbell

Σημείωση: το Dockerfile μπορείτε να το βρείτε στο χώρο αποθήκευσης κουδουνιών στο Github. Τώρα, όλα είναι έτοιμα για την εκτέλεση των σεναρίων κουδουνιού, τα οποία θα συζητηθούν στο επόμενο βήμα.

Τοπική εγκατάσταση

Και πάλι, θα συνιστούσα ανεπιφύλακτα να χρησιμοποιήσετε την εικόνα Docker αντί για τοπική εγκατάσταση. Αλλά για να ολοκληρώσω αυτό το σεμινάριο, θα περιγράψω τώρα μερικά από τα βήματα που έκανα για την τοπική εγκατάσταση.

Για να μπορέσετε να εκτελέσετε τον κώδικα, η έκδοση python θα πρέπει να είναι> = 3.5 (χρησιμοποίησα python 3.5.3) και πρέπει να εγκατασταθούν τα ακόλουθα πακέτα:

  • αναγνώριση προσώπου
  • picamera
  • μουδιασμένος
  • Μαξιλάρι
  • python-telegram-bot
  • RPi. GPIO

Αυτός ο σύνδεσμος είναι αρκετά χρήσιμος: Github - Εγκαταστήστε το dlib και το face_recognition σε ένα Raspberry Pi. Ωστόσο, υπάρχουν κάποιες προειδοποιήσεις εδώ: 1) Το Pillow χρειάζεται τουλάχιστον Python 3.5, το οποίο δεν θα εγκατασταθεί ακολουθώντας αυτήν τη μέθοδο. 2) Επίσης, δεν θα εγκατασταθούν όλα τα πακέτα που χρειάζονται στο έργο κουδουνιών ακολουθώντας αυτήν τη μέθοδο. Ωστόσο, θα πρέπει να μπορείτε να το εγκαταστήσετε χρησιμοποιώντας απλά το pip3.

Βήμα 6: Εκτέλεση των σεναρίων του Doorbell

Εκτέλεση των σεναρίων του Doorbell
Εκτέλεση των σεναρίων του Doorbell
Εκτέλεση των σεναρίων του Doorbell
Εκτέλεση των σεναρίων του Doorbell
Εκτέλεση των σεναρίων του Doorbell
Εκτέλεση των σεναρίων του Doorbell

Πάρτε τα σενάρια

Μπορείτε να κατεβάσετε τα σενάρια χειροκίνητα από: github.com - Erientes/doorbell. Or αν έχετε εγκατεστημένο το Git, εκτελέστε:

git clone

Δημιουργήστε ψευδώνυμα

Τώρα, για να κάνουμε τη ζωή μας λίγο πιο εύκολη, ας δημιουργήσουμε μερικά ψευδώνυμα για να τρέξουμε τα σενάρια. Εκτέλεση:

φύλλο ~/.bashrc

Προσθέστε τις ακόλουθες γραμμές και αποθηκεύστε το αρχείο:

ψευδώνυμο doorbell_run = 'docker run --privileged -v/home/pi/doorbell:/doorbell -w/doorbell -είναι erientes/doorbell python $ 1'

ψευδώνυμο doorbell_login = 'docker run --privileged -v/home/pi/doorbell:/doorbell -w/doorbell -it erientes/doorbell bash'

Δοκιμάστε σενάρια

Για να ελέγξετε αν όλα έχουν εγκατασταθεί σωστά, ανοίξτε ένα νέο τερματικό και εκτελέστε:

παραδείγματα doorbell_run/0_test_installation.py

Το αποτέλεσμα θα πρέπει απλώς να είναι ένα μήνυμα στο παράθυρο του τερματικού που λέει "Η εγκατάσταση του κουδουνιού ολοκληρώθηκε με επιτυχία!". Για να ελέγξετε εάν η κάμερα είναι προσβάσιμη από το κοντέινερ Docker, εκτελέστε:

παραδείγματα doorbell_run/1_test_camera.py

Με την εκτέλεση του 1_test_camera.py, μια φωτογραφία θα τραβηχτεί και θα αποθηκευτεί ως 'test.jpg', η οποία βρίσκεται στο/home/pi/doorbell. Τέλος, τα προγράμματα οδήγησης LED μπορούν να δοκιμαστούν εκτελώντας:

doorbell_run παραδείγματα/2_test_voicehat_drivers.py

Όταν εκτελείται αυτό το σενάριο, το LED στο διακόπτη arcade θα πρέπει να αποκρίνεται όταν πατήσετε το κουμπί.

Εκτέλεση σεναρίων Doorbell

Για να εκτελέσετε τα σενάρια Doorbell, πρέπει πρώτα να λάβετε τα διαπιστευτήρια του bot Telegram. Εγκαταστήστε το Telegram στο τηλέφωνό σας και μεταβείτε στο telegram.me - Botfather. Ξεκινήστε μια συνομιλία και εισαγάγετε:

/newbot

Συμπληρώστε ένα όνομα και ένα όνομα χρήστη για το bot. Μετά από αυτό, θα σας δοθεί το διακριτικό πρόσβασης. Αντιγράψτε αυτήν την τιμή στο αρχείο 'credentials_telegram_template.py' στο/home/pi/doorbell και αποθηκεύστε την σε ένα νέο αρχείο με το όνομα 'credentials_telegram.py'. Τέλος, ξεκινήστε μια συνομιλία με το bot που μόλις δημιουργήσατε κάνοντας κλικ στο σύνδεσμο που σας παρέχει ο Botfather.

Τέλος, ας τρέξουμε το κουδούνι πόρτας με αναγνώριση προσώπου:

doorbell_run main.py

Παρατηρήσεις:

Αν θέλετε να μάθετε περισσότερα για το πώς λειτουργεί ο κώδικας, ελέγξτε τα σχόλια στα ίδια τα σενάρια. Εάν έχετε κάποια ερώτηση σχετικά με τον κωδικό, επικοινωνήστε μαζί μου μέσω του Github

Βήμα 7: Χρήση του κουδουνιού πόρτας

Image
Image
Χρησιμοποιώντας το κουδούνι της πόρτας
Χρησιμοποιώντας το κουδούνι της πόρτας
Χρησιμοποιώντας το κουδούνι της πόρτας
Χρησιμοποιώντας το κουδούνι της πόρτας

Ας τρέξουμε το σενάριο κουδουνιού της πόρτας εκτελώντας:

doorbell_run main.py Μετά τη φόρτωση των πακέτων, τα σενάρια παραμένουν αδράνεια. Υπάρχουν βασικά 2 πράγματα που μπορούν να συμβούν:

  1. Κάποιος χτυπάει το κουδούνι της πόρτας.
  2. Προστίθεται κάποιος στη λίστα επιτρεπόμενων.

Κάποιος χτυπάει το κουδούνι της πόρτας

Σε αυτήν την περίπτωση, το σενάριο θα ξεκινήσει τη λήψη φωτογραφιών μέχρι να τραβήξει μια φωτογραφία στην οποία ανιχνεύεται ένα πρόσωπο. Μετά τον εντοπισμό, ορισμένες μέθοδοι από το πακέτο python 'face_recognition' καλούνται να υπολογίσουν μια κωδικοποίηση 128 του προσώπου. Στη συνέχεια, η ληφθείσα κωδικοποίηση συγκρίνεται με τις κωδικοποιήσεις στη λίστα επιτρεπόμενων και τη μαύρη λίστα.csv. Τα πιθανά αποτελέσματα οδηγούν στην ακόλουθη απάντηση:

Στη λίστα επιτρεπόμενων; Στη μαύρη λίστα; Απάντηση
Ναί Οχι Ανάβει το πράσινο φως.
Ναί Ναί Το κίτρινο φως ανάβει. Η κάμερα κουδουνιού στέλνει φωτογραφίες στο Telegram bot με πορτοκαλί εικονίδιο. Αυτή η κατάσταση μπορεί να συμβεί εάν κάποιος προστέθηκε και στις δύο λίστες. Για παράδειγμα, όταν κάποιος ήταν ευπρόσδεκτος στην αρχή, αλλά αργότερα μπήκε στη μαύρη λίστα.
Οχι Οχι Το κίτρινο φως ανάβει. Η κάμερα κουδουνιού στέλνει φωτογραφίες στο Telegram bot με πορτοκαλί εικονίδιο.
Οχι Ναί Ανάβει το κόκκινο φως. Η κάμερα κουδουνιού στέλνει φωτογραφίες στο Telegram bot με κόκκινο εικονίδιο.

Προστίθεται κάποιος στη λίστα επιτρεπόμενων

Για να προσθέσετε κάποιον στη λίστα επιτρεπόμενων, πατήστε το κίτρινο κουμπί του φωτεινού σηματοδότη όταν το κουδούνι της πόρτας είναι σε κατάσταση αδράνειας. Αρχικά, θα ανάψει το κίτρινο φως. Εάν το πράσινο φως αναβοσβήνει 3 φορές, το πρόσωπο του ατόμου προστίθεται επιτυχώς στη λίστα επιτρεπόμενων. Εάν το πράσινο φως δεν αναβοσβήνει 3 φορές, η προσπάθεια δεν ήταν επιτυχής. Σε αυτήν την περίπτωση, πατήστε ξανά το κίτρινο κουμπί. Μπορείτε εύκολα να επαληθεύσετε εάν ήταν επιτυχής χτυπώντας το κουδούνι της πόρτας και ελέγχοντας εάν έχει περάσει το πράσινο φως.

Πώς να προσθέσετε κάποιον στη μαύρη λίστα;

Προφανώς, άνθρωποι με κακές προθέσεις δεν θα περάσουν για να μας δώσουν μια φωτογραφία του προσώπου τους. Επομένως, μπορείτε να προσθέσετε εικόνες διαβόητων ανθρώπων που (για παράδειγμα) έχει δημοσιεύσει η αστυνομία στο φάκελο img/blacklist. Κάθε ώρα, αυτός ο φάκελος ελέγχεται για νέες εικόνες. Εάν υπάρχει νέα εικόνα, η κωδικοποίηση προσώπου υπολογίζεται και προστίθεται στη μαύρη λίστα.csv. Στη συνέχεια, η εικόνα μετονομάζεται και μεταφέρεται στο φάκελο/img/blacklist/encoded.

Παρατηρήσεις:

  • Ο χειρισμός των σεναρίων με σύνδεση στο RPi παρέχει περισσότερο έλεγχο και πληροφορίες, αλλά ο βασικός έλεγχος και οι πληροφορίες μπορούν να ληφθούν μόνο με χρήση της οθόνης φωτεινού σηματοδότη.
  • Η αναγνώριση προσώπου υλοποιείται χρησιμοποιώντας το πακέτο python 'face_recognition'. Αυτό το πακέτο βασίζεται στο Dlib που περιέχει έναν υπερσύγχρονο αλγόριθμο αναγνώρισης προσώπου, ο οποίος επιτυγχάνει ακρίβεια 99,38% στο δείκτη αναφοράς Labeled Faces in the Wild (πηγή: dlib.net-High Quality Recognition Face with Deep Metric Learning).
Διαγωνισμός Υποβοηθητικής Τεχνολογίας
Διαγωνισμός Υποβοηθητικής Τεχνολογίας
Διαγωνισμός Υποβοηθητικής Τεχνολογίας
Διαγωνισμός Υποβοηθητικής Τεχνολογίας

Πρώτο Βραβείο στον Διαγωνισμό Υποβοηθητικής Τεχνολογίας

Συνιστάται: