Wired Registration Documents System (WRDS) is a platform that facilitates applying to government organizations (e.g Collages, Banks...etc) from home by simply uploading the required documents and then pass by Antispoofing techniques to check the person identification and liveness and then apply OCR to the documents to extract the required information from them.
The application developed using multiple frameworks:
- Backend implemented using Python OpenCV library for computer vision and NodeJs for web services
- Frontend implemented using basic CSS & React Framewrok
This Github Repo contains many directories:
- Views : Contains the ejs files for video recording, images uploading & side tasks
- Public : Contains the CSS & designg files and images
- Antispoofing : Contains the classes and modules used to detect antispoofing using smile detection & blink counting
- OCR: Contains the modules used to apply OCR and extract important information from the documents
- Trainingfiles : Contains the training files used for OCR
- Random_images : Contains random images taken from the user while recording
- Uploads : Contains the documents' images uploaded by the user
- Videos : Contains the recorded videos from the user
You can find a demo video here
Name | Contribution |
---|---|
Ahmed Mohammed Salah | Antispoofing (Blinking & Face Comparison) |
Ibrahim Atef Abd El-Halim | Antispoofing (Smiling & Face Comparison) |
Abd El-Hamid Amr Abd El-Hamid | OCR |
Mark Sameh Azer | Web Interface (Video Recording & DB) & OCR |
Fatma Elzahraa Mahmoud Esmail Mahmoud | Web Interface (Frontend & DB) & Antispoofing (Blinking) |
Apply different algorithms to detect the liveness and the identity of the user by:
- Ask the user to record a "8" second live video asking him to make a certain action and then make sure he did the asked action, the actions are
- Smiling & Not Smiling, these actions are detected by the SmileDetection class in antispoofing.py
- Blinking (5 To 10 Times), this action is detected by the BlinkingCounter class in antispoofing.py While checking these actions we take a random frames from the recorded videos of the user's face to compare it with his/her face in his/her ID
- Then after making sure that the user performed all the asked actions we take the random saved images of his/her face and take the face in his/her uploaded ID and compare the faces with each other to make sure that the user is actually who claims he/she is and prevent phishing and forgery
Allow the user to uppload the required documents for registering into his/her required system ( in our case which is applying for collage, he/she must upload the two faces of the National ID & high school certificate )
- You can find the basic code for detecting the national id in NationalID.py & IDNumberParser.py
- You can find the main code of the OCR task in ocr.py
Full integrated web platform supports:
- Saving the users data after applying and allows the user to check if his/her application approved or not by entering his/her National ID & the result will appear to him/her
- Support for realtime video recording to check for antispoofing
- Support for uploading the required documents & apply OCR to extract information then allow the user the edit this information if he/she likes
- All this implemented using JS & Node with Basic CSS & React in Frontend
-
Supported OS : Windows10, Linux/UNIX and MacOS
-
Requreid packages and libraries found in requirements.txt file
pip install -r requirements.txt
-
You need also to install pytessaract following this link
-
After installing you nedd to put the training files in trainingfiles dir in the "tessdata" folder installed in your OS
-
Open Command/Terminal Window in your local directory and clone the repo
-
Navigate to the repo's directory
cd WRDS/
-
Install node
npm install
-
Run the application
npm start
-
Open the address appeared in the terminal (http://localhost:4000/) with your browser
ENJOY!
This application is highley scalable, but just simple modification we can enlarge it to support multiple organizations and support various regesteration applications. We will ISA in the future try to expand the system and provide it with more feature to support multiple systems and document types.