CALIFORNIA STATE UNIVERSITY, NORTHRIDGE

FACE RECOGNITION AND DISGUISE

A graduate thesis submitted in partial fulfillment of the requirements

For the degree of Master of Science

in Computer Science

By

Lianhua Shen

May 2013 The graduate project of Lianhua Shen is approved.

______

McIlhenny,Robert D, Ph. D. Date

______

Melara,Gloria E, Ph. D. Date

______

Barnes, George Michael, Ph. D., Chair Date

California State University, Northridge

ii ACKNOWLEDGMENTS

I would like to thank my parents first, especially my mother Zhang Guishu. Without her emotional and financial support, I could not come to the United States and go through 3 years of further study.

A lot thanks to the Professor Barnes for giving me an opportunity to research in graphic area and great guidance and mentoring. I learned a lot about PCA and statistics from him.

It was so pleasant communicating with Professor Barnes.

And thanks to Professor McIlhenny and Professor Melara for the continuous and patient academic support.

iii TABLE OF CONTENTS

SIGNATURES...... ii

ACKNOWLEDGMENTS...... iii

LIST OF TABLES...... v

LIST OF FIGURES...... vi

ABSTRACT...... vii

SECTION 1 INTRODUCTION...... 1

SECTION 2 TECHNIQUES…...... 3

ALGORITHMS…...... 9

IMPLEMENTATIONS…...... 17

SECTION 3 EXPERIMENT...... 20

HYPOTHESIS AND DESIGN...... 20

METHODOLOGY…...... 20

RESULTS…...... 25

ANALYSIS...... 27

CONCLUSION...... 28

REFERENCES...... 29

iv LIST OF TABLES

Table 1. Mean distance values under specific conditions...... 25

Table 2. Distance comparison between different disguise...... 25

Table 3. Distance comparison between different algorithms...... 25

Table 4. Distance comparison between different references …...... 25

Table 5. Significances of different sources...... 26

v LIST OF FIGURES

Figure 1. Feature-based approach...... 5

Figure 2. Detected face...... 7

Figure 3. How Haar Cascade Face Detector(Viola Jones algorithms) works...... 8

Figure 4. PCA example...... 10

Figure 5. Difference between PCA and LDA...... 14

Figure 6. Images with glasses...... 21

Figure 7. Images with different angles...... 21

Figure 8. Csv format input file...... 22

Figure 9. Large-same input file's structure...... 24

Figure 10. Small-different input file's structure...... 24

Figure 11. Face recognition experimental result...... 27

vi ABSTRACT

Face Recognition And Disguise

Lianhua Shen

Master of Science in Computer Science

This project is about face recognition and disguise for still 2D frontal upright grey-scaled

2D images. First, a brief introduction about the definition and solutions of the face recognition and disguise are presented. The Eigenface and Fisherface algorithms are briefly presented. Using OpenCV for face recognition is described. An experiment is designed and conducted to measure how two disguises(glasses, orientation angle), two algorithms (Eigenface and Fisherface), and three reference image sizes work in face recognition. Faces disguised with glasses were recognized better than faces in different angles of orientation. The Fisherface algorithm recognized faces better than the Eigenface algorithm as hypothesized. Last, the results of the experiment were discussed and corresponding future research was proposed.

vii SECTION 1 INTRODUCTION

Even 3-year-old kid can recognize his/her parents at one sight[8]. It is amazing for human to recognize his/her acquaintances very easily. In order to solve security problems we need computers recognize people as well. And if computer can imitate the ability of human then it can reduce repetitive manual work in security area and human-computer interfaces because computers have extraordinary huge fast and correct memory.

Although DNA can be dedicated to distinguish people extraordinary precisely, it is tech- nically and realistically hard to collect data. Other techniques such as eye iris or finger- print recognition are also regarded as difficult because they also require candidates' co- operation. On the contrary, face recognition is relatively an easy and feasible solution to find out specific person among a great number of people, for millions of security camer- as are installed since September 11 in the United States and in other countries as well.

The other reason for this is the wide range of commercial and law enforcement applica- tion[16]. Furthermore not only Computer Scientists are interested in the topic, but neuros- cientists and psychologists are also interested for their specific usage in their specific area[1].

