Giter Site home page Giter Site logo

kunal-attri / lock-system Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 1.0 13.49 MB

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: Apache License 2.0

Python 100.00%
face-recognition multi-factor-authentication opencv otp-verification python voice-recognition

lock-system's Introduction

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.