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 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 theroot
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.
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
.
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
.
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 bitmap
.
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 areal 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