Skip to content

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.

License

Notifications You must be signed in to change notification settings

Kunal-Attri/Lock-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Lock System with Multi-factor Authentication

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.

Requirements (installable via pip)

What we used?

  • 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.

How to run the program

  1. 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.
  2. 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
      
  3. Run Sampling App Sampling.py

    • Form dataset of your face images

      python3 sampling.py
      
    • Expected Interface

  4. Run CLI App main.py

    python3 main.py 
    
    • Expected Interface

  5. Preparing Data Set - Internally done

    • The collected data set from sampling.py is further formatted for training in FaceIdentificationModel.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.
  6. 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.
  7. Working

    • Face Detection
    • Face Identification
    • Passphrase Verification
    • OTP Verification
    • Messages received on Mobile
  8. References

About

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.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages