tuananhwork / Palmprint_Authentication

A project on biometric authentication

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Palmprint_Authentication

Biometric Authentication can be various types. One of them is palmprint authentication.

Dataset:

Though there are multiple available datasets on the internet (e.g. PolyU multi-spectral palmprint database , PolyU 2D+3D palmprint database etc. ) But I found out a clear photograph working more accurate in this model . As the FAR and FRR of ROI has decreased with a clear picture.

So,to test and train this model I created a dataset of 1050 palm images (both palm) , where a total of 26 people participated voluntarily in diffrent sessions. Since those data are sensitive I've not uploaded the dataset in the github repository. I have uploaded here a sample picture for the reference (Source: Freepik.com).

empty-hand-palm-black-background_335640-1671

Note: All of the picture should contain palm center, principle lines, flexor liness, datum points, wrinkles , ridges and may contain fingers. Also all the picture should be taken in dark background, where anyother object is not visible.

Model:

Region of Interest (ROI) Segmentation:

The acquired images often contain redundant information such as fingers and background. Palmprint ROI refers to the palm center that contains three flexor lines. Since the size and shape of every hand is generally different from each other , there may exists a rotation between them, it is necessary to correct the scale and angle of the palmprint image before ROI segmentation.

Scale Correction:

The key point lying in the original image with a size of π’˜Γ—𝒉 is denoted as 𝑷_π’Š (𝒙_π’Š,π’š_π’Š ) [π’Š=𝟏,𝟐,πŸ‘] . The corresponding position for testing image is a size of π’˜^′×𝒉^β€²  is denoted as π‘·_π’Š^β€² (𝒙_π’Š^β€²,π’š_π’Š^β€² ) [π’Š=𝟏,𝟐,πŸ‘] . Then, the transformation can be defined as {β–ˆ(π‘₯_𝑖^β€²=π‘₯_𝑖×(𝑀^β€²/𝑀)@𝑦_𝑖^β€²=𝑦_𝑖×(β„Ž^β€²/β„Ž) )─

image

Rotation Correction:

The purpose of the rotation is to place π‘·_𝟏 and 𝑷_πŸ‘ on a horizontal line to facilitate ROI segmentation. The calculation of the rotation angle is shown as follows:

π‘Ž= tan^(βˆ’1)⁑(((𝑦_3^β€²βˆ’π‘¦_1^β€²))/((π‘₯_3^β€²βˆ’π‘₯_1^β€²)))

where (𝒙_𝟏^β€²,π’š_𝟏^β€²) and (𝒙_πŸ‘^β€²,π’š_πŸ‘^β€²) are the coordinates of  𝑷_𝟏^β€²  and  𝑷_πŸ‘^β€², respectively. The corresponding coordinates after rotation are denoted as 𝑷_π’Š^β€²β€² (𝒙_π’Š^β€²β€²,π’š_π’Š^β€²β€² ) [π’Š=𝟏,𝟐,πŸ‘]  . We define the rotation transformation as follows:

{β–ˆ(π‘₯_𝑖^β€²β€²=[(π‘₯_1^β€²βˆ’π‘€^β€²/2)Γ—cos⁑(π‘Ž/180Γ—πœ‹)+(𝑦_1^β€²βˆ’β„Ž^β€²/2)Γ—sin⁑(π‘Ž/180Γ—πœ‹)+𝑀^β€²/2]@𝑦_𝑖^β€²β€²=[βˆ’1Γ—(π‘₯_1^β€²βˆ’π‘€^β€²/2)Γ—sin⁑(π‘Ž/180Γ—πœ‹)+(𝑦_1^β€²βˆ’β„Ž^β€²/2)Γ—cos⁑(π‘Ž/180Γ—πœ‹)+β„Ž^β€²/2] )─

image

Where [ ] reserves the integer value, while the line  𝑷_𝟏^β€²β€² 𝑷_πŸ‘^β€²β€²  is set as the x-axis, and its vertical line is set as the y-axis. Then, the coordinate system is established in the palmprint image. The length of  𝑷_𝟏^β€²β€² 𝑷_πŸ‘^β€²β€²  is denoted as 𝒅 . Moving it down alongside the y-axis by 𝒅/πŸ‘ , a square is built up with the side length of 𝒅

image

About

A project on biometric authentication

License:Apache License 2.0


Languages

Language:Jupyter Notebook 100.0%