From 6e30f27487ac8eafafe122c7ab918ee6ae9eb0a7 Mon Sep 17 00:00:00 2001
From: Hassan-Recognito <153883841+Hassan-Recognito@users.noreply.github.com>
Date: Tue, 9 Apr 2024 08:31:01 +0800
Subject: [PATCH] Update README.md
---
README.md | 188 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 187 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index aa5685b..2062e1a 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,187 @@
-# Face-SDK-iOS-Demo
+
+
+
+
+# Face Recognition, Liveness Detection, Pose Estimation iOS SDK Demo
+
+
+
+
+
+ Latest NIST FRVT Report
+
+
+
+
+This repository contains a demonstration of Recognito's face recognition SDK for iOS.
+The SDK includes advanced features such as face recognition, liveness detection, and pose estimation.
+Recognito's face recognition algorithm has been ranked as the **Top 1 in the NIST FRVT** (Face Recognition Vendor Test).
+
+For more details and documentation, visit [https://docs.recognito.vision/](https://docs.recognito.vision/).
+
+##
Features
+- **Face Recognition:** Identify and verify individuals by comparing their facial features.
+- **Liveness Detection:** Determine whether a face is live or spoofed to prevent fraud in authentication processes.
+- **Pose Estimation:** Estimate the pose of a detected face, including Yaw, Roll, Pitch
+
+### - Additional Features
+- **NIST FRVT Top 1 Algorithm:** Utilize the top-ranked face recognition algorithm from the NIST FRVT for accurate and reliable results.
+- **On-premise:** Operate entirely within your infrastructure, ensuring data privacy and security.
+- **Real-time:** Perform face recognition, liveness detection, and pose estimation with minimal latency.
+- **Fully-offline:** Function without the need for an internet connection, ensuring reliability and data privacy.
+
+##
Demo Video
+[
](https://www.youtube.com/watch?v=9HM70PFa4lQ)
+
+Recognito Youtube Channel: [youtube.com/@Recognito-Ltd](https://www.youtube.com/@Recognito-Ltd)
+
+
+
+
+
+
+
+
+
+##
SDK Integration
+To use the Recognito SDK in your iOS project, follow these steps:
+#### 1. Add `facesdk.framework` into the project
+- Copy and add the SDK framework to your iOS project.
+
+- Add the following dependency to your `build.gradle` and `settings.gradle` files:
+ https://github.com/Recognito-Vision/Face-SDK-Android-Demo/blob/601379c51970400b5c90972854b3468beef683ea/app/build.gradle#L50-L52
+ https://github.com/Recognito-Vision/Face-SDK-Android-Demo/blob/601379c51970400b5c90972854b3468beef683ea/settings.gradle#L17-L19
+
+#### 2. Application License (One-Time License)
+- For trial license, share your application ID.
+ https://github.com/Recognito-Vision/Face-SDK-Android-Demo/blob/601379c51970400b5c90972854b3468beef683ea/app/build.gradle#L6-L15
+
+
+- Add your license to `assets/license` file:
+ https://github.com/Recognito-Vision/Face-SDK-Android-Demo/blob/601379c51970400b5c90972854b3468beef683ea/app/src/main/assets/license?plain=1#L1-L5
+- Initialize SDK with license.
+ https://github.com/Recognito-Vision/Face-SDK-Android-Demo/blob/601379c51970400b5c90972854b3468beef683ea/app/src/main/java/com/bio/facerecognition/MainActivity.kt#L39-L47
+
+ Initialization status codes:
+
+ | Code | Status |
+ |:------:|------|
+ |0|Activate SDK successfully|
+ |-1|License Key Error|
+ |-2|License AppID Error|
+ |-3|License Expired|
+ |-4|Activate Error|
+ |-5|Init SDK Error|
+#### 3. APIs of SDK
+##### - Activate SDK
+```java
+public static native int setActivation(String var0);
+```
+Parameters
+- `var0`: The license string.
+- Return Value: An integer representing the SDK activation status code.
+
+
+##### - Initiate SDK
+```java
+public static native int init(AssetManager var0);
+```
+Parameters
+- `var0`: An instance of AssetManager used to access application assets.
+- Return Value: An integer representing the initialization status code.
+
+
+##### - Convert YUV camera frame to Bitmap image
+```java
+public static native Bitmap yuv2Bitmap(byte[] nv21, int width, int height, int orientation);
+```
+Parameters
+- `nv21`: Byte array representing the YUV image data in NV21 format.
+- `width`: Width of the image.
+- `height`: Height of the image.
+- `orientation`: Orientation of the image
+
+ | Value | Orientation |
+ |:----:|----|
+ |1|No processing|
+ |2|Flip horizontally|
+ |3|Flip horizontally first and then flip vertically|
+ |4|vertical flip|
+ |5|transpose|
+ |6|Rotate 90° clockwise|
+ |7|Horizontal and vertical flip --> transpose|
+ |8|Rotate 90° counterclockwise|
+- Return Value: A Bitmap object representing the converted image.
+
+
+##### - Detect Face
+```java
+public static native List faceDetection(Bitmap var0, FaceDetectionParam var1);
+```
+Parameters
+- `var0`: The Bitmap image.
+- `var1`: Parameters for face detection
+```java
+public class FaceDetectionParam {
+ public boolean check_liveness = false;
+ public int check_liveness_level = 0; // 0: more accurate model, 1: lighter model
+}
+```
+- Return Value: A list of FaceBox objects representing the detected faces.
+```java
+public class FaceBox {
+ public int x1;
+ public int y1;
+ public int x2;
+ public int y2;
+ public float liveness;
+ public float yaw;
+ public float roll;
+ public float pitch;
+}
+```
+
+
+##### - Extract face feature
+```java
+public static native byte[] templateExtraction(Bitmap var0, FaceBox var1);
+```
+Parameters
+- `var0`: The Bitmap image
+- `var1`: The bounding box (`FaceBox`) of the detected face.
+- Return Value: A byte array representing the extracted template from the face.
+
+
+##### - Calculate similarity between two face features
+```java
+public static native float similarityCalculation(byte[] var0, byte[] var1);
+```
+Parameters
+- `var0`: The byte array representing the first face template.
+- `var1`: The byte array representing the second face template.
+- Return Value: A float value representing the similarity score between the two face templates.
+
+
+##
Support
+For any questions, issues, or feature requests, please contact our support team.
+
+
+
+
+
+
+
+
+
+
+