This eKYC (Electronic Know Your Customer) application is designed to perform identity verification using face recognition and OCR. It allows users to upload their ID card images and face images for verification.
- Registration using ID card.
- Face verification against the uploaded ID card using DeepFace and OCR using Easy-ocr, Keras-ocr, and PaddleOCR are based on CRNN.
- Extraction of information from the ID card using OCR.
- Storage of verified user records in a MySQL database.
Click the image below to watch a demo of the eKYC application:
- Python 3.8
- MySQL (for local development)
-
Clone this repository:
git clone https://github.com/yourusername/eKYC.git
-
Navigate to the project directory:
cd eKYC
-
Install dependencies:
pip install -r requirements.txt
-
Set up MySQL locally:
-
Windows: Download and install MySQL Community Server.
-
Mac: Install MySQL using Homebrew:
brew install mysql
-
Linux: Install MySQL using your distribution's package manager (e.g.,
apt
for Ubuntu):sudo apt update sudo apt install mysql-server
-
-
Start the MySQL service:
-
Windows: Start the MySQL service from the Services application.
-
Mac/Linux: Start the MySQL service using the command:
sudo service mysql start
-
-
Configure the MySQL connection details in the
.streamlit/secrets.toml
file.[mysql] host = "localhost" user = "root" password = "" database = "ekyc"
-
Run the application:
streamlit run app.py
- Launch the application by running
streamlit run app.py
. - Select the ID card type (e.g., PAN) from the sidebar.
- Upload the ID card image and the corresponding face image.
- The application will perform face verification and extract information from the ID card.
- If the verification is successful and the user is not a duplicate, their information will be stored in the database.