- OpenCV
- Numpy
- MediaPipe
As we all know biometric authentication plays an important role in ensuring security and extraction biometric features are always a challenge. We have separate dataset available for separate biometrics but an attempt is being made to extract all three biometric i.e finger tip, 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 finger print.
- 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 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 its dynamic.
-
The hand lamdmarks are being found and then normalized to get the cordinates of 21 points on the hand.
-
These cordinates are used to draw ROIs.For example- point 8,12,16 and 20 represents the index, middle, ring and pinky finger respectively. Thumb is not considered as it is tilted during photo capture.
-
Palmprint is captured by storing and finding 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:
Further more this work can be used to extract features and use it for authentication.
For finger print feature extraction from a low resolution image (The image obtained from the dataset was not meant for fingerprint and hence its a big problem to extract fingerprint features):
- For preprocessing, as the pic has almost no finger print 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>