A Face Recognition Library using Convolutional Neural Networks

Authors: Leonardo Blanger; Alison R. Panisson
DIN
IJOER-AUG-2017-25
Abstract

In this work, we propose a face recognition library, with the objective of lowering the implementation complexity of face recognition features on applications in general. The library is based on Convolutional Neural Networks; a special kind of Neural Network specialized for image data. We present the main motivations for the use of face recognition, as well as the main interface for using the library features. We describe the overall architecture structure of the library and evaluated it on a large scale scenario. The proposed library achieved an accuracy of 98.14% when using a required confidence of 90%, and an accuracy of 99.86% otherwise.

Keywords
Artificial Intelligence CNNs Face Recognition Image Recognition Machine Learning Neural Networks.
Introduction

Nowadays, face detection and face recognition technologies are commonly present among online services provided by big Internet companies, such as Facebook and Google. Currently, some of the best image recognition techniques we have are based on variations of (Deep) Artificial Neural Networks (ANNs). For instance, the authors in [11] used such techniques to achieve record performance on the LSVRC1 competition. However, the implementation of such systems is still complex, in the sense of knowledge required. This imposes a great difficulty for independent developers without the necessary AI expertise to apply face recognition in their own projects.

Among the practical situations where face recognition can be applied are:

Surveillance systems, on places such as industries, offices, banks, etc., where it is necessary to have a control over the allowed staff;

Employee control, in the form of biometric presence monitoring systems. Controlling the employee frequency provides useful metrics for human resources departments;

Efficient login on applications, instead of a password, or in addition to it, in order to verify user authenticity on the recovering of forgotten passwords;

Personalized user experience on systems such as smart houses, cars, or personal assistants;

Social network applications on which users can share pictures;

As an additional feature for mobile applications.

Conclusion

In this work, we proposed a face recognition library in Python, with the objective of lowering the implementation complexity of face recognition features in applications in general. We provided the description of the main library features, as well as a description of the general architectural model of the internal CNN.

Despite the current existence of a similar software library [3], face recognition is still not a fully solved problem, with human level accuracies being surpassed only on the last few years. In this perspective, the main contributions of our work are: (i) we proposed CNN architecture for image recognition; (ii) we developed a general purpose face recognition library for python using the proposed architecture; (iii) we evaluated the library architecture on a large scale scenario using a public dataset of face images;

The proposed library achieved high accuracy on a large scale task of simple recognition. Also, when using a required confidence of 90%, the network did not classified any image erroneously, which is an important requirement for security systems. In summary, the results showed an excellent generalization capacity.

In future works, we intend to apply the library on real mobile apps and evaluate its performance. We also intend to further improve the library, investigating the relation between number of categories (people), amount of available data, and network capacity, with the objective of implementing a partially automatic generation of the model’s architecture based on specific problems.

Article Preview