INTRODUCTION~ House security matters and people always try to make life easier at the same time. That’s why we put up with our project, Face Recognition Door Lock System. We developed this system based on Raspberry-pi 3, to make the house only accessible when your face is recognized by the recognition algorithms from OpenCV library and meanwhile you are allowed in by the house owner, who could monitor entrance remotely. By doing so, the system is less likely to be deceived: since the owner can check each visitor in the remote console, getting recognized by the camera using a photo won’t work. We also added passcode function for entrance in case that face recognition part corrupts.
OBJECTIVES~ Users could operate on a touchscreen to select entering the house by recognizing face or entering passcode.
For face recognition, an image will be captured by pi camera and preprocessed by Raspberry pi like converting, resizing and cropping. Then face detection and recognition are performed. For passcode part, users could enter or reset passcode through a keypad.
EQUIPMENTS REQUIRED~
- Raspberry-Pi Model B
 - 16GB Micro-SD Card
 - Raspberry Pi Camera Module V2
 - Segolike DC12V Lock Tongue Luggage Electric Solenoid Assembly for Auto Door Sauna Cabinet Drawer
 - Jumper Wires
 - Adafruit piTFT 320X240 Screen
 - 4X3 Matrix Keypad
 
PROCEDURE~
- 
Format the Micro-SD card and install Raspbian in it from https://www.raspberrypi.org/downloads/raspbian
 - 
After setting up your raspberry-pi, install OpenCV library using pip3.
 - 
Connect picam and enable its configuration from raspberry pi configuration.
 - 
Connect the piTFT screen and set it up using the following article~ https://raspberrypi.stackexchange.com/questions/55575/how-do-i-setup-the-pitft-plus-3-5-touchscreen
 - 
Connect rest of the components as per the diagram given below~
 - 
Clone the repository into your Raspberry-Pi environment.
 - 
To generate your own dataset, Open Python3 & run dataset generator.py .Provide unique ID to every person in your database for convineince.
 - 
To train the face recognition model, run trainer.py
 - 
If you have made until now, then congratulations! Now you only have to run interface.py to launch the User Interface.
 - 
Incase you want to operate the system seperately for face-unlock and matrix-unlock, you can run predictor.py or matrix.py separately.
 
CHEERS!