- OpenCV
- Numpy
- MediaPipe
As we all know biometric authentication plays an important role in ensuring security and extraction of biometric features is always a challenge. We have separate datasets available for separate biometrics but an attempt is being made to extract all three biometrics i.e. fingertip, Palmprint, and Hand-geometry from a single hand image. We have tried different methods and finally found the most apt solution. A significant amount of time is spent on surveying different research papers on "Authentication with the help of different biometrics" and collecting all possible datasets.
Boston University Hand Login Dataset
Fingerprint and Iris Databases
University of Notre Dame Iris Dataset
XM2VTSDB multi-modal face database
**Some sites give you datasets directly, on others you have to request.
- Skin Segmentation->Contour detection->Finding min area contour to find fingerprint.
- Skin Segmentation->Finding Convex hull and Contour intersection point and finally locating ROI
- Using deep learning (limited computational power)
- Extracting ROIs using Haar Cascade.
Codes can be found in the Methods_That_Didnt_Work folder.
- Using Mediapipe Hands opensource framework.
-
MediaPipe Hands is a high-fidelity hand and finger tracking solution. It employs machine learning (ML) to infer 21 3D landmarks of a hand from just a single frame.
-
We used media pipe as it solves the problem of contour detection, skin segmentation, background removal, and dynamics.
-
The hand landmarks are found and then normalized to get the coordinates of 21 points on the hand.
-
These coordinates are used to draw ROIs.For example- points 8,12,16 and 20 represent the index, middle, ring, and pinky finger respectively. The thumb is not considered as it is tilted during photo capture.
-
Palmprint is captured by storing and finding the centroid of all the palm boundary points (0,1,5,9,13,17).
-
Hand geometry includes Length of all fingers, palm width, and distance between knuckles.
Hand Landmarks:
Finger Tips:
Palmprint:
Hand Geometry Values:
Furthermore, this work can be used to extract features and use them for authentication.
For fingerprint feature extraction from a low-resolution image (The image obtained from the dataset was not meant for fingerprints and hence it is a big problem to extract fingerprint features):
- For preprocessing, as the pic has almost no fingerprint it needed to be preprocessed a lot.
https://answers.opencv.org/question/6364/fingerprint-matching-in-mobile-devices-android-platform/ - For fingerprint Matching.
https://github.com/Utkarsh-Deshmukh/Fingerprint-Feature-Extraction
For palmprint feature extraction.
https://github.com/AdrianUng/palmprint-feature-extraction-techniques
[1]. <https://docs.google.com/spreadsheets/d/1WyfpljI49AqvCO_lV3-XOfHVg4Ilks_yJGWhZXCLU_M/edit?usp=sharing>