Multi-factor Authentication refers to multiple levels and states of authentication for verification purpose. This project tries to utilize that aspect through the use of Face Authentication, Speech Authentication and OTP Verification for a lock based system. This can be further extended to utilize these capacities in other forms of Verification based systems.
- opencv-python
- opencv-contrib-python
- numpy
- pyttsx3
- SpeechRecognition
- twilio
- PyAudio
- Only in Windows systems
- If you are on a linux system, install by:
sudo apt install python-pyaudio python3-pyaudio
- SpeechRecognition - for verifying passcode - SpeechRecognition is a python library which we used to verify our passcode. The passcode is to be said by the user to proceed to the OTP verification Phase.
- OpenCV - for Face Detection and Identification - OpenCV is a python library which we used to detect the face of the user using LBPH face recognition. Then it is further processed via our FaceIdentification model.
- pyttsx3 - for Speaking Text outputs - Python Text to Speech is a python library to convert text to speech form. We have used it make it convenient for end user to interact with the application.
- Twilio - for Sending OTP & alert Messages - Twilio is a communications API for SMS, voice, video, WhatsApp messaging and email. We used this API to send and verify OTP by both as a web client and in the program itself.
- json - for Dataset management - JSON library is used to interact with json files. We have used it to manage our dataset labels.
-
Download this GitHub repository
- Either Clone the repository
git clone https://github.com/Kunal-Attri/Lock-System.git
- Or download and extract the zip archive of the repository.
- Either Clone the repository
-
Download & Install requirements
- Ensure that you have Python 3 installed.
- Open terminal in the Repository folder on your local machine.
- Run the following command to install requirements.
pip3 install -r requirements.txt
-
Run Sampling App
Sampling.py
-
Run CLI App
main.py
python3 main.py
-
Preparing Data Set - Internally done
- The collected data set from
sampling.py
is further formatted for training inFaceIdentificationModel.py
. - Here the Image gets loaded, formatted and converted to grayscale.
- Then it gets passed on to
__build_dataset
where the mathematical Dataset is made.
- The collected data set from
-
Training model on the data set collected from
Sampling.py
- Internally done- In
FaceIdentificationModel.py
, the function__train_model
trains the Prepared Data set and gets the program ready for Face Detection using LBPH (Local Binary Pattern Histogram) Face Reecognition.
- In
-
Working
-
References