Some Face Detection Resources

This webpage lists some resources about face detection. It is used for the final project of COMS W4737 (E6737) Biometrics, Fall 2008. If you want to build a complete face recognition system from data acquisition to classification, you might be able to find some useful codes here. If you decide to use them, please cite the ones you used in your final project report.


OpenCV

OpenCV is the library that we will use to do the face detection. It implements the Cascade Adaboost Face Detector in the Viola-Jones paper, which is the state-of-the-art of face detection nowadays. Its performance is robust and good enough that it has been recently incorporated into many real applications. The students can directly use the detector in OpenCV if face detection is one component of your biometric system you are going to implement. It is totally okay if you want to use some other face detectors, or you want to build your own face detector as your final project.

OpenCV is an open source library for computer vision, developed by Intel. It has been optimized for Intel CPUs for speed, but it will work on other CPUs as well. It is one of the greatest vision libraries which includes image acquisition, image processing, camera calibration, tracking, object detection, a high-level GUI toolkit, and many other vision algorithms. One of its great advantages is that although it is originally written in C/C++, it has interfaces to many other languages, such as Matlab, Python, and so on. Its documentation is also very good.


Face Detection with a Webcam (in Python)

I found this amazing post several weeks ago, and demo in the class. It is a simple python script that will connect to your webcam, capture the video stream, display in a window, and do the face detection, live! I tested it in Ubuntu 8.04 and Windows XP and it works very well. The face detector is the Haar face detector in OpenCV. It can also detect multiple faces at different scales in one frame.

Make sure to read through the post (since it includes many other useful links as well) and test it on your own machine, and have fun. You can download the python script from the post, or this local copy here. After unzipping the file, connect your webcam to your computer, and in your shell type "python test2.py". It will take a while before the webcam window shows up.

The webcam I demoed in the class can be found here, which costs $30 dollars. It is a pretty preliminary type. I think other more advanced webcam should also work.


Another Python Script for Webcam Capturing

This is another python script that I found on the web that use OpenCV highgui to connect to a webcam and capture the video. It uses pygame to display a window and show the images. You can then apply your face detector on each of the captured frames. You can download the python script from the post, or a local copy here.


Face Detector in C++

This is C++ code written by Deergha about using OpenCV for face detection. Given input as an image, it will return the detected faces. It is developed in Visual Studio 2005. Deergha also wrote a very detailed instruction of how to use the code and install OpenCV. Please make sure to read the instruction before you use the code.


Webcam Capturing and Face Detection in Matlab

If you do not want to use python,

here is a matlab wrapper of using the OpenCV face detector in Matlab.

Here is a post about connecting to a webcam using Matlab. It requires your Matlab has the image acquisition toolbox.


fdlib: face detection library in C++ and Matlab

I recently found this library online. I did not try it yet, but it seems it has both the ability for connecting to a webcam (with DirectX) and doing face detection, in both C++ and Matlab. You can give it a try if you are interested.


Other Resource