In a human vs. computer test on 13k photos of 6k public figures, the GaussianFace project claims to identify human faces better than humans (97% human accuracy vs. 98% computer accuracy). The authors claim their model can adapt automatically to complex data distributions, and therefore can well capture complex face variations inherent in multiple sources. The reporters at The Register summarize the GaussianFace process as,
“GaussianFace normalises each pic into a 150×120 pixel image, and uses five landmarks – two eyes, the nose, and the corners of the mouth – as the basis for the image transform. It then creates 25 x 25 overlapping tiles in the image, and captures a vector of each patch, which can be used for recognition.”
For those interested in trying facial recognition, read the paper and then use my PF/s-capable machine-learning code, “Deep-learning Teaching Code Achieves 13 PF/s on the ORNL Titan Supercomputer“. Note the authors collected a large set of faces from the Internet, so you too can create a large training set. Of course, it will be difficult to compete with Google, Facebook, Twitter, and many other companies who are actively encouraging people to submit labeled images of themselves, but you can very quickly access the data needed for experimentation. Example set of images from the GaussianFace paper:
A note of caution about machine-learning in general
The following commentary does not reflect – in any way – an opinion about GaussianFace or the results published by the GaussianFace authors. Be aware if you try to develop your own facial recognition software that it is very easy for people to deceive themselves into believing that the computer correctly performed some complex recognition task. A classic example of people misinterpreting the output of a “deep-learning” classifier occurred in the late 1980s when researchers at a major US National Laboratory trained a neural network using a set of pictures of tanks and cars. They were gratified to see that the machine-learning algorithm correctly identified most of the pictures – and that the neural network would correctly identify images that the machine had never seen before. Further testing showed that the machine-learning algorithm performed abysmally in the field. Later analysis determined that the pictures of the tanks were largely taken on a cloudy day while the car pictures were generally taken on a sunny day. Thus the complex “deep-learning” algorithm was actually deciding how bright the light was in the picture. It was the people who supplied the interpretation, “Look we found a tank!” Validation is key and will hopefully prevent any future automated drone flying over the White House from suddenly deciding that your car driving past the White House is actually a tank in close proximity to the President … merely because the sun went behind a cloud. My Scientific Computing article, “Validation: Assessing the Legitimacy of Computational Results” notes in particular,
“With a myriad of computer vision research projects and companies making assertions and claims, the noise level in computer vision research appears to be increasing.”
Thus it really pays to be skeptical of what a machine learning algorithm is telling you! It is worth saying multiple times, “Validation is essential to good science”.
Click here for more TechEnablement machine-learning articles and tutorials!