source: foam/trunk/simple-faceident/README @ 76

Revision 76, 3.3 KB checked in by dave, 12 years ago (diff)

changed file format to xml, experimental multiple image/face matching, better makefile

Line 
1Simple Face Identification
2--------------------------
3
4A simple approach to face identification, built on top of OpenCV and given a
5YARP network interface.
6
7The program has two modes of operation. The first is calibration, where each
8user must show their face to the camera separately - press the number keys to
9assign each user with a different ID. You can see which face is mapped to
10which ID at the bottom of the window.
11
12The second mode of operation is face detection, where each visible detected
13face is given an ID based on it's closest match (within a given error
14threshold) with the faces recorded during calibration. The boxes drawn around
15the faces display the id and the confidence value of the match. When in this
16mode the program sends the following YARP messages:
17
18Output port     Bottle contents                 Meaning
19/faceident          "user appeared" ID confidence   A user has entered the view of the camera
20/faceident          "user disappeared" ID           The user has left the camera view
21
22You can also drive the program via yarp with the following input messages:
23
24Input port      Bottle contents                 Meaning
25/faceident-ctrl "train" ID                      Train for this user
26/faceident-ctrl "detect"                        Switch to detection mode
27/faceident-ctrl "save" sessionname              Save the detected faces
28/faceident-ctrl "load" sessionname              Load previously detected faces
29/faceident-ctrl "clear"                         Clears all faces
30/faceident-ctrl "idle"                          Switch to idle mode, mostly frees up cpu
31/faceident-ctrl "multiimages" 1/0               Turn on or off multiple images per face, experimental
32
33Faces are saved in png format along with a text file to map them to id numbers. The sessionname
34will be prepended onto the filenames for the text file and the image files, so you can save
35multiple sessions.
36
37Key                 Meaning
380-9 number keys     Calibrate a given id against a face in the scene
39d                   Start detect mode, which will send YARP messages
40c                   Clear all faces in the database
41
42Requires: OpenCV, YARP
43
44Written and tested on Linux, but it should work in Windows too. At the moment
45you'll probably have to run it with:
46
47simple-faceident -cascade=/path/to/haarcascade_frontalface_alt.xml
48
49In order to find OpenCV's data, on my machine it's in:
50/usr/local/share/opencv/haarcascades/haarcascade_frontalface_alt.xml
51
52Todo:
53* Try normalised cross correlation instead of image differencing
54* Expose image size and error threshold via yarp
55* Lighting is a problem
56   - Ignore the problem
57   - Try the edge image + blur trick
58   - LBP
59   - Store multiple faces per id, for different lighting conditions
60
61Questions to:
62
63dave@fo.am
64
65Notes
66-----
67
68Muliple face images
69-------------------
70
71Could works as normal but with additional:
72
73----> "new lighting" or "new session"
74
75recalibration results in additional id images for users (leaves existing ones alone)
76search checks each image for each user
77images added to saved set - possible to build up lots of images of users
78
79would this work in some initial calibration with different lighting setups, or as it went along?
80
81Edge image & blur
82-----------------
83
84Remove low frequency lighting information from the face images
85Blur the resulting edge images to make them more forgiving
86- Would this just remove shape information? needs testing
87
88
89
90
91
Note: See TracBrowser for help on using the repository browser.