This stands for face recognition docker, facial recognition docker, face matching docker, face comparison docker, face search engine docker, face identification docker, face search ID docker on server
We implemented face recognition SDK on docker container
We provide the Face Recognition SDK for both Windows and Linux.
Features
License
We offer lifetime licenses(perpetual) based on machine ID for Servers (Windows, Linux).
First, obtain the machine code for activation and request a license based on the machine code.
Step Two
Next, activate the SDK using the received license.
If activation is successful, the return value will be SDK_SUCCESS. Otherwise, an error value will be returned.
Step Three
After activation, call the initialization function of the SDK.
The first parameter is the path to the model.
If initialization is successful, the return value will be SDK_SUCCESS. Otherwise, an error value will be returned.
Enums and Structure
1. SDK_ERROR
This enumeration represents the return value of the initSDK and setActivation functions.
Feature
Value
Name
Successful activation or initialization
0
SDK_SUCCESS
License key error
-1
SDK_LICENSE_KEY_ERROR
AppID error (Not used in Server SDK)
-2
SDK_LICENSE_APPID_ERROR
License expiration
-3
SDK_LICENSE_EXPIRED
Not activated
-4
SDK_NO_ACTIVATED
Failed to initialize SDK
-5
SDK_INIT_ERROR
2. FaceBox
This class represents the output of the face detection function that contains the detected face rectangle, liveness score, and facial angles such as yaw, roll, and pitch.
Feature
Type
Name
Face rectangle
int
x1, y1, x2, y2
Face angles (-45 ~ 45)
float
yaw, roll, pitch
Face quality (0 ~ 1)
float
face_quality
Face luminance (0 ~ 255)
float
face_luminance
Eye distance (pixels)
float
eye_dist
Eye closure (0 ~ 1)
float
left_eye_closed, right_eye_closed
Face occlusion (0 ~ 1)
float
face_occlusion
Mouth opening (0 ~ 1)
float
mouth_opened
68 points facial landmark
float[68 * 2]
landmarks_68
Face templates
unsigned char [2048]
templates
Face angles
68 points facial landmark
APIs
1. getMachineCode
First, obtain the machine code for activation and request a license based on the machine code.
2. setActivation
Next, activate the SDK using the received license.
If activation is successful, the return value will beSDK_SUCCESS. Otherwise, an error value will be returned.
3. initSDK
After activation, call the initialization function of the SDK.
The first parameter is the path to the model.
When using Windows, it is necessary to provide the complete file path for the model.
Example:
model_path = "C:\path\to\model"
If initialization is successful, the return value will be SDK_SUCCESS. Otherwise, an error value will be returned.
4. faceDetection
The Face SDK provides a single API for detecting faces, performing liveness detection, determining face orientation (yaw, roll, pitch), assessing face quality, detecting facial occlusion, eye closure, mouth opening, and identifying facial landmarks.
The function can be used as follows:
This function requires 5 parameters.
The first parameter: the byte array of the RGB image buffer.
The second parameter: the width of the image.
The third parameter: the height of the image.
The fourth parameter: the FaceBox array allocated with maxFaceCount for storing the detected faces.
The fifth parameter: the count allocated for the maximum FaceBox objects.
The function returns the count of the detected face.
5. templateExtraction
The SDK provides a function that enables the generation of templates from RGB data. These templates can be used for face verification between two faces.
The function can be used as follows:
This function requires 4 parameters.
The first parameter: the byte array of the RGB image buffer.
The second parameter: the width of the image.
The third parameter: the height of the image.
The fourth parameter: the FaceBox object obtained from the faceDetection function.
If the template extraction is successful, the function will return 0. Otherwise, it will return -1.
6. similarityCalculation
The similarityCalculation function takes a byte array of two templates as a parameter.
It returns the similarity value between the two templates, which can be used to determine the level of likeness between the two individuals.
Default Thresholds
If the similarity value between the two templates is high, it indicates that the faces are the same.
from facesdk import getMachineCode
from facesdk import setActivation
from facesdk import initSDK
from facesdk import faceDetection
from facesdk import templateExtraction
from facesdk import similarityCalculation
from facebox import FaceBox
#include "facesdk.h"
# CMake for Windows
target_link_libraries(your_app_name
/path/to/library/facesdk2.lib
)
# CMake for Linux
target_link_libraries(your_app_name
/path/to/library/libfacesdk2.so
)
# Python code example
machineCode = getMachineCode()
print("machineCode: ", machineCode.decode('utf-8'))
// C++ code example
printf("machine code: %s\n", getMachineCode());
# Python code example
setActivation(license.encode('utf-8'))
// C++ code example
int ret = setActivation("...");
# Python code example
initSDK("data".encode('utf-8'))
// C++ code example
ret = initSDK("data");
# Python code example
machineCode = getMachineCode()
print("machineCode: ", machineCode.decode('utf-8'))
// C++ code example
printf("machine code: %s\n", getMachineCode());
# Python code example
setActivation(license.encode('utf-8'))
// C++ code example
int ret = setActivation("...");
# Python code example
initSDK("data".encode('utf-8'))