One of the main techniques in biometric authentication is Finger vein recognition. This technique refers to the scanning of human finger vein patterns for identifying a person’s identity. In this, veins patterns are displayed as sequenced dark lines by emitting near-IR lights over blood. Initially, the scanning device is attached to near-IR lights to capture finger vein patterns as an image. Next, transform the captured image into pattern information for saving in the database. At the time of user verification, the scanned vein pattern is related to the stored template for matching. If the patterns are matched then the user is authenticated to access the system. This article presents you complete synopsis about the development of Finger Vein Recognition Using Matlab along with a supportive toolbox and functions!!!
Outline of Finger Vein Recognition
In the biological aspect, finger veins are referred to as small blood vessels in your finger which have a unique pattern. In traditional biometric authentication, fingerprints are largely recognized by many security applications. Later, it is improving towards finger vein recognition. Although it is a new technique, it also inherits the beneficial aspects of fingerprint recognition using matlab. For instance: accuracy. Moreover, this field is expected to create big achievements within a short span.
Advantages of Finger Vein Recognition
One of the main advantages of the finger veins recognition system is integrity. Since the conventional fingerprint has a chance to be forged by smart technologies. In the finger veins, the patterns are inside the human fingers which are contactless. And also, these patterns are safe from external attacks like environmental and physiological factors. Overall, finger vein recognition systems are effective in utilizing cleanliness, security, accuracy, user-friendliness, and convenience.
The development tools that handle finger veins need to be sophisticated with operative functions, toolboxes, and libraries. Matlab tool is the best tool to provide all these required technologies. Moreover, let developers investigate and process finger vein images in all aspects in the simplest way.
Matlab for Finger Vein Recognition
As mentioned earlier, Matlab enables you to perform all fundamental operations of image processing. Further, it is also easy to implement and debug errors while executing. By the by, it also provides the specific functions for finger vein recognition. For your information, some of the main functions are given as follows,
Primary Operations of Finger Vein Recognition using Matlab
- Image Acquisition
- Preprocessing
- Feature Extraction
- Pattern Matching
- Classification of Fingers
One special thing about Matlab is the adaptability of new recognition techniques. By the by, it is developer-friendly to combine various pre-processing and feature extraction techniques. It also supports different kinds of both finger-vein and hand-vein datasets. We have developers who are well-versed to work with the latest Matlab tool version to handle all sorts of finger-vein recognition and analysis operations. Based on your project needs, we integrate suitable libraries and toolboxes in your project development phase. For your reference, here we have given you some important operations that are widely used in finger veins recognition using Matlab.
Matlab Functions for Finger Vein Recognition
- GUI – Enable Graphical User Interface for user-friendliness
- Automation – Able to write different Matlab scripts to perform automated batch processes and file tests, etc.
- Settings – Comprised of different setting files for supporting different hand-vein and finger-vein datasets
- UtilityFunctions – Include general helper functions for learning of enabled functions. For instance: progress bar, SIFT key-points plotting, and ini files
- Preprocessing – Give different preprocessing functions over vein images to remove unwanted noise and background details
- EEREvaluation – Include graphical functions to compute and plot graphs for evaluating performance
- ScoreLevelFusion – Similar to feature-level fusion, it provides functions to execute score-level fusion
- FeatureLevelFusion – Support tools to implement feature-level fusion for key patterns selection. As well, it also assesses their performance through fusion outcome
- Matching – Provide various functions to perform a comparative study between the stored template and input vein image. For instance: Miura matcher.
- Quality Evaluation – Furnished with vein-based quality and image contrast parameters for quality enhancement and assessment
Next, we can see about fundamental functions that are must to implement finger vein recognition using Matlab. Firstly, matcher. readImages() is used to read input image. matacher. preprocess ImageSet() is used to remove noise from the image dataset. matcher.calculate FeatureSet() is used to select essential features. matcher.calculate MatchingScores() is used to relate pattern / feature. Lastly, matcher.determineEER() is used to assess the result. Similarly, we have also included other key functions with arguments that are predominant for other finger vein recognition operations.
- To compute probability ratio of matching rather than mismatch ratiofunction score = miura_match(In_img, Reg, wx, hy)
- Parameters
- In_img – Represent input vascular / vein image
- R – Represent registered template image (i.e., already stored image)
- wx – Represent highest search movement in x-direction
- hy – Represent highest search movement in y-direction
- To locate finger area
- function [region, edges] = lee_region(img, mask_h, mask_w)
- To implement repeated line tracking
- function veins = miura_repeated_line_tracking(In_img, fv_area, iterations, r, W)
- Parameters
- In_img – Represent input vascular / vein image
- fv_ area – Represent binary image of finger area
- iterations – Represent highest number of iterations (i.e., repeating same process for certain times)
- r – Represent distance among profile’s cross section and localizing point
- W – Represent profile width
- Returns
- veins – Vein image
- To implement maximum curvature
- function veins = miura_max_curvature(In_img, fv_area, sigma)
- Parameters
- In_img – Represent input vascular / vein image
- fv_area – Represent specific area of finger vein
- sigma – Represent sigma that used to compute derivatives
- Returns
- veins – Vein image
In addition, we have also listed some functions that are extensively used for image analysis. As mentioned earlier, our developers are great at handling all sorts of functions. We know the purpose of every function of Matlab with their coordinated libraries. When we start developing your project, we start planning on selecting appropriate development toolboxes and libraries. Our main motive is to give the best results in simplified code. For your references, here we have 4 significant classifications of image analysis with their functions. Beyond this, we also have practice on the functions of other operations.
Finger Vein Image Analysis Functions
- Discrete Wavelet Packet Transforms
- wpcoef
- Utilized for finding co-efficient of wavelet packet
- wpdec2
- Utilized for decomposing 2D wavelet packet
- besttree
- Utilized for inspecting best tree wavelet packet
- wprec2
- Utilized for reconstructing 2D wavelet packet
- ind2depo
- Utilized for changing node index to node depth-position
- wprcoef
- Utilized for reconstructing co-efficient of wavelet packet
- depo2ind
- Utilized for changing node depth-position to node index
- wpcoef
- Discrete Wavelet Transforms
- haart2
- Utilized for executing 2-D Haar wavelet
- wavedec2
- Utilized for decomposing 2-D wavelet
- detcoef2
- Utilized for executing 2-D detail coefficients
- qorthwavf
- Utilized for performing Kingsbury Q-shift filters
- waverec2
- Utilized for reconstructing 2-D wavelet
- dualtree2
- Utilized for performing 2-D dual-tree complex wavelet by Kingsbury Q-shift
- dtfilters
- Utilized for oversampled wavelet filter banks by synthesis/inspection filters
- wrcoef2
- Utilized for recreating single branch on using co-efficient of 2-D wavelet
- appcoef2
- Utilized for approximate co-efficient of 2-D wavelet
- dddtreecfs
- Utilized for extracting projection / co-efficient of double-density or dual-tree wavelet
- qbiorthfilt
- Utilized for performing First-level dual-tree biorthogonal filters
- dddtree2
- Utilized for performing double-density and dual-tree 2-D wavelet
- idddtree2
- Utilized for inversing double-density and dual-tree 2D wavelet
- ihaart2
- Utilized for inversing 2-D Haar wavelet
- idualtree2
- Utilized for performing 2-D inverse dual-tree complex wavelet by Kingsbury Q-shift
- haart2
- Image Fusion
- wfusmat
- 2-Arrays / Matrices Fusion
- wfusimg
- 2-Images Fusion
- wfusmat
- Nondecimated Discrete Wavelet Transforms
- iswt2
- Utilized for implementing inverse 2-D wavelet by discrete stationery
- swt2
- Utilized for implementing 2-D wavelet by discrete stationery
- iswt2
- Shearlets
- isheart2
- Utilized for applying an inverse shearlet transform
- shearlet systems
- Utilized for performing cone-adapted bandlimited shearlet system
- sheart2
- Utilized for executing Shearlet transform
- isheart2
Now, we can see the important toolboxes in Matlab. All these toolboxes are intended to support a variety of processes in finger vein recognition. For instance: the deep learning toolbox is specially intended to analyze the patterns over input data.
In this way, it is efficient to acquire patterns/features over finger veins. Likewise, each toolbox has some special purposes. Our developers are best to recognize suitable toolboxes for your project based on project objectives. Further, if you are interested to know other toolboxes, then connect with us.
Toolboxes in Matlab for Finger Vein Recognition
- Deep Learning Toolbox
- Fuzzy Logic Toolbox
- Image Acquisition Toolbox
- Computer Vision Toolbox
- Image Processing Toolbox
In addition, we have also given you some important external functions that can be interfaced with the Matlab tool. By the by, these external interfaces are working the same in-built Matlab tool which supports you in every development aspect. For your knowledge, here we have given you only a few external functions for finger vein recognition. Moreover, it is not compulsory for all the projects of finger vein recognition. Based on the project requirement, one can prefer external functions.
External functions interfacing Matlab for Finger Vein Recognition
- ARIA Vessels Library – It is used to execute IUWT feature extraction
- vl_feat – It is majorly imported for SIFT development
- MASI Fusion – It is required to apply COLLATE and STAPLE/STAPLER fusion algorithms
Furthermore, we have also given you some important development techniques used for solving research challenges/issues in finger vein recognition. As well, deep learning, machine learning, neural network, and optimization algorithms are also used in current real-time finger vein recognition and analysis applications.
Our developers have sufficient knowledge of handling all these techniques. Beyond this, we also support you in other growing techniques. If required, we also prefer hybrid techniques based on selected problem complexity.
Techniques used for Finger Vein Recognition
- Score Normalisation
- Sigmoid
- Adaptive Score Standardization
- Median-MAD
- Double
- Z-Score
- Min-Max
- Tanh
- Feature-level Fusion
- Majority vote
- Weighted mean
- Weighted sum
- Score-level Fusion
- Min, Max, Mean, Median, Product, and Sum
Here, we have given you key datasets that are widely used in finger vein recognition projects using Matlab. Globally, there are several commercial and non-commercial datasets are available for research purposes. So, it is important to choose the suitable one for the handpicked project. Currently, we are working on the below-specified datasets for our handhold scholars’ projects. Likewise, we suggest an apt one based on your project requirements.
Datasets supported in Matlab for finger vein recognition
- HKPU
- UTFVP
- PLUSVein-FV3
- FV-USM
- SDUMLA-HMT
- PROTECT Finger-/ Hand-/ and Wrist Vein
- VERA PalmVein
- VERA Finger-Vein Spoofing
- PLUSVein-3D-FV
Performance Analysis of Finger Vein Recognition
In general, there exist different performance parameters for evaluating the efficiency of finger vein recognition projects. Further, it is used to examine the behavior of techniques while executing.
Majorly, experimental results are influenced by proposed techniques, training data, environmental factors, etc. So, it is required to focus on all these influential factors. Below, we have given you some important parameters that are used for performance analysis in the finger vein recognition model which is developed using Matlab.
- Error rate
- Percentage of incorrect classification of instances
- Accuracy
- Percentage of correctness in classifying instances
- Average Accuracy
- Accuracy sum among dataset 1 and dataset 2
- Recall
- Percentage of instances as class x between all other instances of class x
- Precision
- Percentage of true x-class instances from all those listed as class x
- F- measure
- Average mean of recall and precision
- KAPPA
- Compute the coefficient of cohen’s kappa to evaluate agreement among 2 regular nominal classification
- When KAPPA is performing, consider distances among categories are equal which produce various kinds of presence among categories
- Specificity
- Compute test capability of achieving result as negative while no condition is present
- As well, it is also called precision, false-positive rate, null hypothesis, type 1 error, etc.
Overall, we are here to support you in the code execution of finger vein recognition using Matlab. Further, we also provide you with important research areas and future research directions to make you aware of recent developments in the finger vein recognition field. Once you choose the latest topic from your desired area, then we help you to choose an apt dataset for your code development. In the same way, we also support you in selecting toolboxes, libraries, and functions. To the end, we precisely prove your research objectives through effective research solutions on the selected research challenge of finger vein recognition.