Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
lirec:faceident_dev_log [2009-05-27 11:13] – davegriffiths | lirec:faceident_dev_log [2009-05-27 11:53] (current) – davegriffiths | ||
---|---|---|---|
Line 11: | Line 11: | ||
Also provide a test competency to try out reusable standard stuff for lirec (yarp, cross platform development, | Also provide a test competency to try out reusable standard stuff for lirec (yarp, cross platform development, | ||
- | ====Initial version==== | + | ====Initial version |
* Using squared sum of differences (SSD) to compare stored images with any faces found in the image. | * Using squared sum of differences (SSD) to compare stored images with any faces found in the image. | ||
Line 31: | Line 31: | ||
< | < | ||
- | ====Further refinements==== | + | ====Thinking about usage [19th March 2009]==== |
+ | * Adding user inteface for recording up to 10 people by pressing the number keys | ||
+ | * Better output - rendering the recorded faces, and draws lines between them and the detected faces. | ||
+ | |||
+ | ====YARP interface [20th March 2009]==== | ||
+ | |||
+ | Added a simple message to tell other programs which user is in view, with a confidence metric. | ||
+ | |||
+ | | /faceident user-id confidence-value | | ||
+ | |||
+ | The program still needs to be driven by user input, calibrating it by recording people at startup. | ||
+ | |||
+ | ====Scene state [32rd March 2009]==== | ||
+ | |||
+ | Rather than simply outputting the user id's every frame, it's more useful if the program tracks the state of the scene internally, and outputs changes. I've added the following yarp messages: | ||
+ | |||
+ | ^ Output port ^ | ||
+ | | /faceident | "user appeared" | ||
+ | | /faceident | "user disappeared" | ||
+ | |||
+ | ====More YARP, and persistence for INESC-ID [15 April 2009]==== | ||
+ | |||
+ | New messages | ||
+ | |||
+ | ^ Input port ^ Bottle contents | ||
+ | | / | ||
+ | | / | ||
+ | | / | ||
+ | | / | ||
+ | | / | ||
+ | |||
+ | Loading and saving is done quickly, for the review - and just consists of saving images as png files and a quickly hacked together ascii format for mapping the images to the id numbers. | ||
+ | |||
+ | Persistence across time via load and save to disk brings up problems - the computer vision will break when lighting changes too much, the saved faces will be too different from the visible ones. One possible workaround | ||
+ | would be to lower the error threshold and sneakily recalibrate for the most likely user at the start of a new session. | ||
+ | |||
+ | ====Idle mode [15 April 2009]==== | ||
+ | |||
+ | Due to a request from INESC-ID, which helps thinking about this more in terms of the wider architecture, | ||
+ | |||
+ | ^ Input port ^ Bottle contents | ||
+ | | / | ||
+ | |||
+ | ====XML and experimental multi image mode [23 April 2009]==== | ||
+ | |||
+ | Using [[http:// | ||
+ | |||
+ | I've also added another yarp message: | ||
+ | ^ Input port ^ Bottle contents | ||
+ | | / | ||
+ | |||
+ | This is the first step to dealing with lighting changes, just allowing images of people in multiple lighting situations to be used at once. The system looks through each image for each person in order to match the closest. | ||
+ | |||
+ | In calibration mode, the system will add new images to the user if the detected ones are above the error threshold. This is slightly dangerous, as you would be able to get images for different people in the same id... Not sure if there is a way to cope with that automatically. | ||
- |