Microsoft Cognitive Services contains a wide array of functionality. One of these features, the Face API, caught my attention because it provides an easy way to create personal interactions between you software and users. The API is subscription based but there is currently a free subscription level that allows more than enough calls per month for small projects and home projects. There are five requests that get used in Microsoft’s Face API: Detect, Find Similar, Group, Identify, and Verify.
The Detect Request is fairly self explanatory. You provide it an image and it returns a list of faces that it detected in that image. The Faces it returns includes coordinates for finding that face in the image, as well as several other, currently experimental, attributes. These attributes include age, gender, headPose, smile, facialHair, and glasses. These attributes are still in the experimental phase but that doesn’t mean you can’t have fun with them. The facialHair attribute for example attempts to tell the length of the face’s mustache, beard, and sideburns. You could easily congratulate a user for reaching certain beard lengths, such as lumberjack or wizard length.
The Find Similar Request will use a query face to search for similar face in a list. There are two modes that you can use when making this call. The first mode is matchPerson, which will do its best to find faces in the list that belong to that individual. The second mode is matchFace which will return a ranked list of similar faces. This could be used to sort through an album or collection of photos to find all photos that include your user.
The Group Request will separate faces into groups based on the similarities between those faces. The request returns however many groups it could create as well as a “messy” group, which contains faces that were not similar enough to fit into any groups. This could sift through an album and separate photos based on individuals.
The Identify Request takes a query face and compares it to a list of faces in a person group. It then returns a list of candidates for the query face ranked by similarity confidence. The person group is a list of faces you have stored with the API. This will most likely include the users of the application. Being able to identify a user can help create a much more personal experience. The software can display personalized information, from a daily schedule or to-do list, to showing what wishlist items have gone on sale. It all depends on who is standing in front of the camera.
The Verify Request works to verify a person by looking at their face. It can do this in one of two ways: it can determine if two faces belong to the same person or if one face belongs to a specific person. Both request types return if the face is identical and the confidence level is high enough for the comparison. This is a really easy way to add biometric security to any application that might use it, ranging form personal journal apps to home projects that open locks or doors for specific individuals.
The best part about this feature in Microsoft Cognitive Services is that it is an API. It can be called over the internet from your favorite programming language and the documentation has a list of examples in several languages for these calls. This makes it a useful tool for any project that might make use of it.