- 7/12/2024: The source code has been rewritten and tested to be compatible with the VGGFace2 model (InceptionResnetV1). Tested using Norm L2 for face matching.
eKYC (Electronic Know Your Customer) is a project designed to electronically verify the identity of customers. This system ensures authenticity and security in online transactions using biometric recognition and AI.
It allows banks and institutions to identify customers entirely online, without face-to-face interactions. The system uses facial recognition and liveness detection to ensure the user is present and real.
The eKYC process includes three key components:
- Upload Document (ID Card)
- Face Verification
- Liveness Detection
Users are required to upload an image of their ID card. The system extracts facial information from the ID photo.
- Step 1 - Still Face Capture: User positions their face in front of the camera.
- Step 2 - Face Matching: The live face is matched against the ID card photo using deep facial recognition (InceptionResnetV1).
To prevent spoofing with photos or video replays, users must perform live actions:
- Step 3 - Liveness Challenge: Blink, smile, or turn head as prompted.
- Step 4 - Verification: If actions are performed correctly, identity is verified successfully.
git clone https://github.com/pankajMahanto/eKYC
cd eKYC
pip install -r requirements.txtDownload and place the pretrained models:
-
Face Verification (InceptionResnetV1):
Google Drive Link → Place inverification_models/weights -
Liveness Detection:
Download pretrained weights and landmarks → Place inliveness_detection/landmarks
python main.pyRuns the PyQt5 GUI for full eKYC interaction.
⚠️ Personal video demos have been removed to protect privacy.
You can test using any ID photo and webcam.
Pankaj Mahanta
🔗 GitHub: pankajMahanto

