@privateid/small-age-sdk-alpha
TypeScript icon, indicating that this package has built-in type declarations

3.0.0-alpha • Public • Published

Age SDK Lite

Powered by Private Identity®
https://private.id

Age SDK Lite Implementation is an npm package that uses the W3C WebAssembly to perform 1:N fully homomorphically encrypted (FHE) face recognition.

Note: This version (1.0.0) is a breaking change!

Please update code accordingly because it might cause issue.

BENEFITS

  • Face biometric capture
  • Encrypted face recognition every 200ms
  • 1:n biometric match in 60ms constant time
  • Human age estimation
  • Unlimited users (unlimited gallery size)
  • Fair, accurate and unbiased
  • Preserves user privacy with neural network cryptography + fully homomorphic encryption (CryptoNets)
  • IEEE 2410 Standard for Biometric Privacy, ISO 27001, ISO 9001 compliant
  • Exempt from GDPR, CCPA, BIPA, and HIPAA privacy law obligations
  • Predicts in 50ms with or without network using local storage

BUILD

  • Verified Identity
  • Web Sign-in
  • Payments
  • Phone Unlock
  • Ticketless Access Control
  • Account Recovery
  • Face CAPTCHA

Prerequisite

Sign up on the waitlist on https://private.id to obtain your apiKey.

Installation

npm install @privateid/cryptonets-web-sdk

Copy the necessary dependencies to the public folder of your app

"prestart": "cp -R ./node_modules/@privateid/cryptonets-web-sdk/wasm public/&& cp -R ./node_modules/@privateid/cryptonets-web-sdk/workers public/",
"prebuild": "cp -R ./node_modules/@privateid/cryptonets-web-sdk/wasm public/ && cp -R ./node_modules/@privateid/cryptonets-web-sdk/workers public/"

Add the necessary environment variables on the .env file in the root of your project

SKIP_PREFLIGHT_CHECK=true
REACT_APP_API_URL= 
REACT_APP_API_KEY=
REACT_APP_WASM_MODULE= face_mask | face | voice

Optional environment variable

REACT_APP_API_ORCHESTRATION=
REACT_APP_SET_CACHE= true | false (Used for predict caching)

Load the WASM Module

The first step is to load and initialize the wasm module and clear the content of the local database.

import { loadPrivIdModule, clearDB } from '@privateid/cryptonets-web-sdk';

const isSupported = await loadPrivIdModule();
clearDB();

In case of .env file (evironment variable) does not work for you we have added a support to set the variables on load.

import { loadPrivIdModule } from '@privateid/cryptonets-web-sdk';

const isSupported =await loadPrivIdModule(
  api_url, 
  api_key,
  api_orchestration_url,
  wasm_url,
  wasm_module,
);
Status Description
api_url Equivalent to env variable REACT_APP_API_URL
api_key Equivalent to env variable REACT_APP_API_KEY
api_orchestration_url Equivalent to env variable REACT_APP_API_ORCHESTRATION_URL
wasm_url Please set it the same with api_url or REACT_APP_API_URL
wasm_module face_mask , face , voice

The loadPrivIdModule() function returns an object to check if the device is supporting WASM and WebRTC.

{
    support: boolean,
    message: string,
}

Open or switch camera or close camera

The first step is to load and initialize the wasm module.

Open the camera

To open user camera use the openCamera function with element id of the video tag in the DOM

import { openCamera } from '@privateid/cryptonets-web-sdk';

const { devices, faceMode } = await openCamera(element);

it returns list of the available video devices.

Switch to another camera

To switch to another media device use the switchCamera function with the ID of the device to be used

import { switchCamera } from '@privateid/cryptonets-web-sdk';

switchCamera(deviceID);

for the mobile phone we can select whether it's front or back camera for this we pass 'front' or 'back' to the switch function

import { switchCamera } from '@privateid/cryptonets-web-sdk';

switchCamera('front');

Close the camera

To close user camera use the closeCamera function with element id of the video tag in the DOM.

import { closeCamera } from '@privateid/cryptonets-web-sdk';

closeCamera(element); // Will specifically look for the element id and will close that camera
closeCamera(); // By default will close opened camera using openCamera

Predict Age

Perform an age estimation using predictAge function on all detected faces from image or camera.

import { predictAge } from '@privateid/cryptonets-web-sdk';

await predictAge(null, predictAgeCallback);

The function takes 3 parameters

Property Description
imageData If this parameter is provided it will check age of the imageData instead of opened camera.
callback The callback function to handle predictAge results.

Callback

Here are sample returned data to callback from predictAge :

{
    "status": "WASM_RESPONSE",
    "returnValue": {
        "error": 0,
        "faces": [
            {
                "status": 0,
                "age": 16.912670135498047,
                "box": {
                    "top_left": {
                        "x": 486,
                        "y": 371
                    },
                    "bottom_right": {
                        "x": 652,
                        "y": 545
                    }
                }
            },
        ]
    }
}

Package Sidebar

Install

npm i @privateid/small-age-sdk-alpha

Weekly Downloads

4

Version

3.0.0-alpha

License

See AWS EULA Template (2020.11.20)(Private ID) at this link: https://github.com/openinfer/PrivateIdentity/blob/e19cb4870048f14e04a6be99d3cab78f4d8c6360/images/AWS%20EULA%20Template%20(2020.11.20)%20(Private%20Identity).pdf

Unpacked Size

49.2 MB

Total Files

28

Last publish

Collaborators

  • haroonpid
  • nathandent
  • shivenj
  • xcjames29
  • mikepoll