IDVision is a desktop application for seamless ID verification and face authentication.
It leverages IDAnalyzer for extracting information from both sides of identity documents, then verifies user authenticity with live facial checks.
- Dual-Side ID OCR: Extracts and matches data from front and back of ID cards.
- ID Verification: Checks document authenticity and expiration using IDAnalyzer API.
- Face Verification: Live webcam face matching with ID photo.
- Liveness Detection: Prevents spoofing using blink, expression, and movement checks.
- Modern OOP Python Codebase: Easy to extend, integrate, or maintain.
- Python 3.7+
- PyQt5: GUI framework
- OpenCV: Camera and image processing
- IDAnalyzer API: OCR and ID verification
- Torch / Facenet / VGGFace2: Face recognition
- Custom liveness modules (blink, face orientation, emotion prediction)
git clone https://github.com/co-dev0909/idvision.git
cd idvision
You can use pip (preferably in a virtual environment):
pip install -r requirements.txt
Main dependencies (see requirements.txt
):
- PyQt5
- opencv-python
- torch
- facenet-pytorch (or your face models)
- requests
- python-dotenv
Obtain your API key from IDAnalyzer.
Create a .env
file in your project root:
IDANALYZER_API_KEY=your_api_key_here
IDANALYZER_REGION=US
python main.py
- Select ID Images: Upload both the front and back images of an ID card.
- Extract & Verify: Click the "Verify" button to extract and display information and status.
- Face Verification: Proceed to face authentication and liveness checks using your webcam.
- Result: The app displays the match status and verification result.
idvision/
├── gui/
│ ├── page1_idcard.py # ID card selection & OCR page
│ ├── page2.py # Face verification page
│ ├── page3.py # Liveness challenge page
│ └── utils.py
├── idanalyzer_api.py # IDAnalyzer API integration class
├── liveness_detection/
│ └── ... # Blink, emotion, orientation detection
├── verification_models.py # Face verification models
├── main.py # Main app entry point
├── requirements.txt
└── .env # Environment config (not in git)
- Switching API Providers:
Update
idanalyzer_api.py
for a different OCR or KYC provider. - Adding Fields:
Extend
_extract_fields
inidanalyzer_api.py
to extract more data. - Changing GUI:
All screens are in
gui/
as PyQt widgets—extend or restyle as needed.
MIT This project is provided as-is for demo and integration purposes. Always comply with privacy and legal guidelines in your jurisdiction when handling user ID data.
- IDAnalyzer for the KYC API
- PyQt5 for GUI
- OpenCV and Torch for face/liveness processing