Download A Cluster-Based Parallel Face Recognition System

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Extensible Storage Engine wikipedia , lookup

Oracle Database wikipedia , lookup

Open Database Connectivity wikipedia , lookup

IMDb wikipedia , lookup

Microsoft SQL Server wikipedia , lookup

Microsoft Jet Database Engine wikipedia , lookup

Relational model wikipedia , lookup

Database wikipedia , lookup

Functional Database Model wikipedia , lookup

Concurrency control wikipedia , lookup

Database model wikipedia , lookup

Clusterpoint wikipedia , lookup

ContactPoint wikipedia , lookup

Transcript
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.