An implementation of PCA and ann - based face recognition system on coarse - grained reconfigurable computing platform

Abstract: In this paper, a PCA and ANN-based face recognition system is proposed and

implemented on a Coarse Grain Reconfigurable Computing (CGRC) platform. Our work is quite

distinguished from previous ones in two aspects. First, a new hardware-software co-design method

is proposed, and the whole face recognition system is divided into several parallel tasks implemented

on both the Coarse-Grained Reconfigurable Architecture (CGRA) and the General-Purpose

Processor (GPP). Second, we analyzed the source code of the ANN algorithm and proposed the

solution to explore its multi-level parallelism to improve the performance of the application on the

CGRC platform. The computation tasks of ANN are dynamically mapped onto CGRA only when

needed, and it's quite different from traditional Field Programmable Gate Array (FPGA) methods in

which all the tasks are implemented statically. Implementation results show that our system works

correctly in face recognition with a correct recognition rate of approximately 90.5%. To the best of our

knowledge, this work is the first implementation of PCA and ANN-based face recognition system on a

dynamically CGRC platform presented in the literature.

An implementation of PCA and ann - based face recognition system on coarse - grained reconfigurable computing platform trang 1

Trang 1

An implementation of PCA and ann - based face recognition system on coarse - grained reconfigurable computing platform trang 2

Trang 2

An implementation of PCA and ann - based face recognition system on coarse - grained reconfigurable computing platform trang 3

Trang 3

An implementation of PCA and ann - based face recognition system on coarse - grained reconfigurable computing platform trang 4

Trang 4

An implementation of PCA and ann - based face recognition system on coarse - grained reconfigurable computing platform trang 5

Trang 5

An implementation of PCA and ann - based face recognition system on coarse - grained reconfigurable computing platform trang 6

Trang 6

An implementation of PCA and ann - based face recognition system on coarse - grained reconfigurable computing platform trang 7

Trang 7

An implementation of PCA and ann - based face recognition system on coarse - grained reconfigurable computing platform trang 8

Trang 8

An implementation of PCA and ann - based face recognition system on coarse - grained reconfigurable computing platform trang 9

Trang 9

An implementation of PCA and ann - based face recognition system on coarse - grained reconfigurable computing platform trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 17 trang baonam 3980
Bạn đang xem 10 trang mẫu của tài liệu "An implementation of PCA and ann - based face recognition system on coarse - grained reconfigurable computing platform", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: An implementation of PCA and ann - based face recognition system on coarse - grained reconfigurable computing platform

An implementation of PCA and ann - based face recognition system on coarse - grained reconfigurable computing platform
VNU Journal of Science: Comp. Science & Com. Eng, Vol. 36, No. 2 (2020) 52-67 
52 
Original Article 
An Implementation of PCA and ANN-based 
Face Recognition System on Coarse-grained 
Reconfigurable Computing Platform 
Hung K. Nguyen*, Xuan-Tu Tran 
VNU University of Engineering and Technology, 144 Xuan Thuy, Cau Giay, Hanoi, Vietnam 
Received 21 September 2020 
Revised 23 November 2020; Accepted 27 November 2020 
Abstract: In this paper, a PCA and ANN-based face recognition system is proposed and 
implemented on a Coarse Grain Reconfigurable Computing (CGRC) platform. Our work is quite 
distinguished from previous ones in two aspects. First, a new hardware-software co-design method 
is proposed, and the whole face recognition system is divided into several parallel tasks implemented 
on both the Coarse-Grained Reconfigurable Architecture (CGRA) and the General-Purpose 
Processor (GPP). Second, we analyzed the source code of the ANN algorithm and proposed the 
solution to explore its multi-level parallelism to improve the performance of the application on the 
CGRC platform. The computation tasks of ANN are dynamically mapped onto CGRA only when 
needed, and it's quite different from traditional Field Programmable Gate Array (FPGA) methods in 
which all the tasks are implemented statically. Implementation results show that our system works 
correctly in face recognition with a correct recognition rate of approximately 90.5%. To the best of our 
knowledge, this work is the first implementation of PCA and ANN-based face recognition system on a 
dynamically CGRC platform presented in the literature. 
Keywords: Coarse-grained Reconfigurable Architecture; Principal Components Analysis (PCA); Face 
Recognition; Artificial Neural Network (ANN); Reconfigurable Computing platform. 
Face recognition is one of the most common 
biometric recognition techniques that attract 
huge attention of many researchers in the field of 
computer vision since the 1980s.* Today, face 
recognition has proven its important role and is 
widely used in many areas of life. Some 
important applications of face recognition are 
_______ 
* Corresponding author. 
 E-mail address: kiemhung@vnu.edu.vn 
 https://doi.org/10.25073/2588-1086/vnucsce.263 
