I was recently searching for face detection libraries which would work with Windows Phone 7. Browsing CodePlex, I landed on Facelight, a simple face recognition method written in Silverlight by René Schulte. Facelight is open-source (thanks, René), so it was a trivial task to port it to Windows Phone. I made almost no changes in its initial code; to be honest, I only added an intermediate class in order to separate the pure face detection code from the user interface.
I developed an application demonstrating its use. You are free to download and have fun with it. Source code is included, too. Here is the result of Windows Phone face detector:
Using Facelight is a piece of cake. You only need two XAML image controls placed in the same position. The upper one (named ImgResult
) will contain a red ellipse specifying the recognized face and the other one (named ImgOverlay
) will contain the original bitmap source. Using the adapter I created for Facelight, you can write the following:
1. FaceDetector faceDetector = new FaceDetector();
2.
3. BitmapImage bmpImage = new BitmapImage();
4. bmpImage.SetSource(someStream);
5.
6. ImgOverlay.Source = bmpImage;
7. ImgResult.Source = faceDetector.Process(new WriteableBitmap(bmpImage));
The application I developed lets you select a saved photograph right from your device! Be sure to have your Phone disconnected from the PC before trying it out.
Note: Facelight recognizes up to one face per picture. It is actually a skin detector you can utilize in your applications.
Download demo. Includes:
- FaceLight Silverlight class library (originally ported from René Schulte FaceLight project). Licensed as described in CodePlex
- FaceLight Phone demo
- Photoshop files (Windows Phone icon and tile)