Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Extensible Storage Engine wikipedia , lookup
Oracle Database wikipedia , lookup
Open Database Connectivity wikipedia , lookup
Microsoft SQL Server wikipedia , lookup
Microsoft Jet Database Engine wikipedia , lookup
Relational model wikipedia , lookup
Functional Database Model wikipedia , lookup
Concurrency control wikipedia , lookup
Database model wikipedia , lookup
A Cluster-Based Parallel Face Recognition System Xiaodong Liu Broadband Network and Multimedia Research Center, Graduate School at Shenzhen Tsinghua University 518055, Shenzhen, P.R.China Guangda Su Department of Electronic Engineering Tsinghua University 100084, Beijing, P.R.China Abstract - The objective of content-based face recognition is to efficiently find and retrieve face images from the database that satisfy the criteria of similarity to the user's query face image. When the database is large and the face image features are complex, the exhaustive search of the database and computation of the face image similarities is not expedient. We use clusters to accelerate the face features matching speed and extend face images storage capacity. In our system, face database is partitioned into small sub-database and they are distributed among the cluster computers like disk RAID0. In this paper, we present a Double Single System Image(Middleware level and Application level) Four Tier Cluster Architecture to provide complete transparency of resource management, scalable performance, and system availability. In addition, Parallel Retrieval Virtual Machine(PRVM) data structure is designed and it improves the maintainability and extensibility of the cluster system. We also propose Multi-process, Multi-thread and Multi-ports(MMM) techniques and synchronized communication mechanism based on TCP/IP Socket to reliably implement parallel retrieval and face recognition between multi-client and multi-server. The experimental results show the cluster face recognition system not only improves the recognition speed, but also extends the data capacity of the system. Keywords: Cluster, Parallel, Face Recognition, Database 1.0 Introduction Over the last ten years, face recognition has become a specialized applications area within the field of computer vision. Sophisticated commercial systems have been developed that achieve high recognition rates. Open market competitiveness has driven numerous technological advances in automated face recognition since the FERET program and significantly lowered system costs. The current state of face recognition technology prompted the American’s DoD Counterdrug Technology Development Program Office, the Defense Advanced Research Projects Agency (DARPA), and the National Institute of Justice (NIJ) to sponsor the Face Recognition Vendor Test[1]. The terrorist attacks of September 11 have led airports and other institutions to look for new ways of improving security. In July, 2002 a Virginia Beach installed 13 cameras positioned over popular pedestrian walkways, the cameras will notice goers, automatically recording and comparing their faces to images of suspected criminals and runaways[2]. The storage core of face recognition system is a kind of multimedia database. Multimedia database is a database that contains one or more types of information such as text, image, video clip, sound, diagram, and graphical animation. Multimedia Database System is still researched by many research groups around world and a very broad topic in Database Management Systems. One of the many reasons why many people still research in this area is that there are many different mechanisms for storing multimedia data (e.g. images, video, sound, etc) into database system, and query and retrieval processing algorithms in the database perspective view. Multimedia database systems will hold vast quantities of multimedia data that can be used to support applications such as news and stock market information on demand, movies on demand, home shopping, medical systems, trademark, patent and copyright databases, Geographic Information Systems (GIS), weather forecasting, Computer Aided Design (CAD) systems, architectural design, fabric and fashion design, interior design, photographic libraries, art gallery and museum management, law enforcement, criminal investigations, military reconnaissance and surveillance, scientific experiments and educational systems. It is predicted, for example, that, when fully operational, NASA’s Earth Observation System will generate a terabyte (1,000 gigabytes) of data a day. This data will primarily comprise images recorded from orbiting satellites by video and infra-red cameras that are downloaded to earth. As NASA is uncertain which of this information will be required by future researchers, most of the information will be stored in vast databases[3,4]. To encourage research and implementation of face recognition system, many countries build native face database. For example, The Yale Face Database (size 6.4MB) contains 165 grayscale images in GIF format of 15 individuals. There are 11 images per subject, one per different facial expression or configuration: center-light, w/glasses, happy, left-light, w/no glasses, normal, right-light, sad, sleepy, surprised, and wink. The UMIST Face Database consists of 564 images of 20 people. Each covers a range of poses from profile to frontal views. Subjects cover a range of race/sex/appearance. Each subject exists in their own directory labeled 1a, 1b, ... 1t and images are numbered consecutively as they were taken. The files are all in PGM format, approximately 220 x 220 pixels in 256 shades of grey. A face database created by Aleix Martinez and Robert Benavente in the Computer Vision Center (CVC) at the U.A.B. contains over 4,000 color images corresponding to 126 people's faces (70 men and 56 women). Images feature frontal view faces with different facial expressions and illumination conditions. Another face database collected at the Machine Vision and Media Processing Unit, University of Oulu which contains 125 different faces each in 16 different camera calibrations and illumination condition, an additional 16 if the person has glasses[5]. There is a lack of large numbers of applied faces in all above face database. We build the first applied great capacity criminal face database(nearly 800,000 people) in China. The objective of content-based face image query is to efficiently find and retrieve face images from the database that satisfy the criteria of similarity to the user's query face image. When the database is large and the face image features are complex, the exhaustive search of the database and computation of the face image similarities is not expedient. Therefore, it is desideration to solve the slow speed of content-based face retrieval in large database. So, face recognition system need more computing power than a sequential computer can provide. One way of overcoming this limitation is to improve the operating speed of processors so that they can offer the power required by face recognition system. Even though this is currently possible, future improvements are constrained by factors such as: the speed of light, certain thermodynamic laws and the high financial costs for processor fabrication. A viable and cost-effective alternative solution is to connect multiple processors together and coordinate their computational efforts. The resulting systems are popularly known as parallel computers and they allow the sharing of a computational task among multiple processors. The usage of parallel processing as a means of providing highperformance computational facilities for large-scale and grand-challenge applications has been investigated widely for many years. However, until fairly recently, the benefits of this research were confined to those individuals who had access to large (and normally expensive) parallel computing platforms. Today the situation is changing. Many organizations are moving away from using large supercomputing facilities and turning towards clusters of workstations. This move is primarily due to the recent advances in high speed networks and improved microprocessor performance. These advances mean that clusters are becoming an appealing and cost effective vehicle for parallel computing. Clusters built using commodity hardware and software components, are now playing a major role in redefining the concept of supercomputing and the situation now exists where clusters can be considered today’s commodity supercomputers[6]. Although clusters can accelerate the facial features matching speed and extend face images storage capacity but it also bring lots of problems to distribute face database over cluster. Many data structure and algorithms effectively running in a single node does not work perfectly among cluster computers. So, we design and implement a specialized multimedia database cluster system for our face recognition system. In this system we proposed a double Single System Image(SSI) four Tier face match and retrieval architecture based on cluster. 2.0 Double SSI Four Tier Cluster Architecture 2.1 Traditional Database Retrieval Architecture In the past, Mainframe architecture was widely used in the field of database query and retrieval. With mainframe architectures, all intelligence is within the central host computer. Users interact with the host through a terminal that captures keystrokes and sends that information to the host. User interaction can be done using PCs and UNIX workstations. A limitation of mainframe architectures is that they do not easily support graphical user interfaces or access to multiple databases from geographically dispersed sites. As a result of the limitations of Mainframe architectures, the client/server architecture emerged. This approach introduced a relational database management system (DBMS) database server that answered user queries directly. The client/server architecture reduced network traffic by providing a query response. It improves multi-user updating through a GUI front end to a shared database. In client/server architectures, Remote Procedure Calls (RPCs) or standard query language (SQL) statements are typically used to communicate between the client and server. With client/server architectures, the user system interface is usually located in the user's desktop environment and the database management services are usually in a server that is a more powerful machine that services many clients. Processing management is split between the user system interface environment and the database management server environment. The database management server provides stored procedures and triggers. There are a number of software vendors that provide tools to simplify development of applications for the client/server architecture. For example, VB, Delphi and Power Builder etc.. When the number of users exceeds a threshold, performance begins to deteriorate. This limitation is a result of the server maintaining a connection via "keep-alive" messages with each client, even when no work is being done. A second limitation of the client/server architecture is that implementation of processing management services using vendor proprietary database procedures restricts flexibility and choice of DBMS for applications. Finally, current implementations of the client/server architecture lack flexibility and portability in moving program from one server to another or updating program functionality so as to increase maintenance overhead[7]. 2.2 A Double SSI Four Tier Cluster Architecture Face database includes a large quantity of images data. The problem of managing such a large volume of information has become very important for users who need efficient and simple access to the data. In this section we present a framework for managing the storage, analysis, and access of multimedia data. We address the problems of data management via a concept of database RAID, which is a new method for efficient content-based searching of image and multimedia data. RAID technology is popularly used to glue many independent disks to make up a large image of a single disk drive. RAID0 uses disk striping. In our system, database is partitioned into small sub-database and they are distributed among the cluster computers like RAID0. This way the data can be retrieved and written in parallel from the nodes. Face features matching operations can be performed in parallel rather than in sequential as appeared in a single node. Database RAID distributes the load of the system among many nodes so that the overall processing objective according to given criteria is maximized. Fig.1 shows our framework. First of all, we use a master-slave process model in face database level to achieve first level SSI. A SSI can be defined as the illusion created by hardware or software that presents a collection of resources as one more powerful unified resource[8].The SSI hides the heterogeneous and distributed nature of the available data resources and presents them to users and applications as a single unified data view. SSI can be enabled in numerous ways, these ranges from those provided by extended hardware through to various software mechanisms. SSI means that users have a global view of the resources available to them irrespective of the node to which they are physically associated. SSI design goals for cluster-based face database systems are mainly focused on complete transparency of resource management, scalable performance, and system availability in supporting user applications. The face database master that is executing the scheduling algorithm on a cluster send client retrieval condition(e.g. face features) to face database slaves and collect matching similarity results from them. Face database master implements a Middleware level SSI that resides between OS and applications by means of daemon process. The database cluster system encompasses two types of daemon processes. They are the master daemon and the slave daemons. The master daemon runs on the main server and manages the entire cluster and maintains the overall face database through a PRVM(Parallel Retrieval Virtual Machine). PRVM data structure is created and maintained by a GUI style application in face database master server. It is a linked list structure with a head pointer PRVM and a tail pointer TP(see Fig.2). In Fig.2 master node maintains the face database and each slave node maintains its IP address, host name and sub-database. The linked list structure can increase number of slave nodes unlimitedly by allowing a new slave enters the tail of the list from tail pointer TP. In addition, the linked list structure makes it convenient to remove any slave from PRVM. If we want to remove some slave, we need not make a lot of movements like array, the only thing we should do is changing the position of pointer. Fig.1 A Double SSI Four Tier Cluster Architecture The master daemon received users’ request and forward them to all the slave daemons via a standard TCP SOCKET port. There are five types of ports to implement communication among master and slaves(see fig.3). Fig.2 PRVM Linked List Structure Fig.3 Communication among Master and Slaves Master Daemon(MD) Input Port (MDIP) listens and receives retrieval requests from clients. MD maintains an input buffer that can simultaneously receives the retrieval requests from n clients. The buffer supports modulus operation(Modulus n in Fig.3) to assure it can be used circularly. MD sends the request conditions to each Slave Daemon(SD) Input Port(SDIP) immediately to parallel start face features matching and retrieval process in cluster. The Input buffer structure of SD is the same as that of MD. Then, each slave daemon sends its results(face matching similarity values) stored in the output buffer to Master Daemon Collecting Port(MDCP) through corresponding Slave Daemon Output Port(SDOP). The MD merges these results and then put them into its own output buffer to provide clients with the results through Master Daemon Output Port(MDOP). The Web is becoming an important channel for critical information and the fundamental technology for information systems of the most advanced companies and organizations. Many users already rely on the Web for upto-date personal, professional and business information. We design a web interface for face recognition and retrieval to provide second level SSI. The application-level SSI is the highest and, in a sense, most important because this is what the end-user sees. It offers a single page representing all the resources or services available. It is a scalable and high availability server built on a cluster of real face database servers. Scalability is achieved by adding or removing a node in the cluster. High availability is provided by detecting node or daemon failures and reconfiguring the system appropriately. The architecture of the cluster is transparent to end-users as all they see a single web server which hides the existence of multiple interconnected cluster computers and co-operative software components and makes parallel services of the cluster to appear as a web service on a single IP address. It allows users to submit retrieval requests to a Web server without considering the database server. The interface also eliminates the need for users to know all the database cluster details that users need to manage and maintain when directly using the cluster system. Each user will be given an account for Web-Based face recognition. Each account will have different access level depending on the functionalities that that user is allowed to do. Administrator has all the privileges including managing all the user accounts. Web SSI and Database master SSI construct double SSI mechanisms which make end-users only need to know how to use internet explorer. 2.3 Several Key Techniques 1) Parallel Retrieval Based on Multiple Threads Techniques The reasons for supporting multiple threads of control in face recognition system fall into two categories: those motivated by multiple cluster computer hardware and those motivated by application concurrency. Face features matching programs are best structured as running in several independent cluster computers. Face database system may have many user interactions in progress at the same time. Threads share the process instructions and most of its data. A change in shared data by one thread can be seen by the other threads in the process. Threads also share most of the operating system state of a process. A thread is a path of execution through a program. It is an executable entity that belongs to one and only one process. Each process has at least one thread of execution, automatically created when the process is created. A thread consists of a stack, the state of the CPU registers, a security context, and an entry in the execution list of the system scheduler. Each thread shares all of the process's resources. Because threads require less system overhead and are easier to create than an entire process, they are useful for time- or resource-intensive operations that can be performed concurrently with other tasks. In our face database cluster system, master daemon and slave daemons both support multiple thread technique to implement parallel retrieval from multiple clients. Global shared variable in the process space is used to improve communication efficiency among multiple threads. Fig.4 shows the multiple thread structure in master daemon and slave daemon processes. In Fig.4 MD/SD process possess a Communication Thread(CT) and n Features Matching Threads(FMT). CT receives the retrieval requests form clients and stores them into a segment of buffer that belongs to the MD/SD process and could be shared by all threads within the process. When CT receives a retrieval request from client i(i=1,2,…,n), it would create a new FMTi to run features matching process for client i. FMTi will read retrieval request conditions(including literal value and example face image features) from segment i to implement retrieval based-on-content of face database. FMT will be released automatically after finishing its task and CT will last until MD/SD process termination. 2) Synchronized Communication Mechanisms based on TCP/IP Socket The communication structure that we use in process synchronization is a socket. The Socket Interface was developed as part of UNIX BSD[9]. A socket acts as an end point. Two processes need a socket at each end to communicate with each other. There are three types of sockets: the stream socket, the datagram socket and the raw socket. We use the stream socket to implement the control of synchronization. A stream socket is designed to be used with a connection-oriented protocol such as TCP that uses a pair of stream sockets to connect one application program to another across the Internet. Communication based on stream socket can improve the reliability of synchronized control. Fig.5 shows the synchronized cooperation of client process, master daemon and slave daemon in the time axis. After starting, Master Damon(MD) and Slave Daemon(SD) enter into MD_Receive1 and SD_Receive1 synchronized status separately to wait for Retrieval Condition(RC) from client. After client sends RC through C_Send, MD is awaken from MD_Receive1 at first and SD still in synchronized blocking status. After MD sends RC to SD through MD_Send1, SD is awaken immediately. Then all SDs start face database retrieval in parallel and MD enters into MD_Receive2 synchronized blocking status to wait for Retrieval Results(RR) from SDs. SD enters into SD_Receive2 synchronized blocking status after send RR to MD through SD_Send. After receiving successfully, MD sends OK to SD to notify SD to release its resource. MD sends Retrieval Results Set(RRS) to client through MD_Send3 to awake client from C_Receive synchronized blocking status. Fig.4 Multiple Thread Structure in Master Daemon and Slave Daemon Processes Fig.5 Synchronization Mechanism among Client, Master and Slave 3.0 PERFORMANCE ANALYSIS Face recognition system runs on the cluster environment. The processing capability of each cluster node plays an important role in performance of overall system. In addition, face recognition speed is related to the number of face features in database. The experimental results are shown in Table 1. In Table 1, the recognition time sharply go up from 6.56s to 23.746s when face number increases from 10,000 to 20,000. Face number only increases one times but the recognition time increases nearly four times. When the face number increases to 400,000, an error of “can not query” is issued because the system resources are exhausted. To solve the problem, we can limit the face features attached to the content-based retrieval by using the literal condition. But when having no knowledge about literal condition in advance, we must compare the full face database. The retrieval based on a single computer is easy to reach the upper limit of resource capability, so we should use multiple computers to implement the cluster retrieval. Firstly, cluster system permit to add slave server unlimitedly and the overall system can run normally as long as face number compared on each node is less than some threshold, so the overall face number compared by the system can be extended arbitrarily. For example, suppose each node in system can compare 300,000 faces, then 10 nodes cluster can make the system to compare 3,000,000 faces and 100 nodes can compare 30,000,000 faces. Secondly, cluster parallel computing can greatly improve recognition speed of the system. Fig.6 shows the experimental results on 100,000 faces database by using single node and multiple nodes respectively. TABLE 1 INFLUENCE OF FACE NUMBER ON RECOGNITION TIME Face Recognition Face Recognition Face Recognition Number Time Number Time Number Time 1000 0.794s 10000 6.56s 100000 166.056s 2000 0.845s 20000 23.746s 200000 476.618s 3000 1.13s 30000 46.024s 300000 664.288s 4000 2.764s 40000 74.699s 400000 error 5000 2.955s 50000 90.325s 500000 error 6000 3.388s 60000 103.076s 600000 error 7000 3.852s 70000 120.667s 700000 error 8000 4.515s 80000 137.255s 800000 error 9000 5.637s 90000 150.292s 900000 error Recognition Time 200 166.059 150 93.585 100 81.118 Recognition Time 53.387 50 40.172 0 1 2 3 4 5 Node Number Fig.6 Influence of Node Number on Recognition Time In Fig.6, the recognition time dropped from 166.059s on single node to 40.172s on cluster system including five nodes. The accelerating rate reaches the 4.133. Communication based on message passing in cluster system is the bottleneck of system. We designed a preprocessing division technique[10] that only need transmit few bytes instead of huge face image and face features during the retrieval, so the communication overhead could be ignored. 4.0 Conclusions We build the first huge criminal face database (nearly 800,000 faces) on the support of the Public Security Ministry in China. We design a multi-mode part-based PCA recognition algorithm. To solve the slow recognition and retrieval speed of huge multimedia database, we adopted cluster parallel recognition technique. Many popular common clusters cannot fit into our face recognition system, so we developed a special face database cluster system. Users visit the cluster through the Internet Explorer directly and do not need to know the details about the cluster on the support of double SSI. The Cluster is provided with many advantages such as easy configuration and management, reliable communication and little delay, and extensibility etc. This system has passed the appraisal of the Public Security Ministry. In this system, we defined abstract data type of multimedia distributed face database and presented definition and algorithm of preprocessing split based on graph theory to implement the high-speed cluster parallel computing. In addition, a graphic data user interface is designed so that users can conveniently configure and manage the cluster. To solve the information transferring and dynamic producing and feedback of querying results, we use Java language, dynamic HTML pages, ASP techniques, ActiveX controls and ADO object-oriented interface to set up dynamic, interactive and efficient Web service. In this paper, we introduced a Double SSI Four Tier Cluster Architecture and Parallel Retrieval Virtual Machine concept. In this system, multi-process and multi-thread techniques is adopted and synchronized communication mechanism based on TCP/IP Socket is designed to reliably implement parallel retrieval and recognition between multi-client and multi-server. Experimental results show retrieval and recognition time of the system decreased from 166.059s of single node to 40.172s of cluster including five nodes. The accelerating ratio is 4.133. Moreover, the key advantage of the cluster architecture consists in breaking through the upper limit of data capacity. On the case of certain hardware resources, only 300,000 faces can be compared at most on a single machine, and 1,500,000 faces can be compared in the cluster including five machines. Similarly, 3,000,000 faces can be compared in the cluster including ten machines. Face recognition system is a large complex system, which includes all kinds of knowledge and techniques. Thus, combination problems would be produced when the system were integrated. In addition, many new techniques is coming forth in computer field, face recognition system must be upgraded constantly to put itself in an invincible position. 5.0 References [1] Duane M. Blackburn et al. “Facial Recognition Vendor Test 2000 Evaluation Report”, February 16, 2001: 1-70. [2] Virginia Beach Installs Face-Recognition Cameras. http://www.washingtonpost.com/ ac2/wp-dyn/A199462002Jul3 [3] Tae-Sam Kim, “Multimedia Database Systems”, http://www.cs.colorado.edu/~getrich /Classes/csci5817/Term_Papers/tskim/#MD. [4] John L. Newman. “Multimedia Database Systems”, http:// www.newi.ac.uk /newmanj /MDBS.html. [5] http://www.cs.rug.nl/~peterkr/FACE/face.html [6] MARK BAKER, RAJKUMAR BUYYA. “Cluster Computing: The Commodity Supercomputing”, Journal of Software - Practice & Experience, John Wiley & Sons, Inc, 1999, 1(1):1-26. [7] Darleen Sadoski, “Client/Server Software Architectures--An Overview”, Carnegie Mellon Software Engineering Institute. http:// www.sei.cmu.edu/str/descriptions /clientserver_body.html [8] Rajkumar Buyya et al. “Single System Image (SSI). Cluster Computing”, White Paper. Final Release Version 2.0. December 28, 2000: 38-48. [9] Behrouz A. Forouzan and Sophia Chung Fegan. “TCP/IP Protocol Suite”, McGraw-Hill Companies, Inc. December, 2000:599-602. [10] Liu Xiaodong, Dai Qionghai, Su Guangda, Peng Shuhua and Tianyang. “Parallel Division Technique in Distributed Facial Recognition System”, In Proceedings of the 7th International Conference for Young Computer Scientists, Harbin, P.R.China, August 8-10,2003, pp.470-473.