Intro

As we know, everyone that surf on internet own at least one password. In reality, for every single account (think about Gmail, Hotmail, Facebook, Linkedin, etc) we have a password. That also means that many users will get overwhelmed by the abundance of passwords.

For this reason biometric identification is getting more and more diffused.

Biometric recognition is an information system that allows the identification of a person based on some of its main physiological and behavioral characteristics [0]
Biometric recognition types

Biometric authentication is certainly more easy and life integreted than use a complex password like "!6)?`#/gvc^w9$N<".

..but all that glitters ain't gold!

Biometric authentication has Drawbacks too. Let's see the most importants:

  • limited in availability to digital objects. This means that there is no standard to use face authentication in every devices. For example only Iphone X supports FaceID in the Apple mobile devices.
  • it cannot be changed. While passwords needs to be constantly changed, we can't do with biometric authentications. We have only one face, one fingerprint..

Face Recognition/Face Authentication

First of all, what is the difference between face recognition and face authentication?

Facial Recognition: A biometric software application capable of uniquely identifying or verifying a person by comparing and analyzing patterns based on the person’s facial contours. [1]
Facial Authentication: A form of biometric authentication that relies on the unique biological characteristics of an individual to verify that she is who she claims to be. [1]

In this article i will talk of Facial Authentication.

Open source Face Authentication Libraries

There are plenty of open source Face Authentication libraries. The most famous are:

All of these are written in Python.
In order to satisfy one's mine curiosity i've tried Face Recognition and Open Face both with my photos and with my idols pictures as showed below.

In order to compare two faces we usually consider Euclidean Distance where 0,0 corresponds to identical faces and 4,0 to completely opposite faces. I will consider 0,5 as the minimum confidence to say that two faces refer to the same person. In this case we can assume a "200 Success", otherwhise a "401 Unauthorized" error code.

I've reported, foreach library, the results.

"Face Recognition" Result

"Face Recognition" result

21/21 = 100% confidence

"Open Face" Result

"Open Face" result

15/21 = 71.4% confidence

Note!

These confidences are obtained using the libraries as-is so no pre and post processing was done. It's important saying that in order to have stable result, every use case must has its configuration. For example, Asian faces has different features compared to European people!

References

[0] https://medium.com/iquii/biometric-recognition-definition-challenge-and-opportunities-of-biometric-recognition-systems-d063c7b58209

[1] https://www.jumio.com/facial-recognition-vs-facial-authentication/