automatic criminal record checking, integration 
with surveillance cameras or ATM systems to 
increase security, online payment, tracking, and 
prediction of strange diseases in medicine. 
The face recognition system gets an image, a 
series of photos, or a video as input and then 
processes them to identify whether a person is 
 https://doi.org/10.25073/2588-1086/vnucsce.263 
H.K. Nguyen. X-T. Tran / VNU Journal of Science: Comp. Science & Com. Eng., Vol. 36, No. 2 (2020) 52-67 
53 
known or not. The system includes two phases 
which are the feature extraction and the 
classification as shown in Figure 1. 
Feature 
Extraction
Face Image
Classification
Decision
Feature 
Vector
Figure 1. Processes in face recognition. 
The problem we have to deal with when 
implementing a face recognition system is that 
the data set has a very large number of 
dimensionality resulting in a large amount of 
computation which takes a lot of processing 
time. Therefore, a significant improvement 
would be achieved if we could reduce the 
dimensionality of data by mapping them to 
another space with a smaller number of 
dimensionality [16]. Especially, dimensionality 
reduction is indispensable for real-time face 
recognition system while processing high-
resolution images. Feature extraction is a process 
to reduce the dimensionality of a set of raw data 
to more manageable groups for processing. 
Feature extraction selects and/or combines 
variables into features, effectively reducing the 
amount of data that must be processed, while still 
accurately and completely describing the 
original data set. Generally, the feature 
extraction techniques are classified into two 
approaches: local and holistic (subspace) 
approaches. The first approach is classified 
according to certain facial features (such as eyes, 
mouth, etc.), not considering the whole face. 
They are more sensitive to facial expressions, 
lighting conditions, and pose. The main 
objective of these approaches is to discover 
distinctive features. The second approach 
employs the entire face as input data and then 
projects into a small subspace or in correlation 
plane. Therefore, they do not require extracting 
face regions or features points (eyes, mouth, 
noses, and so on). The main function of these 
approaches is to represent the face image by a 
matrix of pixels, and this matrix is often 
converted into feature vectors to facilitate their 
treatment. After that, these feature vectors are 
implemented in small dimensional space. 
The principal components analysis (PCA) 
[15] is one of the popular methods of holistic 
approaches used to extract features ...  the 
feature vector of size 1×30. 
- Hidden Layer: consists of 120 neurons, 
each has 30 inputs, 30 weights and one bias. 
- Output Layer: is made of three neurons 
corresponding to three outputs. Each of neuron 
has 120 inputs, 120 weights and one bias. 
- Number of training times: 10000 times. 
- Learning coefficient: 0.01 
- Permissible error: 10-5 
5.2. Experimental Results 
1) Sigmoid function and its approximation 
Figure 10 shows the chart of Sigmoid 
function and its approximation by Error! 
Reference source not found. and Error! 
Reference source not found. in the range (-8, 
8). Where, the orange line depicts the sigmoid 
function, and the blue line depicts the sigmoid 
function’s approximation. Experiment 
estimation shows that the average error and the 
maximum error of approximation of the sigmoid 
function are εaverage = 0.00774 và εmaximum = 
0.02163. 
2) Functional verification of face 
recognition system 
To functionally verify the face recognition 
system, the training set and testing set are 
extracted from the database as follows. First, 
choose three image sets of three people in the 
ORL database to build the training set. Next, 
take three images of these three people, each 
person one image, and flip that image to create 
the testing set. The purpose of flipping the image 
is to make it different from the image in the 
training set. The training set and testing set is 
shown in Figure 11 and Figure 12, respectively. 
U 
H.K. Nguyen. X-T. Tran / VNU Journal of Science: Comp. Science & Com. Eng., Vol. 36, No. 2 (2020) 52-67 
63 
Figure 10. Chart of Sigmoid function and its approximation. 
Figure 11. Training set including images of three first persons in the ORL database. 
(a) images in the training set 
(b) image not in the training set 
Figure 12.Testing set. 
1st Person Image
2nd Person Image
Kth Person Image
Mst Person Image
PCA
Neural Network 
ANN
0
0
1
0
Kth 
Person
Make
Decision
Feature 
Vector
CPU CGRA CPU
Figure 13. Inference Processing. 
H.K. Nguyen. X-T. Tran / VNU Journal of Science: Comp. Science & Com. Eng., Vol. 36, No. 2 (2020) 52-67 
64 
Figure 14. Simulation results for the first image in the training set. 
Figure 15. Simulation results for the second image in the training set. 
Figure 16. Simulation results for the third image in the training set. 
Figure 17. Simulation results for the image not in the training set. 
Testing images are represented in feature 
vectors before feeding to ANN and the ANN’s 
outputs are compared with the given threshold 
by CPU to make a recognition decision as shown 
in Figure 13. The simulation results of ANN are 
shown in Figure 14, Figure 15, and Figure 16. 
Similarly, take an image that is not included in 
the training set as input to face recognition system. 
Simulation results are shown in Figure 17. 
The computation result of ANN is 
represented by 16-bit fixed-point numbers where 
6 bits represent the integer part, and another 10 
bits represent the fractional part. This result is 
displayed on the output port in the waveform 
window while simulating. For easy viewing, this 
result is left-shifted 10 bits (i.e. multiplied by 
210) to convert to 16-bit integers, as shown in the 
figures Figure 14 - Figure 17 above. The value at 
the output is compared to the threshold by the 
H.K. Nguyen. X-T. Tran / VNU Journal of Science: Comp. Science & Com. Eng., Vol. 36, No. 2 (2020) 52-67 
65 
CPU to determine which face is detected. The 
thresholds chosen for comparison are 0.9 and 0.1 
(values greater than 0.9 are determined to be 1, 
less than 0.1 is decided as 0). To compare with 
the simulation results, these threshold values are 
also left-shifted 10 bits to become values 921 
and 102, respectively. The rules for making 
identification decisions are shown in Table 1. 
Based on the rules in Table 1 and the 
simulation results in figures Figure 14 - Figure 
17, we get the results of identification, as shown 
in Table 2. This result proves that the system is 
functional correctness as expected. 
Table 1. The Rule for making decision 
OUPUT Decision 
Identification 
results 
output(2) > 921 
output(1) < 102 
output(0) < 102 
[1; 0; 0] First Person 
output(2) < 102 
output(1) > 921 
output(0) < 102 
[0; 1; 0] Second Person 
output(2) < 102 
output(1) < 102 
output(0) > 921 
[0; 0; 1] Third Person 
Others [0; 0; 0] Stranger 
3) Performance Analysis of face recognition 
system 
To evaluate the performance of the system, 
we use the training and testing set which are built 
as follows. We use 30 images of the first three 
people in the ORL database as a training set. The 
testing set has 400 images, including 30 flipped 
images of three selected people (to make the 
difference from the training images) and 370 
images of the remaining 37 people in the ORL 
database. 
The validation results are recorded in Table 
3. Here, “strangers” are those who are not in the 
training set, and "acquaintances” are those who 
are in the training set. The result is considered as 
“Correct Identification” (a) when inputting the 
image of an “acquaintance”, the system correctly 
identifies which of the three selected persons the 
image is; or (b) when inputting an image of a 
stranger, the system returns "stranger". On the 
contrary, the result is considered as "Wrong 
identification" when the system mistakenly 
recognizes "stranger" as "acquaintance", 
"acquaintance" as "stranger", or confuses an 
acquaintance with each other. 
Table 2. Identification results 
 First Image Second image Third Image Fourth image 
