Tutorial
Fingerprint Analysis (Fast Fourier Transform):
- Develop a file that asks the user to record their name ten times giving them 2 seconds each time in succession.
- After this, the database is setup and these 10 files are saved and archived in the Matlab director as .wav files. Processing of these files is done in the next file.
- Develop a file where the majority of the project's processing takes place.
- First, the ten files recorded earlier are prepared and formed into a matrix and transformed using the FFT.
- A series of commands primes this matrix for comparison to the test recording. Eventually, the person trying to gain access is asked to record their name this is immediately transformed (FFT).
- Once the sample, and the saved recordings are in the frequency domain, they are compared using Chebyshev's Rule.
- Simply, the rule states that at least 89% of the data values belonging to the identical set must be within 3 standard deviations of the mean.
- Therefore, if the sample is so far off from the the saved set, it can be assumed that it is not part of the set, i.e. it is a different person.
- If, however, it does fall in 3 standard deviations then it must be the same individual.
Facial Recognition (Eigenface) Analysis:
- Create a test database. Take a picture and convert it into grayscale to reduce the number of channels (R, G, B).
- Then, reduce into a 1-D vector because all images share this property (R^m).
- Add every "reshaped" vector to a matrix known as the "test" matrix of dimensions mxn concatenating vertically.
- Taking this mxn matrix, take the mean along every row and output a column vector averaging every pixel in all 20 images.
- Creating a new matrix, known as the SCATTER MATRIX, every individual column is subtracted by the mean vector (R^m) evaluated before.
- The SCATTER MATRIX has dimensions mxn.
- Because the SCATTER MATRIX is not necessarily square, it can be multiplied by its transpose to create a square matrix. It is known that the maximum number of eigenvalues for a mxn matrix (non-square) is min(m-1, n-1). Therefore, new eigenvalues will not be generated just because the square matrix with larger dimensions is chosen.
- The objective is to make the process minimally computationally expensive. Because m is the number of pixels and n is the number of images, left-transposition yields nxm x mxn = nxn matrix. Right-transposition yields mxn x nxm = mxm, which is considerably larger than nxn. Therefore, nxn is the best choice.
- After finding the eigenvalues and eigenvectors of nxn, the eigenfaces is a measure of how much faces differ from the mean face based on the data set. These eigenfaces are not unique to the faces used to compile them, but will be projected onto the original images themselves to determine how “different” an image is from others.
- Once the eigenfaces have been computed, this matrix has at most nx(n-1) dimensions.
- Once the eigenface matrix has been obtained (it has only numerical value and is in the eigenspace), it can be projected into imagespace by multiplying into the original grayscale matrix of pixels. This process has essentially extracted the principal components, hence the name PCA, that are unique to individuals such as the hairline, where the nose is, where the mouth is, etc. The background details become trivial because they are averaged with the mean face (a green-screen would be ideal and will be implemented in the final design).
- The scatter of the test image will be obtained by subtracting from the mean of all images in the database. Multiplying by the eigenface matrix yields a “feature vector” that contains the principal component details.
- The total Euclidean distance in imagespace between the projected test image and the training images is computed for every image. The image with smallest scatter when compared to the appropriate image is the best match!
Fingerprint Analysis (Minutiae Extraction):
- The test and training images are loaded into MATLAB.
- The images are converted into binary (0s and 1s) using im2bw method.
- Bridge the missing pixels using the bwmorph function in MATLAB. For example, missing pixels [1 0 1]->[1 1 1]
- If 0 surrounded by 5 or more 1s, turns 0 into 1 using bwmorph. This filtering accounts for lost pixels in the scanning process.
- The skeletal image is then created by thinning the original image, again using the 'skel' argument in bwmorph.
- Different arrays and patterns of searching are implemented as detailed in leading minutiae extraction papers. Different classes of arrays are developed including end signaling arrays, split signaling arrays, and superimposed termination points.
- The minutiae are compared using 2-D image processing techniques and a match is computed. Best matches can also be computed using ROC curves.
No comments:
Post a Comment