Face Recognition Using SIFT
Of course, getting the robot to detect and follow a face may not be enough. For advanced human-robot interaction, we would ideally have robots communicate to humans based on whether they recognize them.
One of the projects done in past semesters was card recognition using SIFT. SIFT, or scale-invariant feature transform, is an algorithm used to detect features in images. I decided to try and use the supplied code for SIFT rather than trying to create my own program for face recognition.
However, although SIFT did work on the chiara it took a long time to process the images, stalling the chiara for several seconds. I could not fully assess how well SIFT worked due to lack of time, but it was able to recognize my face.
An article on using SIFT for face recognition can be found here:
http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=4709241
In my project I also interfaced the Looking Glass class to show what my program can do. Ideally one would run the demo so that the robot would upload an image to the looking glass whenever it would recognize a new face (this is not how I implemented it though):