What is Face Detection:
Face Detection uses biometrics to map our facial features from a live visual or photograph. Microsoft Azure has introduced an enterprise business solution that even a developer with zero knowledge in AI can implement it.
Microsoft Face API is a generic solution which can be used for many images recognitions purpose. Here I have used the solution for employee face recognition.
Use Case:
Every organization will collect the employee image along with the personal details as part of the onboarding process. Here we are going to use the data as master data for our application. When an employee enters the office or inside the ODC premises. Currently, we are controlling his access through an access card or fingerprint sensor with manual intervention. Instead, we are going to control the same with image recognition.
When the person enters the office premises or ODC, we can have an image capturing sensor device like Azure Kinect that will capture the photo and send it to our application. This will intern try to match the person image with employee master data, which we have. If our application finds any match, we will recognize the person as an authorized user. If it doesn’t match, we will provide denial of access.
Purpose of the approach:
As a preventive measure against the spread of COVID-19, the government has announced to exempt from the biometric attendance. Currently, the fingerprint sensor is a widely used biometric to mark the attendance of the employees. It is understood, the most common method of transmission of the virus seems to be through infected surfaces. Therefore, it is desirable to avoid touching surfaces that might be affected due to human touch. Thus, the idea includes a substitute answer for the biometric fingerprint attendance system.
Implementation:
Microsoft Azure provides several Rest APIs for facial recognition.
This documentation refers to the list of APIs provided by Microsoft.
Microsoft Documentation for Reference:
https://docs.microsoft.com/en-us/azure/cognitive-services/face/
The API is optimized according to our use case in which we are using FACE API to grant access to the employees entering the premises.
Prerequisites:
- Create a Microsoft Azure account.
- Navigate to https://azure.microsoft.com/en-in/services/cognitive-services/face/
- Search for Microsoft Cognitive Services Face and create a resource under the face.
- Once the resource is created, it will provide a subscription key, an endpoint for the API made.
- Store the subscription key, which needs to be passed along with the request while calling the API.
Service Details:
I have built this as a generic solution for detecting the person of the organization. The first step would be registering an organization with our application. Since I have not hosted this application anywhere, the domain name will remain as a localhost.
1.To Register, the organization with our application
POST: http://localhost:8080/org/register
This is a generic service that will be used to register the organization with our application and necessary organization details, which we will be stored in our database for future reference.
2.To Register the employee
POST: http://localhost:8080/emp/register
The above service is used during onboarding, where we will register an employee with the organization. Along with the necessary details, we will also get the employee photograph for access creation. This service will generate a unique personId & faceId for the corresponding employee, and we will save those along with the employee details in our database.
3.Face Detection
POST: http://localhost:8080/emp/detect
This service will capture the image of the person entering the premises, which compares with the employee repository. If there is any match, that employee will be permitted inside the premises. However, if there is no match, then the service will throw an error message, which means the person who is trying to enter is not allowed inside the premises.