Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
lirec:faceident [2009-03-27 13:35] – davegriffiths | lirec:faceident [2009-05-27 10:50] (current) – davegriffiths | ||
---|---|---|---|
Line 1: | Line 1: | ||
======FaceIdent====== | ======FaceIdent====== | ||
- | A simple approach to face identification, | + | See also [[FaceIdent dev log]] |
- | Source code: [[http:// | + | A simple approach to face identification, |
+ | YARP network interface. | ||
+ | |||
+ | The program has two modes of operation. The first is calibration, | ||
+ | must show their face to the camera separately | ||
+ | each user with a different ID. You can see which face is mapped to which ID at | ||
+ | the bottom of the window. | ||
+ | |||
+ | The second mode of operation is face detection, where each visible detected face | ||
+ | is given an ID based on it's closest match (within a given error threshold) with | ||
+ | the faces recorded during calibration. The boxes drawn around the faces display | ||
+ | the id and the confidence value of the match. When in this mode the program sends | ||
+ | the following YARP messages: | ||
^ Port ^ Bottle contents ^ Meaning ^ | ^ Port ^ Bottle contents ^ Meaning ^ | ||
- | | /faceident | "" | + | | /faceident | "user appeared" |
+ | | /faceident | "user disappeared" | ||
+ | |||
+ | You can also drive the program via yarp with the following input messages: | ||
+ | |||
+ | ^ Input port ^ Bottle contents ^ Meaning ^ | ||
+ | | / | ||
+ | | / | ||
+ | | / | ||
+ | | / | ||
+ | | / | ||
+ | | / | ||
+ | |||
+ | Faces are saved in png format along with a text file to map them to id numbers. The sessionname | ||
+ | will be prepended onto the filenames for the text file and the image files, so you can save | ||
+ | multiple sessions. | ||
+ | |||
+ | Keys: | ||
+ | |||
+ | ^ Key ^ Meaning ^ | ||
+ | | 0-9 number keys | Calibrate a given id against a face in the scene | | ||
+ | | d | Start detect mode, which will send YARP messages | | ||
+ | | c | Clear all faces in the database | | ||
+ | |||
+ | Requires: OpenCV, YARP | ||
+ | |||
+ | Written and tested on Linux, but it should work in Windows too. | ||
+ | At the moment you'll probably have to run it with: | ||
+ | |||
+ | simple-faceident --cascade=/ | ||
+ | |||
+ | In order to find OpenCV' | ||
+ | / | ||
+ | |||
+ | Todo: | ||
+ | * Try normalised cross correlation instead of image differencing | ||
+ | * Expose image size and error threshold via yarp | ||
+ | * Use tinyxml or something better for the serialisation | ||
+ | |||
+ | Source code: [[http:// | ||
+ |