What is the Face API service?
The Face API service is a cloud-based service that provides algorithms for analyzing human faces in images and video. The Face API has two main functions: face detection with attributes and face recognition.
The Face API can detect up to 64 human faces with high-precision face location in an image. The image can be specified by file (a byte stream) or with a valid URL.
The face rectangle (left, top, width, and height) indicating the face location in the image is returned along with each detected face. Optionally, face detection extracts a series of face-related attributes such as pose, gender, age, head pose, facial hair, and glasses. For more information, see Face - Detect.
The ability to identify human faces is important in many scenarios including security, natural user interface, image content analysis and management, mobile apps, and robotics. The Face API service provides four face recognition functions: face verification, finding similar faces, face grouping, and person identification.
Face verification performs an authentication against two detected faces or from one detected face to one person object. For more detailed information, see Face - Verify.
Finding similar faces
Given a target detected face and a set of candidate faces to search with, the service finds a small set of faces that look most similar to the target face. Two working modes, matchFace and matchPerson are supported. matchPerson mode returns similar faces after applying a same-person threshold derived from Face - Verify. matchFace mode ignores the same-person threshold and returns top similar candidate faces. In the following example, candidate faces are listed. The query face is this.
To find four similar faces, matchPerson mode would return (a) and (b), which depict the same person as the query face. matchFace mode returns (a), (b), (c) and (d), exactly four candidates even if some have low similarity. For more information, see Face - Find Similar.
Given one set of unknown faces, the face grouping API automatically divides them into several groups based on similarity. Each group is a disjointed proper subset of the original unknown face set and contains similar faces. All the faces in the same group can be considered to belong to the same person. For more information, see Face - Group.
The Face API can be used to identify people based on a detected face and a people database. You create this database in advance, and it can be edited over time.
The following figure is an example of a database named "myfriends." Each group may contain up to 1,000,000/10,000 different person objects. Each person object can have up to 248 faces registered.
After a database has been created and trained, identification can be performed against the group with a new detected face. If the face is identified as a person in the group, the person object is returned.
For more information about person identification, see the following API guides:
Face storage and pricing
Face Storage allows a Standard subscription to store additional persisted faces when using LargePersonGroup/PersonGroup Person objects (PersonGroup Person - Add Face/LargePersonGroup Person - Add Face) or LargeFaceLists/FaceLists (FaceList - Add Face/LargeFaceList - Add Face) for identification or similarity matching with the Face API. The stored images are charged at $0.50 per 1000 faces and this rate is prorated on a daily basis. Free tier subscriptions are limited to 1,000 total persons.
For example, if your account used 10,000 persisted faces each day for the first half of the month and none the second half, you would be billed only for the 10,000 faces for the days stored. Alternatively, if each day during the month you persist 1,000 faces for a few hours and then delete them each night, you would still be billed for 1,000 persisted faces each day.
Take a look at these sample applications that make use of Face API.
- Microsoft Face API: Windows Client Library & Sample
- WPF sample app that demonstrates several scenarios of Face detection, analysis and identification.
- FamilyNotes UWP app
- Universal Windows Platform (UWP) sample app that shows usage of speech, Cortana, ink, and camera through a family note sharing scenario.
- Video Frame Analysis Sample
- Win32 sample app that shows analyzing live video streams in near real time using the Face, Computer Vision, and Emotion APIs.
The following tutorials demonstrate the Face API's basic functionalities and subscriptions processes:
- Getting Started with Face API in CSharp Tutorial
- Getting Started with Face API in Java for Android Tutorial
- Getting Started with Face API in Python Tutorial
Try a quickstart to implement a simple Face API scenario.
- Quickstart: Detect faces in an image using C# (other languages available)