Historically the first semi-automated face recognition programs were created in 1960's by

Woody Bledsoe, Helen Chan Wolf, and Charles Bisson[3]. Their programs required a hu- man administrator point out features such as nose, mouth, eyes manually on photographs.

The program calculates distances and ratios to a common reference point and later these

1 data were compared to reference data. In 1970's Goldstein, Harmon, and Lesk used 21 specific subjective markers such as hair color and lip thickness to automate the recogni- tion, but it still required lots of manual repetitive dull work to measure and locate fea- tures[3]. In 1988 known as a milestone in face recognition history, Kirby and Sirovich ap- plied PCA(Principal Component Analysis) to decrease the number of the variables dra- matically which is used to code aligned and normalized face accurately[3]. In 1991, Turk and Pentland used eigenface technology that was developed by Kirby and Sirovich in classification[5]. They discovered the approach can use residual error to detect faces which enabled reliable real-time automated face recognition system because it can com- pact data[3]. The Eigenface is considered as the first successful example of facial recog- nition technology[5]. LDA was later used to find a set of face images defining fisher- faces[6]. The idea about LDA(Linear Discriminant Analysis) was suggested by R.A Fish- er in 1936.

Many programs began to use face recognition system for their specific requirements. For example Google's Picasa, Sony's Picture Motion Browser, OpenBR and Windows Live.

Even any digital cameras can recognize face easily in these days. Also, increasing users and deployments started to use face recognition systems in different area and for various purposes. In the UK, a facial recognition system built into their borough-wide CCTV sys- tem. At Frankfurt international airport, a facial recognition system is used for passengers to pass fully automated border out of security issue. Even in Casinos face recognition systems are used to supervise card counters and other blacklisted individuals.[2]

2 SECTION 2 TECHNIQUES

Technically, face recognition system is a computer software which can automatically de- tect a human face and recognize “who it is” from a reasonably large face database[20].

Compared to other biometrics such as fingerprint or eye iris recognition system, face re- cognition system has disadvantage of low accuracy because people can have a disguise such as wearing different makeup, glasses, different facial expressions(smile, cry, open or close eyes), even aging, or different face orientation(angle) pictures can affect results.

For human being disguise mostly means changes of 3D face. For example, different hair- styles, glasses, makeup of eyebrows, or changed facial structure which is even caused by plastic surgery. However, for computers nearly any change can be called disguise. Com- puter is sensitive to nearly everything. Environmental light, scaled size of picture, orient- ation of face in 3D environment in front of camera, facial expressions and so on. Face re- cognition system has to figure out all these 'disguise'. In this project we only research two disguised faces; wearing glasses and different facial orientation angles.

It is easy to compare numbers. For example, there are four numbers 2, 4, 5, 9. If we want to know which number is the nearest to 6 the answer is simple. 5 it is. Because we can get difference from each number then 6 - 5 = 1 will be the minimum difference. In order to save memory in computer, we also use error differences. For example, if those numbers are 4000, 5000, 6000 and we need find out which number is the nearest to 5000 we can

3 get mean number first and compute differences out and compare those differences. The mean number will be 5000, then error differences will be -1000, 0, 1000 and the probe number 5000 will match to 0 also. Thus the new referenced number 0 is the nearest to the new probe number 0 then corresponding original number 5000 is the nearest to the ori- ginal probe number 5000.

In fact, face recognition is similar to compare numbers. The face we want to recognize is called the probe. The probe is compared to a set of reference images(or reference data).

We only need find out minimum difference between probe face and referenced faces.

The biggest problem is face has much more information than one integer number. This is why PCA was proposed to reduce dimensions. Furthermore, the difference will not be that easily calculated. Instead of number differences face recognition systems we use Eu- clidean distances in face recognition system.

As human we can recognize people very easily out of experiences. However, for com- puters who do not have those experiences we have to make them analyze some statistic rules out from hundreds and thousands of image data to learn human faces. This is a type of machine learning[30].

Based on the different representations, various approaches can be grouped into fea- ture-based and image-based. Feature-based approaches rely on features such as nose, eyes, mouth. It can represent a face as a multi-dimensional feature vector and determine

4 the identification by the Euclidean distance between different feature vectors. For in- stance, in the figure 1 we can get 22 feature points[16]. We can compare people by fea- ture points geometrical relationship of each subject(or person).

