Face recognition is a complex deep learning problem and in the last years we have made great technological progress to make it mainstream (check where FRT is being used here). Still due to the complexity of the technology, most of these new services that use facial ID do not build the technology themselves but rather use an API provides.
And as we see nowadays face recognition has become an exciting market with multiple companies offering a broad choice of solutions. Integrating face recognition capabilities into your project has never been easier. If you are not sure about what face recognition SDK/API to choose, this article will help you.
SDK VS API
There are primarily two types of solutions, Face Recognition SDKs and Face Recognition APIs.
|FACE RECOGNITION API||FACE RECOGNITION SDK|
|• Cloud hosted, available on a subscription basis.|
• Access from any platform or device.
• Easy integration into the existing codebase.
• Easy to switch services.
• Create and deploy cross-platform applications.
|• Available as pre-built libraries or provided along with source code for integration in the application.|
• Work completely offline.
• Becomes a single unit containing the face detection/recognition algorithm.
• Unlimited number of queries/storage.
• Suitable for real-time applications.
|• Limits on the number of queries per second/month.|
• Limited face database storage capacity.
• Require reliable network connection
• Cannot be used for real time apps.
• Keep in mind dynamic pricing.
|• Hardware resources must be managed by you.|
• Licensing fees are expensive.
• Difficult to switch services.
Below is the list of the Facial Recognition APIs:
Can be used both to recognize a human face and to analyze the one on the picture/ video. Their API has a pretty big set of features, such as:
• gender and age detection;
• attention measurement;
• emotion detection;
• ethnicity detection;
• finding a facial match (good news for security apps).
But what should one keep in mind is the monthly payment. It would be pretty high as well.
Though the API has been released only in 2017, it has firmly established itself as a leader amongst similar offerings.
One of the great advantages of this API is that it can see the difference between a real face and a picture of it thanks to spoof detection. What is more, TrueFace offers reusable snippets of code.
AMAZON AWS REKOGNITION
This API is a good fit for developers who create apps and software that is integrated into Amazon Web Service. Using this API will make it really easy to build applications that make use of other AWS products. With Amazon Rekognition, here’s what you can do:
• analyze images to find out if they have suspicious content;
• detect and select the text in images;
• compare two faces (to understand whether it’s the same person’s face on two different photos);
• scan emotions.
Face Recognition and Face Detection by Lambda Labs
The API is among the cheapest on the market. So if you are new to facial recognition and unsure of whether you really need such feature in the app, it’s a good option to try.
After putting the URL of an image in, this API is able to tell if it contains a celebrity on the photo (see the list at LambdaLabs webpage) and who exactly is pictured on it.
Also after sending a picture URL for analysis, a user will find out if there’re faces on the photo and how many of them the photo contains. The API will also pinpoint the main facial features (nose, mouth, eyes).
This API provides face detection and face recognition web services to your app or website with a few lines of code. The FaceX can detect faces in uploaded images or URLs. So if you want Integrate this API into your app to be able to perform face matching as a password this API can be good fit for you.
Microsoft Face API
Microsoft Face API enables developers to detect similar faces and compare them as well as to organize face images into similar groups or cluster them. Face API also provides the ability to:
• identify previously tagged people in images;
• check the likelihood of two different faces to be the same person and return a score;
• detect one or more human faces on an image and get a face rectangle for the face with
27 landmarks for a single face;
• recognize emotions (anger, contempt, disgust, fear, happiness, & etc.).
Animetrics Face Recognition
In order to analyze and recognize faces more efficiently, the API transforms a 2D picture into a 3D model. The recognition is performed by detecting a face and comparing it to an existing set of faces until the match is found.
This service provides recognition, detection and analysis of facials including two subsets of 23, and 81 points, as well as, age, gender, glasses, race, and others. The API uses REST calls and returns JSON, an account is required with services. Users can make calls to train the program, detect faces, recognize faces, group faces, manipulate people, create face sets, create groups, and get info.
Google Cloud Vision
By being integrated into the Google Cloud Platform, this API will be a breeze for you to integrate into apps that are already using other Google Cloud Platform products and services.
Google Cloud Vision has the power to detect multiple faces within an image along with major attributes like emotional state and usage of headband by the person. Also there is an added benefit of availability of AutoML Vision that is used for training customer vision models.
IBM Watson Visual Recognition
Whether it is faces, objects, colors, or food, this API lets you identify many different types of classifiers. Here are the main features of the API:
• understands the contents of images;
• determines the age and gender of people on photos;
• finds similar images to the one previously analyzed;
• can be train to use classifiers of a certain user.
Although OpenCV isn’t an API, it still deserves mention in this list. It is the most popular library for computer vision. Originally written in C/C++, it now provides bindings for Python. OpenCV uses machine learning algorithms to search for faces within a picture. With over 3,000 optimized computer vision algorithms, there are a lot of options for how developers can make use of it.
And here is the list of the Facial Recognition SDKs:
FaceSDK enables Microsoft Visual C++, C#, Objective C, VB, Java and Delphi developers to build 32-bit and 64-bit applications for Web, Windows, Linux, macOS, iOS and Android with face recognition and face-based biometric identification functionality.
This API also has an offline SDK for iOS & Android for you to use. The offline SDK does not provide face recognition, but it can perform face detection, comparing, tracking and landmarks. It can provide facial detection and comparing even when a user’s phone has no reception. That gives a broader range of possibilities to developers.
FindFace Enterprise Server SDK by NtechLab
Processes face recognition and works on the client’s side, so no biometric data is transferred or stored by NtechLab. It detects and identifies people’s faces in live video streams and video footage addressing. The SDK allows for integration into any web, mobile, or desktop application using cross-platform REST API.
Kairos Human Analytics SDK
VeriLook is designed for biometric systems developers and integrators. The technology assures system performance and reliability with live face detection, simultaneous multiple face recognition and fast face matching in 1-to-1 and 1-to-many modes.
This SDK allows development of stand-alone and Web-based solutions on Microsoft Windows, Linux, Mac OS X, iOS and Android platforms.
InSight SDK by sightcorp
Devoted to a single-user analysis in controlled environments. InSight SDK measures relevant facial data like facial expressions, age, gender, head pose and eye gaze location. The SDK can measure the emotional reactions and engagement level of targeted audience and classify this information per age or gender group. Windows, OS X, Linux, iOS, Android are supported. To use InSight SDK one should have C++ expertise.
Visage Technologies offer their customers 3 SDK’s packages:
• visage|SDK FaceTrack tracks 3D head pose, full facial features and eyes/gaze for multiple faces in video coming from a camera, video file or other sources.
• visage|SDK™ FaceAnalysis estimates gender, emotion and age. Works with FaceTrack to find/track faces in images or video, and then provides information about gender, emotions (happiness, sadness, surprise, anger, disgust and fear, and additionally neutral) and age for the faces in roughly frontal position.
• visage|SDK‘s FaceRecognition package is used to identify or verify a person from a digital image or a video source using a stored face database. This SDK is capable of measuring similarity between people and recognizing a person’s identity from frontal facial image by comparing it to faces previously stored in a gallery.
AFFECTIVA SDK detects emotion in real time on device. iOS, Android, Web, Windows, Linux, macOS, Unity and Raspberry Pi are supported. Affectiva SDK recognize 7 kinds of emotions (individual faces as well as for groups of 20+), 20 expressions and 13 emojis and includes classifiers for age, gender and ethnicity.
DeepSight by BaseApp Systems
An SDK for face detection/recognition/landmarks/demographics. Extract 68 point facial landmark points such as tips of eyes, nose and lips. These can be used to perform accurate pose estimation and face alignment. Classifyies gender and age from faces. Extraction of 128 dimensional embeddings takes a few milliseconds per face and can be performed in real-time.
Of course, there are many more tools and instruments which you can try while adding FRT to your app. Some of them offer free trial period so you won’t even have to pay at first. As for the APIs & SDKs mentioned below, all of them have their pros and cons, you just need to pick one which is the best for your project’s requirements. And if you have doubts about choosing the right one by yourself, Altabel’s team is ready to help you with that.
So will you be using any of these APIs or SDKs in your projects? Do you have something to add or need help with making a choice? Then leave a comment below.