Welcome, Guest! Log In | Create Account

FaceL: Facile Face Labeling

From pyvision

(Redirected from FaceL: Facile Face Labeler)
Jump to: navigation, search

Contents

About FaceL

FaceL is a simple and fun face processing and labeling tool that labels faces in a live video from an iSight camera or webcam.

FaceL takes advantage of many open-source software projects. The system is written in Python using wxPython as a GUI framework. The computer vision and machine learning algorithms come from PyVision, OpenCV, libsvm, SciPy, and Python Imaging Library. FaceL integrates these components into a simple tool detects and labels faces by doing the following three things:

  • FaceL detects faces using the OpenCV Cascade Face Detector[1,2]. This algorithm is a popular face detection algorithm that is both accurate and fast. The detector scans the input image and produces a set of rectangles that indicate the location of faces.
  • Faces are aligned and scaled to a canonical size using eye locations found with an ASEF filter[3]. This step reduces image variation due to the rotation of the face in the image and the distance of the person from the camera.
  • FaceL is taught to recognize a small number of people using a simple Support Vector Machine (SVM) with a radial basis function kernel from libsvm[4]. The SVM is trained on images acquired when a person is enrolled, see videos for examples, and then used to label faces in the video feed from the camera. Labeling is made faster by using an eigenvalue decomposition of the training images.


For more information on how FaceL works you can check out our ICVS publications.

D. S. Bolme, J. R. Beveridge, and B. A. Draper. FaceL: Facile Face Labeling. International Conference on Computer Vision Systems. 2009. (pdf)


Download FaceL


Note: The Windows executable has a few known glitches including a an OLE error dialog when opening the application and the "Exit" menu option does not properly quit the application. FaceL should still detect and label faces. - June 23, 2009


The source code for FaceL is available as part of the pyvision distribution

Screen Shots

Face and Eye detection in live video.
Identity Labeling.
Expression Labeling.
GUI on MacOS X.
Enrolling Faces.
FaceL on Linux.
FaceL on Linux.

Demo Videos

FaceL at Colorado State University
Colorado State University has more information on FaceL including a high quality versions of the videos.
The videos are also avalible at YouTube.
Video 1 (2:45 Minutes) Welcome and Overview.
This video shows face tracking, eye finding and face labeling. It also lets you meet David Bolme, who built FaceL and who is working on his PhD at Colorado State University and his advisor Ross Beveridge.
Video 2 (1:44 Minutes) Out of the Box, One Person Happy/Sad.
Odds are when you first download FaceL you may be by yourself and wondering what you can do with only one person. The answer is to teach FaceL to recognize when you are happy and when you are sad: or of course any other expression you want.
Video 3 (4:45 Minutes) Try, Try Again - Tips for Improving Recognition.
FaceL wants to see your face clearly, so having a light behind you is goind to cause problems. It is also not hard with FaceL to play games which will cause FaceL to think you are someone else. This can also be an opportunity to help FaceL get better at recognizing you. Both these tips are illustrated in this video.
Video 4 (1:51 Minutes) Bring on more people - but not too many.
Despite what the previous movies might imply, FaceL can recognize more than 2 people. Here four people are shown. FaceL uses a classifier that does not scale up to large numbers of people, so teach it about a few friends, but don't try the whole school or neighborhood.

System Requirements

There is currently only a binary distribution for Intel Mac OS X Computers. We hope to have a Windows executable soon.

Mac OS X

  • Intel Mac Computer
  • Mac OS 10.5 Leopard
  • Apple iSight Camera (built-in or firewire)
  • FaceL should also work with many USB Webcams and firewire video cameras.

Windows

A Beta version of FaceL is avalible for Windows. This version seems to have some video double buffering issues and does not seem to exit properly. Check the task manager for to see if the application has completely shutdown. The zip file contains an executable called "FaceL.exe" that will run the application. Download FaceL for Windows Beta

Linux

FaceL (Source Code Only) has been successfully tested on [www.kubuntu.org Kubuntu linux] but will probably work with many other distributions. Testing was done on a MacBook Pro through parallels virtualization and using a Logitech QuickCam Pro 5000. There is no binary for linux.

Using FaceL

Start FaceL by double clicking the FaceL application. A window should open which contains a live video feed from the webcam or iSight camera. Faces in the video should be automatically detected indicated by a blue rectangle around each detected face. The eyes should also be located indicated by small blue circles.

Faces need to be enrolled before FaceL can label them. To enroll a face simply click within the face detection rectangle in the video feed. This will capture a short video sequence of that face and add it to the database. After the video is captured, enter a label for that face. The label can be anything that describes the appearance of that face. For example:

  • Identify the person by entering the persons name.
  • Identify small changes in face orientation the labels: left, center, right, etc.
  • Identify the persons expression with the labels: happy, sad, etc.

After entering two or more labels, train the labeler by pressing the train button. This will train the support vector machine to classify the face image. Training usually takes 10 to 20 seconds for a small number of enrollments, but it may talk longer depending on the number of images and distinct labels. During training the live video feed will pause. After training is complete the system will attempt to select the most appropriate label for each face detected in the video.

Attribution

FaceL was created by:

David S. Bolme and J. Ross Beveridge
Computer Science Department
Colorado State University
Fort Collins, CO 80523, USA

Beta Testers:

  • Patrick Flynn
  • Yui Man Lui
  • Steve O'Hara
  • Ward Fisher

Much of FaceL's success is due to the successes and lessons learned of an earlier system called "Scarecrow" created by Ward Fisher, Jilmil Sarif, and Ross Beveridge.

References

[1] Viola, P., Jones, M.J.: Robust real-time face detection. Int. J. Comput. Vision 57(2) (2004) 137–154

[2] Lienhart, R., Maydt, J.: An extended set of haar-like features for rapid object detection. In of the 2002 International Conference on Image Processing, P., ed.: Proceedings of the 2002 International Conference on Image Processing. Volume 1. (2002) 900–903

[3] Bolme, D.S., Draper, B.A., Beveridge, J.R.: Average of synthetic exact filters. In: Computer Vision and Pattern Recoginition, Miami Beach, Florida (June 2009)

[4] Chang, C.C., Lin, C.J.: LIBSVM: a Library for Support Vector Machines. (June 2007)

Related Open Source and Demo Software

This is a short list of free or cheap webcam face recognition systems. The list includes some open source and commercial systems.

  • OpenCV - OpenCV includes sample code that captures images from a web cam and detects faces. This is the same face detector used in FaceL. (MacOS, Windows, Linux)
  • NeuroTechnology - Verilook commercial face recognition SDK demo. (Windows)
  • Real Time Face Tracking and Recognition (RTFTR) - This is an open source linux based face recognition system designed to evaluate multiple detection and recognition algorithms. It won second place in the Open Software Challenge Nepal 2009. (Linux)
  • KeyLemon - Login to your computer using your face. (Windows)