OpenFace - Face Recognition For All
Written by Nikos Vaggalis   
Monday, 25 January 2016

Face recognition, once the preserve of the few, the likes of intelligence and security services, is now made available to the masses as well, thanks to OpenFace.

Caveat, there are many face detection libraries, such as OpenCV, and applications like Facebook or Picasa, but this is about face recognition, and applications of this kind are not easily found in public. 

OpenFace changes all that. It is an open source face recognition implementation, written in Python and Torch, and based on deep learning and neural networks . As such, it relies on a number of components that work together as pipelines, each one basing its input on the previous component's output. These are dlib and OpenVC, used for the face detection, alignment and transformation; the Torch machine learning library for implementing deep learning; and nn4, the neural network model itself.

A typical workflow would begin by feeding a set of images to dlib, which would then do its magic and detect the enclosed faces, placing bounding boxes around them and subsequently cropping them to a 96x96 pixels wide area. The face is then aligned and transformed to make the eyes and bottom lip appear in the same location on each image, since the face could be at different orientations. The newly released OpenFace 0.2.0 improves on these alignment and transformation processes by removing a redundant face detection cycle, thus halving the execution time.



The face image processed by dlib is then be used as input to the nn4 deep neural network component, which would map it on a 128-dimensional unit hypersphere, therefore representing  each face in 128 bytes. Due the way the alignment process works, nn4 can, even at this early stage, identify that two faces do not belong to the same person when there is a mismatch of (Euclidean) distances between the features of their representations, distances directly corresponding to a measure of face similarity.

Version 0.2.0 also improves on nn4's performance by adopting more efficient neural network training techniques that increase its accuracy from 76.1% to an impressive 92.9%!

Of course, the model  must be trained on a dataset, as the model is as good as the dataset it is based upon, something akin to the case explored in Are Your Pictures Memorable?

These neural network models are versioned, with the current version being nn4.v2, and can be trained in different ways and with different datasets. The current models are trained with a combination of the FaceScrub and CASIA-WebFace sets, but the authors are on the lookout for larger datasets, one suggestion being Megaface.

Finally,after nn4 is done processing, custom classification techniques can be applied for completing the recognition task.

All of this is now available to the public and as such you might be wondering who's going to use it and for what purpose?

In fact,there are many applications besides surveillance, such as using face recognition for identity verification in order to eliminate impersonation; VR and gaming; or even making business more customer centric by helping them identify returning customers and their preferences so they can offer a better customer experience.

On the other hand, the use of such a technology raises many privacy and civil liberty concerns, as in the hands of an authoritative government it could become a tool for controlling the masses. It also compromises, privacy by tracking public activity by introducing the ability of linking physical presence to the places a person has been, something that until now was only feasible through credit card transaction monitoring or capturing the MAC address of their mobile device. Imagine the scope for personalized advertising..

Potentially it contributes to an already troublesome scenario where privacy and its protective measures like cryptography are heavily attacked, blurring  the line between evading privacy and using surveillance as a countermeasure to crime and terror, even more .

The law, unprepared for the challenges that such a technology heralds, cannot keep up with the technological advancements as it has no answer to any of the aforementioned dilemmas.

One thing is for certain, however -  this technology grants great power and with great power comes great responsibility.  As the authors put it themselves:

"Please use responsibly!
We do not support the use of this project in applications that violate privacy and security. We are using this to help cognitively impaired users sense and understand the world around them"


Let's hope that their request is respected. 


More Information

OpenFace main site
OpenFace on Github

Related Articles

Are Your Pictures Memorable?


To be informed about new articles on I Programmer, sign up for our weekly newsletter,subscribe to the RSS feed and follow us on, Twitter, FacebookGoogle+ or Linkedin



Google Gemini API Developer Competition

Google is running a Gemini API Developer Competition with prizes including a 1981 custom electric DeLorean. Entrants will use the Gemini API to tackle real-world challenges, and the organizers su [ ... ]

Google Reduces Support For Python, Dart And Flutter

There are many reports that Google has removed people from its Python, Dart and Flutter teams and possibly more. What does this say about relying on Google as a source of technology for your projects? [ ... ]

More News


raspberry pi books



or email your comment to:

Last Updated ( Monday, 25 January 2016 )