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.
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
Trang 9
Trang 10
Tải về để xem bản đầy đủ
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
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:
- an_implementation_of_pca_and_ann_based_face_recognition_syst.pdf