Displayed result 
(16-bit) 
[1003; 3; 0] [69; 983; 0] [1; 0; 1024] [43; 387; 0] 
* Real result [0.9794; 0.0029; 0] [0.0673; 0.9599; 0] [0.0009; 0; 1] [0.0419; 0.3779; 0] 
Decision [1; 0; 0] [0; 1; 0] [0; 0; 1] [0; 0; 0] 
Identification results First person Seconf person Third person Stranger 
* Real result = Displayed result/210. 
Table 3. Performance Evaluation 
 Number of images Correct Identification Wrong Identification 
First person 10 10 0 
Second person 10 8 2 
Third persom 10 9 1 
Stranger 370 332 38 
H.K. Nguyen. X-T. Tran / VNU Journal of Science: Comp. Science & Com. Eng., Vol. 36, No. 2 (2020) 52-67 
66 
Total 400 359 41 
Ratio 90.5% 9.5% 
l 
Evaluation results show that the system has 
quite high recognition efficiency, achieving 
correct recognition rate of 90.5%. The 
experimental results are compared with the 
results of other works in Table 4. 
Table 4. Performance Comparison 
PCA-ANN PCA 
Our [13] [14] [13] [14] 
90.5% 85% 88% 78% 86% 
Compared to the results of other works using 
the same method, our system achieved 5.5% and 
2.5% higher correct recognition rate than [13] 
and [14], respectively. Compared with using 
only PCA method for identification, the 
recognition results when using the combination 
of two methods are 12.5% and 4.5% more 
accurate than [13] and [14], respectively. 
Table 5 shows the change in recognition 
efficiency when changing the number of hidden 
layer neurons. When the number of hidden layer 
neurons increased from 120 to 150, the 
difference in performance was very small. 
However, when the number of hidden layer 
neurons is reduced, especially when it is reduced 
to 30, the performance is greatly reduced, 
showing that the number of hidden layer neurons 
has a large impact on the identification 
performance of the neural network. This can be 
explained as follows. When the number of hidden 
layer neurons is too small, the network cannot learn 
deeply enough, resulting in poor recognition 
performance. Conversely, increasing the number 
of hidden layer neurons will make the network 
model more complicated and the possibility of 
"over-matching" becomes higher. "Over-
matching" occurs when the trained network 
matches with the training samples so much, 
therefore it answers exactly what has been learned, 
and does not care what is not learned. 
Table 5. Recognition performance vs. number of hidden layer neurons 
Number of neurons 150 120 90 60 30 
Performance 89.75% 90.5% 88.75% 85.25% 80.5% 
i 
6. Conclusion 
In this paper, we presented our work on the 
proposal, implementation and evaluation of PCA 
and ANN-based face recognition system. The 
feature vectors obtained through the PCA 
method are used as the input for training and 
testing the ANN. The combination of PCA 
method and neural network is to improve the 
system's identification efficiency. The face 
recognition system has been hardware/software 
co-designed and implemented on a coarse-
grained reconfigurable computing platform. We 
analyzed the source code of the ANN algorithm 
and proposed the optimization solution to 
explore its multi-level parallelism in order to 
improve the performance of the application on 
the CGRC platform. Our implementation has 
been simulated and validated by the CGRC 
platform of the MUSRA on the Xilinx 
ZCU106 Evaluation Kit. The verification 
process has confirmed that the system works 
correctly in face recognition. The correct 
recognition rate is approximately 90.5%. The 
proposed system gets an improvement on the 
recognition rates over classical PCA face 
recognition system. In addition, the recognition 
performance of our system is higher than the 
PCA-ANN system proposed by other works. It 
is also easy to reconfigure the MUSRA to 
support different ANN configuration (for 
H.K. Nguyen. X-T. Tran / VNU Journal of Science: Comp. Science & Com. Eng., Vol. 36, No. 2 (2020) 52-67 
67 
example, number of layer, number of neurons 
per layer, activation function, etc.). 
Our method on CGRC platform could be 
extended to the algorithm of the other 
applications. In the future work, some aspects 
such as hardware/software partitioning, DFG 
extracting, and scheduling, etc., will continue to 
be optimized according to the architecture of the 
MUSRA to achieve a better performance. 
References 
[1] Y. Jia, E. Shelhamer, J. Donahue, S. Karayev, 
J. Long, R. Girshick, S. Guadarrama, T. Darrell, 
“Caffe”, in the ACM International Conference on 
Multimedia - MM ’14, 2014, pp. 675-678. 
[2] R. Collobert, “Torch7: A matlab-like environment 
for machine learning”, BigLearn, NIPS 
Workshop, 2011. 
[3] S. Tokui, K. Oono, S. Hido, C.S.A S. Mateo, 
J. Clayton, “Chainer: a Next-Generation Open 
Source Framework for Deep Learning”, 
learningsys.org. 
[4] V. Sze, Y.H. Chen, T.J. Yang, J.S. Emer, Efficient 
processing of deep neural networks: A tutorial and 
survey. Proceedings of the IEEE. 105(12) (2017) 
2295-2329. 
[5] I. Tsmots, O. Skorokhoda, V. Rabyk, Hardware 
Implementation of Sigmoid Activation Functions 
using FPGA, In 2019 IEEE 15th International 
Conference on the Experience of Designing and 
Application of CAD Systems (CADSM), IEEE, 
2019, pp. 34-38. 
[6] V. Nair, G.E. Hinton, “Rectified linear units 
improve restricted boltzmann machines”, in Proc, 
ICML, 2010, pp. 807-814. 
[7] R. Istrate, A.C.I. Malossi, C. Bekas, 
D.S. Nikolopoulos, Incremental Training of Deep 
Convolutional Neural Networks, arXiv 2018, 
arXiv:1803.10232. 
[8] S. Guo, L. Wang, B. Chen, Q. Dou, Y. Tang, 
Z. Li, Z. FixCaffe: Training CNN with Low 
Precision Arithmetic Operations by Fixed Point 
Caffe. In Proceedings of the APPT 2017, Oslo, 
Norway, September, 2017, pp. 14-15. 
[9] V. Beiu, J.A. Peperstraete, J. Vandewalle, 
R. Lauwereins, Closse approximations of sigmoid 
functions by sum of step for vlsi implementation of 
neural networks, Sci, Ann, Cuza Univ. 3 (1994) 5-34. 
[10] H.K. Nguyen, M.T. Phan, RTL design of a 
dynamically reconfigurable cell array for 
multimedia processing, In 2017 4th NAFOSTED 
Conference on Information and Computer Science, 
November, IEEE, 2017, pp. 189-194. 
[11] B.J. Oh, “Face recognition by using neural network 
classifiers based on PCA and LDA”, in 2005 IEEE 
International Conference on Systems, Man and 
Cybernetics 2 (2005) 1699-1703. 
[12] Golub, H. Gene, A. Henk, Van der Vorst. 
"Eigenvalue computation in the 20th 
century", Journal of Computational and Applied 
Mathematics 123(1-2) (2000) 35-65. 
[13] Alaa Eleyan, Hasan Demirel, Pca and lda based 
neural networks for human face recognition, 
INTECH Open Access Publisher 558 (2007) 
93-106. 
[14] M.P. Rajath Kumar, K.M. Aishwarya, “Artificial 
neural networks for face recognition using PCA 
and BPNN”, TENCON 2015-2015 IEEE Region 
10 Conference, IEEE, 2015. 
[15] Abdi, Hervé, J. Lynne, Williams, “Principal 
component analysis”, Wiley interdisciplinary 
reviews: computational statistics 2(4) (2010) 
433-459. 
[16] P. Valarmathie, M.V. Srinath, K. Dinakaran, An 
increased performance of clustering high 
dimensional data through dimensionality reduction 
technique, Theoretical and Applied Information 
Technology 5(6) (2005) 731-733. 
[17] A.A.S. Ali, A. Amira, F. Bensaali, M. Benammar, 
Hardware PCA for gas identification systems using 
high level synthesis on the Zynq SoC, in IEEE 
International Conference on Electronics, Circuits, 
and Systems, 2013, pp. 707-710. 
[18] T.C. Chen, W. Liu, L.G. Chen, VLSI architecture 
of leading eigenvector generation for on-chip 
principal component analysis spike sorting system, 
in International Conference of the IEEE 
Engineering in Medicine and Biology Society, 
2008, pp. 3192-3195. 
[19] A. Das, S. Misra, S. Joshi, J. Zambreno, 
G. Memik, A. Choudhary, An efficient FPGA 
implementation of principle component analysis based 
network intrusion detection system, in Proceedings of 
the Conference on Design, Automation and Test in 
Europe, 2008, pp. 1160-1165. 
[20] T. Karnthak P. Kumhom, A hardware 
implementation of PCAbased-on the networks-on-
chip paradigm, in International Symposium on 
Communications and Information Technologies, 
2012, pp. 834-839 
[21] Zynq-7000 SoC Data Sheet, 
devices/soc/zynq-7000.htm, July 2, 2018. 
[22] G. Theodoridis, D. Soudris and S. Vassiliadis, “A 
Survey of Coarse-Grain Reconfigurable 
Architectures and Cad Tools Basic Definitions, 
H.K. Nguyen. X-T. Tran / VNU Journal of Science: Comp. Science & Com. Eng., Vol. 36, No. 2 (2020) 52-67 
68 
Critical Design Issues and Existing Coarse-grain 
Reconfigurable Systems”, Springer, 2008. 
[23] M. Zhu, L. Liu, S. Yin, et al., “A Cycle-Accurate 
Simulator for a Reconfigurable Multi-Media 
System”, IEICE Transactions on Information and 
Systems 93 (2010) 3202-3210. 
[24] Frank Bouwens, Mladen Berekovic, Bjorn De 
Sutter, and Georgi Gaydadjiev: “Architecture 
Enhancements for the ADRES Coarse-rained 
Reconfigurable Array” HiPEAC 2008, LNCS 4917 
(2008) 66-81. 
[25] ZCU106 Evaluation Kit user manual, 
https://www.xilinx.com/products/boards-and-
kits/zcu106.htmll, Oct 23, 2019. 
p 

File đính kèm:

  • pdfan_implementation_of_pca_and_ann_based_face_recognition_syst.pdf