Age SDK
npm install @privateid/small-age-sdk-alphaPowered 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.
bsh
npm install @privateid/cryptonets-web-sdk
`
Copy the necessary dependencies to the public folder of your app
`bsh
"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
`bsh
SKIP_PREFLIGHT_CHECK=true
REACT_APP_API_URL=
REACT_APP_API_KEY=
REACT_APP_WASM_MODULE= face_mask | face | voice
`
Optional environment variable
`bsh
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.
`javascript
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.
`javascript
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.
`javascript
{
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
`javascript
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
`javascript
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
`javascript
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.
`javascript
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.
`javascript
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 :
`javascript
{
"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
}
}
},
]
}
}
``