Keeping our families and our possessions safe is a priority for everyone, making sure they are safe gives up peace of mind. The technology most of us use to secure our homes and possessions today, the tried and true lock and key, dates back over 4000 years. Modern technologies give us a wide range of options to update those devices, and keep our homes safe.
Modern security standards provide guidelines that can be applied to physical as well as Electronic security procedures. one of these best practices is Two Factor Authentication (2FA).
2FA requires two different methods to authenticate you are authorized access to something before it is granted, in the case of a website you may be required to enter a username and password and then enter a pin sent via text message (proving you have the cell phone you registered when creating the account) or from an app that is synced with a security service and changes codes every 30 seconds, this is also described by some security experts as 'something I know and something I have", I know the password, I have the phone. Using this type of authentication makes gaining unauthorized access to your bank account, or other online activities much more difficult.
In the case of physical security we rely mostly on the 'Something I have' part of security. We all carry keys to our homes, cars, and other locations we wish to keep secure, but locks can be picked, keys stolen or lost, adding a combination lock to each situation would add the 'Something I know' part, but most would find two locks an inconvenience, and in some cases they would be impractical.
Adding modern technology to an age old security device allows us to use 2FA methods to access our physical locations. Using the Raspberry Pi 3, and Android things I am adding the ability to recognize who is attempting to gain access, and once they have been recognized they can use a key or combination on a pin pad to gain access.
This allows me to grant access to members of my family, and eventually anyone that might require access, such as a neighbor while I’m on vacation.
HardwareThe RCWL-0516 Microwave radar body sensor outputs a 3.2v signal when movement is detected, this signal can be used to limit facial recognition attempts to when someone is in front of the door. The device is very easy to connect to the Raspberry Pi, by simply connecting the output to a GPIO configured for input, triggering a photo to process for facial recognition, if the results are negative for recognition another positive signal on the GPIO will trigger another photo, until either the subject goes away or is recognized.
The neopixel 8-LED stick is used to signal authorization to enter the doorway, a red light indicates the door is locked, if the persons face is recognized, the lights will turn yellow and the next step, passcode entry, will be displayed on the touch screen. Once both authentication methods have been satisfied a green light indicates access is authorized.
Adding colors to the traditional keypad number set adds complexity to the password enlarging the character domain with less characters, this is especially helpful when creating passcodes with children. Each user can have their own personal password, and an emergency password that will signal an alarm.
At the moment there are only the two authentication methods, eventually I want to add Voice recognition, and maybe other types of bio-metrics. The idea is to have different options that can be used in combination satisfying the two factor authentication requirement, something I have (face) and something I know (combination), this can be expanded to fingerprints, voice recognition, or even a retinal scan to satisfy the have requirement, and spoken passwords or hand gestures for the know requirement making it possible to use different methods on each entry.
SoftwareTensor flow can be installed easily, it requires a Python installation, and has support for NVIDIA GPU's to make processing faster.
Installation instructions for most OS's are available here.
Tensor flow is an open source library for machine intelligence that can train models for recognition of images, among many other things. I am using this to train a model to recognize my family members.
Facial recognition requires several steps to accomplish:
- First we need to take a photograph of who is standing in from of the camera, it could be one person, or a group. Maybe Jr. brought some friends home after school.
- We need to find all of the faces in the photograph, since there might be more than one.
- each face must be processed separately, the faces must be aligned so the 'landmarks' are in the same general area for processing, and the images are cropped to eliminate external factors that might prohibit recognition, things like hats and scarves, or hair styles.
- Once the image is prepared then it needs to be processed and compared to previous images to determine if this person is a family member.
Comments
Please log in or sign up to comment.