Premium SDK - Android
Face anti-spoofing, liveness check, face recognition, age/gender estimation, face landmark extraction, face occlusion detection, face quality calculation, eye closure detection, post estimation
Features
License
We offer lifetime license(perpetual license) based on application ID for Android SDKs. The license is available for a one-time payment. In other words, once you purchase license from me, you can use our SDK permanently.
To request a license, please contact us:
Email: contact@kby-ai.com
Telegram: @kbyai
WhatsApp: +19092802609
Skype: live:.cid.66e2522354b1049b
System Requirements
CPU: 2 cores or more
RAM: 150MB or more
OS: Android 4.4 or later
Architecture: arm64-v8a, armeabi-v7a
Setup
Copy the SDK (libfacesdk folder) to the root folder of your project.
Add SDK to the project in settings.gradle
Add dependency to your build.gradle
Initializing SDK
Step one
To begin, you need to activate the SDK using the license that you have received.
If activation is successful, the return value will be SDK_SUCCESS. Otherwise, an error value will be returned.
Step Two
After activation, call the SDK's initialization function.
If initialization is successful, the return value will be SDK_SUCCESS. Otherwise, an error value will be returned.
Enums and Classes
1. SDK_ERROR
This enumeration represents the return value of the 'init' 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 |
Liveness score (0 ~ 1) | float | liveness |
Face quality (0 ~ 1) | float | face_quality |
Face luminance (0 ~ 255) | float | face_luminance |
Face occlusion (0 ~ 1) | float | face_occlusion |
Eye closure (0 ~ 1) | float | left_eye_closed, right_eye_closed |
Mouth opening (0 ~ 1) | float | mouth_opened |
Age, Gender | int | age, gender |
68 points facial landmark | float[] | landmarks_68 |
3. FaceDetectionParam
This class serves as the input parameter for face detection, enabling various processing functionalities such as face liveness detection, eye closure checking, facial occlusion checking, mouth opening checking, and age and gender estimation.
Feature | Type | Name |
---|---|---|
Check liveness | boolean | check_liveness |
Check eye closure | boolean | check_eye_closeness |
Check face occlusion | boolean | check_face_occlusion |
Check mouth opening | boolean | check_mouth_opened |
Estimate age, gender | boolean | estimate_age_gender |
APIs
1. setActivation
To begin, you need to activate the SDK using the license that you have received.
If activation is successful, the return value will be SDK_SUCCESS. Otherwise, an error value will be returned.
2. init
After activation, call the SDK's initialization function.
If initialization is successful, the return value will be SDK_SUCCESS. Otherwise, an error value will be returned.
3. faceDetection
The Face SDK provides a unified function for detecting faces, enabling multiple functionalities such as liveness detection, face orientation (yaw, roll, pitch), face quality, facial occlusion, eye closure, mouth opening, age, gender, and facial landmarks.
The function can be used as follows:
This function requires two parameters: a Bitmap object and a FaceDetectionParam object that enables various processing functionalities.
The function returns a list of FaceBox objects.
4. templateExtraction
The SDK provides a function that can generate a template from a bitmap image.
This template can then be used to verify the identity of the individual captured in the image.
The SDK's template extraction function takes two parameters: a bitmap object and an object of FaceBox.
The function returns a byte array, which contains the template that can be used for person verification.
5. similarityCalucation
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 degree of similarity between the two individuals.
6. yuv2Bitmap
The SDK provides a function called yuv2Bitmap, which converts a yuv frame to a bitmap.
Since camera frames are typically in yuv format, this function is necessary to convert them to bitmaps.
The usage of this function is as follows:
The first parameter is an nv21 byte array containing the yuv data.
The second parameter is the width of the yuv frame, and the third parameter is its height.
The fourth parameter is the conversion mode, which is determined by the camera orientation.
To determine the appropriate conversion mode, the following method can be used:
Default Thresholds
If the liveness score exceeds 0.7, the face is a real face.
If the similarity between two faces is higher than 0.8, the face matching is successful.
If the absolute values of the face angles are less than 10.0, the face is identified as a fronted face.
If the occlusion value is higher than 0.5, the face is occluded.
If the eye close value is higher than 0.8, it indicates that the eyes are closed.
If the mouth opening value is higher than 0.5, it indicates that the mouth is open.
Last updated