||Face Identification on a mW power budget

Face Identification on mW power budget using GAP8

Face Identification has attracted a lot of press relating to uses in security applications. It is, however, an interesting feature in many applications. Identifying the owner of a device versus another person can have many uses in creating user experiences. What if one could add face detection to a product at an extra cost of a few euros and at a power consumption compatible with many years of operation on a battery. GAP8 makes this possible!

GreenWaves has released a full software stack with a demonstration application for our GAPPoC-A vision applications board. The Face Identification algorithm is a combination of a face detector and then a face reidentification engine. The Face Detection algorithm is an implementation of the classical Viola-Jones face detector. Face Reidentification is implemented using a SqueezeNet based Convolutional Neural Network (CNN). This software stack is a perfect demonstration of GAP8’s flexibility in running different algorithms at extremely low power levels.

First, the application looks for a face in the image using the Face Detection algorithm. Until a face is detected the Face Reidenfication Network is not run. Face Detection can be triggered by an external signal such as a Passive Infrared Sensor (PIR) to further reduce power consumption when no face is present. Once a face is detected the Face Detection algorithm outputs the coordinates of the detected face in the image. This area of the image is extracted and scaled to a 128 x 128-pixel image. This extracted portion of the image is provided as input to the Face Reidentification CNN. The output of the CNN is 1024 parameters (16-bit values) signature of the detected face.

Signature of a face to be recognised is stored in the database. Presenting another image of the same person to the Face Reidentification network will result in a set of parameters that are closely related to the stored signature. So to ‘learn’ a face one or more images are taken and the sets of resulting parameters stored into the database. Once a face is learned the values in output by the Face Reidentification CNN are compared with the database and if close a match is made.

The input image is taken at Quarter VGA (QVGA) resolution (320 x 240 pixels). The Face Detection algorithm consumes around 1 mW per frame per second and frame rate of 10 frames per second consumes 1/7th fraction of GAP8’s compute power.

In its best power performance Face Reidentification CNN consumes 22mW per frame per second. This is only run when a face is detected and takes approximately 400mSec to evaluate. The CNN evaluated on the Labelled Faces in the Wild dataset (LFW) reaches 96% accuracy.

At these power levels, face identification can be integrated into a wide range of different devices with a very small effect on their battery life.

GreenWaves has released the full face identification stack including the training scripts and the GAP AutoTiler model under a BSD, open-source license. You can access it at  https://github.com/GreenWaves-Technologies/FaceReID