Figure 1. Feature-based approach[16]

Image-based approaches depends on the entire face image, instead of some features. The face can be represented as a 2-D array of intensity values[16].

The feature-based approach has the advantages that it requires much less input data than image-based approaches. For instance, the feature-based approach needs around 30 input data as parameters while appearance-based approach needs over ten thousands data as in- put parameters(suppose one image is 100 x100 pixel size then it needs 10'000 data to define one face).

However, feature-based approaches have disadvantages that it is difficult to detect fea- tures automatically and sometimes even misses features. By conditionally choosing the region to research and appropriate transformations which can be done by detection step,

5 the image-based approaches can give more reliable results than the feature-based ap- proach according to the past research achievements. In the image-based approaches, faces are represented as a 2-D array of intensity values and recognition is normally based on direct correlation comparisons between the probe face and all other reference faces in the database. The image with the highest correlation is chosen as the best match.[16]

Hence, in this project we use image-based approach to recognize a face. There are some popular algorithms based on image. One is PCA-based EigenFace algorithm and the oth- er is LDA-based Fisherface algorithm. Both algorithms reduce dimensions using PCA and project principal components(eigenfaces or fisherfaces) into a dimension reduced subspace, calculate euclidean distances, and compare faces by distances. The only differ- ence between Eigenface and Fisherface is which(eigenfaces or fisherfaces) determine subspace. Fisherface algorithm however is better because it is supervised by labels identi- fying subjects.

PCA-based approach has advantages. It is fast and it only needs a small amount of memory. But PCA has some disadvantages, for instance, it is sensitive to translation , scale , rotation, background change of 2D picture, above all it is drastically sensitive to il- lumination change. These disadvantages determine the face recognition system has to pass the face detection step in order to perform more accurately[20]. Through the detec- tion step we can get 2D standardized facial part of the picture. In this project, however we used AT&T database faces which is gray-scaled nearly normalized without going

6 through the first step; face detection.

Face detection:

Figure 2. Detected face[18]

Although we did not go through the detection step, it is better to understand how detec- tion step works. The face detection system checks out some human faces from some pic- tures which we want to detect people out. For example, in the figure 2, the green rect- angle indicates one human face[18].

The breakthrough in face detection is the weak classifier cascades by Viola & Jones[19].

In one word, classifier cascades detect object by searching and matching certain patterns in image. The detected face will be normalized to the same size for every different detec- ted face. A nice visualization can be found here[27]. The following figure 3 shows one frame in the video.

7 Figure 3. How Haar Cascade Face Detector(Viola Jones algorithms) works[27]

The algorithm uses the Viola Jones method to find out some areas defined by the black and white rectangles to analyze a face. The sub-window (in red) is scanned at various scales to detect if there is a potential face within the window. If there is no potential face, it continues scanning. In the post-processing stage all the potential faces are checked for overlaps. 2 or 3 overlapping rectangles are required to confirm a face. [27].

Face recognition:

Face recognition is the process of matching a name to the detected face[20]. For instance, the face belongs to person named 'Shervin' in the figure 2. This finding name process is the face recognition part. The face recognition system compares the probe face to the faces in face database, then match out one or some limited highly similar faces[18]. This project is about face recognition not face detection.

8 ALGORITHMS

Eigenface and Fisherface algorithms mainly work in two steps. First generate eigenfaces or fisherfaces and project probe and reference faces(or images) into dimension-reduced subspace, then calculate euclidean distances between reproduced probe face and refer- ence faces and get the minimum distance value candidate. Here project also can be re- garded as reproduce original reference and probe images in subspace.

PCA-based Eigenface

PCA is a mathematical procedure that uses an orthogonal transformation to convert a lar- ger set of observations of possibly correlated variables into a smaller set of values of lin- early uncorrelated variables called principal components[26].Using PCA Eigenface tech- nology has now becomes a standard and a common benchmark in face recognition area[16].

Take an ellipse as an example in figure 4, we can calculate distributed points information out from two input data(two main axes) of an ellipse. However, PCA which utilizes linear algebra can do opposite procedure. Take the figure 4 as an example again, PCA can get two main axes of information from a great many points of information in the ellipse.

The purpose of using PCA is to increase the speed of calculation among points by redu- cing dimensions. Also, this can reduce noise because PCA reduce dimensions and recon- struct faces throwing away some trivial information[25]. Without using PCA one picture

9 can have m x n dimensions(e.g. If one picture has 100 x 100 pixels means 10,000 points and each point can be regarded as one dimension with corresponding intensity value) and thus calculating correlations between points cause computer runs extremely slow.

In the following figure 4 vector U is the first important principal component and vector V is the second important principal component. U and V are not correlated(they are perpen- dicular) which means the co-variance between U and V is zero[25]. We can also get all points information by these two components' information U and V in this ellipse using basic algebra.

Figure 4. PCA example[26]

Principal components has orders. For instance, in the figure 4 vector U has a higher order than the other orthogonal vector V because the correlation of the points with U is greater than with V[26].

Mathematically speaking, eigenfaces are a smaller set of eigenvectors that are derived from the covariance of the of the high-dimensional vector

10 space of possible faces of human beings[5].

In other words, a set of eigenfaces can be generated by performing PCA on a large set of images depicting different human faces. These eigenfaces can be seen as standard faces[5]. Any human face can be generated by these principal components - standard faces by different combination ways. That is, one specific human face could be generated by the average face plus 10% eigenface 1, plus 5% eigenface 2, minus 3% eigenface 10 and so on[5].

The process to create these eigenfaces:

1. Prepare a training set of face images. The facial picture should be normalized with

aligned eyes and mouth under a certain light. Each image must be re-sampled to a

pixel resolution( r x c ). Concatenating pixel values rows by rows each image is

turned into an eigenvector with r x c elements. Generate a single matrix T, each

column of T is one eigenvector which is one of the original images.

2. Subtract the mean face from each face. The average image a should be calculated

and subtract it from each eigenvector in T.

3. Calculate the eigenvectors and eigenvalues of the S. Each ei-

genvactor has the same dimensionality(r x c pixels) as the original images, and

can be seen as an image. The eigenvectors of this covariance matrix are therefore

called eigenfaces. Each eigenface is the direction from the mean face. The corres-

ponding eigenvalue is how much vary from the mean image in that direction.

11 4. Choose the principal components. The D x D covariance matrix will result in D

eigenvectors, each representing a direction in the r x c dimensional image space.

We can order these eigenvectors in the eigenvalue's decrementing sequence and

merely choose the first biggest certain number of eigenvectors.

These eigenvectors are called principal components and can then be used to represent or reproduce both existing probe and existing reference faces in the subspace.[5]

For the next step, algorithm in OpenCV source codes works like this: given reference faces for each candidate(or label), plus an unknown probe face image to recognize[13],

1. Compute a Euclidean distance between the reproduced probe face image and ref-

erence face images in the dimension-reduced subspace.

2. Select the reference image that is the closest to the probe one as the most possible

candidate.

3. If the distance is below the threshold, then the candidate is the person we are

looking for, else the probe image is unknown person.[13]

In our project, however we did not use threshold in tests so the minimum distance label was always predicted as the best label.

LDA-based Fisherface

LDA is a method used in statistics, and machine learning to find a lin- ear combination of features which characterizes or separates two or more classes(or la- bels in our project) of objects in a dimension-reduced subspace[17]. When LDA is used

12 to find a set of face images, the face vectors defining the dimension-reduced subspace are known as Fisherfaces[6]. PCA and LDA are both used to reduce dimensions. However

Fisherface is an improvement algorithm of Eigenface[25].

Generating eigenfaces is the process to find the smallest set of components(vectors) which can represent the input data. When the goal is also related to classification not only representation, it is better to find a subspace that make sample vectors in the same class cluster together and different classes to be as far away from each other as possible[6].

Linear Discriminant Analysis(LDA) is known as a solution to achieve the goal[14]. When generating fisherfaces before projected to the reduced dimensional space, LDA is super- vised by labels(one label indicates one person) , while PCA is unsupervised by labels[25].

In other words, Eigenface algorithm only use PCA to generate eigenfaces while Fisher- face algorithm not only use PCA reduce dimensions but also use LDA to separate face image data by classes(or labels) as much as possible then generate fisherfaces. We need find out how separate data into different classes(subjects or labels) well. Thus we have to talk about Linear classifier which can provide algorithms to finish the task[24].

Linear Classifier:

In the field of machine learning, in which computer can learn and analyze rules out from data all by itself, linear classifier can determine which class(or label) the data belongs to.

Linear classifier can decide based on the value of a linear combination of the character- istics, which is also called feature values, and the corresponding variable which is called

13 feature vector[28]. In the following Fisherface algorithm, steps 3, 4, and 5 are the pro- cess of applying for linear classifier.

Figure 5. Difference between PCA and LDA [25]

Comparing LDA to PCA, in the figure 5, the left side is data projection with PCA and the right one is data projection with LDA. Two different class data(in 2 dimensional space) respectively green and red are projected to the blue reduced dimensional space(1 dimen- sional space). The projected data of green and red on the left side are mixed. However, on the right side, green and red data are projected to the blue reduced dimensional space sep- arately which means much better[25].

The process to generate fisherfaces are[14]:

1. Construct Image matrix X with each column representing an image. Each image

is assigned to a class in the corresponding class vector C.

2. Project X into the (N-c)-dimensional subspace as P with the rotation matrix Wpca

identified by a Principal Component Analysis, where

14 • N is the number of samples in X

• c is unique number of classes (length(unique(C)))

3. Calculate the between-classes scatter of the projection P as Sb = \sum_{i=1}^{c}

N_i*(mean_i - mean)*(mean_i - mean)^T, where

• mean is the total mean of P

• mean_i is the mean of class i in P

• N_i is the number of samples for class i

4. Calculate the within-classes scatter of P as Sw = \sum_{i=1}^{c} \sum_{x_k \in

X_i} (x_k - mean_i) * (x_k - mean_i)^T, where

• X_i are the samples of class i

• x_k is a sample of X_i

• mean_i is the mean of class i in P

5. Apply a standard Linear Discriminant Analysis and maximize the ratio of the de-

terminant of between-class scatter and within-class scatter. The solution is given

by the set of generalized eigenvectors Wfld of Sb and Sw corresponding to their

eigenvalues. The rank of Sb is at most (c-1), so there are only (c-1) non-zero ei-

genvalues, cut off the rest. We can see from here the number of fisherfaces thus

are much less than eigenfaces in the same condition.

6. Get the fisherfaces by W = Wpca * Wfld.

Now we also got fisherfaces. The following steps are the same with Eigenface algorithm.

Project the probe and reference faces into the dimension-reduced fisherfaces subspace

15 which also means reproduce them and calculate euclidean distances between the repro- duced probe and reference images, then get the minimum value label.

16 IMPLEMENTATIONS

OpenCV 2.4 already provides a class called FaceRecognizer which implements face re- cognition so only invocation needed in the program. However it can not support some methods such as getMat throwing some compiling errors, hence OpenCV 2.4.1 above is recommended. I installed OpenCV 2.4.4 on Windows 7 Operating System.

There are two ways to get preprocessed face data. One way is face database on some websites such as Yale face database or PIE database or AT&T database[1],which does not need preprocessing step for face only, and the other is from random pictures taken around us. In the latter way we have to take pictures legally and use OpenCV detection method to get normalized faces which also needs time and human resources.

Reading database, the advice of official OpenCV website[8] is taken. Csv format text file instead of database is used in order to test FaceRecognizer class in efficient way. After all, this project mainly aims to research face recognition algorithms instead of database.

Database from AT&T website is downloaded as referenced data[31]. OpenCV already en- capsulated the main algorithms in class FaceRecognizer class thus only invocation is needed.

Some main methods in OpenCV are described in the following.

Eigenfaces:[9]

C++: PtrcreateEigenFaceRecognizer(int num_components=0, double

17 threshold=DBL_MAX)[8]

Create an instance of EigenFaceRecognizer class. num_components is principal com- ponents number. In most of cases 80 should be almost enough. Threshold is used to de- termine if reference image and the probe image belongs to the same person(or label).

Fisherfaces:

C++: PtrcreateFisherFaceRecognizer(int num_components=0, double threshold=DBL_MAX)[8]

Similar to the method createEigenFaceRecognizer, parameters are the same with the above. [8]

C++: void FaceRecognizer::train(InputArrayOfArrays src, InputArray labels) = 0

Initiate a FaceRecognizer with images data and associated labels. Src is faces program wants to learn. Labels are corresponding people's label numbers to src faces. With this method we can get matrix T which is mentioned above.

C++: void FaceRecognizer::predict(InputArray src, int& label, double& confidence) const = 0

This method not only can predict label but also can give us confidence(or distance). This predict method can be used in both algorithms(Eigenface and Fisherface).[8]

In the codes the main function reads images from csv format input file and take the last

18 image data as the probe face. Using PCA or LDA, get main eigenfaces/fisherfaces and corresponding eigenvalues and reconstruct probe face and reference faces. Then calculate distances between the probe face and database faces and find out the nearest label[8].

19 SECTION 3 EXPERIMENT

HYPOTHESIS AND DESIGN

For humans, people wearing glasses are harder to recognize in real life. Hence I assumed disguising with glasses will give much lower confidence or bigger distance than dis- guising with angles. Furthermore, the Fisherface algorithm is much better to recognize people than Eigenface algorithm because Fisherface is label supervised, so I assumed

Fisherface algorithm will have much higher accuracy and produces much smaller dis- tances. If there are small image references relatively I think the accuracy will be much higher than with larger image references because there are smaller options to predict from.

The experiment had three independent factors. These were two levels of disguise(glasses, angles), two levels of algorithm(Eigenface, Fisherface), and three levels of reference sizes data(small-same, large-same, large-different). Thus, there were 12 experimental conditions. There were two dependent variables, accuracy and distance(difference between probe image and reference images). There were 5 different probes in each exper- imental condition.

20 METHODOLOGY

The figure 6 and 7 show typical images used in this project which were extracted from database provided in AT&T face database.

Figure 6. Images with glasses

Figure 7. Images with different angles

AT&T provides faces of 40 subjects(or person) and each has 10 different pictures. I will call images for one person as an image set. I selected image data which has features such as wearing glasses or viewed from different angles so that we can test the hypothesis. I used an input data file that has a list of the reference image data file names and at the bot- tom the name of the probe image file as a source to read image data from. Figure 8 shows the structure of the input file.

21 Figure 8. Csv format input file

In order to get accuracy and differences using Eigenface and Fisherface algorithms simul- taneously I wrote a cpp file. The program would automatically take the last face image in the input file as a probe data and compare it to the referenced data(all preceding image faces) in both algorithms(Eigenface and Fisherface).

The experiment aims to find out elements that can affect result of face recognition. Hence

I collected face recognition accuracy(true or false) and distance under different conditions with different disguises(glasses, angles), different algorithms(Eigenface, Fisherface), dif- ferent sized reference images(20, 45, 40).

In the image database, some images were for glasses test and some for angles. I selected

5 different image sets among the 40 subjects in the all database who wear glasses or without glasses in pictures for glasses disguise, and 5 different image sets with different angles for angle disguise. I randomly picked one probe data from each of the image sets where the probe data was not one of the referenced image data in that image set.

22 Then, I generated and divided the referenced image data into three conditions such as small-same, large-same, small-different.

Small-same condition has 20 referenced images for 5 image sets as figure 8. Four of the

10 were selected from AT&T face database as references and another one in the set was selected as probe. Under this condition the ratio of probe and references was 1:20.

Large-same condition had 45 referenced images for 5 image sets. Nine of the 10 were ref- erences and the rest one was the probe. So large-same condition had larger references set than small-same as figure 9. Each probe belonged to one of 5 image sets for these two conditions. Under this condition the ratio of probe and references was 1:45.

Small-different group had 40 referenced images for 10 image sets as the figure 10. In this condition the reference set has images of 10 people but 5 probes are matched to 5 of them. We can think one probe was matched to A set and B set. Four images from one set

(say set A) are part of the reference set, one different image from set A is as the probe, and four additional images from another image set (say set B) are also part of the refer- ence set while it was not matched to any probe. The reason add another set was to test if adding different people's images make accuracy lower. Under this condition the ratio of probe and references was 1:40.

Under the above 3 conditions, probes' number were always 5.

23 Figure 9. Large-same input file's structure

Figure 10. small-different input file's structure

24 RESULTS

There was no differences in the accuracy data for the experimental conditions. Therefore, accuracy data was not presented. Table 1 is the means of the distance values for the ex- periment.

disguise algorithm reference Mean small-same 1812.600 eigen large-same 2169.400 small-different 1922.000 angle small-same 490.800 fisher large-same 704.800 small-different 651.200 small-same 1371.200 eigen large-same 1549.400 small-different 1506.000 glasses small-same 474.400 fisher large-same 416.200 small-different 546.6 Table 1. Mean distance values under specific conditions

Table 2,3, and 4 for are the mean values of distance for the disguise, algorithms, and reference conditions.

disguise Mean angle 1291.800 glasses 977.300 Table 2. Distance comparison between different disguise

algorithm Mean eigen 1721.767 fisher 547.333 Table 3. Distance comparison between different algorithms

reference Mean small-same 1037.250 large-same 1209.950 25 small-different 1156.450 Table 4. Distance comparison between different references Table 5 is the ANOVA table for the significance test of the hypothesis.

Tests of Between-Subjects Effects

Dependent Variable: distance Source Type III Sum of Squares df Mean Square F Sig. Corrected Model 23235294.850a 11 2112299.532 7.893 .000 Intercept 77232222.150 1 77232222.150 288.576 .000 disguise 1483653.750 1 1483653.750 5.544 .020 algorithm 20689404.817 1 20689404.817 77.305 .000 reference 312641.200 2 156320.600 .584 .562 disguise * algorithm 475082.017 1 475082.017 1.775 .189 disguise * reference 149045.200 2 74522.600 .278 .758 algorithm * reference 116273.733 2 58136.867 .217 .806 disguise * algorithm * 9194.133 2 4597.067 .017 .983 reference Error 12846342.000 48 267632.125 Total 113313859.000 60 Corrected Total 36081636.850 59 a. R Squared = .644 (Adjusted R Squared = .562) Table 5. Significances of different sources

From the table 5, we can see disguise and algorithm have significant effects to face re- cognition as bold fields show the significance probabilities < 0.05.

26 ANALYSIS

Figure 11 shows the result of the experiment. As hypothesized in advance, we can see

Fisherface algorithm has much higher confidence or smaller distance than Eigenface al- gorithm. Opposite to the hypothesis, angles has a bigger difference than glasses which means angles change make computer harder to recognize people than glasses. This is maybe caused by illumination problems with angles or there were always enough refer- ence images with glasses to compare to. In reference test, although referenced image data size has no significant effect to the result, we can see slight difference increasing in the table 4 which is consistent with the hypothesis.

Figure 11. Face recognition experimental result

The other thing is in every condition, accuracy was 100% true that is probably caused by small number of reference image data and enough reference images for each label.

27 CONCLUSION

According to the experimental result, we can see factors algorithms and angles affect res- ult significantly. There should be more research on why facial angles cause bigger differ- ence than glasses and try to find out solutions. Also research should be done on why ref- erenced image size does not have significant effect. Experimental research on other dis- guises such as facial hair, hairstyles, clothing like hats and scarves, and facial expressions should be conducted. In most real life, people will not face camera directly and the cam- era will take sequential images not only one picture. People will also pose with different facial expressions such as crying, laughing, frowning. Hence, further research with se- quential 3D images with different facial expressions should be done.

In summary, a brief description of the process for face recognition with disguise was presented. Two algorithms Eigenface algorithm and Fisherface algorithm were generally explained. Later an experiment was designed and conducted to test the effect of dis- guises(glasses and angles of face orientation) with the two algorithms and with different size of reference image data. Fisherface shows higher confidence in face recognition than

Eigenface. Angles of face orientation showed higher effect compared to the disguise of glasses. Furthermore, different size of referenced images did not give significant effect to the face recognition.

28 REFERENCES

1. Face Recognition Homepage

04/22/2013 http://www.face-rec.org/

2. Facial recognition system 04/22/2013

http://en.wikipedia.org/wiki/Facial_recognition_system

3. History of Facial Recognition Software 04/22/2013

http://forensicpsych.umwblogs.org/research/criminal-justice/face-recognition-

software/

4. Eigenfaces for Recognition by Matthew Turk and Alex Pentland 04/22/2013

http://www.face- rec.org/algorithms/PCA/jcn.pdf

5. Eigenface 04/22/2013 http://en.wikipedia.org/wiki/Eigenface

6. Fisherfaces 04/22/2013 http://www.scholarpedia.org/article/Fisherfaces

7. Open Source Biometric Recognition 04/22/2013 http://openbiometrics.org/

8. Face Recognizer – Face Recognition with OpenCV 04/22/2013

http://docs.opencv.org/trunk/modules/contrib/doc/facerec/

9. Face Recognition with OpenCV 04/22/2013

http://docs.opencv.org/trunk/modules/contrib/doc/facerec/facerec_tutorial.html#fi

sherfaces

10. Discriminant analysis for recognition of human face images by Kamran Etemad

and Rama Chellappa

11. Eigenfaces vs. Fisherfaces: Recognition Using Class Specific Linear Projection

by Peter N.Belhumeur Joao P.Hespanha David J.Kriegman

29 12. Robust Real-Time Face Detection by Paul Viola & Michael J.Jones 04/22/2013

http://www.vision.caltech.edu/html-files/EE148-2005-Spring/pprs/viola04ijcv.pdf

13. Seeing with OpenCV, Part 4: Face Recognition with Eigenface 04/22/2013

http://www.cognotics.com/opencv/servo_2007_series/part_4/index.html

14. blog:fisherfaces 04/22/2013 http://www.bytefish.de/blog/fisherfaces

15. blog:fisherfaces_in_opencv 04/22/2013

http://www.bytefish.de/blog/fisherfaces_in_opencv

16. Multimedia Systems and Content-Based Image Retrieval by Sagarmay Deb

17. Linear discriminant analysis 04/22/2013

http://en.wikipedia.org/wiki/Linear_discriminant_analysis

18. Introduction to Face Detection and Face Recognition 04/22/2013

http://www.shervinemami.info/faceRecognition.html

19. The face detection home page 04/22/2013 http://www.facedetection.com/

20. Face Recognition using OpenCV 04/22/2013

http://opencv.willowgarage.com/wiki/FaceRecognition

21. Appearance-based vision by Ahmed Elgammal Rutgers

University 04/22/2013 https://docs.google.com/a/my.csun.edu/viewer?

a=v&q=cache:T051xYgm5qEJ:www.cs.rutgers.edu/~elgammal/classes/cs534/lect

ures/appearance-based

%2520vision.pdf+&hl=en&gl=us&pid=bl&srcid=ADGEESjOjw5-GQzHhZLId4-

g633SMdbWKrSNdgqkZYn7lKs7J4JKnBubkXMRyQs8QDTI-

a5b7OuWkzy94pRlOQnTFg4eMR_7tsu_H8Wj1eWCvrlZ2rFNVHR94KJmKEc8

30 Kxo0Qx1PuGFX&sig=AHIEtbREpvx4f-9lJKx1hPLbOsBwJNgcMA

22. Human face recognition 04/22/2013 http://zh.wikipedia.org/wiki/%E4%BA%BA

%E8%84%B8%E8%AF%86%E5%88%AB

23. Survey of appearance-based methods for object recognition by Peter M.Roth and

Martin Winter. Inst.

24. Study in learning machine(4) 04/22/2013

http://www.cnblogs.com/LeftNotEasy/archive/2011/01/08/lda-and-pca-machine-

learning.html

25. Difference of PCA and LDA 04/22/2013

http://blog.csdn.net/sunmenggmail/article/details/8071502

26. Principal component analysis 04/22/2013

http://en.wikipedia.org/wiki/Principal_component_analysis

27. OpenCV Face Detection: Visualized 04/22/2013 http://vimeo.com/12774628

28. Linear Classifier 04/22/2013 http://en.wikipedia.org/wiki/Linear_classifier

29. A tutorial on Principal Components Analysis by Lindsay I Smith 04/22/2013

http://www.cs.otago.ac.nz/cosc453/student_tutorials/principal_components.pdf

30. Learning OpenCV Computer Vision with the OpenCV Library by Gary Bradski

and Adrian Kaebler

31. The database of faces AT&T 04/22/2013

http://www.cl.cam.ac.uk/research/dtg/attarchive/facedatabase.html

31