I can't imagine how exactly an application can recognize faces of people. Its not always accurate, but works well in most of the situations. Does it scan the faces pixel wise or is there some other technique to do it? Is there any particular algorithm to recognize faces? I mean how do these applications manage to work when the images' darkness level, angle, expression, etc are different?