ICROS-SICE International Joint Conference 2009 August 18-21, 2009, Fukuoka International Congress Center, Japan
PCA-based Face Recognition in an Embedded Module for Robot Applicati
Minku Kang, Hyunjong Cho, and Seungbin Moon
Department of Computer Engineering, Sejong University, Seoul, Korea (Tel : +82-2-3408-3243; E-mail: email@example.com, firstname.lastname@example.org, email@example.com) Abstract: In this paper, we implemented PCA-based face recognition algorithm in an ARM CPU embedded module. We performed experiments in the embedded system using Yale face database to measure the recognition rate and processing time. We showed that the computation time has been improved much, while the recognition rate remains similar, when we employ the conversion of floating point to fixed point arithmetic operation. Keywords: PCA, Face Recognition, Embedded Module, Robot Application
Biometrics employs features such as iris, fingerprint, face, voice, etc., as it is easier and more secure than other existing identity verification methods. Face recognition could be utilized conveniently in robot application compared with other biometric methods, because camera for face recognition is readily available in robot platform while other methods require specific equipments such as fingerprint scanner and iris scanner. Face recognition methods could be divided into two categories: appearance based approaches and feature based approaches. While appearance based approaches use holistic facial features from whole face or specific region in the face, feature-based approaches use geometric facial features, such as eyes, nose, mouth, etc. Appearance based algorithms include PCA (Principal Component Analysis), LDA (Linear Discriminant Analysis), and ICA (Independent Component Analysis). We employed PCA algorithm in the embedded system as other comparative studies showed that it is one of simple and reliable face recognition algorithms.[2, 3] Our previous works confirm that confidence level of PCA algorithm is high under illumination variation conditions.[4, 5]. Since face recognition algorithm requires high computational load, we need to optimize the algorithm in order to employ face recognition in an embedded system. The optimization includes the conversion of floating point to fixed point arithmetic operation and code optimizations such as loop unrolling and code reordering.[6, 7, 8] The aim of this paper is to show that the PCA-based face recognition algorithm is applicable in embedded module, considering the performance and the processing time. We performed experiments in an embedded system using Yale face database to measure the recognition rate and processing time.
The rest of this paper is organized as follows. Section 2 describes PCA-based face recognition algorithm. Section 3 details the conversion process of floating to fixed point operation in order to implement it in an embedded module. Section 4 shows experimental results employing an ARM-based embedded module. Conclusion is given in the last section.
2. PCA-BASED FACE RECOGNITION
Principal Component Analysis (PCA)  statistically reduces dimensions of data by producing the linear least squares subspace of a training set. Given an s-dimensional vector representation of each face in a training set of M images, the PCA could find a t-dimensional subspace which is normally lower dimensional space than original space (t s). All images of a training set are projected onto the subspace, and then sets of weights Wtrain, which describe the contribution of each vector, are calculated. To recognize an identity of a test image, the image is projected onto the same subspace, then a set of weights Wtest is figured out. After the distances between Wtest and each set of Wtrain are obtained, the identity of Wtrain is determined to that of a minimum distance set in Wtrain. The PCA basis vectors are defined as eigenvectors of the scatter matrix ST defined as:
M i =1
(x i ? μ ) ? (x i ? μ )T
where is the mean of all images in the training set and xi is the ith image in the training set. After the training step of PCA, distances between projected training image and a test image are measured by Euclidean metric.
- 4031 -
PR0002/09/0000-4031 ?400 ? 2009 SICE
Authorized licensed use limited to: HEFEI UNIVERSITY OF TECHNOLOGY. Downloaded on January 6, 2010 at 08:59 from IEEE Xplore. Restrictions apply.
3.CONVERSION OF FLOATING POINT TO FIXED POINT OPERATION
Generally, embedded systems have lower performance and limited memory in comparison with high-end platforms such as desktops. In particular, execution of floating-point arithmetic in embedded systems is very slow because embedded processors generally are not equipped with FPU (Floating Point Unit). Therefore, alternative approach to calculate floating point arithmetic is necessary. In this paper, we convert all floating point arithmetic into fixed point arithmetic, using Q-format. Given a floating point number, we first convert this number into a fixed point number by multiplying a big number, as in Eq. (2).
The embedded system used in the experiment consists of two parts, namely, development platform and embedded module, as shown in Fig. 1 and 2. Once the development of software is achieved, only embedded module will be utilized in a final product. The size of embedded module is only 25 x 67 mm, small enough to be used in face recognition system, for example for entertainment robot. The role of development platform is to facilitate the software development by providing various communication means, including RS-232c, USB, Ethernet, and VGA. The block diagram describing the interconnection between development platform and embedded module is shown in Fig. 3.
y = x * 2n ,
where x is a given floating point number, y is the converted fixed point number, and 2n is the multiplication factor. We specifically use n = 10 (Q10) when overflow problem is expected and n = 20 (Q20) when underflow problem is expected. After the final fixed point result is obtained, we convert it back to floating point number by dividing it accordingly. For multiplication and division operations, we need to perform them as in Eq. (3).
Figure 1. Embedded module
y 3 = ( y1 ? y 2 ) >> n, y 3 = ( y1 << n ) / y 2 ,
where yi are the converted fixed point numbers and denotes shift operation.
In PCA algorithm, the most typical floating point operation occurs when we calculate a square root of a number. It can be accomplished using Babylonian method as in Eq. (4)
x0 = S , xn +1 = 1 S xn + , 2 xn
Figure 2. Development platform
S = lim xn ,
where S is the initial value. This method can be easily converted to fixed point arithmetic, since this operation consists of only arithmetic operations. Calculation of a square root is expected in many aspects of PCA algorithm, such as Jacobi eigenvalue calculation and evaluation of Euclidian distance. Figure 3. Main module and Development module block diagram
- 4032 Authorized licensed use limited to: HEFEI UNIVERSITY OF TECHNOLOGY. Downloaded on January 6, 2010 at 08:59 from IEEE Xplore. Restrictions apply.
The embedded module has CPU of ARM 624 MHz. Specifications of the embedded module are shown in Table 1. Table 1. Specifications of the embedded module Chip Type Clock Chip Type Capacity ARM920T-PXA270 (Intel, Bulverde) 32bits, Xscale 624MHz K4S513233F-EL75 32bits, SDRAM (Samsung) 64MB
Some examples of preprocessing are shown in Fig. 4.
Figure 4. Images after preprocessing In order to show the validity of the conversion algorithm of floating point to fixed point operation, we compared the Euclidean distances of similarity calculated both from with and without conversion in Table 3. ID is number designating each of 10 people and the distance is average of minimum Euclidian distance between test image and training image. We may conclude that two results are similar as it can be seen in Table 3. Table 3. Difference of the similarity distance ID 1 2 3 4 5 6 7 8 9 10 distance Without With conversion conversion 283.040998 284.401825 278.937303 280.845917 238.59925 240.794403 271.49963 273.612976 314.169744 315.564514 254.345625 255.634562 243.152145 244.145634 301.753265 303.108945 268.38547 270.45402 298.645235 299.92342 Difference 1.360827 1.908614 2.195153 2.113346 1.39477 1.288937 0.993489 1.35568 2.06855 1.278185
In this experiment, we applied Yale Face Database B  which consists of captured images of 10 people in 9 poses and 64 illumination changes. For training images, we used images with no illumination change per person. Remaining images are used as test images. For test images, we have used 5 different test data with illumination variances as shown in Table 2. Test 1 data is the worst illumination condition, while Test 5 is the best illumination condition. Table 2. Illumination conditions of test images Direction Left~Right Up ~ Down Left~Right Up ~ Down Left~Right Up ~ Down Left~Right Up ~ Down Left~Right Up ~ Down Range -35°~ +35° -20°~ +45° -25°~ +25° -20°~ +20° -20°~ +20° -20°~ +20° -20°~ + 20° -10°~ +10° -10°~ +10° -10°~ +10°
Test 1 Test 2 Test 3 Test 4 Test 5
The parameters for PCA algorithm we employed are given below. Eigenvector corresponding to largest eigenvalue was removed. Eigenvectors corresponding to last 40 % of eigenvalues were removed. Euclidian distance is used to similarity measure.
The average recognition rate employing PCA algorithm at each test data is shown in Table 4. Recognition rate is calculated when the successful matching occurs by rank 1 candidate. As expected, we found that the conversion algorithm does not affect the recognition rate much, since the distances are similar as in Table 3. Table 4. Average Recognition Rate Average Recognition Rate (%) Without With conversion conversion 91.3 90.0 98.9 97.2 100 98.1 100 99.0 100 100
For preprocessing of face image, following steps are applied to obtain the best performance. Alignment according to face fiducial points for example, eyes. Resizing to 32x32. External components of faces (hair, chin) were cropped. Histogram equalization is applied to compensate illumination variations.
Test 1 Test 2 Test 3 Test 4 Test 5
- 4033 Authorized licensed use limited to: HEFEI UNIVERSITY OF TECHNOLOGY. Downloaded on January 6, 2010 at 08:59 from IEEE Xplore. Restrictions apply.
The average computation times for training and recognition for the cases with and without conversion are shown in Table 4. While the case with conversion is over 2 times faster in training, it is over 4 times faster in the recognition stage. Table 4. Average computation times Without conversion Training Recognition 945 ms 14 ms With conversion Training Recognition 398 ms 3 ms
In this paper, we implemented PCA-based face recognition algorithm in an embedded module. We showed that the computation time has been improved much, while the recognition rate remains similar, when we employ the conversion of floating point to fixed point arithmetic operation. In the future, we will extend our work to the real-time environment so that the test data is supplied from the camera mounted on the mobile robots. The improvement of recognition rate employing the real-time test data will be our next research topic, since the real-time test data will be more susceptible to illumination variance and pose variations.
 M. Wei and A. Bigdeli, "Implementation of a Real-Time Automated Face Recognition System for Portable Devices", IEEE International Symposium. Communications and Information Technology., vol.1, pp. 89-92, 2004.  K. Jeong, D. Han, Y. Kim and H. Moon, "Optimization of Face Recognition Algorithms for Ubiquitous Computing Environment", Second International Conference. Future Generation Communication and Networking., vol. 2, pp. 298-301, 2008.  W. S. Yambor, "Analysis of PCA-based and Fisher Discriminant-based Image Recognition Algorithms", Technical Report, CSU, 2000.  Yale Face Database B, "http://cvc.yale.edu/ projects/yalefacesB/yalefacesB.htm
 S. Nananvati, M. Thieme, and R Nanavati, Biometrics: Identity Verification in a Networked World, John Wilely & Sons, USA, 2002  K. Delac, M. Grgic, and S. Grgic, “Independent Comparative Study of PCA, ICA and LDA on the FERET Data Set”, International Journal of Imaging System and Technology, Vol. 15, No. 5, pp. 252-260, 2005.  Ruiz-del-Solar, J. and Quinteros, J., “Illumination compensation and normalization in eigenspace-based face recognition: A comparative study of different pre-processing approaches”, Pattern Recognition Letters, Vol. 29, No. 14, pp. 1966-1979, 2008  H. Cho, M. Kang and S. Moon, “Analysis on the reliability of PCA-based face recognition”, Journal of the Institute of Electronics Engineers of Korea, pp. 101-102, 2008.  H. Cho, M. Kang and S. Moon, “Study on the reliability of PCA-based face recognition using multiple training images”, Journal of the Institute of Electronics Engineers of Korea, pp. 853-854, 2008.  N. Aaraj, S. Ravi, A. Raghunathan and K. Jha, "Hybrid Architectures for Efficient and Secure Face Authentication in Embedded Systems", IEEE Trans. Very Large Scale Integration (VLSI) Systems, vol.15, no.3, pp.296-308, 2007
- 4034 Authorized licensed use limited to: HEFEI UNIVERSITY OF TECHNOLOGY. Downloaded on January 6, 2010 at 08:59 from IEEE Xplore. Restrictions apply.