W artykule przedstawiono koncepcję oraz realizację sprzętową mikrosystemu do rozpoznawania twarzy z użyciem metody PCA (Principal Component Analysis) [1-3]. Jako platforma sprzętowa użyty został układ programowalny SoC z rodziny Zynq firmy Xilinx [4]. Realizacja PCA polega na zbudowaniu bazy danych w oparciu o obrazy źródłowe a następnie dopasowaniu poszukiwanej twarzy w bazie danych. W artykule przedstawiono implementację programową w środowisku MATLAB/PC oraz implementację w układzie SoC. Obydwie implementacje przetestowano i przebadano pod względem złożoności oraz szybkości działania. Przedstawiono również ich zalety i wady.
EN
This paper describes the design and implementation of the integrated microsystem for face recognition in digital images, based on a new SoC Zynq from Xilinx [4]. Zynq is a new class of SoCs which contains an industry-standard ARM dual-core Cortex-A9 processing system and 28 nm programmable logic. Face recognition is performed by the well known PCA algorithm (Principal Component Analysis) [1-2]. The proposed microsystem creates database from a number of source images and then identifies faces by PCA fitness. The algorithm was implemented in a twofold way: (1) using MATLAB/PC, and (2) hardware platform based on ZedBoard from Avnet with Zynq XC7Z020 SoC. Both versions of implementations were tested in terms of complexity and speed. It was proved that the hardware implementation worked properly and gave exactly the same results as a software algorithm running on the PC platform. Experimental tests of the PCA-based face recognition system were performed with the use of ORL database [6]. The hardware implementation is relatively slower but fast enough for most real applications of face detection systems in mobile, handheld terminals. Since the proposed microsystem is based on the embedded dual-core ARM Cortex A9 processor and uses Linux kernel it can be easily extended and connected to other digital devices using standard communication interfaces (including wireless channels).
W artykule przedstawiono koncepcję i projekt mikrosystemu do detekcji twarzy w obrazach cyfrowych z użyciem układu programowalnego SoC z rodziny Zynq firmy Xilinx [1]. Algorytm detekcji twarzy polega na wyodrębnieniu podstawowych cech twarzy i określeniu ich położenia w obrazie. Przedstawiono wyniki implementacji programowej w środowisku MATLAB/PC oraz implementacji sprzętowej. Obie implementacje przebadano pod względem złożoności oraz szybkości działania. W realizacji sprzętowej uzyskano porównywalną szybkość detekcji/lokalizacji twarzy i ponad 10-krotnie krótszy czas wyodrębniania cech twarzy.
EN
In this paper there is presented the design of an integrated microsystem for face detection in digital images, based on a new SoC Zynq from Xilinx [1]. Zynq is a new class of SoCs which combines an industry-standard ARM dual-core Cortex-A9 processing system with 28 nm programmable logic. This processor-centric architecture delivers a comprehensive platform that offers ASIC levels of performance and power consumption, the ease of programmability and the flexibility of a FPGA. The proposed algorithm for face detection operates on images having the resolution of 640x480 pixels and 24-bit color coding. It uses three-stage processing: normalization, face detection/location [2] and feature extraction. We implemented the algorithm in a twofold way: (1) using MATLAB/PC, and (2) hardware platform based on ZedBoard from Avnet [3] with Zynq XC7Z020 SoC. Both implementations were examined in terms of complexity and speed. The hardware implementation achieved a comparable speed of face detection/location but was over 10-times faster while extracting the features of faces in digital images. A significant speedup of feature extraction results from the parallelized architecture of a hardware accelerator for calculation of mouth and eyes locations. The proposed microsystem may be used in low-cost, mobile applications for detection of human faces in digital images. Since the system is equipped with the Linux kernel, it can be easily integrated with other mobile applications, including www services running on handheld terminals with the Android operating system.
W artykule przedstawiono i porównano wyniki implementacji przykładowego algorytmu detekcji twarzy w obrazach cyfrowych na trzech platformach sprzętowych: z użyciem CPU (Matlab), w strukturze programowalnej FPGA z procesorem sprzętowym PowerPC [1], oraz z wykorzystaniem CPU z akceleracją GPU. Powyższe implementacje przebadano eksperymentalnie pod względem złożoności implementacji i szybkości działania poszczególnych fragmentów algorytmu. Porównano je ze sobą oraz przedstawiono najlepsze obszary zastosowań poszczególnych z nich.
EN
This paper describes comparison of hardware implementations of a face detection algorithm using three different platforms: (1) classic CPU implementation (Matlab), (2) implementation with use of programmable logic - FPGA with hardware processor PowerPC [1], and (3) CPU based version with GPU acceleration. These tree versions have been experimentally tested and compared in terms of the required hardware resources and operating speed, which is of great importance in most practical applications. We also discuss advantages and drawbacks of these three approaches to hardware implementation of face detection algorithms. In particular, we formulate some important conditions that the analyzed image must meet to obtain the optimum effectiveness of the face detection algorithm implemented on each platform. Finally, we show that use of GPU acceleration can take advantage of the classic CPU and parallel computing accessible to FPGA. The proposed solution of skin color detection time for the CPU with GPU acceleration is over 100 times shorter than that for the solution with the classical CPU. As a programmable device we have used FPGA Virtex-4 chip from Xilinx, and as a GPU accelerator we have utilized graphic card nVidia GeForce 8600 GT.
W artykule przedstawiono wyniki badań dotyczących sprzętowej implementacji algorytmu detekcji twarzy w obrazach cyfrowych z wykorzystaniem układów programowalnych FPGA (Xilinx). Przeprowadzono symulację algorytmu w środowisku PC - Matlab. Przebadany wstępnie algorytm zaimplementowano w układzie FPGA Virtex-4. Wykonano badania eksperymentalne, w których porównano szybkość działania algorytmu w wersji programowej i sprzętowej oraz określono zajętość zasobów układu FPGA.
EN
In this paper there are presented recent results of the authors' work on implementation of face detection algorithms in digital images based on FPGA technology from Xilinx. There was considered a number of existing face detection methods, described in papers [1-3] to find out which one is the best for implementation in a single FPGA device. Then the authors proposed a modified algorithm for face detection that was tested using PC - MATLAB environment. The results of software simulations were used for appropriate adjusting of some essential parameters, according to the requirements of FPGA implementation (the basic limitation is a total number of FPGA resources). The main results of simulations are shown in Tab. 1. The final version of the algorithm was im-plemented in a Virtex-4 FPGA device and tested using a set of example digital images. An important advantage of the proposed SoC for face detection is its speed (2-4 times higher than that for software implementation, as it is shown in Tab. 2). Furthermore, this speed does not depend on the window size used in image analysis. There was also reported the final utilization of FPGA resources (Tab. 3). The experimental results obtained from laboratory tests of the proposed face detection algorithm implemented in a single FPGA device show that the hardware approach to face detection problem has important advantages: high speed, flexibility and relatively low requirements on the total number of FPGA resources.
JavaScript jest wyłączony w Twojej przeglądarce internetowej. Włącz go, a następnie odśwież stronę, aby móc w pełni z niej korzystać.