FaceRecognition-Flutter icon indicating copy to clipboard operation
FaceRecognition-Flutter copied to clipboard

Face recognition Flutter with 3D passive liveness detection(anti-spoofing). This repo supports the following functionality: face matching, face compare, face comparison, facial recognition, feature ex...

📚 Product & Resources - Here

🛟 Help Center - Here

💼 KYC Verification Demo - Here

🙋‍♀️ Docker Hub - Here

FaceRecognition-Flutter

Overview

This repository demonstrates both face liveness detection and face recognition technology for Flutter on Android and iOS platform.

In this repository, we integrated KBY-AI's both face liveness detection and face recognition technology into Flutter project for both Android and iOS.

◾FaceSDK(Mobile) Details

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

◾FaceSDK(Mobile) Product List

No. Repository SDK Details
1 Face Liveness Detection - Android Basic SDK
2 Face Liveness Detection - iOS Basic SDK
3 Face Recognition - Android Standard SDK
4 Face Recognition - iOS Standard SDK
➡️ Face Recognition - Flutter Standard SDK
6 Face Recognition - React-Native Standard SDK
7 Face Attribute - Android Premium SDK
8 Face Attribute - iOS Premium SDK

To get Face SDK(server), please visit products here.

Try the APK

Google Play

Performance Video

You can visit our YouTube video here to see how well our demo app works. Face Recognition Android

Screenshots

SDK License

The face recognition project relies on kby-ai's SDK, which requires a license for each application ID.

  • The code below shows how to use the license: https://github.com/kby-ai/FaceRecognition-Flutter/blob/0ed0fea9f86d73d08aff81e25da479c62f2ebc05/lib/main.dart#L68-L94

  • To request a license, please contact us: 🧙Email: [email protected] 🧙Telegram: @kbyai 🧙WhatsApp: +19092802609 🧙Skype: live:.cid.66e2522354b1049b 🧙Facebook: https://www.facebook.com/KBYAI

How To Run

1. Flutter Setup

Make sure you have Flutter installed.

We have tested the project with Flutter version 3.10.2.

If you don't have Flutter installed, please follow the instructions provided in the official Flutter documentation: https://docs.flutter.dev/get-started/install

2. Running the App

Run the following commands:

flutter pub upgrade
flutter run

If you plan to run the iOS app, please refer to the following link for detailed instructions: https://docs.flutter.dev/deployment/ios

About SDK

1. Setup

1.1 'Face SDK' Setup

Android

  • Copy the SDK (libfacesdk folder) to the 'android' folder of your project.

  • Add SDK to the project in settings.gradle

include ':libfacesdk'

1.2 'Face SDK Plugin' Setup

  • Copy 'facesdk_plugin' folder to the root folder of your project.

  • Add the dependency in your pubspec.yaml file.

  facesdk_plugin:
    path: ./facesdk_plugin
  • Import the facesdk_plugin package.
  import 'package:facesdk_plugin/facesdk_plugin.dart';
  import 'package:facesdk_plugin/facedetection_interface.dart';

2 API Usages

2.1 FacesdkPlugin

  • Activate the 'FacesdkPlugin' by calling the 'setActivation' method:
  final _facesdkPlugin = FacesdkPlugin();
  ...
  await _facesdkPlugin
          .setActivation(
              "Os8QQO1k4+7MpzJ00bVHLv3UENK8YEB04ohoJsU29wwW1u4fBzrpF6MYoqxpxXw9m5LGd0fKsuiK"
              "fETuwulmSR/gzdSndn8M/XrEMXnOtUs1W+XmB1SfKlNUkjUApax82KztTASiMsRyJ635xj8C6oE1"
              "gzCe9fN0CT1ysqCQuD3fA66HPZ/Dhpae2GdKIZtZVOK8mXzuWvhnNOPb1lRLg4K1IL95djy0PKTh"
              "BNPKNpI6nfDMnzcbpw0612xwHO3YKKvR7B9iqRbalL0jLblDsmnOqV7u1glLvAfSCL7F5G1grwxL"
              "Yo1VrNPVGDWA/Qj6Z2tPC0ENQaB4u/vXAS0ipg==")
          .then((value) => facepluginState = value ?? -1);  
  • Initialize the 'FacesdkPlugin':
await _facesdkPlugin
          .init()
          .then((value) => facepluginState = value ?? -1)
  • Set parameters using the 'setParam' method:
await _facesdkPlugin
        .setParam({'check_liveness_level': livenessLevel ?? 0})
  • Extract faces using the 'extractFaces' method:
final faces = await _facesdkPlugin.extractFaces(image.path)
  • Calculate similarity between faces using the 'similarityCalculation' method:
double similarity = await _facesdkPlugin.similarityCalculation(
              face['templates'], person.templates) ??
          -1;

2.2 FaceDetectionInterface

To build the native camera screen and process face detection, please refer to the lib/facedetectionview.dart file in the repository.

This file contains the necessary code for implementing the camera screen and performing face detection.