PDA Face Recognition System Using Advanced Correlation Filters
Transcription
PDA Face Recognition System Using Advanced Correlation Filters
PDA Face Recognition System Using Advanced Correlation Filters Chee Kiat Ng 2005 Advisor: Prof. Khosla/Reviere PDA FACE RECOGNITION SYSTEM USING ADVANCED CORRELATION FILTERS By Chee Kiat Ng SUBMITTEDIN PARTIAL FULFILLMENTOF THE REQUIREMENTSFOR THE DEGREE OF MASTEROF SCIENCE IN ELECTRICAL AND COMPUTER ENGINEERING AT CARNEGIE MELLON UNIVERSITY MAY2005 Dr. Marios Savvides, ECE(Advisor) Prof. Pradeep K. Khosla, ECE(Co-Advisor) ACKNOWLEDGEMENTS I would like to thank myadvisors Dr. Marios Savvides and Prof. Pradeep K. Khosla for their continual support and encouragementduring mycourse of graduate studies. Prof. Khosla is a very understanding advisor. Youlistened to my requests and gave me the opportunity to switch my research studies from medical robotics to pattern recognition. It wasa big leap and yet you still had faith in meto be able to accomplishit. Thankyou. Thankyou Dr. MariosSavvides. Youare definitely the pillar of support in myresearch studies. Every time I step into your office with a gloomy face, you were always able to clear my "mountains" and give me the encouragementI need to face the problems I have. It was crazy enough that I am doing all myresearch and thesis in one semester, but somehowyou have this strong faith and trust in methat I can accomplishit, and I really appreciate that. Otherthan work, I also enjoyed sharing newideas and cracking jokes with you. Youare not just a great advisor, but a great friend as well. I like to thank Dr. CameronRiviere, whohas helped me tremendouslywhenI was in his medical robotics team. He has given me the chance to learn a lot about signal system design, mechanical design and programming,and this skill set has benefited mea lot in myPDAresearch. I also like to thank mymanydear friends in CMU whohave filled mycollege life with fun and laughter (not in order of preference). MySingaporeangang: Dinesh, Rachel, Siyi, Bernard, Zaizhi, Xianyi, Greg, Shanmei, Leon. My"family" friends: Tom, Nancy, Jeehee, Dong Keun, Tiffany, Will. Mygreat study and research pals: Nick, Dave, Jeremy, Mint, Paul. Also I like to thank my offshore friends in Singapore whohave been continuously supporting me through emails: Walter, 2 Ming, Benjamin, Kelvin, Terence, Vincent, Nathanael, Russel, Rachel, Ivy, Adela, Teresa. Chee Yong, Charlotte. In case I missed anyone, you are not forgotten and I want to thank all of you too. I want to thank Bernice who has always been there for me whenever I am happy or depressed. With your continual encouragement and support, I was able to endure and survive my worst days. Thank you. Lastly, I want to thank my entire family. I want to thank my sister, continuously praying for me while I was pursuing mystudies. Wendyand her family for ! want to thank mybrothers, Alan and Andy who have always been there for me, giving me advice and support. I would especially like to thank myparents for their love and support. Without you, I would not be who I am today. I will make the best out of mylife so that you can always be proud of me. Table of Contents Abstract Introduction 1.1 Motivation 1.2 Challenges 1.3 Goals System and Equipment Personal Digital Assistant (PDA) 2.1 2.2 Camera 2.3 Programming Platform 3. Face Recognition Algorithms 3.1 Whichrecognition method to use? Principal ComponentAnalysis (PCA) 3.2 3.3 Individual Principal ComponentAnalysis (IPCA) 3.4 Fisher Linear Discriminant Analysis (FLDA) 3.5 3D Linear Subspace Method 3.6 AdvancedCorrelation Filters 3.7 Illumination-tolerant Face Recognition Experiment 4 o 7 9 10 11 12 13 14 15 16 17 AdvancedCorrelation Filters 4.1 MinimumAverage Correlation Energy IMACE)Filter 4.2 Unconstrained MACE(UMACE)Filter 4.3 Noise Tolerant Correlation Filter 4.4 Optimal Tradeoff Synthetic Discriminant Function (OTSDF)Filter 4.5 Unconstrained OTSDF(UOTSDF)Filter 4.6 Maximum Average Correlation Height (MACH)Filter 4.7 Peak-to-Sidelobe Ratio (PSR) 4.8 Peak-to-Correlation Energy (PCE) 19 21 22 23 23 24 26 27 Approachto Improving Performance and Speed 5.1 Fix point Fast Fourier Transform(fixed-point FFT) 5.2 Fix point Arithmetic 5.3 Optimization results 5.4 Face Detection 5.5 Online Training Schemegiven a video sequence 28 32 32 34 36 Selecting a Suitable Correlation Filter Method 6.1 PDAFace Database 6.2 Face Identification Experiment 6.3 Face Verification Experiment 38 39 39 Conclusion 44 Bibliography 45 Abstract In this thesis, we present a viable ¢ktce recognition system that is implemented on a Pocket PC that can work in real-time. Firstly, we examine the benefits of having such a system and the challenges that are faced in building such a system. Wethen present the equipment suitable Jbr realizing such a real-time face recognition system on a PDA. An analysis of existing recognition algorithms has to be performed in order to choose one that is suitable Experiments are performed using CMU-PIEdataset determine that Advanced Correlation Advanced Correlation Filters constraints Filters with harsh variable is a suitable for our system. illumination where we approach. Among the different we determine which ones are better optimized in speed and memory. for PDAimplementation. This includes fast fixed-point implementation of 2D Fourier Transform optimal for Pocket PC platform, bt addition, we discuss about the fast face detection algorithm we incorporated in the system. We also detail an efficient these filters efficiently in order to minimize computation load and making the system practical with real-time enrollment of users. We show how different methods perform using a small database collected detection algorithm for synthesizing using the PDA using the implemented face and processing algorithm running real-time. this system can be ported to work on cell-phones. types of Advanced Correlation Filter Finally we discuss future work and how Chapter 1 Introduction 1.1 Motivation Accesscontrol systemsutilizing biometrics is currently a hot field in security. Biometricsoffers solutions to vulnerabilities found in current access control systems whichare based on passwords or ID cards whichcan be lost or stolen. Biometrics provides us with identifying features that are unique to each individual person; like facial image, fingerprint, voice, iris etc. These biometric features provide enhanced security since we always have them and so we cannot lose them like keys and ID cards. Moreover,these features are moredifficult to replicate or spoof. Nowthat biometric recognition has progressed to a decently reliable stage, one can immediately foresee the possibility of changing all the password and ID card based security systems into biometrics-based systems. For example, a person whoneeds to use the ATMmachine no longer has to key in his pin code to access his bank account, but instead, he can just look into the camera and allow the ATMBiometric system to identify him. Another scenario would be that of a person being able to enter his office by just using his fingerprint instead of using his ID card. Both examplesclearly showthe convenienceand at the sametime the security that biometrics can offer. More importantly using multiple biometrics simultaneously makes the system more robust against spoofing attacks [1] Biometric recognition has more to offer than to merely enhancecurrent access control systems; our PDA(Pocket PC) face recognition system has a feature that enhances the benefits that biometric recognition provides, namely portability. Hence, we will discuss ideas for new applications that can utilize portable biometrics recognition. In this generation, it is very common to find manypeople carrying Personal Digital Assistants (PDAs)while they are on the move. Moreimportantly PDAshave becomean integrated part of our lives where we nowstore crucial 6 information such as bank account statements, and other private information which must be made secure in the event the PDAsare lost or stolen. Havinga Biometrics authentication moduleon PDAcan help unlock access to such valuable data. Using the facial biometric is one of the least intrusive methodsthat can be used to authenticate authorized users of the PDA. PDAbased face recognition systems can be used in a variety of applications including law enforcementofficers; whocan use portable PDAsto identify suspects against a criminal watchlist etc. PDAbased face recognition systems can also be used as a wayto delegate authority and access control to physical and virtual spaces. Imagine hotels which instead of giving you key cards, can delegate authority to your PDAto give access to your room. So whenyou approach your roomdoor, authenticating yourself on your PDAcan provide authentication which the PDA can then grant access for the electronic door to unlock. Almostall PDA’shave integrated 802.1 lb and Bluetooth whichis a meansof communicatingwith various public services and applications. These examplesshowthat there is great potential in developingportable face recognition systems. 1.2 Challenges One disadvantage of using biometric applications is that there is a considerable amount of computation involved. This is especially so with regards to robust face recognition. This typically involves a significant amountof image processing which can slow downthe system significantly if additional video processing is considered necessaryas well. All these issues make it challenging to implementa PDAbased face recognition system that is reliable and can workat real-time. Most PDAscontain CPUsthat range between 100Mhzto 624Mhzwhich is the fastest clock rate at the current time. Moreimportantly, clock speed alone is not the only factor to considered, but more importantly; all current PDAsdo not contain a Floating Point Unit (FPU) thus floating point operations must be emulated by the PDA’sCPUwhich can be significantly slower up to several orders in magnitude.In addition to computationallimitations, these devices 7 also have memorylimitations, so we cannot use algorithms that utilize significant amountof memoryto run. 1.3 Goals Our goal is to have a working face recognition system integrated on to a PDA.Although the available processors are slow in speed, we intend to employ methods that can improve the system’s performance and that can accommodatea PDA’smemoryconstraints (see Chapter 3). Wealso chose to use AdvancedCorrelation Filter methods to solve the recognition problem in our system since they are comparatively more accurate and less demandingthen other traditional methods.Wewill research on the different available filter methodsto decide whichfilter design is the most suitable for our system in terms of performanceand computational complexity as we plan to enroll users directly on the PDAusing an online-learning algorithm that can build these filters on-the fly andin real-time as the user is holdingthe camera.. Chapter 2 System and Equipment 2.1 Personal Digital Assistant (PDA) Dueto the high requirements in memoryand speed for image processing, we have to look for a mobile device that offers the most powerfulprocessor in the market. In our search, we have come upon the Dell Aximx50v Personal Digital Assistant (PDA). Figure 1. Dell AximxS0vandIntel PXA270 chip It contains an Intel processor chip, PXA270,which can achieve a maximum clock rate of 624 MHz.This is currently the fastest clock rate CPUthat can be found in handhelddevices. However, the PXA270does not contain a Floating Point Unit (FPU) [2]. An FPUis a chip specially designed for processing floating points, commonlyfound embeddedin most microprocessors. In the PXA270,all floating point computations are emulated instead; and this can consumeseveral hundred of cycles to obtain a result. This serves to be a major challenge in our system, since image processing involves an immenseamountof floating point computation which we take for granted on desktop imageprocessing applications. With regards to memory, the Aximonly provides 128 MBFlash ROMand 64 MBRAM.Hence, weare limited to working with face recognition algorithms that do not require too muchmemory as well (more memory is typically required during the enrollment period for training the pattern recognition algorithm). Figure 2. VEOCamera:CFversion andSDversion 2.2 Camera Ideally, wewant to have a solution whichis universal to all PDAbrands, so built-in camerasare quickly dismissed as not all PDA’shave built-in cameras and we would have to develop PDA specific code for those PDAs.Instead, welooked for attachable cameras(compactflash or secure digital) that we can use on the Dell Aximas well as other PDAmodels. The two we found are VEO’sCompactFlash Photo Traveler and VEO’sSD Photo Traveler 130S. Wechose to use the SDversion since it is smaller and it has a swivel lens so that the user can changethe direction the camerais facing, awayor towards him. It was also the only camerabrand that provided a barebone SDK.Due to the lack of technical support and SDKdocumentation from the company,it has proven to be a challenge to decipher and utilize the code used in each call function in the 10 cameraSDK.Eventually, after significant experimentation we managedto learn howto utilize it to suit our needs for quick imagecapture and display. 2.3 Programming Platform Weused Microsofl’s EmbeddedVisual C++to code and design the face recognition application for the Pocket PC. It provides the ability to code in C++the samewayas Microsoft’s Visual C++, whichis popularly used in PC application development.However,it has limited functionalities, similar to the Intel PXA270 processor. Certain libraries that are available for the PCversion, such as the complexclass template, cannot be found in the embeddedversion. Complexarithmetic is essential for performing certain imageprocessing algorithms such as Fast Fourier Transforms, so this could be a huge hindrance. In the end, we created our owncomplexclass with override methods that can handle both real and imaginary numbersas well as perform simple colnplex arithmetic such as conjugation and computingabsolute values. ll Chapter 3 Face Recognition Algorithms 3.1 Which recognition method to use? Given the hardware constraints and the real-time nature of the desired PDAface recognition system, our goal is to implementa face recognition algorithm that requires the least computation andhas to be able to return results at a fast framerate. In addition, its classification results have to be accurate to recognize authentics and deny access to impostors. Image variability such illumination, pose and expression are challenging in reliable face recognition for user authentication. However,pose and expression can be controlled; as a co-operative user will provide a suitable pose and expression but will not have control of the surrounding illumination (consider outdoor scenario). Hence, we will firstly present the existing pattern recognition algorithms that can be used for face recognition, and then discuss their performance under variable illumination to see which is the most suitable for our needs. Weuse the CMU-PIE database to examinetolerance to illumination variations. 3.2 Principal Component Analysis (PCA) Principal ComponentAnalysis (PCA)[3], also knownas KarhunenLoeve Transform or Hotelling Transform,is a very popular recognition tool. Weapply PCAto a set of face imagesto computea lower dimensionalsubspacewhichare the principal directions of variations of these face images. These principal directions of variation are identified by the covariance matrix E of the training face data as follows: rZ= XX (1) 12 WhereX is a matrix of size MxN(where Mis the numberof pixels in each face image and N is the numberof training images) containing the training data (with the global meansubtracted) along the columns. Hence, PCAinvolves solving the following eigenvectors/eigenvalue problem: XX rv = Zv = ~v (2t Since the covariance matrix is symmetric, the eigenvectors computed in Eq. (2) form orthogonal basis that best represents the variability in the training data in the minimum squared error sense. Typically in imagebased pattern recognition problems such as face recognition we have more dimensions (pixels) than training data, in such cases it is computationally (and memory)inefficient to computethe eigenvectors/eigenvalues of XXT, instead we use the Gram Matrixtrick to reformulateEq. (2) as: X r XXX rv = 2~ rv (3) X r Xv’=2v’ Where (4) v’= Xrv Hence, after solving for v’, we find the desired eigenvectors v by v = Xv’. Once all the eigenvectors v are computedweproject a test face, t, into this lower-dimensionalsubspace. We then use this lower dimensionalrepresentation of the data for pattern matching. 3.3 Individual Principal Component Analysis (IPCA) Individual PCA(IPCA)[4] is a variant of PCAwherethe difference is that we build a subspace for each class; using imagesfrom that class instead fromall the imagesfrom all the classes. Once all the eigenvectors v are computedfrom a particular person weproject a test face, t, into this subspaceand reconstruct it and computethe residual error betweenthe reconstructed face and the original test face. The person whose eigen-space produces the reconstructed image with the 13 smallest residual error is classified as the person in the test image. Thereconstructed image, t, is computedas " t = pivi + m (5) i=1 Where pi = v~ (t - m) (6) Error = t- x 2 (7) Thereconstruction error is: 3.4 Fisher Linear Discriminant Analysis (FLDA) Fisher Linear Discriminant Analysis (FLDA)[5] attempts to find the optimal projection vectors such that the projected samples have a small within-class scatter Sw and large between-class scatter S,. This is done by maximizingthe Fisher ratio defined as vJ(w)- WT S ~ w wrSo (8) S~ = 2 (mi - m)(mi m) (91) Where i=1 (10) i=1 k=l Ni is the numberof training imagesin the ith class and the superscript on x indicates its class. Maximizingthe Fisher ratio leads to solving the generalized eigenvalue problem 14 If S,,. is non-singular then Eq.(11) can be turned into a normal eigenvalue problemby inverting the within-class scatter matrix. However,in face recognition due to the larger dimensionality of images comparedto the training data, the within-class scatter matrix is singular which is a problem in the optimization in Eq.(8) where the denominator becomes0. Thus Fisherfaces uses PCAto reduce the dimensionality to N-c such that the within-class scatter is non-singular and then apply LDAto get c-I projection vectors. So we can cascade the PCAprojections and the LDAprojections into one transformation for convenience: W/.~,e,.jm. = Wec A Wu~ A (12) Hence, all the training faces are projected into the Fisherface subspacein Eq. (12) and a simple nearest neighborclassifier is usedto classify the test face basedin this projected space. 3.5 3D Linear Subspace Method In this method, we assumethat faces can be modeledas Lambertiansurfaces. The intensity of a pixel in an imageilluminated by a point light source at infinity can be expressedas follows: p = anr s (13) Wherepixel intensity is denotedby p, a is the albedo of the surface, n is the surface normaland s is the direction vector of the light source. So the wholeface imagecan be formulatedas follows: I = Bs (14) Where1 is a dxl matrix denoting the face image (d pixels), B is dx3 matrix wh ere ea ch ro w contains anT vector. Wecan estimate a 3D illumination subspace using 3 or more linearly independentface imagesI with different lighting variations. DenotingI~ to be the nth imagein a set of N training images, we can form a 3D linear subspace by finding 3 eigenvectors correspondingto the largest eigenvaluesof the following correlation matrix: N Z I~I,r, = HHr (15> 15 Thus, we can solve for eigenvectors bi in Eq. (15) using Grammatrix trick as before. Therefore, test imaget is projected onto the individual’s subspaceand the imageis reconstructed using the projection coefficients. Theresidue is calculated as follows: residue = (hi i t )b (16) Theclass is classified with the subspacethat producesthe smallest residue just as in IPCA. 3.6 Advanced Correlation Filters Correlation filter techniques are attractive candidates for the pattern matchingneeded in face verification. Advancedcorrelation filters can offer a very good matching performance in the presence of variability such as facial expression and illumination changes [6]. Furthermore,they offer closed-form solution that are of less complexity and require minimal amountof memory storage [7]. T~ ~ Coi~elatioll Correlation Filter Tr~ Ixr~es Figure3. Correlationfilter blockdiagram showsa filter designedon Nimagesfor class I. When a test imagefromclass I is inputto the system,thenthe correlationoutputshouldyield a sharppeak. Weare interested in the MACE, UMACE, MACH filters that will be discussed in detail in Chapter 4. 16 3.7 Illumination-tolerant Face Recognition In this experiment, we use the illumination (PIE) database [8] which consists subset of the CMUPose, Illumination, of 65 people, each captured with 21 different Expressions illumination conditions. Figure 4. PIE illumination subset for a person In this experiment, we use 3 uniform frontal-lighting the training illumination face images from each class as images (see Figure 5). Wewant to see how well each recognition perform given these training algorithm can images while being tested with the rest of the images that have different harsh un-seen illuminations. Figure 5. three images with uniformfrontal illumination 17 Table1. RecognitionRatesfor different recognitionmethods PCA IPCA FLDA 3D Linear Subspace MACE / UMACE MACH Clearly, MACE/UMACE correlation filters Recogniti0n Rat~ : 21.30% 51.80% 72.20% 50.90% 94.90% 47.60% exhibit the best performance, with a recognition rate of 94.9%. Although3D linear subspace is knownto be illumination-tolerant, it can only perform well given a training set of face imagesthat have different and extremeillumination variations. PCA,IPCAand FLDAmethods require offline training (given a training video sequence, these methods also need the entire set before it can process their algorithm). Wewill show that AdvancedCorrelation Filters are able to do online training in real-time, and they have proven to perform well even under extreme illumination conditions; thus they are suitable choices for our face recognition PDAsystem. 18 Chapter 4 Advanced Correlation 4.1 Minimum Average Filters Correlation Firstly, we describe the MACE filter Energy (MACE) Filter [9]. The mareidea is to synthesize a filter using a set of training images that would produce correlation output that minimizes correlation values at locations other than the origin and the value at the origin is constrained to a specific peak value (usually chosen to be 1). Therefore, whenthe filter is cross-correlated with a testing image that belongs to an authentic, the filter will exhibit sharp correlation peaks, as shownin Figure 6. Otherwiseif the test image belongs to an imposter, the filter will output small correlation values with no discernible peak as shownin Figure 7. PSR= 21 ~7 5000 4500 4COO 10 ¢000 3000 25O0 3000 2O ~000 2000 30 2000 -)000 40 IO0~i 4800 3500 . 2O00 : 1500 o- 1000 20OO ~ ~ ~/~i. I O0 500 0 50 ~/ 50 0 ~000 -500 0 -1 000 80 000 60 40 2C ~0 0 20 30 40 50 60 Figure 6. MACE filter correlation output fromone of the ’authentic’ class test images. PSR= 4 55 1000 5O0 20OO, 1500 1000 10 2O ] 3O 500 -600 -lo00~ 40 :::! 1 000 50 -1500 50 ~,// 0 0 -1500 6O 50 -200D 80 60 40 20 0 10 20 00 40 60 Figure 7. MACE filter correlation output fromone of the test imagesfrom an ’impostor’ class. 19 The MACE filter seeks to minimize the average correlation plane energy. The energy E, of the ith spatial correlation plane ci(x, y)in the frequency domain representation Ci(u,v ) is as follows: E, d-I d-I 2 1 d-t l d-I d-I 2 c,(.,v) (17) d-I ZI H(u’v)121F’(u’v) l~-=u=o =-ff~-,~,=o h+D’h whereinput images,frequencydomaina~aysandco.elation outputs are all assumed to be of size dxdand i=1,2 ...... N with N being the number of training images. ~(u,v)is the 2D-Fourier transform of the ith training image and Di is a d :~ x d t diagonal matrix containing the power spectrum of training imagei along its diagonal, h is ~ ad x I colu~ vector containing the 2-D co.elation filter H (u, v) lexicographically reordered to 1-Dvector. Hence,the average co.elation plane energy is defined as follows: Earerage = ~.= E~= where N~_~ 1 N D= ~ ~ D i h+Dih = h+Dh (18) (19) Minimizationof E,~,,er,,g e is done while satisfying the linear constraints of the co.elation values based on pre-specified values (in rowvector u), X +h = u (20) where X is a d ~ x N complex element matrix, with the ith colu~ containing the 2-D Fourier transform of the ith training image lexicographically re-ordered into a colu~ vector. Lagrange 2O multiplier methodis used to minimizeEq.(18) while satisfying the linear constraints in Eq.(20) and this will give a closed form solution for the MACE filter as follows: h = D-1X(X+D-1X)-lu (21) As shown, we see that since D is a diagonal matrix, the computationally most demandingaspect of determining the MACE filter is the inversion of the Grammatrix (X +D-~X)which is of size NxN.To avoid computingthis matrix inversion we shall use the unconstrained MACE filter [10] that relaxes the hard constraints in Eq.(20) and leads to a closed form solution that does not requires matrix inversion operation and thus is more suited for PDAbased implementation. 4.2 Unconstrained MACE(UMACE)Filter The unconstrained MACE (UMACE) filter [10] is a variant of the original MACE filter where the difference is that weonly want to maximizethe average correlation values at the origin instead of constraining themto specific values as done in Eq.(20), while minimizingthe average correlation energy amongthe training images. The average correlation peak height can be expressed as I h+mI 2-= h+mm+h (22) Therefore, UMACE is the solution to the following optimization function h +mm+h J(h) (23) h+Dh where D is average power spectrum of the training images as defined previously and m is the Fourier transform of the average training image. Takingthe derivative of J(h) with respect to h to find solution vector h for the UMACE filter OY( h Oh -- 2h + Dhmm+ h - 2h +mm+hDh -0 I h+Dh12 h + Dhmm+ h h +mm+ h + Dh h+Dh h+Dh =0 (24) = rnm+h - J(h)Dh = 21 This forms the eigenvalue / eigenvector equation mrn~-h = 2-Dh where 2.= J(h). Since we are maximizing J(h), we (25) solve Eq.(25) to find the eigenvector that correspondsto the largest eigenvalue/1max" Since rnm+ in Eq.(25) is an outer product matrix of rank one, there is only one nonzero eigenvalue / eigenvector solution to the equation. This results in a closed form solution for the UMACE filter as h = ~ D-’m (26) and since --is a scalar value that only scales the UMACE filter, the resulting UMACE filter vector is h = D--lrn (27) As shown,UMACE filter is not computationally intensive, especially since D is diagonal thus the inverse is trivial to obtain. Both MACE and UMACE filters yield sharp correlation peaks while minimizing the average correlation energy. The difference is that the MACE filter outputs constrained values at the origin while the UMACE filter can output different values at the origin for the sametraining images. Weshowin the later section the figure of merit used is the peak sharpness and not the peak height itself. The peak sharpness obtained by both methods is relatively similar even thoughthe peak height is different, thus wecan use UMACE filter. 4.3 Noise-Tolerant Correlation Filter Dueto MACE filter’s tendencyto amplifyhigh spatial frequencies, it will amplify noise in the input imageas well. Tohandlethis issue, noise-tolerant correlationfilters wereintroduced[11]. 22 Assumingthat imagescontain zero mean, additive, stationary noise, the output noise variance can be written as: 0-2 = h:rCh (28) WhereC is a diagonal matrix whosediagonal elements C(k,k) represent the noise power spectral density at frequency k. By minimizingthe Eq. (28) and subjecting the samelinear constraints Eq. (20), we get the following closed form equation: h = C-1X(X+CMX) (29) I/g In most applications, the noise power spectral density is unknown,so we assumea white noise model, i.e. C=I. However,it maybe possible to customize this model to specific cameranoise modelsthrough empirical estimation. 4.4 Optimal Tradeoff Synthetic Discriminant Function (OTSDF)Filter Minimizinga combinationof the AverageCorrelation Energy(ACE)(for peak sharpness) and Output Noise Variance (ONV)which are both quadratic terms we can obtain the following optimaltrade-offfilter [ 12]: h=T-JX(X+T (30) Where T =c~D+~/i-o~2C ,0< ~ < 1 (31) Andby varying c~, we can tradeoff betweennoise tolerance and discrimination. 4.5 Unconstrained UOTSDF(OTSDF) Filter In a similar fashion, by also adding noise tolerance to the UMACE filter, we obtain the UnconstrainedOptimalTradeoff Correlation Filters (UOTSDF) shownbelow: 23 h = (c~D+ ~/~- ~2 C)-~ This is the filter (32) choice for our PDAsystem. The camera we are using for the PDAcan only capture 320x240 pixel frames, and the camera exposure feature performs erratically sometimes. Moreover, due to the PDA’s portable nature, we have to consider all the possible environments that the user can be in which will make the input images susceptible low-light conditions. complexity that filter Thus the UOTSDFfilter alleviates equations. to noise at is optimal choice as well due to its the need to invert Thus UOTSDFminimizes and poorly a Gram matrix present reduced in the MACEand OTSDF the amount of computation requirements when implementing it on the PDA. 4.6 Maximum Average Another correlation (MACH)Filter filter Correlation Height that we can consider [13]. This filter (MACH) Filter is the MaximumAverage Correlation aims at achieving good generalization. Height It attempts to produce correlation output that is similar for all the training images from the same class by minimizing the following average squared error: 1 ~v J(s) =-~ .~, :~ ~, ~, ci(x, y)-s(x, 2 (33) ) Where s(x,y) is the desired correlation output. Minimizing Eq. (36) we get: 1 Whichis basically the average of all correlation outputs for that class. Having this result, we define the average similarity metric (ASM)that is optimized in order achieve distortion tolerance: 1 N ASM =--~.~,..~ 2 ~r ci(x,y)-7(x,y) (35) 24 In the frequency domain, ASM = h+(F~ -M)(F, (36) -M)*h Where F~ is a diagonal matrix of dimensions dxd with Fi(u,v) elements along its diagonal containing the 2D-Fourier transform of the i th training image. Mis a diagonal matrix as well with the average 2D-Fouriertransform of the training imagesalong its diagonal. Hence, the ASM metric in Eq. (36) can be simplified to be: ASM = h÷ Sh (37) Where S=-~ 1 i~: ~: (F~-M)(5-M)* Other than minimizing ASM,MACH also maximizes the average co.elation (3~) peak height (ACH) defined below: ACH= ~ h+x : h+m.: filter With these two put into consideration, the MACH (39) optimizes the following objective function: J(h) ACH 2 h+mm+h ASM h+Sh (4(.)) Andthe solution of h gives the following MACH equation: h = S ~m (41) Also, by including the output noise variance (ONV)term in Eq. (40), weobtain the noise-tolerant MACH filter as shown: h=(aS+ flC) (42) Where~ and /~ are selected to trade-off between ASMand ONV. 25 In our system, we are interested to see which noise-tolerant filter, namelyUOTSDF or MACH. is suitable for our implementation(see Section 6.2). 4.7 Peak-to-Sidelobe Ratio (PSR) Typically pattern matchingusing correlation filters is based on the value of the largest correlation peak. However,this value is sensitive to illunfination changes in the input image. This can be a serious issue as we can expect our face recognition system to operate in variable illumination conditions frequently due to its mobile nature, i.e., it is essential that a user can authenticate themselvesto gain access to their data at any time and location regardless of lighting conditions Therefore, to reduce this dependencyon illumination levels, weemploythe peak-to-sidelobe ratio (PSR) as shownbelow: PSR = peak - mean (43) In Figure 8 we showthat we use 2 masks centered around the peak. The annular region between the two masks determines the sidelobe region. The figure below shows the PSRcalculation. By using more than one correlation peak to computea match score enhances the confidence of the systemas it uses multiple correlation points to calculate this single matchscore (PSR). sidelobe region peak 5x5 mask Figure8. Regionfor estimatingthe peak-to-sideloberatio (PSR) 26 4.8 Peak-to-Correlation Energy (PCE) Anothertypical performancemeasureused for correlation filters is the peak-to-correlation energy (PCE). It also measurespeak sharpness using the following equation: PCE = c(0’0)[2 (44) ~f ~c(x, y) 2dxdy Wherec(O,O) is the correlation peak and the denominatorterm is the energy in the correlation plane. PCEis sometimespreferred becauseit gives analytically tractable optimizations. 27 Chapter 5 Improving Performance and Speed 5.1 Fixed Point Fast Fourier Transform (fixed-point FFT) The biggest bottleneck to our system’s performance will be the computationally intensive evaluation of the 2-D Fast Fourier Transform (FFT) of images. Weneed to computeFVFs not only for the filter design but also for computingcorrelations fast. WeimplementedC code [14] that was specially designed to perform 1-D FFTat a very fast speed in AdvancedRISCMachine (ARM)processors and our Intel PXA270 processor in the Dell AximxS0v belongs to this family. Specifically, the code features radix 4/5 complexfixed point in-place FFTroutines. Thecore code is written in a format such that a C-compiler for ARM can translate each line into a single instruction, with optimal scheduling for ARM.It is optimized to makemaximum use of the full ARM register set so as to minimizethe cycle time used for ’load’ and ’store’ operations. In our case, the scheduling is smartly tuned by Microsofl’s EmbeddedVisual C++for our processor, allowing the FIT code to run efficiently. digitally The FFTis an efficient algorithm for computing the N-point Discrete Fourier Transform. (DFT) [15]. The DI~Tof a finite length sequenceof length N is N-I X[k] =~_.,xtnlW ..... N*", k = 0,1...... N-1 (45) Where (46) WN -j : (2~/N) e Andthe inverse DFT(IDFT) is given 1 N-I kn xfn] , = --~Zk o X [klW~ k = 0,1...... N- 1 (47) 28 The goal in FFTis to exploit the symmetryand periodicity properties of Wx to reduce the amountof computation. Radix-2 FFTis usually used since it can be applied to any DFTof size N that is the powerof 2 However,dependingon the size of the DET,if it is of a powerthat is higher than 2 ( i.e. N = v) t hen using r adix-4 i s more e fficient c omputationally. L et u s s ee t he derivation of the radix-4 decimationin frequency FFTalgorithm [16]. X[k] = ~ n=0 N/4-1 N/2 I 3N/4-1 n=0 n=N/4 n=N/2 Z x nlwn+ N-1 +Z Z n=3N/4 (48) Fromdefinitions of twiddle factor, WNkN/ 4 = (_j)k,,,WUkN=/ 2(--1) ~,’’NW 3kN/ 4 = (j)k (49) Thus, ~v/4-1 I- N x[n + ~1 + (j)~ x[n 3N.~. ,,,~ Where X[4k]= 4 N N 3N.~. 0~ x[n]+x[n+7]+x[n+7]+x[l,+T]~W~WN, N/4-1~ n=O n=O X[4k 3]= ~ ~x[n]+ jx[n 7]- - 29 Note that the input of each N/4-point DFTis a linear combinationof 4 signal samples scaled by a twiddle factor. This procedureis repeated only v times, wherev = log4 N as comparedto that for radix-2 FFT, wherev = log_~ N. Since radix-4 FFTrequires less computation and is relatively simple to implement, we’, will standardize and use FFTsof size 43 = 64 for our system, using the given radix-4 butterfly designs, shownin Figure 9. 0 q ¯ , O Figure9. (a) ButterflyComputation for radix-4FFT(b) Simplified Thus our FFT design will consist of 3 stages, where radix-4 butterfly operations will be performedbetween each stage. For each stage, since 4 input levels give the same output levels, wehave N input registers for a stage and N output registers for the samestage. So we only need one bankof N registers, whichresults in low storage and the option of doing in-place calculations, i.e. using the sameregister for input and output. 30 Our choice for using radix-4 FFTscan be further justified in table 2 [16]. It is shownthat the numberof multiplications and additions required for FFTsof size 64 using radix-4 is less than that for the samesized FFTusing radix-2. 16 32 64 128 256 512 1024 24 88 264 72 1800 4360 10248 20 208 2O4 1392 3204 7856 20 68 196 516 1284 3076 7172 152 4O8 1032 2054 5896 13566 30728 148 976 972 5488 12420 28336 148 388 964 2308 5380 12292 27652 Table2. Number of nontrivial multiplications andadditions to computean N-pointFFT Finally we further modifiedthe radix-4 FFTalgorithm implementationso that it uses Fixed Point arithmetic. As mentioned before, our Intel PXA270processor lacks an FPUthat can do fast floating point calculations. In our processor, floating point data types are emulated and add a significant amountof overheadclock cycles (at least to an order of magnitudeslower in speed as shownin our experiments). Therefore, the use of fixed point data types is attractive in this case even though it adds some complexity as well as possibility of overflow events. This will be discussed further in detail (see Section 5.2) since Fixed Point Arithmeticis used regularly in other componentsof the system other than FFT. Oncehaving optimized I-D FFTcode, it is trivial to use that to perform 2-D FFTon the face images. The steps are as follows. Since our imageis a matrix of size 64 x 64, first weperform64point 1D-FFTson each row, then we perform 64-point I D-FFTson each column of the result, and this final array will be our 2-D FFTof our face image. The operation is similar for the 2-D IFFToperation also. 31 5.2 Fixed Point Arithmetic Since the Intel PXA270 processor is an integer processor, all floating point operations have to be emulated using integer arithmetic. This conversion is often very slow so we use fixed point arithmetic [17] instead of floating point to increase the performanceof the algorithms used in our system. Fractional quantities can be approximatedusing a pair of integers (n,e), namelythe mantissa and the exponent. Thefraction F is represented as -~" F= n2 (52) If e is a variable quantity and unknown at compiletime then (n,e) is a floating point number.If is knownin advance at compile time then (n,e) is a fixed point number.Fixed point numberscan be stored in standard integer registers by storing the mantissa. However,fixed point arithmetic has a problem with regards to range and precision. Dependingon the operation, the fraction can overflowor underflow. Therefore, we have to observe the range in whichthe fraction variables in the system fluctuate, and determine the appropriate e to use for each variable. Althoughit is a tedious task, wemanagedto increase the performancefor every algorithmused at least by a factor of two. 5.3 Optimization results To see the improvementin speed, we comparethe time taken to perform I D FFTs using fixed point arithmetic and floating point arithmetic on the ARM processor. 32 Table3. Comparison of time taken for FFTsbetweenFloating Point andFixed Point Arithmetic 28000 ms = 28 sec 9000ms= 9 sec 21.88 ms 7.03 ms Fromthe results, wecan see that there is a significant increase in speed of approximatelya factor of 3 whenwe use fixed point implementation. The next important feature we have to look at is the accuracy of using fixed point arithmetic. Weperform a 2D FFTon a 64x64 complexmatrix using fixed point data and comparethe result to Matlab’s 2D FFTresult of the same 2D array. The meansquared error betweenthe two arrays is 8x10-7, whichis very small, verifying that the fixed exponent values weused are adequate to provide accurate fixed point approximations. Figure10. Facebeingdetected 33 5.4 Face Detection Face detection is a necessity whenit comesto developing a real time face recognition system. This provides us with real-time automatic extraction of the face image, whichis essential for our system due to its need for "on-the-spot" verifications. In order to achieve a fast and efficient recognition system on a limited platform such as the PDA,we require the use of a rapid face detection algorithm, and so we employthe one introduced by Viola-Jones [ 18]. Similar to the work of Papageorgiou et al. [19], Viola-Jones’ detection system uses a set of features whichare reminiscent of Haar basis functions. Andin order to computethese features at a rapid speed at manyscales, it uses a newimagerepresentation called "integral image". Theintegral imageat point (x,y) is the sumof the pixels aboveand to the left of (x,y), inclusive: ii(x, y) = Z i(x;, (53) Whereii(x,y) is the integral imageand i(x,y) is the original image. Andusing the followingpair of recurrence equations: s(x, y) = s(x, y 1)+ i(x, y) 154) ii(x, y) = ii(x - 1, y) + s(x, y) (55) Wheres(x,y) is the cumulative row sum, the integral image can be computedwith just one pass over the original image. Integral imageis actually closely related to "summed area tables" as used in graphics [20], but a different nameis used by Viola-Jones in order to emphasizeits use for the analysis of images, rather than texture mapping. Another approach that Viola-Jones used to enhance the speed for face detection is to use a variant of AdaBoost[21] for training the classifiers. AdaBoostis a learning algorithm that boosts the classification performanceof a simple learning algorithm. It combinesa collection of weakclassification functions to form a stronger classifier. It can be 34 considered as a greedy feature selection process. The resulting classifier is computationally efficient, since only a small numberof features need to be evaluated during mntime. The last important feature of Viola-Jones’ detector is the use of an algorithm for constructing a cascade of classifiers which achieves increased detection performance while reducing computationtime. The key idea is that smaller boosted classifiers can be constructed whichreject manyof the negative sub-windows,while detecting almost all the positive instances. Simpler classifiers are used to reject the majority of sub-windowsbefore more complexclassifiers used to achieve low false positive rates. Cascade stages are built by training classifiers are using AdaBoost.The overall form of the detection is that of a degenerate decision tree, whichis called a "cascade" [22]. A positive result from the first classifier triggers the evaluation of a second classifier whichhas also been adjusted to achieve very high detection rates. A negative outcome at any point leads to the immediaterejection of the sub-window. Withthese three important features, Viola-Jones’ detector is able to minimizecomputationtime while achieving high detection accuracy. Evaluated on the MIT+CMU test set, Viola-Jones’ detector is performs very well competingwith the other two very famous face detectors; namely the Rowley-Baluja-Kanade detector [23] and the Schneiderman-Kanade detector [24]. Hence, it is a viable face detector for our system given its fast implementation. With regards to using the same fixed point computation on our face detection algorithm [18], the table belowshowsthat the overall performancehas increased approximatelya factor of 2 as well. Table4. Comparison of timetakenfor face detectionbetweenFloatingPoint andFixedPoint Arithmetic 130000 ms = 130 sec 60000 ms = 60 sec 1300 ms= 1.3 sec 600 ms= 0.6 sec 35 5.5 Online Training Scheme given a Video Sequence Since our PDAsystem is portable, it is only sensible for us to include a real time enrollment system so that wecan synthesize correlation filters on-the-fly as the user simply looks into the camera and maybemovesthe PDAaround. An advantage that correlation filters has is that they can synthesize a single filter template from multiple training images. Therefore, whenthe PDA system is given a video-stream of face images from the authentic person, filters can be created based on every video frame captured. Savvides [25] introduced an online-training algorithm for advancedcorrelation filters based on this idea. Theflow graph is given on the next page. Thekey idea is this: first webuild a filter froma few images,then cross-correlate the next frame with the synthesized filter. If the PSRresult is smaller than somethreshold 01, weinclude it in the current training set and re-synthesize the current filter. Everytime wedo this, weneed to test the quality of the filter by cross-correlating the filter with the current training set, and makesure no PSRresult is smaller than the minimum threshold 0~_. If so, it meansthat the filter has reached its maximum capacity and westart building a newfilter based on the same procedure. Correlation filters still face a challenge in pose changes, as they capture the relative geometrical structure of the facial features while ignoring the lower spatial frequencies. In order for the filters to better handle pose changes, it is necessary for the expected pose changes to be shownas examples during the online enrolment. Scale changes (i.e. the user moveshis face towards and awayfrom the camera) are one of such pose changes and other examples can be madeby the user simply movingthe PDAaround during the enrollment process. 36 ~itia liz e F ilte rs F [n~/~ ~ n=l, i=1 Cross-Correlate M with all Filters[1 ..n] and com pute M axPS R. Include M in current training set. T raining_S et[i]= M i= i+ 1 Build current Filter F[n] using im ages from T raining_S et[1 ..i] Cross-Correlate current Filter F[n] with all i im ages in Training_S et[1 ..i] and com pute M inPS R. Create Empty New Filter. n=n+l Training Set. i=1 Figure11. Flowdiagram of the online-trainingalgorithmfor synthesizingcorrelationfilters 37 Chapter 6 Selecting a Suitable Correlation Filter 6.1 PDA Face Database Our face database has 12 individuals, each having 10 face imagesfor training and another 10 face images for testing collected using the PDA.Every image contains pose changes, expression variations as well as illumination variations. These differences are moreapparent in the testing images compared to the training images. Since our portable system will be facing variable environmentconditions frequently, it is necessary for us to perform experiments that simulate similar variations, thus no additional face normalizationwas done (i.e. we did not manuallyalign the faces based on hand-picked eye-locations): The imagesused in the evaluation are exactly as those automatically detected using the PDA’sface detecting module[18] and then automatically normalized and saved as 64x64pixel sized images. Figure12. TrainingSet of 10thPerson 38 6.2 Face Identification Experiment Using the PDAface database that is collected implemented on the PDA, we trained from Viola-Jones’ detector OTSDF, UOTSDFand MACH filters [18] which was mentioned in chapter 3 using the online training method (see Section 5.51). These particular types of filters because they are known to be noise and distortion-tolerant, evaluated on the challenging OTSDFfilters, trade-off filter PDAface database are chosen which will be important we have collected. when For the UOTSDFand the c~ parameter is chosen at different values to obtain the optimumnoise-tolerant that can be used for face identification. The table below shows the identification rate of each implementation: Table 5. Identification Rate for filter implementations 100% 1 OO% 100% 93.33% 1 OO% 100% 99.17% 99.17% 44.17% From Table 5, it clearly shows that UOTSDFand OTSDFexcel in performance MACH,given that the database images contain illumination, Therefore, it shows that UOTSDF and OTSDFfilters makes them suitable candidates expression are tolerant compared to and pose variations. to these variations, for our PDA face recognition and this system with regards to identification. 6.3 Face Verification Experiment Similar to Section 6.2, we train OTSDF,UOTSDFand MACH filters to evaluate their performance based on the PDAface database. Firstly, and plot their ROCcurves we evaluate to see which ct parameter value produces optimal UOTSDFand OTSDFfilters. 39 ~.T~, Filter O alptna = 0 9E99 -- alpha = 0 999 × alpha = 0 99 -- -- alpha= o_.,o 02 0 02 08 0_4 06 Probability of False Acceptance 1 Figure 13. OTSDF Filter ROCcurves for different ~t values UOTSDF Fiiter ROCs C, alpha = 0 9999 -- alpha = 0 999 × alpha = 0 99 -- -- alpha = 0 9 0~ 0 02 ~ 0~ Probabilit,>,of False,~.cce~tance 08 1 Figure 14. UOTSDF Filter ROCcurves for different ~t values 4O For both filters, we can easily see that ct = 0.999 is the optimumvalue to use, with an Equal Error Rate (EER) of 7.5% each. Since UOTSDFand OTSDFhave similar we compare just the OTSDFfilter, obtained when correlating with ~ = 0.999 with the MACH filter. both filters with the testing correlation outputs), we compare to see how well each filter impostors. By comparing the results for class separation between the authentic (indicated the OTSDFfilter, ROCcurves for each c~ value, Based on the results we set (12 people x 10 images = 120 discriminates the authentic from the 3, we can observe a much clearer margin of by dashed lines) and the 11 other imposters PSRs for as shown in Figure 15, than for the MACH filter, as shown in Figure 16. PSRPe#ormance for Class 3 using OTSDF (alpha = 0,999 20 18 16 14. 12 10 8 6 Figure 15. PSRplot obtained from cross-correlating person 3’s OTSDF filter with database Wecan easily pick a threshold between 8 and 12 to discriminate between the authentic and the imposters for the OTSDF case. In the MACH case, there is no margin of separation at all for the results of the same person. Evidently, OTSDF filter is the better alternative for our system than the MACH filter. The comparison of their ROCcurves to better show their differences is shown in Figure 17. 41 Figure 16. PCEplot obtained by cross-correlating person 3’s MACH filter with database PDA ROCs 08 ’:->otsdf a=¢l __,oo ,, .......... otsdf a=09 ........... MACH 02 0 02 0.8 04 06 Prob:ability of False ~.cceptanc,~ Figure 17. ROCcurves comparison between OTSDF filter 1 and MACH filter 42 As shown,the MACH filter’s performanceis significantly poorer than the OTSDF filter. It has an EERof 25.5% comparedto OTSDF’sEERof 7.5%. In very secure systems we typically want the False Acceptance Rate (FAR) to be 0%, so we measure the False Rejection Rate (FRR) which essentially gives a measure of the verification rate (100%- FRR)i.e. whenno impostors can get in the system. In that case, the OTSDF filter built with a = 0.999, its verification rate is 78.3%@ 0%FAR,a good result considering the different pose, expression and lighting variations we introduced into the PDAface database. Therefore, OTSDF and UOTSDF are the best choices for our PDAface recognition system. 43 Chapter 7 Conclusion Our PDAface recognition system has been successfully implementedto work in real-time on a PDAand it performs remarkably well given its limited computation power and memoryresources. The UOTSDF filter [12] is one of the most important components of the system; as it is computationally efficient and at the same time it yields accurate verification and identification results. In addition, the modified Viola-Jones rapid face detector [18] has madethe PDAsystem real-time feasible. Furthermoreusing fixed-point arithmetic [17] enhancesthe speed of the entire system even further by makingall componentsfixed-point. Our software solution for the PDA platform has allowed it to be flexible enoughto be implementedin any handheld device that can accommodatethe chosen camera. In the future we will examineto develop this system to operate on a cell-phone platform as well as integrate wireless authentication via 802.1 lb and Bluetooth protocols. 44 Bibliography [1] Poh N., Bengio S. and KorczakJ. "A multi-sample multi-source model for biometric authentication" Neural Networksfor Signal Processing, 2002 [2] Intel Corporation. "Intel PXA270Processor for EmbeddedComputing Technical Documents" httI~.//intel.com/design/embeddedt)ca/products/l~xa270/techdocs.hm~2004 [3] M. A. Turk and A. P. Pentland, "Face recognition using eigenfaces," ComputerVision and Pattern Recognition, 1991. [4] T. Chert, Y. J. Hsu, X. Liu, and W. Zhang, "Principle component analysis and its variants for biometrics," ImageProcessing. 2002. [5] Peter N. Belhumeur, Joao P. Hespanha and David J. Kriegman. "Eigenfaces vs. Fisherfaces: Recognition Using Class Specific Linear Projection", IEEE Transactions on Pattern AnaO,sis and MachineIntellgence, vol. 19., No. 7, July 1997 [6] M. Savvides, B.V.K. Vijaya Kumarand P.K. Khosla, "Robust, Shift-Invariant Biometric Identification from Partial Face Images", SPIE Defense &Securi O, Synposium, Biometric Technologies for Human Identification (OR51)2004. [7] M. Savvides and B. V. K. Vijaya Kumar"Quad Phase MinimumAverage Correlation Energy Filters for ReducedMemoryIllumination Tolerant Face Authentication" Audio and Visual Biometrics based Person Authentication (A VBPA),Surrey, U.K. 2003 [8] T. Sim, S. Baker, and M. Bsat, "The CMUPose, Illumination. and Expression (PIE) database humanfaces." The Robotics Institute, Carnegie MellonUniversity, 2001. variance synthetic discriminant functions." J.Opt.Soc.Am., vol. A 3, [9] B.V.K. Vijaya Kumar,"Minimum pp. 1579-1584,1986. [10]B. V. K. Vijaya Kumar, A. Mahalanobis, S.R.F. Sims, J.F. Epperson, "Unconstrained correlation filters," AppliedOptics, vol. 33, pp. 3751-3759,1994. [1 lIP. E. H. R. O. Duda,D.G.Stork, Pattern Classification (2~a Edition) [12] Savvides M. "Reduced Complexity Face Recognition using AdvancedCorrelation Filters and Fourier Subspace Methods for Biometric Applications" PhDThesis, Department of Electrical and Computer Engineering, Carnegie Mellon UniversiO,, 2004 variance synthetic discriminant functions," J. Opt.Soc.Am.,vol. A 3, [13] B. V. K. Vijaya Kumar,"Minimum pp. 1579-1584, 1986. [ 14] Jan-DerkB akker. "Fast Fourier TransformIbr ARM" http://www,lart. tudel~, nl/projects/.fi[~-arm/, 2001 [15] Alan V. Oppenheim,Ronald W. Schafer with John R. Buck. "Discrete-Time Signal Processing" 1999 Ja-Ling Wu. "Fast Fourier Transform" http://www.cmlab.csie.ntu.cdu.tw/ [16] Dr cml/dsp/training/coding/transtorm/fft.html [17]Advanced RISCMachines Ltd (ARM)."Fixed Point Arithmetic on the ARM"11996 [18] Paul Viola, Michael J. Jones, "Robust Real-time Object Detection", CambridgeResearchLaboratories, CRL 2001/01 [19]C. Papageorgiou, M. Oren, and T. Poggio. "A general framework for object detection." In International Conference on ComputerVision, 1998 [20]F. Crow. "Summedarea tables for texture mapping." In Proceedings of SIGGRAPH, volume 18(30, pages 207-212, 1984 [21] Yoav Freund and Robert E. Schapire. "A decision-theoretic generalization of online learning and an application to boosting". In Computational Learning Theo~: Eurocolt ’95, pages 23-37, SpringerVerlag, 1995. [22]J. Quinlan. "Induction of decision trees". MachineLearning, 1:81-106, 1986. [23]H. Rowley, S. Baluja, and T. Kanade. "Neural network-based face detection". In IEEE Patt. Anal. Mach.lntell., volume20, pages 22-38, 1998 [24] H. Schneidermanand T. Kanade. "A statistical methodfor 3D object detection applied to faces and cars". In International Conferenceon ComputerVision, 2000. [25]M. Savvides, B.V.K. VijayaKumar,P.K. Khosla, "Efficient boosting for synthesizing a minimally compactreduced complexitycorrelation filter bank for biometric identification", Signals, Systems and Computers, vol. 1, 2004 45