Tuesday, April 30, 2013

Week 5 Fingerprint Recognition Progress

Sources were used to find working algorithms to detect minutiae, patterns on fingerprints that are present in all fingerprints, differing in location on the print. Minutiae were extracted through a built in MATLAB algorithm that searches for designated patterns. Using thinned binary images of fingerprints, creating the patterns to look for was simple. 3x3 matrices including the search patterns were created and utilized in the search process. Once found, the minutiae were displayed on a figure, showing their relative locations.

Tuesday, April 23, 2013

Week 4 - Face Recognition Walkthrough



This week, we were able to advance on the face recognition component of the biometric recognition project. The steps for the MATLAB algorithm (pseudocode) are given below. In addition, we have decided on a fingerprint scanner and advanced with minutiae analysis of fingerprinting and Fourier analysis of voice.

1. Create a test database. Take a picture and convert it into grayscale to reduce the number of channels (R, G, B).
2. Then, reduce into a 1-D vector because all images share this property (R^m).
3. Add every "reshaped" vector to a matrix known as the "test" matrix of dimensions mxn concatenating vertically.
4. Taking this mxn matrix, take the mean along every row and output a column vector averaging every pixel in all 20 images.
5. Creating a new matrix, known as the SCATTER MATRIX, every individual column is subtracted by the mean vector (R^m) evaluated before.
6. The SCATTER MATRIX has dimensions mxn.
7. 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.
8. 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.
9. 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.
10. Once the eigenfaces have been computed, this matrix has at most nx(n-1) dimensions.
11. 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).
12. 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.
13. 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!

Tuesday, April 16, 2013

Week 3

Literature Review - More sources on visual recognition were reviewed in order to understand the techniques used in current facial recognition strategies such as using the 'eigenface' values. As visual recognition sources were finalized, voice analysis sources as well as fingerprint analysis sources started to be reviewed.

Signal Processing was discussed among group members to get everyone on track. How far the project could be taken based on current resources were discussed, such as the possibility of dropping one of the security measures in order to full master the other ones. Programming strategies were also discussed, such as the steps that need to be taken to identify people by their faces. The steps are as follows:
  1.  Take pictures of the people doing different facil expressions and put them into a master database
  2.  Upon initialization of the program, take picture of the user's face, who will line up with a template on the screen.
  3. Use picture and compare it to the pictures in database
  4. Output a final result of % match

Monday, April 8, 2013

Week 2 - Introduction



This week, the group designed the blog and decided on a topic: biometric recognition for control. This project makes use of biometric characteristics such as voice, facial features, and fingerprints to successfully identify an individual and cross-reference with an existing database of biometric templates.


The next step in the project will be to interface the webcam and microphone with MATLAB. Preliminary tests will be conducted and appropriate schematics will be uploaded.

Initial Research:

Biometric recognition is a rapidly-developing pattern recognition system used for a variety of purposes including verification, identification, and security as seen in Figure 1 [1]. Biometric recognition has applicability for individuals with restricted mobility such as those who cannot type or speak their password and acts as an additional safeguard for security purposes. Many biometric recognition systems “conduct a one-to-many comparison to establish an individual’s identity” [1]. It is also much more difficult for hackers and those with malicious intentions to forge or replicate biometric features. Many unique individual features can be used to distinguish one person from another such as fingerprints, facial features, irises, hand geometry, and even a person’s voice [1].


Figure 1. Sample biometric recognition flowchart for verification and identification of an individual.



The major tasks to be performed throughout the ten-week project are to develop a multi-faceted identification system that can cross-reference a person’s facial photograph and fingerprint with an existing database. There are inherent challenges when trying to accomplish this task, primarily due to the complexity of biometric features and the generation of a unique template for each individual. In the end, the desired result is to successfully identify, with minimum errors in identifying the wrong individual or failing to identify the proper individual, a person using multiple physiological characteristics.

            Developing a functional computer application capable of doing intensive image and signal processing requires significant prior experience with computer programming. Familiarity with MATLAB/Java is recommended for this project because of the well-written API and preexisting classes for processing external video and audio output. In addition, some knowledge of biomedical engineering is useful to understand which physiological features are unique amongst individuals. For example, it is important to know that features like fingerprints can be practically used to identify people while other features like the shape of the head may be too general for implementation. Some existing biometric technologies and their advantages and disadvantages are seen in Figure 2:


Figure 2. Pro-con analysis table of biometric technologies identifying various physiological features.





References


[1] A. K. Jain. (2007). “Biometric recognition.” Nature. [Online]. 449, pp. 38-40.

[2] S. Prabhakar. (2003, March). “Biometric recognition: Security and Privacy
Concerns.” IEEE Security and Privacy. [Online]. 1(2), pp. 33-42.