Real-time face recognition with 99.9% accuracy | Face liveness detection | Android-optimized
-
Real-time processingunder 200ms latency -
Liveness detectionprevents photo/video spoofing -
LightweightAPK under 35MB -
Compliant with ISO/IEC 30107-1 biometric standards
-
All data processed locally (no cloud transmission)
Latest NIST FRVT evaluation report 2024-12-20
π ID Document Liveness Detection - Linux - Here 
π€ Hugging Face - Here
π Product & Resources - Here
π Help Center - Here
πΌ KYC Verification Demo - Here
πββοΈ Docker Hub - Here
This repository demonstrates both face liveness detection and face recognition technology developed by KBY-AI.
In this repository, we integrated
KBY-AI's both face liveness detection and face recognition technology intoAndroidnative platform.
| Basic | π½ Standard | Premium |
|---|---|---|
| Face Detection | Face Detection | Face Detection |
| Face Liveness Detection | Face Liveness Detection | Face Liveness Detection |
| Pose Estimation | Pose Estimation | Pose Estimation |
| Face Recognition | Face Recognition | |
| 68 points Face Landmark Detection | ||
| Face Quality Calculation | ||
| Face Occlusion Detection | ||
| Eye Closure Detection | ||
| Age, Gender Estimation |
| No. | Repository | SDK Details |
|---|---|---|
| 1 | Face Liveness Detection - Android | Basic SDK |
| 2 | Face Liveness Detection - iOS | Basic SDK |
| β‘οΈ | Face Recognition + Face Liveness Detection - Android | Standard SDK |
| 4 | Face Recognition + Face Liveness Detection - iOS | Standard SDK |
| 5 | Face Recognition + Face Liveness Detection - Flutter | Standard SDK |
| 6 | Face Recognition + Face Liveness Detection - Ionic-Cordova | Standard SDK |
| 7 | Face Recognition + Face Liveness Detection - React-Native | Standard SDK |
| 8 | Face Attribute - Android | Premium SDK |
| 9 | Face Attribute - iOS | Premium SDK |
| 10 | Face Attribute - Flutter | Premium SDK |
To get
Face SDK(server), please visit products here.
You can visit our YouTube video here to see how well our demo app works.
-
The code below shows how to use the license:
-
To request a license, please contact us:
π§Email:contact@kby-ai.com
π§Telegram:@kbyaisupport
π§WhatsApp:+19092802609
π§Discord:KBY-AI
π§Teams:KBY-AI
-
Copy the SDK (
libfacesdkfolder) to therootfolder in your project. -
Add SDK to the project in
settings.gradle.
include ':libfacesdk'- Add dependency to your
build.gradle.
implementation project(path: ':libfacesdk')- Step One
To begin, you need to activate the SDK using the license that you have received.
FaceSDK.setActivation("...")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.
FaceSDK.init(getAssets());If initialization is successful, the return value will be SDK_SUCCESS. Otherwise, an error value will be returned.
-
FaceDetectionParam
This class serves as the input parameter for face detection, allowing the inclusion of face liveness detection and specifying the desired liveness detection level.
Feature Type Name Check liveness boolean check_liveness Check liveness level int check_liveness_level When check_liveness_level is set to
0, the liveness detection achieves high accuracy. When check_liveness_level is set to1, the liveness detection operates with light weight.
The FaceSDK offers a single function for detecting faces, allowing the inclusion of face liveness detection and specifying the desired liveness detection level.
FaceSDK.faceDetection(bitmap, param)This function requires two parameters: a Bitmap object and a FaceDetectionParam object that enables various processing functionalities.
The return value of the function is a list of FaceBox objects. Each FaceBox object contains the detected face rectangle, liveness score, and facial angles such as yaw, roll, and pitch.
The FaceSDK 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 image captured.
byte[] templates = FaceSDK.templateExtraction(bitmap, faceBox);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.
The similarityCalculation function takes a byte array of two templates as a parameter.
float similarity = FaceSDK.similarityCalculation(templates1, templates1);It returns the similarity value between the two templates, which can be used to determine the level of likeness between the two individuals.
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:
Bitmap bitmap = FaceSDK.yuv2Bitmap(nv21, image.getWidth(), image.getHeight(), 7);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:
1 2 3 4 5 6 7 8
888888 888888 88 88 8888888888 88 88 8888888888
88 88 88 88 88 88 88 88 88 88 88 88
8888 8888 8888 8888 88 8888888888 8888888888 88
88 88 88 88
88 88 888888 888888







