03-01-2013, 10:29 AM
FACE DETECTION AND RECOGNITION BASED ON ANDROID CELL PHONES
FACE DETECTION AND RECOGNITION BASED ON ANDROID CELL PHONES.docx (Size: 2 MB / Downloads: 27)
Introduction
As mobile phones are becoming increasingly powerful, security of the data stored in mobile phones like email addresses, sensitive documents, etc., becomes very important. Most of the current phones have password protection to address security. However, a face recognition scheme is much more secure and flexible as it provides distinctive print to gain access and also the user need not remember passwords. The goal of this project is to implement a face recognition application on the ANDROID phone, which could be used to unlock the phone or authorize a transaction when the registered user is recognized. We used color segmentation combined with template matching for face detection and Eigen/fisher face algorithms for face recognition. We implemented it on
ANDROID.
Face recognition is an application used for identifying a person from a digital image or a video frame. This technology has received much attention because of the broad interdisciplinary nature of interest involved in it. It can be used as a biometric system for authentication of the user, recognize someone at a conference or other large gatherings and tag him to identify on social networking sites, recognize people and remember their preferences and peculiarities, etc. Adapting such kind of systems to mobile devices would potentially benefit because of the portability of mobile devices. Table 1 shows the applications of face recognition systems in different areas. Hence, creating a standalone mobile application that does face recognition on captured images is an interesting avenue to explore. In this project we try to address the issues involved in the transformation and propose the ways to overcome those.
The incorporation of face recognition algorithms in to mobile devices has been a challenging problem due to the constraints on processing power, limited storage of the mobile device, limited network bandwidth and connection instability, privacy and security concerns. Hence client-server architecture needs to be developed for this purpose. The client side performs facial detection based on color segmentation, template matching, etc on the captured image and extracts the informational features. These features are then sent to the server which does the computationally intensive task of comparison with the database image set that would help in the face recognition and then sends the information back to the client. The client then displays the required information to the user. We have programmed our system on ANDROID using the Android API. We have used the Android’s Face Detector class for face detection and Fisherfaces for face recognition.
Necessity
Two of the most important aspects in the general research framework of face recognition by computer are addressed here: face and facial feature detection, and face recognition -- or rather face comparison. The best reported results of the mug-shot face recognition problem are obtained with elastic matching using jets. In this approach, the overall face detection, facial feature localization, and face comparison is carried out in a single step. This paper describes our research progress towards a different approach for face recognition. On the one hand, we describe a visual learning technique and its application to face detection in complex background, and accurate facial feature detection/tracking. On the other hand, a fast algorithm for 2D-template matching is presented as well as its application to face recognition.
Objectives
The main objective of this work was to develop a face verification application which worked on Android mobile devices. However the idea was not only to have a working software, but also to consider the difficulties that needed to be addressed. The basic problem that face recognition has is that it generally requires a lot of computational resources, something which is not common to have on a mobile device. In this work, some algorithms for face recognition are analysed, and some optimisations for these are proposed. The proposed optimised algorithms were implemented and an extensive empirical analysis was performed.
LITERATURE SURVEY
Face Detection
Face detection is a computer technology that determines the locations and sizes of human faces in arbitrary (digital) images. It detects facial features and ignores anything else, such as buildings, trees and bodies.
Face detection can be regarded as a specific case of object-class detection. In object-class detection, the task is to find the locations and sizes of all objects in an image that belong to a given class. Examples include upper torsos, pedestrians, and cars.
Face detection can be regarded as a more general case of face localization. In face localization, the task is to find the locations and sizes of a known number of faces (usually one). In face detection, one does not have this additional information.
Early face-detection algorithms focused on the detection of frontal human faces, whereas newer algorithms attempt to solve the more general and difficult problem of multi-view face detection. That is, the detection of faces that are either rotated along the axis from the face to the observer (in-plane rotation), or rotated along the vertical or left-right axis (out-of-plane rotation), or both. The newer algorithms take into account variations in the image or video by factors such as face appearance, lighting, and pose.
Most face detection systems attempt to extract a fraction of the whole face, thereby eliminating most of the background and other areas of an individual's head such as hair that are not necessary for the face recognition task. With static images, this is often done by running a 'window' across the image. The face detection system then judges if a face is present inside the window (Brunelli and Poggio, 1993). Unfortunately, with static images there is a very large search space of possible locations of a face in an image. Faces may be large or small and be positioned anywhere from the upper left to the lower right of the image.
Most face detection systems use an example based learning approach to decide whether or
not a face is present in the window at that given instant (Sung and Poggio,1994 and Sung,1995). A neural network or some other classifier is trained using supervised learning with 'face' and 'non-face' examples, thereby enabling it to classify an image (window in face detection system) as a 'face' or 'non-face'.. Unfortunately, while it is relatively easy to find face examples, how would one find a representative sample of images which represent nonfaces (Rowley et al., 1996)? Therefore, face detection systems using example based learning need thousands of 'face' and 'non-face' images for effective training. Rowley, Baluja, and Kanade (Rowley et al.,1996) used 1025 face images and 8000 non-face images (generated from 146,212,178 sub-images) for their training set!
There is another technique for determining whether there is a face inside the face detection system's window - using Template Matching. The difference between a fixed target pattern
(face) and the window is computed and thresholded. If the window contains a pattern which
is close to the target pattern(face) then the window is judged as containing a face. An
implementation of template matching called Correlation Templates uses a whole bank of fixed sized templates to detect facial features in an image (Bichsel, 1991 & Brunelli and Poggio, 1993). By using several templates of different (fixed) sizes, faces of different scales (sizes) are detected. The other implementation of template matching is using a deformable template (Yuille, 1992). Instead of using several fixed size templates, we use a deformable template (which is non-rigid) and there by change the size of the template hoping to detect a face in an image.
A face detection scheme that is related to template matching is image invariants. Here the fact that the local ordinal structure of brightness distribution of a face remains largely unchanged under different illumination conditions (Sinha, 1994) is used to construct a spatial template of the face which closely corresponds to facial features. In other words, the average grey-scale intensities in human faces are used as a basis for face detection. For example, almost always an individuals eye region is darker than his forehead or nose. Therefore an image will match the template if it satisfies the 'darker than' and 'brighter than' relationships (Sung and Poggio, 1994).
Visual pattern detection is a problem of significant importance and difficulty. Automatic detection of targets is the first step in most automatic vision systems. Most of the research carried out by the computer vision community relies on the robust detection and accurate location of objects within the tested images. In many cases, algorithms for automatic, visual detection of targets are not provided. In other cases, rather useless algorithms are used which are based on assumptions (for example, controlled environment) that are not suitable for real-life applications. Although it seems an easy task for the human vision system, machine detection of visual patterns is difficult due to the wide range of variations present in real-live data. Aside from the intra-class variation proper of any family of objects, visual detection of patterns has to deal with other sources of image variations such as light conditions, object pose, imaging system, etc. Considering it as a pattern, the face is a challenging object to detect and recognize. The face anatomy is rigid enough so that all faces are similar in structure, yet we are very much different from each other. In addition to individual variations and the racial variations, there are the facial expressions, which allow an individual to change his or her appearance significantly. The main approaches for pattern recognition have been used in face and facial feature detection. However, a complete evaluation and comparison of these techniques is rather difficult since too many aspects are to be considered such as the training set, the testing set, computational requirements, and other testing conditions.
Yang and Huang [1] presented a hierarchical knowledge-based system for face detection in complex backgrounds in which the structure of the rules for discrimination is set beforehand. Pentland and Moghaddam [2] reported a maximum likelihood face detection system based on a feature vector obtained from the eigenspace decomposition (Eigenfaces). Soulie, Viennet and Lamy [3] Sung and Poggio [4], and Rowley, Baluja and Kanade [5] have reported face detection systems based on neural networks. These systems report the best performance in term of correct-answer-false-alarm ratio; however, they are extremely computationally expensive in both the training and testing procedures. Other approaches of relevance are those based on features [6,7,8]; in these, the facial features are first detected and then, face candidates are geometrically validated with their relative feature positions.