SIMPLE FACE RECOGNITION IMPLEMENTATION FOR COMPUTER AUTHENTICATION Josh Easton, Tin-Yau Lo INTRODUCTION The topic of face recognition for video and complex real-world environments has garnered tremendous attention from governments for crime fighting as well as airport terrorism deterrence. However, there has been little attention towards consumer use of face recognition products. The aim of this project is to come up with a simple implementation for computer authentication to replace the popular pass-phrase based authentication on personal computers. The popularity of high-resolution cameras on market made the possibility of face recognition based computer authentication possible. Humans can recognize face even when the matching image is distorted, such as a person wearing glasses, and humans can perform the task fairly easy. Understanding how humans decipher and do matching is an important research topic for medical and neural scientists. APPROACH Facial recognition is an easy task for a human to perform; it is nearly automatic, and requires little mental effort. A computer, on the other hand, has no innate ability to recognize a face, and must be programmed with an algorithm to do so. Even the best algorithms available today are not even close to perfect, and rely a lot on statistically probability. There are a few algorithms that can be used, one of which is the Eigenfaces algorithm. It first must be trained by being given several images of the same face. These images are used to train the computer to recognize several features of a person’s face. Since the face will not be in the exact same pose every time, the face in the picture must be centered and scaled. Generally the person’s eyes are used to center the images. After this minor preprocessing, over a hundred signatures are taken of the face. In order to get a good set of signatures, the face needs to be completely exposed, without any form of obstruction. After the computer has been trained to recognize a certain face, it can then look at any picture of a face, calculate a set of signatures on it, and compare it to every face it has been trained to recognize. It then will compute a set of probabilities for each trained face, and whichever is the most probable will be considered a match. If none of the faces appear to be very probable, then no match will be returned. The Hidden Markov Models method works in much the same way. A set of signatures are taken of a face to train it, and are used to compare to a target face to find a match. WORK PERFORMED The first step in our project consisted of researching the various facial-recognition algorithms, and determining which would be the most fit for our application. There are many open source libraries and applications available, each with a different level of easeof-use and completeness. Intel OpenCV and CSU Face Recognition engine are very featured-rich but they are overly bloated. We decide to use Eigenface engine by Konrad Darnok. As the engine itself was written in Java, we used Java to implement the video grabbing and the rest of the front-end. The result is a program that can be used in conjunction with a video camera. The capture program is shown at figure #1. The “FaceRecognitionCap” program in figure #1 is written in Java which utilizes Quicktime Java library sequence grabber library, running on Mac OS X and Windows (with Quicktime installed) to take Snapshot into gray scale image. Therefore we simulate the authentication by taken a series of trained image using the firewire camera and in our QuickTime™ and a TIFF (LZW) decompressor are needed to see this picture. figure #1 case, the Apple iSight to capture a 320x240 image from sequence grabber (using Quicktime Java) and convert it into grayscale (with java.awt framework) and finally save it into JPEG format using Sun’s JIMI image library. Then the “FaceRecognition” Java program is to run the resultant test image against a trained library. The result is printed out in a text window. In a real system, this would be passed to a program that wanted to authenticate a user, such as a screen saver or login screen. QuickTime™ and a TIFF (LZW) decompressor are needed to see this picture. figure #2 RESULTS The resulting program we created seemed to function as one would expect by matching the test image to the closest image. It is good enough for a user to use to login to their computer. However, it took considerably a while to be able to come up a matching as the algorithm has to enumerate the trained images. DISCUSSION Using facial recognition for a simple task such as computer authentication is very ideal. Computer users often have several passwords to remember, and using such software can eliminate the need to remember them. Facial recognition software is currently used mostly for surveillance. However, computer authentication could potentially be a better use of such software. One reason why is because for normal consumer use, the occasional false negative can be dealt with. However, when doing surveillance, false negatives and false positives are a huge problem. All computer facial recognition algorithms in use today have trouble dealing with obstructions on a person’s face, such as sunglasses. These obstructions can cause false negatives. For a home or small office user, a false negative is ok, since the solution is to simply remove the obstruction from the person’s face and to retry. Also all computer facial-recognition systems which take images from camera can be easily fooled. A simple method is to put a picture of the person in front of the video camera, and then requesting authentication. This will trick the program into thinking the real user is there and grant access. This method should therefore not be used for systems that require high security. Instead it is only sufficient to protect unimportant data, such as for someone’s personal email. However, when using facial recognition on a large scale, such as for surveillance, false negatives are very bad. Since simply wearing sunglasses can defeat the software, then the criminal/bad guys can walk around undetected by wearing sunglasses. There is not an easy solution for this problem. For the home user, you can simply ask them to remove the obstruction and retry. However, on a large scale, you cannot make sunglasses illegal, and so the problem cannot be worked around. One more issue to keep in mind is the difficulty a facial recognition device will have scaling up to a large database of faces. Large events such as the Olympics are places where facial recognition software is touted as being a great tool. However it is also large public events like this where the software would encounter major scalability problems. A large database of people becomes too much of a strain when dealing with large crowded events like this, as there are too many faces to check. For computer authentication, you are generally authenticating a single person. It also does not have to be done instantaneously, as most people are willing to wait a couple of seconds to login. So in a situation such as this, facial recognition software is perfect. Hopefully more work will be done in the coming years to bring facial recognition to the everyday person. This is an area where the software will stand out, and can make everyone’s life a little bit easier. TASK PERFORMED BY MEMBERS Description of task Research for project Programming Report PowerPoint presentation Overall contribution % done by Josh Easton 50% 50% 50% 50% 50% % done by Tin-Yau Lo 50% 50% 50% 50% 50% REFERENCE Tracking and Recognizing Rigid and Non-Rigid Facial Motions using Local Parametric Model of Image Motion". In Proceedings of International Conference on Computer Vision, 1995. E. Hillesland, S. Molinov, R. Grzeszczuk, Nonlinear Optimization Framework for ImageBased Modeling on Programmable Graphics Hardware. ACM Transactions on Graphics. 22 (3), 2003. Ara V Nefian, Lu Hong Liang, Xiao Xing Liu, Xiaobo Pi and Kevin Murphy, Dynamic Bayesian networks for audio-visual speech recognition, to appear in EURASIP, Journal of Applied Signal Processing, special issue on Joint Audio Visual Speech Processing. RUNNING THE PROGRAMS The distribution came with the directory “FaceRecognitionCap” and “FaceRecognition”. FaceRecognitionCap is a Quicktime Java program, that requires Quicktime 6.1 and a compatible camera that support Quicktime on Windows with a simple recompilation. It runs out of the box on MacOS X by double-clicking the “FaceRecognitionCap” Icon. Push “Power” to initialize the Firewire bus, and click “Take Snapshot” to produce a 320x240 greyscale image suitable for “FaceRecognition”. The resultant capture file is “test.jpg” FaceRecognition is the actual face recognition engine. Type the following at the “FaceRecognition” directory : java FaceRecognition trainedimages testing.jpg A sample running such as the following will be produced : kenneth% java FaceRecognition trainedimages testing.jpg Constructing face-spaces from trainedimages ... Comparing testing.jpg ... Most closly reseambling: 15.jpg with 2.108734631580217 distance. kenneth%