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.
Please update code accordingly because it might cause issue.
- 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
- Verified Identity
- Web Sign-in
- Payments
- Phone Unlock
- Ticketless Access Control
- Account Recovery
- Face CAPTCHA
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)
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,
}
The first step is to load and initialize the wasm module.
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.
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');
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
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
}
}
},
]
}
}