From dade40c78dca3cc4a90324f2b026a226236af8be Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Sun, 22 May 2022 08:50:51 -0400 Subject: [PATCH] add face.mesh.keepInvalid config flag --- demo/nodejs/node-simple.js | 14 +- package.json | 28 +- src/config.ts | 6 +- src/face/facemesh.ts | 13 + src/face/facemeshutil.ts | 4 +- src/tfjs/load.ts | 3 +- test/build.log | 48 +- test/test.log | 1368 ++++++++++++++++++------------------ 8 files changed, 756 insertions(+), 728 deletions(-) diff --git a/demo/nodejs/node-simple.js b/demo/nodejs/node-simple.js index f1c4f2a9..2c34802c 100644 --- a/demo/nodejs/node-simple.js +++ b/demo/nodejs/node-simple.js @@ -1,19 +1,27 @@ const fs = require('fs'); +const process = require('process'); // eslint-disable-next-line import/no-extraneous-dependencies, no-unused-vars, @typescript-eslint/no-unused-vars const tf = require('@tensorflow/tfjs-node'); // in nodejs environments tfjs-node is required to be loaded before human // const faceapi = require('@vladmandic/face-api'); // use this when human is installed as module (majority of use cases) const Human = require('../../dist/human.node.js'); // use this when using human in dev mode -async function main(inputFile) { - const human = new Human.Human(); // create instance of human using default configuration +const humanConfig = { + // add any custom config here +}; + +async function detect(inputFile) { + const human = new Human.Human(humanConfig); // create instance of human using default configuration await human.load(); // optional as models would be loaded on-demand first time they are required await human.warmup(); // optional as model warmup is performed on-demand first time its executed const buffer = fs.readFileSync(inputFile); // read file data into buffer const tensor = human.tf.node.decodeImage(buffer); // decode jpg data + // eslint-disable-next-line no-console + console.log('loaded input file:', inputFile, 'resolution:', tensor.shape); const result = await human.detect(tensor); // run detection; will initialize backend and on-demand load models // eslint-disable-next-line no-console console.log(result); } -main('samples/in/ai-body.jpg'); +if (process.argv.length === 3) detect(process.argv[2]); // if input file is provided as cmdline parameter use it +else detect('samples/in/ai-body.jpg'); // else use built-in test inputfile diff --git a/package.json b/package.json index 7eb75494..911c1f63 100644 --- a/package.json +++ b/package.json @@ -53,19 +53,19 @@ "tensorflow" ], "devDependencies": { - "@microsoft/api-extractor": "^7.24.0", - "@tensorflow/tfjs": "^3.17.0", - "@tensorflow/tfjs-backend-cpu": "^3.17.0", - "@tensorflow/tfjs-backend-wasm": "^3.17.0", - "@tensorflow/tfjs-backend-webgl": "^3.17.0", - "@tensorflow/tfjs-backend-webgpu": "0.0.1-alpha.10", - "@tensorflow/tfjs-converter": "^3.17.0", - "@tensorflow/tfjs-core": "^3.17.0", - "@tensorflow/tfjs-data": "^3.17.0", - "@tensorflow/tfjs-layers": "^3.17.0", - "@tensorflow/tfjs-node": "^3.17.0", - "@tensorflow/tfjs-node-gpu": "^3.17.0", - "@types/node": "^17.0.34", + "@microsoft/api-extractor": "^7.24.1", + "@tensorflow/tfjs": "^3.18.0", + "@tensorflow/tfjs-backend-cpu": "^3.18.0", + "@tensorflow/tfjs-backend-wasm": "^3.18.0", + "@tensorflow/tfjs-backend-webgl": "^3.18.0", + "@tensorflow/tfjs-backend-webgpu": "0.0.1-alpha.11", + "@tensorflow/tfjs-converter": "^3.18.0", + "@tensorflow/tfjs-core": "^3.18.0", + "@tensorflow/tfjs-data": "^3.18.0", + "@tensorflow/tfjs-layers": "^3.18.0", + "@tensorflow/tfjs-node": "^3.18.0", + "@tensorflow/tfjs-node-gpu": "^3.18.0", + "@types/node": "^17.0.35", "@types/offscreencanvas": "^2019.6.4", "@typescript-eslint/eslint-plugin": "^5.25.0", "@typescript-eslint/parser": "^5.25.0", @@ -75,7 +75,7 @@ "canvas": "^2.9.1", "dayjs": "^1.11.2", "esbuild": "^0.14.39", - "eslint": "8.15.0", + "eslint": "8.16.0", "eslint-config-airbnb-base": "^15.0.0", "eslint-plugin-html": "^6.2.0", "eslint-plugin-import": "^2.26.0", diff --git a/src/config.ts b/src/config.ts index f2626d99..fe1a2cdd 100644 --- a/src/config.ts +++ b/src/config.ts @@ -35,7 +35,10 @@ export interface FaceDetectorConfig extends GenericConfig { } /** Mesh part of face configuration */ -export interface FaceMeshConfig extends GenericConfig {} +export interface FaceMeshConfig extends GenericConfig { + /** Keep detected faces that cannot be verified using facemesh */ + keepInvalid: boolean +} /** Iris part of face configuration */ export interface FaceIrisConfig extends GenericConfig {} @@ -352,6 +355,7 @@ const config: Config = { mesh: { enabled: true, modelPath: 'facemesh.json', + keepInvalid: false, }, attention: { enabled: false, diff --git a/src/face/facemesh.ts b/src/face/facemesh.ts index 2dbb8670..88f4436d 100644 --- a/src/face/facemesh.ts +++ b/src/face/facemesh.ts @@ -94,6 +94,19 @@ export async function predict(input: Tensor, config: Config): Promise [ + ((box.startPoint[0] + box.endPoint[0])) / 2 + ((box.endPoint[0] + box.startPoint[0]) * pt[0] / blazeface.size()), + ((box.startPoint[1] + box.endPoint[1])) / 2 + ((box.endPoint[1] + box.startPoint[1]) * pt[1] / blazeface.size()), + ]); + face.meshRaw = face.mesh.map((pt) => [pt[0] / (input.shape[2] || 0), pt[1] / (input.shape[1] || 0), (pt[2] || 0) / inputSize]); + for (const key of Object.keys(coords.blazeFaceLandmarks)) { + face.annotations[key] = [face.mesh[coords.blazeFaceLandmarks[key] as number]]; // add annotations + } + } } else { if (config.face.attention?.enabled) { rawCoords = await attention.augment(rawCoords, results); // augment iris results using attention model results diff --git a/src/face/facemeshutil.ts b/src/face/facemeshutil.ts index fe366aaf..83cf2fb4 100644 --- a/src/face/facemeshutil.ts +++ b/src/face/facemeshutil.ts @@ -121,7 +121,9 @@ export const rotatePoint = (homogeneousCoordinate, rotationMatrix) => [dot(homog export const xyDistanceBetweenPoints = (a, b) => Math.sqrt(((a[0] - b[0]) ** 2) + ((a[1] - b[1]) ** 2)); export function generateAnchors(inputSize) { - const spec = { strides: [inputSize / 16, inputSize / 8], anchors: [2, 6] }; + const spec = inputSize === 192 + ? { strides: [4], anchors: [1] } // facemesh-detector + : { strides: [inputSize / 16, inputSize / 8], anchors: [2, 6] }; // blazeface const anchors: Array<[number, number]> = []; for (let i = 0; i < spec.strides.length; i++) { const stride = spec.strides[i]; diff --git a/src/tfjs/load.ts b/src/tfjs/load.ts index 69b1e1d5..751c6826 100644 --- a/src/tfjs/load.ts +++ b/src/tfjs/load.ts @@ -22,7 +22,8 @@ export function setModelLoadOptions(config: Config) { } export async function loadModel(modelPath: string | undefined): Promise { - const modelUrl = join(options.modelBasePath, modelPath || ''); + let modelUrl = join(options.modelBasePath, modelPath || ''); + if (!modelUrl.toLowerCase().endsWith('.json')) modelUrl += '.json'; const modelPathSegments = modelUrl.split('/'); const cachedModelName = 'indexeddb://' + modelPathSegments[modelPathSegments.length - 1].replace('.json', ''); // generate short model name for cache const cachedModels = await tf.io.listModels(); // list all models already in cache diff --git a/test/build.log b/test/build.log index 757b1154..1f76a64b 100644 --- a/test/build.log +++ b/test/build.log @@ -1,24 +1,24 @@ -2022-05-18 17:41:21 INFO:  Application: {"name":"@vladmandic/human","version":"2.7.2"} -2022-05-18 17:41:21 INFO:  Environment: {"profile":"production","config":".build.json","package":"package.json","tsconfig":true,"eslintrc":true,"git":true} -2022-05-18 17:41:21 INFO:  Toolchain: {"build":"0.7.3","esbuild":"0.14.39","typescript":"4.6.4","typedoc":"0.22.15","eslint":"8.15.0"} -2022-05-18 17:41:21 INFO:  Build: {"profile":"production","steps":["clean","compile","typings","typedoc","lint","changelog"]} -2022-05-18 17:41:21 STATE: Clean: {"locations":["dist/*","types/lib/*","typedoc/*"]} -2022-05-18 17:41:21 STATE: Compile: {"name":"tfjs/nodejs/cpu","format":"cjs","platform":"node","input":"tfjs/tf-node.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":102,"outputBytes":595} -2022-05-18 17:41:21 STATE: Compile: {"name":"human/nodejs/cpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node.js","files":72,"inputBytes":606782,"outputBytes":297946} -2022-05-18 17:41:21 STATE: Compile: {"name":"tfjs/nodejs/gpu","format":"cjs","platform":"node","input":"tfjs/tf-node-gpu.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":110,"outputBytes":599} -2022-05-18 17:41:21 STATE: Compile: {"name":"human/nodejs/gpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-gpu.js","files":72,"inputBytes":606786,"outputBytes":297950} -2022-05-18 17:41:21 STATE: Compile: {"name":"tfjs/nodejs/wasm","format":"cjs","platform":"node","input":"tfjs/tf-node-wasm.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":149,"outputBytes":651} -2022-05-18 17:41:21 STATE: Compile: {"name":"human/nodejs/wasm","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-wasm.js","files":72,"inputBytes":606838,"outputBytes":298000} -2022-05-18 17:41:21 STATE: Compile: {"name":"tfjs/browser/version","format":"esm","platform":"browser","input":"tfjs/tf-version.ts","output":"dist/tfjs.version.js","files":1,"inputBytes":1069,"outputBytes":358} -2022-05-18 17:41:21 STATE: Compile: {"name":"tfjs/browser/esm/nobundle","format":"esm","platform":"browser","input":"tfjs/tf-browser.ts","output":"dist/tfjs.esm.js","files":2,"inputBytes":1032,"outputBytes":583} -2022-05-18 17:41:21 STATE: Compile: {"name":"human/browser/esm/nobundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm-nobundle.js","files":72,"inputBytes":606770,"outputBytes":296859} -2022-05-18 17:41:21 STATE: Compile: {"name":"tfjs/browser/esm/custom","format":"esm","platform":"browser","input":"tfjs/tf-custom.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":110,"outputBytes":1352584} -2022-05-18 17:41:21 STATE: Compile: {"name":"human/browser/iife/bundle","format":"iife","platform":"browser","input":"src/human.ts","output":"dist/human.js","files":72,"inputBytes":1958771,"outputBytes":1648490} -2022-05-18 17:41:21 STATE: Compile: {"name":"human/browser/esm/bundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm.js","files":72,"inputBytes":1958771,"outputBytes":2131466} -2022-05-18 17:41:26 STATE: Typings: {"input":"src/human.ts","output":"types/lib","files":114} -2022-05-18 17:41:28 STATE: TypeDoc: {"input":"src/human.ts","output":"typedoc","objects":73,"generated":true} -2022-05-18 17:41:28 STATE: Compile: {"name":"demo/typescript","format":"esm","platform":"browser","input":"demo/typescript/index.ts","output":"demo/typescript/index.js","files":1,"inputBytes":5967,"outputBytes":2980} -2022-05-18 17:41:28 STATE: Compile: {"name":"demo/faceid","format":"esm","platform":"browser","input":"demo/faceid/index.ts","output":"demo/faceid/index.js","files":2,"inputBytes":15174,"outputBytes":7820} -2022-05-18 17:41:36 STATE: Lint: {"locations":["*.json","src/**/*.ts","test/**/*.js","demo/**/*.js"],"files":104,"errors":0,"warnings":0} -2022-05-18 17:41:36 STATE: ChangeLog: {"repository":"https://github.com/vladmandic/human","branch":"main","output":"CHANGELOG.md"} -2022-05-18 17:41:36 INFO:  Done... +2022-05-22 08:49:40 INFO:  Application: {"name":"@vladmandic/human","version":"2.7.2"} +2022-05-22 08:49:40 INFO:  Environment: {"profile":"production","config":".build.json","package":"package.json","tsconfig":true,"eslintrc":true,"git":true} +2022-05-22 08:49:40 INFO:  Toolchain: {"build":"0.7.3","esbuild":"0.14.39","typescript":"4.6.4","typedoc":"0.22.15","eslint":"8.16.0"} +2022-05-22 08:49:40 INFO:  Build: {"profile":"production","steps":["clean","compile","typings","typedoc","lint","changelog"]} +2022-05-22 08:49:40 STATE: Clean: {"locations":["dist/*","types/lib/*","typedoc/*"]} +2022-05-22 08:49:40 STATE: Compile: {"name":"tfjs/nodejs/cpu","format":"cjs","platform":"node","input":"tfjs/tf-node.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":102,"outputBytes":595} +2022-05-22 08:49:40 STATE: Compile: {"name":"human/nodejs/cpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node.js","files":72,"inputBytes":607902,"outputBytes":298472} +2022-05-22 08:49:40 STATE: Compile: {"name":"tfjs/nodejs/gpu","format":"cjs","platform":"node","input":"tfjs/tf-node-gpu.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":110,"outputBytes":599} +2022-05-22 08:49:40 STATE: Compile: {"name":"human/nodejs/gpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-gpu.js","files":72,"inputBytes":607906,"outputBytes":298476} +2022-05-22 08:49:40 STATE: Compile: {"name":"tfjs/nodejs/wasm","format":"cjs","platform":"node","input":"tfjs/tf-node-wasm.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":149,"outputBytes":651} +2022-05-22 08:49:40 STATE: Compile: {"name":"human/nodejs/wasm","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-wasm.js","files":72,"inputBytes":607958,"outputBytes":298526} +2022-05-22 08:49:40 STATE: Compile: {"name":"tfjs/browser/version","format":"esm","platform":"browser","input":"tfjs/tf-version.ts","output":"dist/tfjs.version.js","files":1,"inputBytes":1069,"outputBytes":358} +2022-05-22 08:49:40 STATE: Compile: {"name":"tfjs/browser/esm/nobundle","format":"esm","platform":"browser","input":"tfjs/tf-browser.ts","output":"dist/tfjs.esm.js","files":2,"inputBytes":1032,"outputBytes":583} +2022-05-22 08:49:40 STATE: Compile: {"name":"human/browser/esm/nobundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm-nobundle.js","files":72,"inputBytes":607890,"outputBytes":297382} +2022-05-22 08:49:40 STATE: Compile: {"name":"tfjs/browser/esm/custom","format":"esm","platform":"browser","input":"tfjs/tf-custom.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":110,"outputBytes":1352913} +2022-05-22 08:49:40 STATE: Compile: {"name":"human/browser/iife/bundle","format":"iife","platform":"browser","input":"src/human.ts","output":"dist/human.js","files":72,"inputBytes":1960220,"outputBytes":1649341} +2022-05-22 08:49:40 STATE: Compile: {"name":"human/browser/esm/bundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm.js","files":72,"inputBytes":1960220,"outputBytes":2132978} +2022-05-22 08:49:45 STATE: Typings: {"input":"src/human.ts","output":"types/lib","files":114} +2022-05-22 08:49:47 STATE: TypeDoc: {"input":"src/human.ts","output":"typedoc","objects":73,"generated":true} +2022-05-22 08:49:47 STATE: Compile: {"name":"demo/typescript","format":"esm","platform":"browser","input":"demo/typescript/index.ts","output":"demo/typescript/index.js","files":1,"inputBytes":5967,"outputBytes":2980} +2022-05-22 08:49:47 STATE: Compile: {"name":"demo/faceid","format":"esm","platform":"browser","input":"demo/faceid/index.ts","output":"demo/faceid/index.js","files":2,"inputBytes":15174,"outputBytes":7820} +2022-05-22 08:49:55 STATE: Lint: {"locations":["*.json","src/**/*.ts","test/**/*.js","demo/**/*.js"],"files":104,"errors":0,"warnings":0} +2022-05-22 08:49:56 STATE: ChangeLog: {"repository":"https://github.com/vladmandic/human","branch":"main","output":"CHANGELOG.md"} +2022-05-22 08:49:56 INFO:  Done... diff --git a/test/test.log b/test/test.log index 97b5462c..8331e018 100644 --- a/test/test.log +++ b/test/test.log @@ -1,684 +1,684 @@ -2022-05-18 08:32:17 INFO:  @vladmandic/human version 2.7.2 -2022-05-18 08:32:17 INFO:  User: vlado Platform: linux Arch: x64 Node: v16.15.0 -2022-05-18 08:32:17 INFO:  tests: ["test-node.js","test-node-gpu.js","test-node-wasm.js"] -2022-05-18 08:32:17 INFO:  demos: ["../demo/nodejs/node.js","../demo/nodejs/node-canvas.js","../demo/nodejs/node-env.js","../demo/nodejs/node-event.js","../demo/nodejs/node-multiprocess.js"] -2022-05-18 08:32:17 INFO:  -2022-05-18 08:32:17 INFO:  test-node.js start -2022-05-18 08:32:17 INFO:  test-node.js test: configuration validation -2022-05-18 08:32:17 STATE: test-node.js passed: configuration default validation [] -2022-05-18 08:32:17 STATE: test-node.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}] -2022-05-18 08:32:17 INFO:  test-node.js test: model load -2022-05-18 08:32:17 STATE: test-node.js passed: models loaded 22 12 [{"name":"ssrnetage","loaded":false},{"name":"gear","loaded":false},{"name":"blazeposedetect","loaded":false},{"name":"blazepose","loaded":false},{"name":"centernet","loaded":true},{"name":"efficientpose","loaded":false},{"name":"mobilefacenet","loaded":false},{"name":"emotion","loaded":true},{"name":"facedetect","loaded":true},{"name":"faceiris","loaded":true},{"name":"facemesh","loaded":true},{"name":"faceres","loaded":true},{"name":"ssrnetgender","loaded":false},{"name":"handpose","loaded":false},{"name":"handskeleton","loaded":true},{"name":"handtrack","loaded":true},{"name":"liveness","loaded":true},{"name":"movenet","loaded":true},{"name":"nanodet","loaded":false},{"name":"posenet","loaded":false},{"name":"segmentation","loaded":true},{"name":"antispoof","loaded":true}] -2022-05-18 08:32:17 INFO:  test-node.js test: warmup -2022-05-18 08:32:17 STATE: test-node.js passed: create human -2022-05-18 08:32:17 INFO:  test-node.js human version: 2.7.2 -2022-05-18 08:32:17 INFO:  test-node.js platform: linux x64 agent: NodeJS v16.15.0 -2022-05-18 08:32:17 INFO:  test-node.js tfjs version: 3.17.0 -2022-05-18 08:32:17 INFO:  test-node.js tensorflow binding version: 2.7.0-dev20211101 -2022-05-18 08:32:17 STATE: test-node.js passed: set backend: tensorflow -2022-05-18 08:32:17 STATE: test-node.js tensors 1919 -2022-05-18 08:32:17 STATE: test-node.js passed: load models -2022-05-18 08:32:17 STATE: test-node.js result: defined models: 22 loaded models: 12 -2022-05-18 08:32:17 STATE: test-node.js passed: warmup: none default -2022-05-18 08:32:17 DATA:  test-node.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {} -2022-05-18 08:32:17 DATA:  test-node.js result: performance: load: null total: null -2022-05-18 08:32:17 STATE: test-node.js passed: warmup none result match -2022-05-18 08:32:17 STATE: test-node.js event: image -2022-05-18 08:32:18 STATE: test-node.js event: detect -2022-05-18 08:32:18 STATE: test-node.js event: warmup -2022-05-18 08:32:18 STATE: test-node.js passed: warmup: face default -2022-05-18 08:32:18 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.42,"keypoints":4} -2022-05-18 08:32:18 DATA:  test-node.js result: performance: load: null total: 332 -2022-05-18 08:32:18 STATE: test-node.js passed: warmup face result match -2022-05-18 08:32:18 STATE: test-node.js event: image -2022-05-18 08:32:18 STATE: test-node.js event: detect -2022-05-18 08:32:18 STATE: test-node.js event: warmup -2022-05-18 08:32:18 STATE: test-node.js passed: warmup: body default -2022-05-18 08:32:18 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-05-18 08:32:18 DATA:  test-node.js result: performance: load: null total: 250 -2022-05-18 08:32:18 STATE: test-node.js passed: warmup body result match -2022-05-18 08:32:18 STATE: test-node.js details: {"face":{"boxScore":0.92,"faceScore":1,"age":23.7,"gender":"female","genderScore":0.97},"emotion":[{"score":0.63,"emotion":"angry"},{"score":0.22,"emotion":"fear"}],"body":{"score":0.92,"keypoints":17},"hand":{"boxScore":0.52,"fingerScore":0.73,"keypoints":21},"gestures":[{"face":0,"gesture":"facing right"},{"hand":0,"gesture":"pinky forward"},{"hand":0,"gesture":"palm up"},{"hand":0,"gesture":"open palm"},{"iris":0,"gesture":"looking right"},{"iris":0,"gesture":"looking up"}]} -2022-05-18 08:32:18 INFO:  test-node.js test: details verification -2022-05-18 08:32:18 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-05-18 08:32:18 STATE: test-node.js event: image -2022-05-18 08:32:18 STATE: test-node.js event: detect -2022-05-18 08:32:18 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default -2022-05-18 08:32:18 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-05-18 08:32:18 DATA:  test-node.js result: performance: load: null total: 237 -2022-05-18 08:32:18 STATE: test-node.js passed: details face length 1 -2022-05-18 08:32:18 STATE: test-node.js passed: details face score 1 0.93 1 -2022-05-18 08:32:18 STATE: test-node.js passed: details face age/gender 23.7 female 0.97 73.26 -2022-05-18 08:32:18 STATE: test-node.js passed: details face arrays 4 478 1024 -2022-05-18 08:32:18 STATE: test-node.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"} -2022-05-18 08:32:18 STATE: test-node.js passed: details face anti-spoofing 0.79 -2022-05-18 08:32:18 STATE: test-node.js passed: details face liveness 0.83 -2022-05-18 08:32:18 STATE: test-node.js passed: details body length 1 -2022-05-18 08:32:18 STATE: test-node.js passed: details body 0.92 17 6 -2022-05-18 08:32:18 STATE: test-node.js passed: details hand length 1 -2022-05-18 08:32:18 STATE: test-node.js passed: details hand 0.51 0.73 point -2022-05-18 08:32:18 STATE: test-node.js passed: details hand arrays 21 5 7 -2022-05-18 08:32:18 STATE: test-node.js passed: details gesture length 6 -2022-05-18 08:32:18 STATE: test-node.js passed: details gesture first {"face":0,"gesture":"facing right"} -2022-05-18 08:32:18 STATE: test-node.js passed: details object length 1 -2022-05-18 08:32:18 STATE: test-node.js passed: details object 0.72 person -2022-05-18 08:32:18 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996928} -2022-05-18 08:32:18 STATE: test-node.js event: image -2022-05-18 08:32:19 STATE: test-node.js event: detect -2022-05-18 08:32:19 STATE: test-node.js passed: tensor shape: [1,1200,1200,4] dtype: float32 -2022-05-18 08:32:19 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1371996928} -2022-05-18 08:32:19 STATE: test-node.js event: image -2022-05-18 08:32:19 STATE: test-node.js event: detect -2022-05-18 08:32:19 STATE: test-node.js passed: tensor shape: [1200,1200,4] dtype: float32 -2022-05-18 08:32:19 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-05-18 08:32:19 STATE: test-node.js event: image -2022-05-18 08:32:19 STATE: test-node.js event: detect -2022-05-18 08:32:19 STATE: test-node.js passed: tensor shape: [1,1200,1200,3] dtype: float32 -2022-05-18 08:32:20 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1004796864} -2022-05-18 08:32:20 STATE: test-node.js event: image -2022-05-18 08:32:20 STATE: test-node.js event: detect -2022-05-18 08:32:20 STATE: test-node.js passed: tensor shape: [1200,1200,3] dtype: float32 -2022-05-18 08:32:20 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871} -2022-05-18 08:32:20 STATE: test-node.js event: image -2022-05-18 08:32:20 STATE: test-node.js event: detect -2022-05-18 08:32:20 STATE: test-node.js passed: tensor shape: [1,1200,1200,4] dtype: int32 -2022-05-18 08:32:20 INFO:  test-node.js test default -2022-05-18 08:32:20 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-05-18 08:32:20 STATE: test-node.js event: image -2022-05-18 08:32:21 STATE: test-node.js event: detect -2022-05-18 08:32:21 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default -2022-05-18 08:32:21 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-05-18 08:32:21 DATA:  test-node.js result: performance: load: null total: 225 -2022-05-18 08:32:21 STATE: test-node.js passed: default result face match 1 female 0.97 -2022-05-18 08:32:21 INFO:  test-node.js test sync -2022-05-18 08:32:21 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-05-18 08:32:21 STATE: test-node.js event: image -2022-05-18 08:32:21 STATE: test-node.js event: detect -2022-05-18 08:32:21 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default -2022-05-18 08:32:21 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-05-18 08:32:21 DATA:  test-node.js result: performance: load: null total: 203 -2022-05-18 08:32:21 STATE: test-node.js passed: default sync 1 female 0.97 -2022-05-18 08:32:21 INFO:  test-node.js test: image process -2022-05-18 08:32:21 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-05-18 08:32:21 STATE: test-node.js passed: image input null [1,256,256,3] -2022-05-18 08:32:21 INFO:  test-node.js test: image null -2022-05-18 08:32:21 STATE: test-node.js passed: invalid input could not convert input to tensor -2022-05-18 08:32:21 INFO:  test-node.js test face similarity -2022-05-18 08:32:21 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-05-18 08:32:21 STATE: test-node.js event: image -2022-05-18 08:32:21 STATE: test-node.js event: detect -2022-05-18 08:32:21 STATE: test-node.js passed: detect: samples/in/ai-face.jpg default -2022-05-18 08:32:21 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":3} -2022-05-18 08:32:21 DATA:  test-node.js result: performance: load: null total: 192 -2022-05-18 08:32:21 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-05-18 08:32:21 STATE: test-node.js event: image -2022-05-18 08:32:22 STATE: test-node.js event: detect -2022-05-18 08:32:22 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default -2022-05-18 08:32:22 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-05-18 08:32:22 DATA:  test-node.js result: performance: load: null total: 208 -2022-05-18 08:32:22 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} -2022-05-18 08:32:22 STATE: test-node.js event: image -2022-05-18 08:32:22 STATE: test-node.js event: detect -2022-05-18 08:32:22 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg default -2022-05-18 08:32:22 DATA:  test-node.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":7} -2022-05-18 08:32:22 DATA:  test-node.js result: performance: load: null total: 180 -2022-05-18 08:32:22 STATE: test-node.js passed: face descriptor -2022-05-18 08:32:22 STATE: test-node.js passed: face similarity {"similarity":[1,0.44727452329649126,0.5567935850640406],"descriptors":[1024,1024,1024]} -2022-05-18 08:32:22 INFO:  test-node.js test face matching -2022-05-18 08:32:22 STATE: test-node.js passed: face database 40 -2022-05-18 08:32:22 STATE: test-node.js passed: face match {"first":{"index":4,"similarity":0.7827852615252829}} {"second":{"index":4,"similarity":0.5002052633015844}} {"third":{"index":4,"similarity":0.5401587887998899}} -2022-05-18 08:32:22 INFO:  test-node.js test object -2022-05-18 08:32:22 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-05-18 08:32:22 STATE: test-node.js event: image -2022-05-18 08:32:22 STATE: test-node.js event: detect -2022-05-18 08:32:22 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default -2022-05-18 08:32:22 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-05-18 08:32:22 DATA:  test-node.js result: performance: load: null total: 218 -2022-05-18 08:32:22 STATE: test-node.js passed: object result match -2022-05-18 08:32:22 INFO:  test-node.js test sensitive -2022-05-18 08:32:22 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-05-18 08:32:22 STATE: test-node.js event: image -2022-05-18 08:32:23 STATE: test-node.js event: detect -2022-05-18 08:32:23 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default -2022-05-18 08:32:23 DATA:  test-node.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-05-18 08:32:23 DATA:  test-node.js result: performance: load: null total: 239 -2022-05-18 08:32:23 STATE: test-node.js passed: sensitive result match -2022-05-18 08:32:23 STATE: test-node.js passed: sensitive face result match -2022-05-18 08:32:23 STATE: test-node.js passed: sensitive face emotion result [{"score":0.59,"emotion":"angry"},{"score":0.29,"emotion":"fear"}] -2022-05-18 08:32:23 STATE: test-node.js passed: sensitive body result match -2022-05-18 08:32:23 STATE: test-node.js passed: sensitive hand result match -2022-05-18 08:32:23 INFO:  test-node.js test detectors -2022-05-18 08:32:23 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-05-18 08:32:23 STATE: test-node.js event: image -2022-05-18 08:32:23 STATE: test-node.js event: detect -2022-05-18 08:32:23 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default -2022-05-18 08:32:23 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-05-18 08:32:23 DATA:  test-node.js result: performance: load: null total: 147 -2022-05-18 08:32:23 STATE: test-node.js passed: detector result face match -2022-05-18 08:32:23 STATE: test-node.js passed: detector result hand match -2022-05-18 08:32:23 INFO:  test-node.js test: multi-instance -2022-05-18 08:32:23 STATE: test-node.js event: image -2022-05-18 08:32:23 STATE: test-node.js event: detect -2022-05-18 08:32:23 STATE: test-node.js passed: detect: random default -2022-05-18 08:32:23 DATA:  test-node.js result: face: 0 body: 1 hand: 0 gesture: 0 object: 0 person: 0 {} {} {"score":0.08,"keypoints":15} -2022-05-18 08:32:23 DATA:  test-node.js result: performance: load: null total: 143 -2022-05-18 08:32:23 INFO:  test-node.js test: first instance -2022-05-18 08:32:23 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} -2022-05-18 08:32:23 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg default -2022-05-18 08:32:23 DATA:  test-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} -2022-05-18 08:32:23 DATA:  test-node.js result: performance: load: null total: 143 -2022-05-18 08:32:23 INFO:  test-node.js test: second instance -2022-05-18 08:32:23 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} -2022-05-18 08:32:23 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg default -2022-05-18 08:32:23 DATA:  test-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} -2022-05-18 08:32:23 DATA:  test-node.js result: performance: load: null total: 134 -2022-05-18 08:32:23 INFO:  test-node.js test: concurrent -2022-05-18 08:32:24 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-05-18 08:32:24 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-05-18 08:32:24 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-05-18 08:32:24 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-05-18 08:32:24 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} -2022-05-18 08:32:24 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} -2022-05-18 08:32:24 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-05-18 08:32:24 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-05-18 08:32:24 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} -2022-05-18 08:32:24 STATE: test-node.js event: image -2022-05-18 08:32:24 STATE: test-node.js event: image -2022-05-18 08:32:24 STATE: test-node.js event: image -2022-05-18 08:32:25 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg default -2022-05-18 08:32:25 DATA:  test-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} -2022-05-18 08:32:25 DATA:  test-node.js result: performance: load: null total: 1322 -2022-05-18 08:32:25 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg default -2022-05-18 08:32:25 DATA:  test-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} -2022-05-18 08:32:25 DATA:  test-node.js result: performance: load: null total: 1322 -2022-05-18 08:32:25 STATE: test-node.js passed: detect: samples/in/ai-face.jpg default -2022-05-18 08:32:25 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 2 object: 1 person: 1 {"score":0.91} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":17} -2022-05-18 08:32:25 DATA:  test-node.js result: performance: load: null total: 1447 -2022-05-18 08:32:25 STATE: test-node.js passed: detect: samples/in/ai-face.jpg default -2022-05-18 08:32:25 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 2 object: 1 person: 1 {"score":0.91} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":17} -2022-05-18 08:32:25 DATA:  test-node.js result: performance: load: null total: 1447 -2022-05-18 08:32:25 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default -2022-05-18 08:32:25 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-05-18 08:32:25 DATA:  test-node.js result: performance: load: null total: 1447 -2022-05-18 08:32:25 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default -2022-05-18 08:32:25 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-05-18 08:32:25 DATA:  test-node.js result: performance: load: null total: 1447 -2022-05-18 08:32:25 STATE: test-node.js event: detect -2022-05-18 08:32:25 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg default -2022-05-18 08:32:25 DATA:  test-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} -2022-05-18 08:32:25 DATA:  test-node.js result: performance: load: null total: 1222 -2022-05-18 08:32:25 STATE: test-node.js event: detect -2022-05-18 08:32:25 STATE: test-node.js event: detect -2022-05-18 08:32:25 STATE: test-node.js passed: detect: samples/in/ai-face.jpg default -2022-05-18 08:32:25 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 2 object: 1 person: 1 {"score":0.91} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":17} -2022-05-18 08:32:25 DATA:  test-node.js result: performance: load: null total: 1222 -2022-05-18 08:32:25 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default -2022-05-18 08:32:25 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-05-18 08:32:25 DATA:  test-node.js result: performance: load: null total: 1222 -2022-05-18 08:32:25 INFO:  test-node.js test: monkey-patch -2022-05-18 08:32:25 STATE: test-node.js event: image -2022-05-18 08:32:26 STATE: test-node.js event: detect -2022-05-18 08:32:26 STATE: test-node.js passed: monkey patch -2022-05-18 08:32:26 STATE: test-node.js passed: segmentation [65536] -2022-05-18 08:32:26 STATE: test-node.js passeed: equal usage -2022-05-18 08:32:26 INFO:  test-node.js test: input compare -2022-05-18 08:32:26 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-05-18 08:32:26 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-05-18 08:32:26 STATE: test-node.js passed: image compare 0 23.275441687091504 -2022-05-18 08:32:26 INFO:  test-node.js events: {"image":21,"detect":21,"warmup":2} -2022-05-18 08:32:26 INFO:  test-node.js tensors 1925 -2022-05-18 08:32:26 INFO:  test-node.js test complete: 8712 ms -2022-05-18 08:32:26 INFO:  -2022-05-18 08:32:26 INFO:  test-node-gpu.js start -2022-05-18 08:32:27 INFO:  test-node-gpu.js test: configuration validation -2022-05-18 08:32:27 STATE: test-node-gpu.js passed: configuration default validation [] -2022-05-18 08:32:27 STATE: test-node-gpu.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}] -2022-05-18 08:32:27 INFO:  test-node-gpu.js test: model load -2022-05-18 08:32:27 STATE: test-node-gpu.js passed: models loaded 22 12 [{"name":"ssrnetage","loaded":false},{"name":"gear","loaded":false},{"name":"blazeposedetect","loaded":false},{"name":"blazepose","loaded":false},{"name":"centernet","loaded":true},{"name":"efficientpose","loaded":false},{"name":"mobilefacenet","loaded":false},{"name":"emotion","loaded":true},{"name":"facedetect","loaded":true},{"name":"faceiris","loaded":true},{"name":"facemesh","loaded":true},{"name":"faceres","loaded":true},{"name":"ssrnetgender","loaded":false},{"name":"handpose","loaded":false},{"name":"handskeleton","loaded":true},{"name":"handtrack","loaded":true},{"name":"liveness","loaded":true},{"name":"movenet","loaded":true},{"name":"nanodet","loaded":false},{"name":"posenet","loaded":false},{"name":"segmentation","loaded":true},{"name":"antispoof","loaded":true}] -2022-05-18 08:32:27 INFO:  test-node-gpu.js test: warmup -2022-05-18 08:32:27 STATE: test-node-gpu.js passed: create human -2022-05-18 08:32:27 INFO:  test-node-gpu.js human version: 2.7.2 -2022-05-18 08:32:27 INFO:  test-node-gpu.js platform: linux x64 agent: NodeJS v16.15.0 -2022-05-18 08:32:27 INFO:  test-node-gpu.js tfjs version: 3.17.0 -2022-05-18 08:32:27 INFO:  test-node-gpu.js tensorflow binding version: 2.7.0-dev20211101 -2022-05-18 08:32:27 STATE: test-node-gpu.js passed: set backend: tensorflow -2022-05-18 08:32:27 STATE: test-node-gpu.js tensors 1919 -2022-05-18 08:32:27 STATE: test-node-gpu.js passed: load models -2022-05-18 08:32:27 STATE: test-node-gpu.js result: defined models: 22 loaded models: 12 -2022-05-18 08:32:27 STATE: test-node-gpu.js passed: warmup: none default -2022-05-18 08:32:27 DATA:  test-node-gpu.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {} -2022-05-18 08:32:27 DATA:  test-node-gpu.js result: performance: load: null total: null -2022-05-18 08:32:27 STATE: test-node-gpu.js passed: warmup none result match -2022-05-18 08:32:27 STATE: test-node-gpu.js event: image -2022-05-18 08:32:30 STATE: test-node-gpu.js event: detect -2022-05-18 08:32:30 STATE: test-node-gpu.js event: warmup -2022-05-18 08:32:30 STATE: test-node-gpu.js passed: warmup: face default -2022-05-18 08:32:30 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.42,"keypoints":4} -2022-05-18 08:32:30 DATA:  test-node-gpu.js result: performance: load: null total: 2886 -2022-05-18 08:32:30 STATE: test-node-gpu.js passed: warmup face result match -2022-05-18 08:32:30 STATE: test-node-gpu.js event: image -2022-05-18 08:32:30 STATE: test-node-gpu.js event: detect -2022-05-18 08:32:30 STATE: test-node-gpu.js event: warmup -2022-05-18 08:32:30 STATE: test-node-gpu.js passed: warmup: body default -2022-05-18 08:32:30 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-05-18 08:32:30 DATA:  test-node-gpu.js result: performance: load: null total: 188 -2022-05-18 08:32:30 STATE: test-node-gpu.js passed: warmup body result match -2022-05-18 08:32:30 STATE: test-node-gpu.js details: {"face":{"boxScore":0.92,"faceScore":1,"age":23.7,"gender":"female","genderScore":0.97},"emotion":[{"score":0.63,"emotion":"angry"},{"score":0.22,"emotion":"fear"}],"body":{"score":0.92,"keypoints":17},"hand":{"boxScore":0.52,"fingerScore":0.73,"keypoints":21},"gestures":[{"face":0,"gesture":"facing right"},{"hand":0,"gesture":"pinky forward"},{"hand":0,"gesture":"palm up"},{"hand":0,"gesture":"open palm"},{"iris":0,"gesture":"looking right"},{"iris":0,"gesture":"looking up"}]} -2022-05-18 08:32:30 INFO:  test-node-gpu.js test: details verification -2022-05-18 08:32:31 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-05-18 08:32:31 STATE: test-node-gpu.js event: image -2022-05-18 08:32:31 STATE: test-node-gpu.js event: detect -2022-05-18 08:32:31 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default -2022-05-18 08:32:31 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-05-18 08:32:31 DATA:  test-node-gpu.js result: performance: load: null total: 144 -2022-05-18 08:32:31 STATE: test-node-gpu.js passed: details face length 1 -2022-05-18 08:32:31 STATE: test-node-gpu.js passed: details face score 1 0.93 1 -2022-05-18 08:32:31 STATE: test-node-gpu.js passed: details face age/gender 23.7 female 0.97 73.26 -2022-05-18 08:32:31 STATE: test-node-gpu.js passed: details face arrays 4 478 1024 -2022-05-18 08:32:31 STATE: test-node-gpu.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"} -2022-05-18 08:32:31 STATE: test-node-gpu.js passed: details face anti-spoofing 0.79 -2022-05-18 08:32:31 STATE: test-node-gpu.js passed: details face liveness 0.83 -2022-05-18 08:32:31 STATE: test-node-gpu.js passed: details body length 1 -2022-05-18 08:32:31 STATE: test-node-gpu.js passed: details body 0.92 17 6 -2022-05-18 08:32:31 STATE: test-node-gpu.js passed: details hand length 1 -2022-05-18 08:32:31 STATE: test-node-gpu.js passed: details hand 0.51 0.73 point -2022-05-18 08:32:31 STATE: test-node-gpu.js passed: details hand arrays 21 5 7 -2022-05-18 08:32:31 STATE: test-node-gpu.js passed: details gesture length 6 -2022-05-18 08:32:31 STATE: test-node-gpu.js passed: details gesture first {"face":0,"gesture":"facing right"} -2022-05-18 08:32:31 STATE: test-node-gpu.js passed: details object length 1 -2022-05-18 08:32:31 STATE: test-node-gpu.js passed: details object 0.72 person -2022-05-18 08:32:31 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996928} -2022-05-18 08:32:31 STATE: test-node-gpu.js event: image -2022-05-18 08:32:31 STATE: test-node-gpu.js event: detect -2022-05-18 08:32:31 STATE: test-node-gpu.js passed: tensor shape: [1,1200,1200,4] dtype: float32 -2022-05-18 08:32:31 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1371996928} -2022-05-18 08:32:31 STATE: test-node-gpu.js event: image -2022-05-18 08:32:31 STATE: test-node-gpu.js event: detect -2022-05-18 08:32:31 STATE: test-node-gpu.js passed: tensor shape: [1200,1200,4] dtype: float32 -2022-05-18 08:32:32 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-05-18 08:32:32 STATE: test-node-gpu.js event: image -2022-05-18 08:32:32 STATE: test-node-gpu.js event: detect -2022-05-18 08:32:32 STATE: test-node-gpu.js passed: tensor shape: [1,1200,1200,3] dtype: float32 -2022-05-18 08:32:32 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1004796928} -2022-05-18 08:32:32 STATE: test-node-gpu.js event: image -2022-05-18 08:32:32 STATE: test-node-gpu.js event: detect -2022-05-18 08:32:32 STATE: test-node-gpu.js passed: tensor shape: [1200,1200,3] dtype: float32 -2022-05-18 08:32:32 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871} -2022-05-18 08:32:32 STATE: test-node-gpu.js event: image -2022-05-18 08:32:32 STATE: test-node-gpu.js event: detect -2022-05-18 08:32:32 STATE: test-node-gpu.js passed: tensor shape: [1,1200,1200,4] dtype: int32 -2022-05-18 08:32:32 INFO:  test-node-gpu.js test default -2022-05-18 08:32:33 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-05-18 08:32:33 STATE: test-node-gpu.js event: image -2022-05-18 08:32:33 STATE: test-node-gpu.js event: detect -2022-05-18 08:32:33 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default -2022-05-18 08:32:33 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-05-18 08:32:33 DATA:  test-node-gpu.js result: performance: load: null total: 152 -2022-05-18 08:32:33 STATE: test-node-gpu.js passed: default result face match 1 female 0.97 -2022-05-18 08:32:33 INFO:  test-node-gpu.js test sync -2022-05-18 08:32:33 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-05-18 08:32:33 STATE: test-node-gpu.js event: image -2022-05-18 08:32:33 STATE: test-node-gpu.js event: detect -2022-05-18 08:32:33 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default -2022-05-18 08:32:33 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-05-18 08:32:33 DATA:  test-node-gpu.js result: performance: load: null total: 156 -2022-05-18 08:32:33 STATE: test-node-gpu.js passed: default sync 1 female 0.97 -2022-05-18 08:32:33 INFO:  test-node-gpu.js test: image process -2022-05-18 08:32:33 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-05-18 08:32:33 STATE: test-node-gpu.js passed: image input null [1,256,256,3] -2022-05-18 08:32:33 INFO:  test-node-gpu.js test: image null -2022-05-18 08:32:33 STATE: test-node-gpu.js passed: invalid input could not convert input to tensor -2022-05-18 08:32:33 INFO:  test-node-gpu.js test face similarity -2022-05-18 08:32:33 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-05-18 08:32:33 STATE: test-node-gpu.js event: image -2022-05-18 08:32:33 STATE: test-node-gpu.js event: detect -2022-05-18 08:32:33 STATE: test-node-gpu.js passed: detect: samples/in/ai-face.jpg default -2022-05-18 08:32:33 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":3} -2022-05-18 08:32:33 DATA:  test-node-gpu.js result: performance: load: null total: 172 -2022-05-18 08:32:33 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-05-18 08:32:33 STATE: test-node-gpu.js event: image -2022-05-18 08:32:34 STATE: test-node-gpu.js event: detect -2022-05-18 08:32:34 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default -2022-05-18 08:32:34 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-05-18 08:32:34 DATA:  test-node-gpu.js result: performance: load: null total: 170 -2022-05-18 08:32:34 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} -2022-05-18 08:32:34 STATE: test-node-gpu.js event: image -2022-05-18 08:32:34 STATE: test-node-gpu.js event: detect -2022-05-18 08:32:34 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg default -2022-05-18 08:32:34 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":7} -2022-05-18 08:32:34 DATA:  test-node-gpu.js result: performance: load: null total: 178 -2022-05-18 08:32:34 STATE: test-node-gpu.js passed: face descriptor -2022-05-18 08:32:34 STATE: test-node-gpu.js passed: face similarity {"similarity":[1,0.447238756461232,0.556914029877052],"descriptors":[1024,1024,1024]} -2022-05-18 08:32:34 INFO:  test-node-gpu.js test face matching -2022-05-18 08:32:34 STATE: test-node-gpu.js passed: face database 40 -2022-05-18 08:32:34 STATE: test-node-gpu.js passed: face match {"first":{"index":4,"similarity":0.7828184453007331}} {"second":{"index":4,"similarity":0.5001334216773398}} {"third":{"index":4,"similarity":0.5403054967489764}} -2022-05-18 08:32:34 INFO:  test-node-gpu.js test object -2022-05-18 08:32:34 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-05-18 08:32:34 STATE: test-node-gpu.js event: image -2022-05-18 08:32:34 STATE: test-node-gpu.js event: detect -2022-05-18 08:32:34 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default -2022-05-18 08:32:34 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-05-18 08:32:34 DATA:  test-node-gpu.js result: performance: load: null total: 201 -2022-05-18 08:32:34 STATE: test-node-gpu.js passed: object result match -2022-05-18 08:32:34 INFO:  test-node-gpu.js test sensitive -2022-05-18 08:32:34 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-05-18 08:32:34 STATE: test-node-gpu.js event: image -2022-05-18 08:32:35 STATE: test-node-gpu.js event: detect -2022-05-18 08:32:35 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default -2022-05-18 08:32:35 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-05-18 08:32:35 DATA:  test-node-gpu.js result: performance: load: null total: 214 -2022-05-18 08:32:35 STATE: test-node-gpu.js passed: sensitive result match -2022-05-18 08:32:35 STATE: test-node-gpu.js passed: sensitive face result match -2022-05-18 08:32:35 STATE: test-node-gpu.js passed: sensitive face emotion result [{"score":0.59,"emotion":"angry"},{"score":0.29,"emotion":"fear"}] -2022-05-18 08:32:35 STATE: test-node-gpu.js passed: sensitive body result match -2022-05-18 08:32:35 STATE: test-node-gpu.js passed: sensitive hand result match -2022-05-18 08:32:35 INFO:  test-node-gpu.js test detectors -2022-05-18 08:32:35 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-05-18 08:32:35 STATE: test-node-gpu.js event: image -2022-05-18 08:32:35 STATE: test-node-gpu.js event: detect -2022-05-18 08:32:35 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default -2022-05-18 08:32:35 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-05-18 08:32:35 DATA:  test-node-gpu.js result: performance: load: null total: 128 -2022-05-18 08:32:35 STATE: test-node-gpu.js passed: detector result face match -2022-05-18 08:32:35 STATE: test-node-gpu.js passed: detector result hand match -2022-05-18 08:32:35 INFO:  test-node-gpu.js test: multi-instance -2022-05-18 08:32:35 STATE: test-node-gpu.js event: image -2022-05-18 08:32:35 STATE: test-node-gpu.js event: detect -2022-05-18 08:32:35 STATE: test-node-gpu.js passed: detect: random default -2022-05-18 08:32:35 DATA:  test-node-gpu.js result: face: 0 body: 1 hand: 0 gesture: 0 object: 0 person: 0 {} {} {"score":0.06,"keypoints":15} -2022-05-18 08:32:35 DATA:  test-node-gpu.js result: performance: load: null total: 117 -2022-05-18 08:32:35 INFO:  test-node-gpu.js test: first instance -2022-05-18 08:32:35 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} -2022-05-18 08:32:35 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg default -2022-05-18 08:32:35 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} -2022-05-18 08:32:35 DATA:  test-node-gpu.js result: performance: load: null total: 85 -2022-05-18 08:32:35 INFO:  test-node-gpu.js test: second instance -2022-05-18 08:32:35 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} -2022-05-18 08:32:35 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg default -2022-05-18 08:32:35 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} -2022-05-18 08:32:35 DATA:  test-node-gpu.js result: performance: load: null total: 89 -2022-05-18 08:32:35 INFO:  test-node-gpu.js test: concurrent -2022-05-18 08:32:36 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-05-18 08:32:36 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-05-18 08:32:36 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-05-18 08:32:36 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-05-18 08:32:36 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} -2022-05-18 08:32:36 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} -2022-05-18 08:32:36 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-05-18 08:32:36 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-05-18 08:32:36 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} -2022-05-18 08:32:36 STATE: test-node-gpu.js event: image -2022-05-18 08:32:36 STATE: test-node-gpu.js event: image -2022-05-18 08:32:36 STATE: test-node-gpu.js event: image -2022-05-18 08:32:37 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg default -2022-05-18 08:32:37 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} -2022-05-18 08:32:37 DATA:  test-node-gpu.js result: performance: load: null total: 810 -2022-05-18 08:32:37 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg default -2022-05-18 08:32:37 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} -2022-05-18 08:32:37 DATA:  test-node-gpu.js result: performance: load: null total: 810 -2022-05-18 08:32:37 STATE: test-node-gpu.js passed: detect: samples/in/ai-face.jpg default -2022-05-18 08:32:37 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 2 object: 1 person: 1 {"score":0.91} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":17} -2022-05-18 08:32:37 DATA:  test-node-gpu.js result: performance: load: null total: 874 -2022-05-18 08:32:37 STATE: test-node-gpu.js passed: detect: samples/in/ai-face.jpg default -2022-05-18 08:32:37 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 2 object: 1 person: 1 {"score":0.91} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":17} -2022-05-18 08:32:37 DATA:  test-node-gpu.js result: performance: load: null total: 874 -2022-05-18 08:32:37 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default -2022-05-18 08:32:37 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-05-18 08:32:37 DATA:  test-node-gpu.js result: performance: load: null total: 874 -2022-05-18 08:32:37 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default -2022-05-18 08:32:37 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-05-18 08:32:37 DATA:  test-node-gpu.js result: performance: load: null total: 874 -2022-05-18 08:32:37 STATE: test-node-gpu.js event: detect -2022-05-18 08:32:37 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg default -2022-05-18 08:32:37 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} -2022-05-18 08:32:37 DATA:  test-node-gpu.js result: performance: load: null total: 645 -2022-05-18 08:32:37 STATE: test-node-gpu.js event: detect -2022-05-18 08:32:37 STATE: test-node-gpu.js event: detect -2022-05-18 08:32:37 STATE: test-node-gpu.js passed: detect: samples/in/ai-face.jpg default -2022-05-18 08:32:37 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 2 object: 1 person: 1 {"score":0.91} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":17} -2022-05-18 08:32:37 DATA:  test-node-gpu.js result: performance: load: null total: 645 -2022-05-18 08:32:37 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default -2022-05-18 08:32:37 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-05-18 08:32:37 DATA:  test-node-gpu.js result: performance: load: null total: 645 -2022-05-18 08:32:37 INFO:  test-node-gpu.js test: monkey-patch -2022-05-18 08:32:37 STATE: test-node-gpu.js event: image -2022-05-18 08:32:37 STATE: test-node-gpu.js event: detect -2022-05-18 08:32:37 STATE: test-node-gpu.js passed: monkey patch -2022-05-18 08:32:37 STATE: test-node-gpu.js passed: segmentation [65536] -2022-05-18 08:32:37 STATE: test-node-gpu.js passeed: equal usage -2022-05-18 08:32:37 INFO:  test-node-gpu.js test: input compare -2022-05-18 08:32:37 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-05-18 08:32:37 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-05-18 08:32:37 STATE: test-node-gpu.js passed: image compare 0 23.275441687091504 -2022-05-18 08:32:37 INFO:  test-node-gpu.js events: {"image":21,"detect":21,"warmup":2} -2022-05-18 08:32:37 INFO:  test-node-gpu.js tensors 1925 -2022-05-18 08:32:37 INFO:  test-node-gpu.js test complete: 10776 ms -2022-05-18 08:32:38 INFO:  -2022-05-18 08:32:38 INFO:  test-node-wasm.js start -2022-05-18 08:32:38 STATE: test-node-wasm.js passed: model server: https://vladmandic.github.io/human/models/ -2022-05-18 08:32:38 INFO:  test-node-wasm.js test: configuration validation -2022-05-18 08:32:38 STATE: test-node-wasm.js passed: configuration default validation [] -2022-05-18 08:32:38 STATE: test-node-wasm.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}] -2022-05-18 08:32:38 INFO:  test-node-wasm.js test: model load -2022-05-18 08:32:40 STATE: test-node-wasm.js passed: models loaded 22 12 [{"name":"ssrnetage","loaded":false},{"name":"gear","loaded":false},{"name":"blazeposedetect","loaded":false},{"name":"blazepose","loaded":false},{"name":"centernet","loaded":true},{"name":"efficientpose","loaded":false},{"name":"mobilefacenet","loaded":false},{"name":"emotion","loaded":true},{"name":"facedetect","loaded":true},{"name":"faceiris","loaded":true},{"name":"facemesh","loaded":true},{"name":"faceres","loaded":true},{"name":"ssrnetgender","loaded":false},{"name":"handpose","loaded":false},{"name":"handskeleton","loaded":true},{"name":"handtrack","loaded":true},{"name":"liveness","loaded":true},{"name":"movenet","loaded":true},{"name":"nanodet","loaded":false},{"name":"posenet","loaded":false},{"name":"segmentation","loaded":true},{"name":"antispoof","loaded":true}] -2022-05-18 08:32:40 INFO:  test-node-wasm.js test: warmup -2022-05-18 08:32:40 STATE: test-node-wasm.js passed: create human -2022-05-18 08:32:40 INFO:  test-node-wasm.js human version: 2.7.2 -2022-05-18 08:32:40 INFO:  test-node-wasm.js platform: linux x64 agent: NodeJS v16.15.0 -2022-05-18 08:32:40 INFO:  test-node-wasm.js tfjs version: 3.17.0 -2022-05-18 08:32:40 STATE: test-node-wasm.js passed: set backend: wasm -2022-05-18 08:32:40 STATE: test-node-wasm.js tensors 1919 -2022-05-18 08:32:40 STATE: test-node-wasm.js passed: load models -2022-05-18 08:32:40 STATE: test-node-wasm.js result: defined models: 22 loaded models: 12 -2022-05-18 08:32:40 STATE: test-node-wasm.js passed: warmup: none default -2022-05-18 08:32:40 DATA:  test-node-wasm.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {} -2022-05-18 08:32:40 DATA:  test-node-wasm.js result: performance: load: null total: null -2022-05-18 08:32:40 STATE: test-node-wasm.js passed: warmup none result match -2022-05-18 08:32:40 STATE: test-node-wasm.js event: image -2022-05-18 08:32:41 STATE: test-node-wasm.js event: detect -2022-05-18 08:32:41 STATE: test-node-wasm.js event: warmup -2022-05-18 08:32:41 STATE: test-node-wasm.js passed: warmup: face default -2022-05-18 08:32:41 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":3} -2022-05-18 08:32:41 DATA:  test-node-wasm.js result: performance: load: null total: 473 -2022-05-18 08:32:41 STATE: test-node-wasm.js passed: warmup face result match -2022-05-18 08:32:41 STATE: test-node-wasm.js event: image -2022-05-18 08:32:41 STATE: test-node-wasm.js event: detect -2022-05-18 08:32:41 STATE: test-node-wasm.js event: warmup -2022-05-18 08:32:41 STATE: test-node-wasm.js passed: warmup: body default -2022-05-18 08:32:41 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-05-18 08:32:41 DATA:  test-node-wasm.js result: performance: load: null total: 369 -2022-05-18 08:32:41 STATE: test-node-wasm.js passed: warmup body result match -2022-05-18 08:32:41 STATE: test-node-wasm.js details: {"face":{"boxScore":0.93,"faceScore":1,"age":23.7,"gender":"female","genderScore":0.97},"emotion":[{"score":0.59,"emotion":"angry"},{"score":0.29,"emotion":"fear"}],"body":{"score":0.92,"keypoints":17},"hand":{"boxScore":0.51,"fingerScore":0.73,"keypoints":21},"gestures":[{"face":0,"gesture":"facing right"},{"hand":0,"gesture":"pinky forward"},{"hand":0,"gesture":"palm up"},{"hand":0,"gesture":"open palm"},{"iris":0,"gesture":"looking left"},{"iris":0,"gesture":"looking up"}]} -2022-05-18 08:32:41 INFO:  test-node-wasm.js test: details verification -2022-05-18 08:32:41 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-05-18 08:32:41 STATE: test-node-wasm.js event: image -2022-05-18 08:32:42 STATE: test-node-wasm.js event: detect -2022-05-18 08:32:42 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default -2022-05-18 08:32:42 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-05-18 08:32:42 DATA:  test-node-wasm.js result: performance: load: null total: 329 -2022-05-18 08:32:42 STATE: test-node-wasm.js passed: details face length 1 -2022-05-18 08:32:42 STATE: test-node-wasm.js passed: details face score 1 0.93 1 -2022-05-18 08:32:42 STATE: test-node-wasm.js passed: details face age/gender 23.7 female 0.97 73.26 -2022-05-18 08:32:42 STATE: test-node-wasm.js passed: details face arrays 4 478 1024 -2022-05-18 08:32:42 STATE: test-node-wasm.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"} -2022-05-18 08:32:42 STATE: test-node-wasm.js passed: details face anti-spoofing 0.79 -2022-05-18 08:32:42 STATE: test-node-wasm.js passed: details face liveness 0.83 -2022-05-18 08:32:42 STATE: test-node-wasm.js passed: details body length 1 -2022-05-18 08:32:42 STATE: test-node-wasm.js passed: details body 0.92 17 6 -2022-05-18 08:32:42 STATE: test-node-wasm.js passed: details hand length 1 -2022-05-18 08:32:42 STATE: test-node-wasm.js passed: details hand 0.51 0.73 point -2022-05-18 08:32:42 STATE: test-node-wasm.js passed: details hand arrays 21 5 7 -2022-05-18 08:32:42 STATE: test-node-wasm.js passed: details gesture length 6 -2022-05-18 08:32:42 STATE: test-node-wasm.js passed: details gesture first {"face":0,"gesture":"facing right"} -2022-05-18 08:32:42 STATE: test-node-wasm.js passed: details object length 1 -2022-05-18 08:32:42 STATE: test-node-wasm.js passed: details object 0.72 person -2022-05-18 08:32:42 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1413675264} -2022-05-18 08:32:42 STATE: test-node-wasm.js event: image -2022-05-18 08:32:42 STATE: test-node-wasm.js event: detect -2022-05-18 08:32:42 STATE: test-node-wasm.js passed: tensor shape: [1,1200,1200,4] dtype: float32 -2022-05-18 08:32:42 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1413675264} -2022-05-18 08:32:42 STATE: test-node-wasm.js event: image -2022-05-18 08:32:43 STATE: test-node-wasm.js event: detect -2022-05-18 08:32:43 STATE: test-node-wasm.js passed: tensor shape: [1200,1200,4] dtype: float32 -2022-05-18 08:32:43 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-05-18 08:32:43 STATE: test-node-wasm.js event: image -2022-05-18 08:32:43 STATE: test-node-wasm.js event: detect -2022-05-18 08:32:43 STATE: test-node-wasm.js passed: tensor shape: [1,1200,1200,3] dtype: float32 -2022-05-18 08:32:43 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1038921856} -2022-05-18 08:32:43 STATE: test-node-wasm.js event: image -2022-05-18 08:32:44 STATE: test-node-wasm.js event: detect -2022-05-18 08:32:44 STATE: test-node-wasm.js passed: tensor shape: [1200,1200,3] dtype: float32 -2022-05-18 08:32:44 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871} -2022-05-18 08:32:44 STATE: test-node-wasm.js event: image -2022-05-18 08:32:44 STATE: test-node-wasm.js event: detect -2022-05-18 08:32:44 STATE: test-node-wasm.js passed: tensor shape: [1,1200,1200,4] dtype: int32 -2022-05-18 08:32:44 INFO:  test-node-wasm.js test default -2022-05-18 08:32:45 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-05-18 08:32:45 STATE: test-node-wasm.js event: image -2022-05-18 08:32:45 STATE: test-node-wasm.js event: detect -2022-05-18 08:32:45 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default -2022-05-18 08:32:45 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-05-18 08:32:45 DATA:  test-node-wasm.js result: performance: load: null total: 320 -2022-05-18 08:32:45 STATE: test-node-wasm.js passed: default result face match 1 female 0.97 -2022-05-18 08:32:45 INFO:  test-node-wasm.js test sync -2022-05-18 08:32:45 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-05-18 08:32:45 STATE: test-node-wasm.js event: image -2022-05-18 08:32:45 STATE: test-node-wasm.js event: detect -2022-05-18 08:32:45 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default -2022-05-18 08:32:45 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-05-18 08:32:45 DATA:  test-node-wasm.js result: performance: load: null total: 314 -2022-05-18 08:32:45 STATE: test-node-wasm.js passed: default sync 1 female 0.97 -2022-05-18 08:32:45 INFO:  test-node-wasm.js test: image process -2022-05-18 08:32:45 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-05-18 08:32:45 STATE: test-node-wasm.js passed: image input null [1,256,256,3] -2022-05-18 08:32:45 INFO:  test-node-wasm.js test: image null -2022-05-18 08:32:45 STATE: test-node-wasm.js passed: invalid input could not convert input to tensor -2022-05-18 08:32:45 INFO:  test-node-wasm.js test face similarity -2022-05-18 08:32:45 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-05-18 08:32:45 STATE: test-node-wasm.js event: image -2022-05-18 08:32:46 STATE: test-node-wasm.js event: detect -2022-05-18 08:32:46 STATE: test-node-wasm.js passed: detect: samples/in/ai-face.jpg default -2022-05-18 08:32:46 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":3} -2022-05-18 08:32:46 DATA:  test-node-wasm.js result: performance: load: null total: 302 -2022-05-18 08:32:46 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-05-18 08:32:46 STATE: test-node-wasm.js event: image -2022-05-18 08:32:46 STATE: test-node-wasm.js event: detect -2022-05-18 08:32:46 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default -2022-05-18 08:32:46 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-05-18 08:32:46 DATA:  test-node-wasm.js result: performance: load: null total: 323 -2022-05-18 08:32:46 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} -2022-05-18 08:32:46 STATE: test-node-wasm.js event: image -2022-05-18 08:32:47 STATE: test-node-wasm.js event: detect -2022-05-18 08:32:47 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg default -2022-05-18 08:32:47 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":7} -2022-05-18 08:32:47 DATA:  test-node-wasm.js result: performance: load: null total: 284 -2022-05-18 08:32:47 STATE: test-node-wasm.js passed: face descriptor -2022-05-18 08:32:47 STATE: test-node-wasm.js passed: face similarity {"similarity":[1,0.5266119940661309,0.4858842904087851],"descriptors":[1024,1024,1024]} -2022-05-18 08:32:47 INFO:  test-node-wasm.js test face matching -2022-05-18 08:32:47 STATE: test-node-wasm.js passed: face database 40 -2022-05-18 08:32:47 STATE: test-node-wasm.js passed: face match {"first":{"index":4,"similarity":0.7827852754786533}} {"second":{"index":4,"similarity":0.5660821189104794}} {"third":{"index":4,"similarity":0.45074189882665594}} -2022-05-18 08:32:47 INFO:  test-node-wasm.js test object -2022-05-18 08:32:47 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-05-18 08:32:47 STATE: test-node-wasm.js event: image -2022-05-18 08:32:47 STATE: test-node-wasm.js event: detect -2022-05-18 08:32:47 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default -2022-05-18 08:32:47 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-05-18 08:32:47 DATA:  test-node-wasm.js result: performance: load: null total: 325 -2022-05-18 08:32:47 STATE: test-node-wasm.js passed: object result match -2022-05-18 08:32:47 INFO:  test-node-wasm.js test sensitive -2022-05-18 08:32:47 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-05-18 08:32:47 STATE: test-node-wasm.js event: image -2022-05-18 08:32:48 STATE: test-node-wasm.js event: detect -2022-05-18 08:32:48 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default -2022-05-18 08:32:48 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-05-18 08:32:48 DATA:  test-node-wasm.js result: performance: load: null total: 344 -2022-05-18 08:32:48 STATE: test-node-wasm.js passed: sensitive result match -2022-05-18 08:32:48 STATE: test-node-wasm.js passed: sensitive face result match -2022-05-18 08:32:48 STATE: test-node-wasm.js passed: sensitive face emotion result [{"score":0.46,"emotion":"neutral"},{"score":0.24,"emotion":"fear"},{"score":0.17,"emotion":"sad"}] -2022-05-18 08:32:48 STATE: test-node-wasm.js passed: sensitive body result match -2022-05-18 08:32:48 STATE: test-node-wasm.js passed: sensitive hand result match -2022-05-18 08:32:48 INFO:  test-node-wasm.js test detectors -2022-05-18 08:32:48 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-05-18 08:32:48 STATE: test-node-wasm.js event: image -2022-05-18 08:32:48 STATE: test-node-wasm.js event: detect -2022-05-18 08:32:48 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default -2022-05-18 08:32:48 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-05-18 08:32:48 DATA:  test-node-wasm.js result: performance: load: null total: 221 -2022-05-18 08:32:48 STATE: test-node-wasm.js passed: detector result face match -2022-05-18 08:32:48 STATE: test-node-wasm.js passed: detector result hand match -2022-05-18 08:32:48 INFO:  test-node-wasm.js test: multi-instance -2022-05-18 08:32:48 STATE: test-node-wasm.js event: image -2022-05-18 08:32:48 STATE: test-node-wasm.js event: detect -2022-05-18 08:32:48 STATE: test-node-wasm.js passed: detect: random default -2022-05-18 08:32:48 DATA:  test-node-wasm.js result: face: 0 body: 1 hand: 0 gesture: 0 object: 0 person: 0 {} {} {"score":0.07,"keypoints":15} -2022-05-18 08:32:48 DATA:  test-node-wasm.js result: performance: load: null total: 194 -2022-05-18 08:32:48 INFO:  test-node-wasm.js test: first instance -2022-05-18 08:32:49 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} -2022-05-18 08:32:49 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg default -2022-05-18 08:32:49 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} -2022-05-18 08:32:49 DATA:  test-node-wasm.js result: performance: load: null total: 211 -2022-05-18 08:32:49 INFO:  test-node-wasm.js test: second instance -2022-05-18 08:32:49 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} -2022-05-18 08:32:49 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg default -2022-05-18 08:32:49 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} -2022-05-18 08:32:49 DATA:  test-node-wasm.js result: performance: load: null total: 213 -2022-05-18 08:32:49 INFO:  test-node-wasm.js test: concurrent -2022-05-18 08:32:49 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-05-18 08:32:49 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-05-18 08:32:49 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-05-18 08:32:50 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-05-18 08:32:50 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} -2022-05-18 08:32:50 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} -2022-05-18 08:32:50 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-05-18 08:32:50 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-05-18 08:32:50 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} -2022-05-18 08:32:50 STATE: test-node-wasm.js event: image -2022-05-18 08:32:50 STATE: test-node-wasm.js event: image -2022-05-18 08:32:50 STATE: test-node-wasm.js event: image -2022-05-18 08:32:52 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg default -2022-05-18 08:32:52 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} -2022-05-18 08:32:52 DATA:  test-node-wasm.js result: performance: load: null total: 1971 -2022-05-18 08:32:52 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg default -2022-05-18 08:32:52 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} -2022-05-18 08:32:52 DATA:  test-node-wasm.js result: performance: load: null total: 1971 -2022-05-18 08:32:52 STATE: test-node-wasm.js passed: detect: samples/in/ai-face.jpg default -2022-05-18 08:32:52 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 2 object: 1 person: 1 {"score":0.91} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":17} -2022-05-18 08:32:52 DATA:  test-node-wasm.js result: performance: load: null total: 2186 -2022-05-18 08:32:52 STATE: test-node-wasm.js passed: detect: samples/in/ai-face.jpg default -2022-05-18 08:32:52 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 2 object: 1 person: 1 {"score":0.91} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":17} -2022-05-18 08:32:52 DATA:  test-node-wasm.js result: performance: load: null total: 2186 -2022-05-18 08:32:52 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default -2022-05-18 08:32:52 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-05-18 08:32:52 DATA:  test-node-wasm.js result: performance: load: null total: 2186 -2022-05-18 08:32:52 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default -2022-05-18 08:32:52 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-05-18 08:32:52 DATA:  test-node-wasm.js result: performance: load: null total: 2186 -2022-05-18 08:32:52 STATE: test-node-wasm.js event: detect -2022-05-18 08:32:52 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg default -2022-05-18 08:32:52 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} -2022-05-18 08:32:52 DATA:  test-node-wasm.js result: performance: load: null total: 1892 -2022-05-18 08:32:52 STATE: test-node-wasm.js event: detect -2022-05-18 08:32:52 STATE: test-node-wasm.js event: detect -2022-05-18 08:32:52 STATE: test-node-wasm.js passed: detect: samples/in/ai-face.jpg default -2022-05-18 08:32:52 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 2 object: 1 person: 1 {"score":0.91} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":17} -2022-05-18 08:32:52 DATA:  test-node-wasm.js result: performance: load: null total: 1892 -2022-05-18 08:32:52 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default -2022-05-18 08:32:52 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-05-18 08:32:52 DATA:  test-node-wasm.js result: performance: load: null total: 1892 -2022-05-18 08:32:52 INFO:  test-node-wasm.js test: monkey-patch -2022-05-18 08:32:52 STATE: test-node-wasm.js event: image -2022-05-18 08:32:52 STATE: test-node-wasm.js event: detect -2022-05-18 08:32:52 STATE: test-node-wasm.js passed: monkey patch -2022-05-18 08:32:52 STATE: test-node-wasm.js passed: segmentation [65536] -2022-05-18 08:32:52 STATE: test-node-wasm.js passeed: equal usage -2022-05-18 08:32:52 INFO:  test-node-wasm.js test: input compare -2022-05-18 08:32:52 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-05-18 08:32:52 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-05-18 08:32:52 STATE: test-node-wasm.js passed: image compare 0 23.280073018790848 -2022-05-18 08:32:52 INFO:  test-node-wasm.js events: {"image":21,"detect":21,"warmup":2} -2022-05-18 08:32:52 INFO:  test-node-wasm.js tensors 1927 -2022-05-18 08:32:52 INFO:  test-node-wasm.js test complete: 14028 ms -2022-05-18 08:32:52 INFO:  all tests complete -2022-05-18 08:32:52 INFO:  failed: {"count":0,"messages":[]} -2022-05-18 08:32:52 INFO:  status: {"test":"test-node.js","passed":101,"failed":0} -2022-05-18 08:32:52 INFO:  status: {"test":"test-node-gpu.js","passed":101,"failed":0} -2022-05-18 08:32:52 INFO:  status: {"test":"test-node-wasm.js","passed":102,"failed":0} +2022-05-22 08:48:57 INFO:  @vladmandic/human version 2.7.2 +2022-05-22 08:48:57 INFO:  User: vlado Platform: linux Arch: x64 Node: v16.15.0 +2022-05-22 08:48:57 INFO:  tests: ["test-node.js","test-node-gpu.js","test-node-wasm.js"] +2022-05-22 08:48:57 INFO:  demos: ["../demo/nodejs/node.js","../demo/nodejs/node-canvas.js","../demo/nodejs/node-env.js","../demo/nodejs/node-event.js","../demo/nodejs/node-multiprocess.js"] +2022-05-22 08:48:57 INFO:  +2022-05-22 08:48:57 INFO:  test-node.js start +2022-05-22 08:48:57 INFO:  test-node.js test: configuration validation +2022-05-22 08:48:57 STATE: test-node.js passed: configuration default validation [] +2022-05-22 08:48:57 STATE: test-node.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}] +2022-05-22 08:48:57 INFO:  test-node.js test: model load +2022-05-22 08:48:57 STATE: test-node.js passed: models loaded 22 12 [{"name":"ssrnetage","loaded":false},{"name":"gear","loaded":false},{"name":"blazeposedetect","loaded":false},{"name":"blazepose","loaded":false},{"name":"centernet","loaded":true},{"name":"efficientpose","loaded":false},{"name":"mobilefacenet","loaded":false},{"name":"emotion","loaded":true},{"name":"facedetect","loaded":true},{"name":"faceiris","loaded":true},{"name":"facemesh","loaded":true},{"name":"faceres","loaded":true},{"name":"ssrnetgender","loaded":false},{"name":"handpose","loaded":false},{"name":"handskeleton","loaded":true},{"name":"handtrack","loaded":true},{"name":"liveness","loaded":true},{"name":"movenet","loaded":true},{"name":"nanodet","loaded":false},{"name":"posenet","loaded":false},{"name":"segmentation","loaded":true},{"name":"antispoof","loaded":true}] +2022-05-22 08:48:57 INFO:  test-node.js test: warmup +2022-05-22 08:48:57 STATE: test-node.js passed: create human +2022-05-22 08:48:57 INFO:  test-node.js human version: 2.7.2 +2022-05-22 08:48:57 INFO:  test-node.js platform: linux x64 agent: NodeJS v16.15.0 +2022-05-22 08:48:57 INFO:  test-node.js tfjs version: 3.18.0 +2022-05-22 08:48:57 INFO:  test-node.js tensorflow binding version: 2.7.0-dev20211101 +2022-05-22 08:48:57 STATE: test-node.js passed: set backend: tensorflow +2022-05-22 08:48:57 STATE: test-node.js tensors 1919 +2022-05-22 08:48:57 STATE: test-node.js passed: load models +2022-05-22 08:48:57 STATE: test-node.js result: defined models: 22 loaded models: 12 +2022-05-22 08:48:57 STATE: test-node.js passed: warmup: none default +2022-05-22 08:48:57 DATA:  test-node.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {} +2022-05-22 08:48:57 DATA:  test-node.js result: performance: load: null total: null +2022-05-22 08:48:57 STATE: test-node.js passed: warmup none result match +2022-05-22 08:48:57 STATE: test-node.js event: image +2022-05-22 08:48:57 STATE: test-node.js event: detect +2022-05-22 08:48:57 STATE: test-node.js event: warmup +2022-05-22 08:48:57 STATE: test-node.js passed: warmup: face default +2022-05-22 08:48:57 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.42,"keypoints":4} +2022-05-22 08:48:57 DATA:  test-node.js result: performance: load: null total: 311 +2022-05-22 08:48:57 STATE: test-node.js passed: warmup face result match +2022-05-22 08:48:57 STATE: test-node.js event: image +2022-05-22 08:48:57 STATE: test-node.js event: detect +2022-05-22 08:48:57 STATE: test-node.js event: warmup +2022-05-22 08:48:57 STATE: test-node.js passed: warmup: body default +2022-05-22 08:48:57 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-05-22 08:48:57 DATA:  test-node.js result: performance: load: null total: 247 +2022-05-22 08:48:57 STATE: test-node.js passed: warmup body result match +2022-05-22 08:48:57 STATE: test-node.js details: {"face":{"boxScore":0.92,"faceScore":1,"age":23.7,"gender":"female","genderScore":0.97},"emotion":[{"score":0.63,"emotion":"angry"},{"score":0.22,"emotion":"fear"}],"body":{"score":0.92,"keypoints":17},"hand":{"boxScore":0.52,"fingerScore":0.73,"keypoints":21},"gestures":[{"face":0,"gesture":"facing right"},{"hand":0,"gesture":"pinky forward"},{"hand":0,"gesture":"palm up"},{"hand":0,"gesture":"open palm"},{"iris":0,"gesture":"looking right"},{"iris":0,"gesture":"looking up"}]} +2022-05-22 08:48:57 INFO:  test-node.js test: details verification +2022-05-22 08:48:58 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-05-22 08:48:58 STATE: test-node.js event: image +2022-05-22 08:48:58 STATE: test-node.js event: detect +2022-05-22 08:48:58 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default +2022-05-22 08:48:58 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-05-22 08:48:58 DATA:  test-node.js result: performance: load: null total: 220 +2022-05-22 08:48:58 STATE: test-node.js passed: details face length 1 +2022-05-22 08:48:58 STATE: test-node.js passed: details face score 1 0.93 1 +2022-05-22 08:48:58 STATE: test-node.js passed: details face age/gender 23.7 female 0.97 73.26 +2022-05-22 08:48:58 STATE: test-node.js passed: details face arrays 4 478 1024 +2022-05-22 08:48:58 STATE: test-node.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"} +2022-05-22 08:48:58 STATE: test-node.js passed: details face anti-spoofing 0.79 +2022-05-22 08:48:58 STATE: test-node.js passed: details face liveness 0.83 +2022-05-22 08:48:58 STATE: test-node.js passed: details body length 1 +2022-05-22 08:48:58 STATE: test-node.js passed: details body 0.92 17 6 +2022-05-22 08:48:58 STATE: test-node.js passed: details hand length 1 +2022-05-22 08:48:58 STATE: test-node.js passed: details hand 0.51 0.73 point +2022-05-22 08:48:58 STATE: test-node.js passed: details hand arrays 21 5 7 +2022-05-22 08:48:58 STATE: test-node.js passed: details gesture length 6 +2022-05-22 08:48:58 STATE: test-node.js passed: details gesture first {"face":0,"gesture":"facing right"} +2022-05-22 08:48:58 STATE: test-node.js passed: details object length 1 +2022-05-22 08:48:58 STATE: test-node.js passed: details object 0.72 person +2022-05-22 08:48:58 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996928} +2022-05-22 08:48:58 STATE: test-node.js event: image +2022-05-22 08:48:58 STATE: test-node.js event: detect +2022-05-22 08:48:58 STATE: test-node.js passed: tensor shape: [1,1200,1200,4] dtype: float32 +2022-05-22 08:48:58 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1371996928} +2022-05-22 08:48:58 STATE: test-node.js event: image +2022-05-22 08:48:59 STATE: test-node.js event: detect +2022-05-22 08:48:59 STATE: test-node.js passed: tensor shape: [1200,1200,4] dtype: float32 +2022-05-22 08:48:59 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-05-22 08:48:59 STATE: test-node.js event: image +2022-05-22 08:48:59 STATE: test-node.js event: detect +2022-05-22 08:48:59 STATE: test-node.js passed: tensor shape: [1,1200,1200,3] dtype: float32 +2022-05-22 08:48:59 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1004796864} +2022-05-22 08:48:59 STATE: test-node.js event: image +2022-05-22 08:49:00 STATE: test-node.js event: detect +2022-05-22 08:49:00 STATE: test-node.js passed: tensor shape: [1200,1200,3] dtype: float32 +2022-05-22 08:49:00 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871} +2022-05-22 08:49:00 STATE: test-node.js event: image +2022-05-22 08:49:00 STATE: test-node.js event: detect +2022-05-22 08:49:00 STATE: test-node.js passed: tensor shape: [1,1200,1200,4] dtype: int32 +2022-05-22 08:49:00 INFO:  test-node.js test default +2022-05-22 08:49:00 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-05-22 08:49:00 STATE: test-node.js event: image +2022-05-22 08:49:00 STATE: test-node.js event: detect +2022-05-22 08:49:00 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default +2022-05-22 08:49:00 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-05-22 08:49:00 DATA:  test-node.js result: performance: load: null total: 220 +2022-05-22 08:49:00 STATE: test-node.js passed: default result face match 1 female 0.97 +2022-05-22 08:49:00 INFO:  test-node.js test sync +2022-05-22 08:49:01 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-05-22 08:49:01 STATE: test-node.js event: image +2022-05-22 08:49:01 STATE: test-node.js event: detect +2022-05-22 08:49:01 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default +2022-05-22 08:49:01 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-05-22 08:49:01 DATA:  test-node.js result: performance: load: null total: 195 +2022-05-22 08:49:01 STATE: test-node.js passed: default sync 1 female 0.97 +2022-05-22 08:49:01 INFO:  test-node.js test: image process +2022-05-22 08:49:01 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-05-22 08:49:01 STATE: test-node.js passed: image input null [1,256,256,3] +2022-05-22 08:49:01 INFO:  test-node.js test: image null +2022-05-22 08:49:01 STATE: test-node.js passed: invalid input could not convert input to tensor +2022-05-22 08:49:01 INFO:  test-node.js test face similarity +2022-05-22 08:49:01 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-05-22 08:49:01 STATE: test-node.js event: image +2022-05-22 08:49:01 STATE: test-node.js event: detect +2022-05-22 08:49:01 STATE: test-node.js passed: detect: samples/in/ai-face.jpg default +2022-05-22 08:49:01 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":3} +2022-05-22 08:49:01 DATA:  test-node.js result: performance: load: null total: 194 +2022-05-22 08:49:01 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-05-22 08:49:01 STATE: test-node.js event: image +2022-05-22 08:49:01 STATE: test-node.js event: detect +2022-05-22 08:49:01 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default +2022-05-22 08:49:01 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-05-22 08:49:01 DATA:  test-node.js result: performance: load: null total: 213 +2022-05-22 08:49:01 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} +2022-05-22 08:49:01 STATE: test-node.js event: image +2022-05-22 08:49:02 STATE: test-node.js event: detect +2022-05-22 08:49:02 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg default +2022-05-22 08:49:02 DATA:  test-node.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":7} +2022-05-22 08:49:02 DATA:  test-node.js result: performance: load: null total: 185 +2022-05-22 08:49:02 STATE: test-node.js passed: face descriptor +2022-05-22 08:49:02 STATE: test-node.js passed: face similarity {"similarity":[1,0.44727452329649126,0.5567935850640406],"descriptors":[1024,1024,1024]} +2022-05-22 08:49:02 INFO:  test-node.js test face matching +2022-05-22 08:49:02 STATE: test-node.js passed: face database 40 +2022-05-22 08:49:02 STATE: test-node.js passed: face match {"first":{"index":4,"similarity":0.7827852615252829}} {"second":{"index":4,"similarity":0.5002052633015844}} {"third":{"index":4,"similarity":0.5401587887998899}} +2022-05-22 08:49:02 INFO:  test-node.js test object +2022-05-22 08:49:02 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-05-22 08:49:02 STATE: test-node.js event: image +2022-05-22 08:49:02 STATE: test-node.js event: detect +2022-05-22 08:49:02 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default +2022-05-22 08:49:02 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-05-22 08:49:02 DATA:  test-node.js result: performance: load: null total: 206 +2022-05-22 08:49:02 STATE: test-node.js passed: object result match +2022-05-22 08:49:02 INFO:  test-node.js test sensitive +2022-05-22 08:49:02 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-05-22 08:49:02 STATE: test-node.js event: image +2022-05-22 08:49:02 STATE: test-node.js event: detect +2022-05-22 08:49:02 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default +2022-05-22 08:49:02 DATA:  test-node.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-05-22 08:49:02 DATA:  test-node.js result: performance: load: null total: 223 +2022-05-22 08:49:02 STATE: test-node.js passed: sensitive result match +2022-05-22 08:49:02 STATE: test-node.js passed: sensitive face result match +2022-05-22 08:49:02 STATE: test-node.js passed: sensitive face emotion result [{"score":0.59,"emotion":"angry"},{"score":0.29,"emotion":"fear"}] +2022-05-22 08:49:02 STATE: test-node.js passed: sensitive body result match +2022-05-22 08:49:02 STATE: test-node.js passed: sensitive hand result match +2022-05-22 08:49:02 INFO:  test-node.js test detectors +2022-05-22 08:49:03 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-05-22 08:49:03 STATE: test-node.js event: image +2022-05-22 08:49:03 STATE: test-node.js event: detect +2022-05-22 08:49:03 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default +2022-05-22 08:49:03 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-05-22 08:49:03 DATA:  test-node.js result: performance: load: null total: 131 +2022-05-22 08:49:03 STATE: test-node.js passed: detector result face match +2022-05-22 08:49:03 STATE: test-node.js passed: detector result hand match +2022-05-22 08:49:03 INFO:  test-node.js test: multi-instance +2022-05-22 08:49:03 STATE: test-node.js event: image +2022-05-22 08:49:03 STATE: test-node.js event: detect +2022-05-22 08:49:03 STATE: test-node.js passed: detect: random default +2022-05-22 08:49:03 DATA:  test-node.js result: face: 0 body: 1 hand: 0 gesture: 0 object: 0 person: 0 {} {} {"score":0.06,"keypoints":15} +2022-05-22 08:49:03 DATA:  test-node.js result: performance: load: null total: 135 +2022-05-22 08:49:03 INFO:  test-node.js test: first instance +2022-05-22 08:49:03 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} +2022-05-22 08:49:03 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg default +2022-05-22 08:49:03 DATA:  test-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} +2022-05-22 08:49:03 DATA:  test-node.js result: performance: load: null total: 154 +2022-05-22 08:49:03 INFO:  test-node.js test: second instance +2022-05-22 08:49:03 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} +2022-05-22 08:49:03 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg default +2022-05-22 08:49:03 DATA:  test-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} +2022-05-22 08:49:03 DATA:  test-node.js result: performance: load: null total: 132 +2022-05-22 08:49:03 INFO:  test-node.js test: concurrent +2022-05-22 08:49:03 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-05-22 08:49:03 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-05-22 08:49:04 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-05-22 08:49:04 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-05-22 08:49:04 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} +2022-05-22 08:49:04 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} +2022-05-22 08:49:04 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-05-22 08:49:04 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-05-22 08:49:04 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} +2022-05-22 08:49:04 STATE: test-node.js event: image +2022-05-22 08:49:04 STATE: test-node.js event: image +2022-05-22 08:49:04 STATE: test-node.js event: image +2022-05-22 08:49:05 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg default +2022-05-22 08:49:05 DATA:  test-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} +2022-05-22 08:49:05 DATA:  test-node.js result: performance: load: null total: 1305 +2022-05-22 08:49:05 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg default +2022-05-22 08:49:05 DATA:  test-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} +2022-05-22 08:49:05 DATA:  test-node.js result: performance: load: null total: 1305 +2022-05-22 08:49:05 STATE: test-node.js passed: detect: samples/in/ai-face.jpg default +2022-05-22 08:49:05 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 2 object: 1 person: 1 {"score":0.91} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":17} +2022-05-22 08:49:05 DATA:  test-node.js result: performance: load: null total: 1423 +2022-05-22 08:49:05 STATE: test-node.js passed: detect: samples/in/ai-face.jpg default +2022-05-22 08:49:05 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 2 object: 1 person: 1 {"score":0.91} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":17} +2022-05-22 08:49:05 DATA:  test-node.js result: performance: load: null total: 1423 +2022-05-22 08:49:05 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default +2022-05-22 08:49:05 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-05-22 08:49:05 DATA:  test-node.js result: performance: load: null total: 1423 +2022-05-22 08:49:05 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default +2022-05-22 08:49:05 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-05-22 08:49:05 DATA:  test-node.js result: performance: load: null total: 1423 +2022-05-22 08:49:05 STATE: test-node.js event: detect +2022-05-22 08:49:05 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg default +2022-05-22 08:49:05 DATA:  test-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} +2022-05-22 08:49:05 DATA:  test-node.js result: performance: load: null total: 1190 +2022-05-22 08:49:05 STATE: test-node.js event: detect +2022-05-22 08:49:05 STATE: test-node.js event: detect +2022-05-22 08:49:05 STATE: test-node.js passed: detect: samples/in/ai-face.jpg default +2022-05-22 08:49:05 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 2 object: 1 person: 1 {"score":0.91} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":17} +2022-05-22 08:49:05 DATA:  test-node.js result: performance: load: null total: 1190 +2022-05-22 08:49:05 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default +2022-05-22 08:49:05 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-05-22 08:49:05 DATA:  test-node.js result: performance: load: null total: 1190 +2022-05-22 08:49:05 INFO:  test-node.js test: monkey-patch +2022-05-22 08:49:05 STATE: test-node.js event: image +2022-05-22 08:49:06 STATE: test-node.js event: detect +2022-05-22 08:49:06 STATE: test-node.js passed: monkey patch +2022-05-22 08:49:06 STATE: test-node.js passed: segmentation [65536] +2022-05-22 08:49:06 STATE: test-node.js passeed: equal usage +2022-05-22 08:49:06 INFO:  test-node.js test: input compare +2022-05-22 08:49:06 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-05-22 08:49:06 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-05-22 08:49:06 STATE: test-node.js passed: image compare 0 23.275441687091504 +2022-05-22 08:49:06 INFO:  test-node.js events: {"image":21,"detect":21,"warmup":2} +2022-05-22 08:49:06 INFO:  test-node.js tensors 1925 +2022-05-22 08:49:06 INFO:  test-node.js test complete: 9021 ms +2022-05-22 08:49:06 INFO:  +2022-05-22 08:49:06 INFO:  test-node-gpu.js start +2022-05-22 08:49:07 INFO:  test-node-gpu.js test: configuration validation +2022-05-22 08:49:07 STATE: test-node-gpu.js passed: configuration default validation [] +2022-05-22 08:49:07 STATE: test-node-gpu.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}] +2022-05-22 08:49:07 INFO:  test-node-gpu.js test: model load +2022-05-22 08:49:07 STATE: test-node-gpu.js passed: models loaded 22 12 [{"name":"ssrnetage","loaded":false},{"name":"gear","loaded":false},{"name":"blazeposedetect","loaded":false},{"name":"blazepose","loaded":false},{"name":"centernet","loaded":true},{"name":"efficientpose","loaded":false},{"name":"mobilefacenet","loaded":false},{"name":"emotion","loaded":true},{"name":"facedetect","loaded":true},{"name":"faceiris","loaded":true},{"name":"facemesh","loaded":true},{"name":"faceres","loaded":true},{"name":"ssrnetgender","loaded":false},{"name":"handpose","loaded":false},{"name":"handskeleton","loaded":true},{"name":"handtrack","loaded":true},{"name":"liveness","loaded":true},{"name":"movenet","loaded":true},{"name":"nanodet","loaded":false},{"name":"posenet","loaded":false},{"name":"segmentation","loaded":true},{"name":"antispoof","loaded":true}] +2022-05-22 08:49:07 INFO:  test-node-gpu.js test: warmup +2022-05-22 08:49:07 STATE: test-node-gpu.js passed: create human +2022-05-22 08:49:07 INFO:  test-node-gpu.js human version: 2.7.2 +2022-05-22 08:49:07 INFO:  test-node-gpu.js platform: linux x64 agent: NodeJS v16.15.0 +2022-05-22 08:49:07 INFO:  test-node-gpu.js tfjs version: 3.18.0 +2022-05-22 08:49:07 INFO:  test-node-gpu.js tensorflow binding version: 2.7.0-dev20211101 +2022-05-22 08:49:07 STATE: test-node-gpu.js passed: set backend: tensorflow +2022-05-22 08:49:07 STATE: test-node-gpu.js tensors 1919 +2022-05-22 08:49:07 STATE: test-node-gpu.js passed: load models +2022-05-22 08:49:07 STATE: test-node-gpu.js result: defined models: 22 loaded models: 12 +2022-05-22 08:49:07 STATE: test-node-gpu.js passed: warmup: none default +2022-05-22 08:49:07 DATA:  test-node-gpu.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {} +2022-05-22 08:49:07 DATA:  test-node-gpu.js result: performance: load: null total: null +2022-05-22 08:49:07 STATE: test-node-gpu.js passed: warmup none result match +2022-05-22 08:49:07 STATE: test-node-gpu.js event: image +2022-05-22 08:49:11 STATE: test-node-gpu.js event: detect +2022-05-22 08:49:11 STATE: test-node-gpu.js event: warmup +2022-05-22 08:49:11 STATE: test-node-gpu.js passed: warmup: face default +2022-05-22 08:49:11 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.42,"keypoints":4} +2022-05-22 08:49:11 DATA:  test-node-gpu.js result: performance: load: null total: 3731 +2022-05-22 08:49:11 STATE: test-node-gpu.js passed: warmup face result match +2022-05-22 08:49:11 STATE: test-node-gpu.js event: image +2022-05-22 08:49:11 STATE: test-node-gpu.js event: detect +2022-05-22 08:49:11 STATE: test-node-gpu.js event: warmup +2022-05-22 08:49:11 STATE: test-node-gpu.js passed: warmup: body default +2022-05-22 08:49:11 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-05-22 08:49:11 DATA:  test-node-gpu.js result: performance: load: null total: 186 +2022-05-22 08:49:11 STATE: test-node-gpu.js passed: warmup body result match +2022-05-22 08:49:11 STATE: test-node-gpu.js details: {"face":{"boxScore":0.92,"faceScore":1,"age":23.7,"gender":"female","genderScore":0.97},"emotion":[{"score":0.63,"emotion":"angry"},{"score":0.22,"emotion":"fear"}],"body":{"score":0.92,"keypoints":17},"hand":{"boxScore":0.52,"fingerScore":0.73,"keypoints":21},"gestures":[{"face":0,"gesture":"facing right"},{"hand":0,"gesture":"pinky forward"},{"hand":0,"gesture":"palm up"},{"hand":0,"gesture":"open palm"},{"iris":0,"gesture":"looking right"},{"iris":0,"gesture":"looking up"}]} +2022-05-22 08:49:11 INFO:  test-node-gpu.js test: details verification +2022-05-22 08:49:11 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-05-22 08:49:11 STATE: test-node-gpu.js event: image +2022-05-22 08:49:12 STATE: test-node-gpu.js event: detect +2022-05-22 08:49:12 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default +2022-05-22 08:49:12 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-05-22 08:49:12 DATA:  test-node-gpu.js result: performance: load: null total: 178 +2022-05-22 08:49:12 STATE: test-node-gpu.js passed: details face length 1 +2022-05-22 08:49:12 STATE: test-node-gpu.js passed: details face score 1 0.93 1 +2022-05-22 08:49:12 STATE: test-node-gpu.js passed: details face age/gender 23.7 female 0.97 73.26 +2022-05-22 08:49:12 STATE: test-node-gpu.js passed: details face arrays 4 478 1024 +2022-05-22 08:49:12 STATE: test-node-gpu.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"} +2022-05-22 08:49:12 STATE: test-node-gpu.js passed: details face anti-spoofing 0.79 +2022-05-22 08:49:12 STATE: test-node-gpu.js passed: details face liveness 0.83 +2022-05-22 08:49:12 STATE: test-node-gpu.js passed: details body length 1 +2022-05-22 08:49:12 STATE: test-node-gpu.js passed: details body 0.92 17 6 +2022-05-22 08:49:12 STATE: test-node-gpu.js passed: details hand length 1 +2022-05-22 08:49:12 STATE: test-node-gpu.js passed: details hand 0.51 0.73 point +2022-05-22 08:49:12 STATE: test-node-gpu.js passed: details hand arrays 21 5 7 +2022-05-22 08:49:12 STATE: test-node-gpu.js passed: details gesture length 6 +2022-05-22 08:49:12 STATE: test-node-gpu.js passed: details gesture first {"face":0,"gesture":"facing right"} +2022-05-22 08:49:12 STATE: test-node-gpu.js passed: details object length 1 +2022-05-22 08:49:12 STATE: test-node-gpu.js passed: details object 0.72 person +2022-05-22 08:49:12 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996928} +2022-05-22 08:49:12 STATE: test-node-gpu.js event: image +2022-05-22 08:49:12 STATE: test-node-gpu.js event: detect +2022-05-22 08:49:12 STATE: test-node-gpu.js passed: tensor shape: [1,1200,1200,4] dtype: float32 +2022-05-22 08:49:12 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1371996928} +2022-05-22 08:49:12 STATE: test-node-gpu.js event: image +2022-05-22 08:49:12 STATE: test-node-gpu.js event: detect +2022-05-22 08:49:12 STATE: test-node-gpu.js passed: tensor shape: [1200,1200,4] dtype: float32 +2022-05-22 08:49:13 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-05-22 08:49:13 STATE: test-node-gpu.js event: image +2022-05-22 08:49:13 STATE: test-node-gpu.js event: detect +2022-05-22 08:49:13 STATE: test-node-gpu.js passed: tensor shape: [1,1200,1200,3] dtype: float32 +2022-05-22 08:49:13 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1004796928} +2022-05-22 08:49:13 STATE: test-node-gpu.js event: image +2022-05-22 08:49:13 STATE: test-node-gpu.js event: detect +2022-05-22 08:49:13 STATE: test-node-gpu.js passed: tensor shape: [1200,1200,3] dtype: float32 +2022-05-22 08:49:13 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871} +2022-05-22 08:49:13 STATE: test-node-gpu.js event: image +2022-05-22 08:49:13 STATE: test-node-gpu.js event: detect +2022-05-22 08:49:13 STATE: test-node-gpu.js passed: tensor shape: [1,1200,1200,4] dtype: int32 +2022-05-22 08:49:13 INFO:  test-node-gpu.js test default +2022-05-22 08:49:14 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-05-22 08:49:14 STATE: test-node-gpu.js event: image +2022-05-22 08:49:14 STATE: test-node-gpu.js event: detect +2022-05-22 08:49:14 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default +2022-05-22 08:49:14 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-05-22 08:49:14 DATA:  test-node-gpu.js result: performance: load: null total: 139 +2022-05-22 08:49:14 STATE: test-node-gpu.js passed: default result face match 1 female 0.97 +2022-05-22 08:49:14 INFO:  test-node-gpu.js test sync +2022-05-22 08:49:14 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-05-22 08:49:14 STATE: test-node-gpu.js event: image +2022-05-22 08:49:14 STATE: test-node-gpu.js event: detect +2022-05-22 08:49:14 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default +2022-05-22 08:49:14 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-05-22 08:49:14 DATA:  test-node-gpu.js result: performance: load: null total: 145 +2022-05-22 08:49:14 STATE: test-node-gpu.js passed: default sync 1 female 0.97 +2022-05-22 08:49:14 INFO:  test-node-gpu.js test: image process +2022-05-22 08:49:14 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-05-22 08:49:14 STATE: test-node-gpu.js passed: image input null [1,256,256,3] +2022-05-22 08:49:14 INFO:  test-node-gpu.js test: image null +2022-05-22 08:49:14 STATE: test-node-gpu.js passed: invalid input could not convert input to tensor +2022-05-22 08:49:14 INFO:  test-node-gpu.js test face similarity +2022-05-22 08:49:14 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-05-22 08:49:14 STATE: test-node-gpu.js event: image +2022-05-22 08:49:14 STATE: test-node-gpu.js event: detect +2022-05-22 08:49:14 STATE: test-node-gpu.js passed: detect: samples/in/ai-face.jpg default +2022-05-22 08:49:14 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":3} +2022-05-22 08:49:14 DATA:  test-node-gpu.js result: performance: load: null total: 134 +2022-05-22 08:49:14 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-05-22 08:49:14 STATE: test-node-gpu.js event: image +2022-05-22 08:49:15 STATE: test-node-gpu.js event: detect +2022-05-22 08:49:15 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default +2022-05-22 08:49:15 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-05-22 08:49:15 DATA:  test-node-gpu.js result: performance: load: null total: 196 +2022-05-22 08:49:15 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} +2022-05-22 08:49:15 STATE: test-node-gpu.js event: image +2022-05-22 08:49:15 STATE: test-node-gpu.js event: detect +2022-05-22 08:49:15 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg default +2022-05-22 08:49:15 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":7} +2022-05-22 08:49:15 DATA:  test-node-gpu.js result: performance: load: null total: 173 +2022-05-22 08:49:15 STATE: test-node-gpu.js passed: face descriptor +2022-05-22 08:49:15 STATE: test-node-gpu.js passed: face similarity {"similarity":[1,0.447238756461232,0.556914029877052],"descriptors":[1024,1024,1024]} +2022-05-22 08:49:15 INFO:  test-node-gpu.js test face matching +2022-05-22 08:49:15 STATE: test-node-gpu.js passed: face database 40 +2022-05-22 08:49:15 STATE: test-node-gpu.js passed: face match {"first":{"index":4,"similarity":0.7828184453007331}} {"second":{"index":4,"similarity":0.5001334216773398}} {"third":{"index":4,"similarity":0.5403054967489764}} +2022-05-22 08:49:15 INFO:  test-node-gpu.js test object +2022-05-22 08:49:15 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-05-22 08:49:15 STATE: test-node-gpu.js event: image +2022-05-22 08:49:15 STATE: test-node-gpu.js event: detect +2022-05-22 08:49:15 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default +2022-05-22 08:49:15 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-05-22 08:49:15 DATA:  test-node-gpu.js result: performance: load: null total: 188 +2022-05-22 08:49:15 STATE: test-node-gpu.js passed: object result match +2022-05-22 08:49:15 INFO:  test-node-gpu.js test sensitive +2022-05-22 08:49:16 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-05-22 08:49:16 STATE: test-node-gpu.js event: image +2022-05-22 08:49:16 STATE: test-node-gpu.js event: detect +2022-05-22 08:49:16 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default +2022-05-22 08:49:16 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-05-22 08:49:16 DATA:  test-node-gpu.js result: performance: load: null total: 190 +2022-05-22 08:49:16 STATE: test-node-gpu.js passed: sensitive result match +2022-05-22 08:49:16 STATE: test-node-gpu.js passed: sensitive face result match +2022-05-22 08:49:16 STATE: test-node-gpu.js passed: sensitive face emotion result [{"score":0.59,"emotion":"angry"},{"score":0.29,"emotion":"fear"}] +2022-05-22 08:49:16 STATE: test-node-gpu.js passed: sensitive body result match +2022-05-22 08:49:16 STATE: test-node-gpu.js passed: sensitive hand result match +2022-05-22 08:49:16 INFO:  test-node-gpu.js test detectors +2022-05-22 08:49:16 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-05-22 08:49:16 STATE: test-node-gpu.js event: image +2022-05-22 08:49:16 STATE: test-node-gpu.js event: detect +2022-05-22 08:49:16 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default +2022-05-22 08:49:16 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-05-22 08:49:16 DATA:  test-node-gpu.js result: performance: load: null total: 69 +2022-05-22 08:49:16 STATE: test-node-gpu.js passed: detector result face match +2022-05-22 08:49:16 STATE: test-node-gpu.js passed: detector result hand match +2022-05-22 08:49:16 INFO:  test-node-gpu.js test: multi-instance +2022-05-22 08:49:16 STATE: test-node-gpu.js event: image +2022-05-22 08:49:16 STATE: test-node-gpu.js event: detect +2022-05-22 08:49:16 STATE: test-node-gpu.js passed: detect: random default +2022-05-22 08:49:16 DATA:  test-node-gpu.js result: face: 0 body: 1 hand: 0 gesture: 0 object: 0 person: 0 {} {} {"score":0.06,"keypoints":15} +2022-05-22 08:49:16 DATA:  test-node-gpu.js result: performance: load: null total: 67 +2022-05-22 08:49:16 INFO:  test-node-gpu.js test: first instance +2022-05-22 08:49:16 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} +2022-05-22 08:49:16 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg default +2022-05-22 08:49:16 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} +2022-05-22 08:49:16 DATA:  test-node-gpu.js result: performance: load: null total: 69 +2022-05-22 08:49:16 INFO:  test-node-gpu.js test: second instance +2022-05-22 08:49:16 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} +2022-05-22 08:49:16 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg default +2022-05-22 08:49:16 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} +2022-05-22 08:49:16 DATA:  test-node-gpu.js result: performance: load: null total: 69 +2022-05-22 08:49:16 INFO:  test-node-gpu.js test: concurrent +2022-05-22 08:49:17 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-05-22 08:49:17 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-05-22 08:49:17 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-05-22 08:49:17 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-05-22 08:49:17 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} +2022-05-22 08:49:17 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} +2022-05-22 08:49:17 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-05-22 08:49:17 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-05-22 08:49:17 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} +2022-05-22 08:49:17 STATE: test-node-gpu.js event: image +2022-05-22 08:49:17 STATE: test-node-gpu.js event: image +2022-05-22 08:49:17 STATE: test-node-gpu.js event: image +2022-05-22 08:49:18 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg default +2022-05-22 08:49:18 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} +2022-05-22 08:49:18 DATA:  test-node-gpu.js result: performance: load: null total: 799 +2022-05-22 08:49:18 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg default +2022-05-22 08:49:18 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} +2022-05-22 08:49:18 DATA:  test-node-gpu.js result: performance: load: null total: 799 +2022-05-22 08:49:18 STATE: test-node-gpu.js passed: detect: samples/in/ai-face.jpg default +2022-05-22 08:49:18 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 2 object: 1 person: 1 {"score":0.91} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":17} +2022-05-22 08:49:18 DATA:  test-node-gpu.js result: performance: load: null total: 875 +2022-05-22 08:49:18 STATE: test-node-gpu.js passed: detect: samples/in/ai-face.jpg default +2022-05-22 08:49:18 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 2 object: 1 person: 1 {"score":0.91} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":17} +2022-05-22 08:49:18 DATA:  test-node-gpu.js result: performance: load: null total: 875 +2022-05-22 08:49:18 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default +2022-05-22 08:49:18 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-05-22 08:49:18 DATA:  test-node-gpu.js result: performance: load: null total: 875 +2022-05-22 08:49:18 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default +2022-05-22 08:49:18 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-05-22 08:49:18 DATA:  test-node-gpu.js result: performance: load: null total: 875 +2022-05-22 08:49:18 STATE: test-node-gpu.js event: detect +2022-05-22 08:49:18 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg default +2022-05-22 08:49:18 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} +2022-05-22 08:49:18 DATA:  test-node-gpu.js result: performance: load: null total: 637 +2022-05-22 08:49:18 STATE: test-node-gpu.js event: detect +2022-05-22 08:49:18 STATE: test-node-gpu.js event: detect +2022-05-22 08:49:18 STATE: test-node-gpu.js passed: detect: samples/in/ai-face.jpg default +2022-05-22 08:49:18 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 2 object: 1 person: 1 {"score":0.91} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":17} +2022-05-22 08:49:18 DATA:  test-node-gpu.js result: performance: load: null total: 638 +2022-05-22 08:49:18 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default +2022-05-22 08:49:18 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-05-22 08:49:18 DATA:  test-node-gpu.js result: performance: load: null total: 638 +2022-05-22 08:49:18 INFO:  test-node-gpu.js test: monkey-patch +2022-05-22 08:49:18 STATE: test-node-gpu.js event: image +2022-05-22 08:49:18 STATE: test-node-gpu.js event: detect +2022-05-22 08:49:18 STATE: test-node-gpu.js passed: monkey patch +2022-05-22 08:49:18 STATE: test-node-gpu.js passed: segmentation [65536] +2022-05-22 08:49:18 STATE: test-node-gpu.js passeed: equal usage +2022-05-22 08:49:18 INFO:  test-node-gpu.js test: input compare +2022-05-22 08:49:18 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-05-22 08:49:18 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-05-22 08:49:18 STATE: test-node-gpu.js passed: image compare 0 23.275441687091504 +2022-05-22 08:49:18 INFO:  test-node-gpu.js events: {"image":21,"detect":21,"warmup":2} +2022-05-22 08:49:18 INFO:  test-node-gpu.js tensors 1925 +2022-05-22 08:49:18 INFO:  test-node-gpu.js test complete: 11952 ms +2022-05-22 08:49:19 INFO:  +2022-05-22 08:49:19 INFO:  test-node-wasm.js start +2022-05-22 08:49:19 STATE: test-node-wasm.js passed: model server: https://vladmandic.github.io/human/models/ +2022-05-22 08:49:19 INFO:  test-node-wasm.js test: configuration validation +2022-05-22 08:49:19 STATE: test-node-wasm.js passed: configuration default validation [] +2022-05-22 08:49:19 STATE: test-node-wasm.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}] +2022-05-22 08:49:19 INFO:  test-node-wasm.js test: model load +2022-05-22 08:49:21 STATE: test-node-wasm.js passed: models loaded 22 12 [{"name":"ssrnetage","loaded":false},{"name":"gear","loaded":false},{"name":"blazeposedetect","loaded":false},{"name":"blazepose","loaded":false},{"name":"centernet","loaded":true},{"name":"efficientpose","loaded":false},{"name":"mobilefacenet","loaded":false},{"name":"emotion","loaded":true},{"name":"facedetect","loaded":true},{"name":"faceiris","loaded":true},{"name":"facemesh","loaded":true},{"name":"faceres","loaded":true},{"name":"ssrnetgender","loaded":false},{"name":"handpose","loaded":false},{"name":"handskeleton","loaded":true},{"name":"handtrack","loaded":true},{"name":"liveness","loaded":true},{"name":"movenet","loaded":true},{"name":"nanodet","loaded":false},{"name":"posenet","loaded":false},{"name":"segmentation","loaded":true},{"name":"antispoof","loaded":true}] +2022-05-22 08:49:21 INFO:  test-node-wasm.js test: warmup +2022-05-22 08:49:21 STATE: test-node-wasm.js passed: create human +2022-05-22 08:49:21 INFO:  test-node-wasm.js human version: 2.7.2 +2022-05-22 08:49:21 INFO:  test-node-wasm.js platform: linux x64 agent: NodeJS v16.15.0 +2022-05-22 08:49:21 INFO:  test-node-wasm.js tfjs version: 3.18.0 +2022-05-22 08:49:21 STATE: test-node-wasm.js passed: set backend: wasm +2022-05-22 08:49:21 STATE: test-node-wasm.js tensors 1919 +2022-05-22 08:49:21 STATE: test-node-wasm.js passed: load models +2022-05-22 08:49:21 STATE: test-node-wasm.js result: defined models: 22 loaded models: 12 +2022-05-22 08:49:21 STATE: test-node-wasm.js passed: warmup: none default +2022-05-22 08:49:21 DATA:  test-node-wasm.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {} +2022-05-22 08:49:21 DATA:  test-node-wasm.js result: performance: load: null total: null +2022-05-22 08:49:21 STATE: test-node-wasm.js passed: warmup none result match +2022-05-22 08:49:21 STATE: test-node-wasm.js event: image +2022-05-22 08:49:21 STATE: test-node-wasm.js event: detect +2022-05-22 08:49:21 STATE: test-node-wasm.js event: warmup +2022-05-22 08:49:21 STATE: test-node-wasm.js passed: warmup: face default +2022-05-22 08:49:21 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":3} +2022-05-22 08:49:21 DATA:  test-node-wasm.js result: performance: load: null total: 481 +2022-05-22 08:49:21 STATE: test-node-wasm.js passed: warmup face result match +2022-05-22 08:49:21 STATE: test-node-wasm.js event: image +2022-05-22 08:49:22 STATE: test-node-wasm.js event: detect +2022-05-22 08:49:22 STATE: test-node-wasm.js event: warmup +2022-05-22 08:49:22 STATE: test-node-wasm.js passed: warmup: body default +2022-05-22 08:49:22 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-05-22 08:49:22 DATA:  test-node-wasm.js result: performance: load: null total: 402 +2022-05-22 08:49:22 STATE: test-node-wasm.js passed: warmup body result match +2022-05-22 08:49:22 STATE: test-node-wasm.js details: {"face":{"boxScore":0.93,"faceScore":1,"age":23.7,"gender":"female","genderScore":0.97},"emotion":[{"score":0.59,"emotion":"angry"},{"score":0.29,"emotion":"fear"}],"body":{"score":0.92,"keypoints":17},"hand":{"boxScore":0.51,"fingerScore":0.73,"keypoints":21},"gestures":[{"face":0,"gesture":"facing right"},{"hand":0,"gesture":"pinky forward"},{"hand":0,"gesture":"palm up"},{"hand":0,"gesture":"open palm"},{"iris":0,"gesture":"looking left"},{"iris":0,"gesture":"looking up"}]} +2022-05-22 08:49:22 INFO:  test-node-wasm.js test: details verification +2022-05-22 08:49:22 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-05-22 08:49:22 STATE: test-node-wasm.js event: image +2022-05-22 08:49:22 STATE: test-node-wasm.js event: detect +2022-05-22 08:49:22 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default +2022-05-22 08:49:22 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-05-22 08:49:22 DATA:  test-node-wasm.js result: performance: load: null total: 364 +2022-05-22 08:49:22 STATE: test-node-wasm.js passed: details face length 1 +2022-05-22 08:49:22 STATE: test-node-wasm.js passed: details face score 1 0.93 1 +2022-05-22 08:49:22 STATE: test-node-wasm.js passed: details face age/gender 23.7 female 0.97 73.26 +2022-05-22 08:49:22 STATE: test-node-wasm.js passed: details face arrays 4 478 1024 +2022-05-22 08:49:22 STATE: test-node-wasm.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"} +2022-05-22 08:49:22 STATE: test-node-wasm.js passed: details face anti-spoofing 0.79 +2022-05-22 08:49:22 STATE: test-node-wasm.js passed: details face liveness 0.83 +2022-05-22 08:49:22 STATE: test-node-wasm.js passed: details body length 1 +2022-05-22 08:49:22 STATE: test-node-wasm.js passed: details body 0.92 17 6 +2022-05-22 08:49:22 STATE: test-node-wasm.js passed: details hand length 1 +2022-05-22 08:49:22 STATE: test-node-wasm.js passed: details hand 0.51 0.73 point +2022-05-22 08:49:22 STATE: test-node-wasm.js passed: details hand arrays 21 5 7 +2022-05-22 08:49:22 STATE: test-node-wasm.js passed: details gesture length 6 +2022-05-22 08:49:22 STATE: test-node-wasm.js passed: details gesture first {"face":0,"gesture":"facing right"} +2022-05-22 08:49:22 STATE: test-node-wasm.js passed: details object length 1 +2022-05-22 08:49:22 STATE: test-node-wasm.js passed: details object 0.72 person +2022-05-22 08:49:23 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1413675264} +2022-05-22 08:49:23 STATE: test-node-wasm.js event: image +2022-05-22 08:49:23 STATE: test-node-wasm.js event: detect +2022-05-22 08:49:23 STATE: test-node-wasm.js passed: tensor shape: [1,1200,1200,4] dtype: float32 +2022-05-22 08:49:23 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1413675264} +2022-05-22 08:49:23 STATE: test-node-wasm.js event: image +2022-05-22 08:49:24 STATE: test-node-wasm.js event: detect +2022-05-22 08:49:24 STATE: test-node-wasm.js passed: tensor shape: [1200,1200,4] dtype: float32 +2022-05-22 08:49:24 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-05-22 08:49:24 STATE: test-node-wasm.js event: image +2022-05-22 08:49:24 STATE: test-node-wasm.js event: detect +2022-05-22 08:49:24 STATE: test-node-wasm.js passed: tensor shape: [1,1200,1200,3] dtype: float32 +2022-05-22 08:49:24 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1038921856} +2022-05-22 08:49:24 STATE: test-node-wasm.js event: image +2022-05-22 08:49:25 STATE: test-node-wasm.js event: detect +2022-05-22 08:49:25 STATE: test-node-wasm.js passed: tensor shape: [1200,1200,3] dtype: float32 +2022-05-22 08:49:25 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871} +2022-05-22 08:49:25 STATE: test-node-wasm.js event: image +2022-05-22 08:49:25 STATE: test-node-wasm.js event: detect +2022-05-22 08:49:25 STATE: test-node-wasm.js passed: tensor shape: [1,1200,1200,4] dtype: int32 +2022-05-22 08:49:25 INFO:  test-node-wasm.js test default +2022-05-22 08:49:25 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-05-22 08:49:25 STATE: test-node-wasm.js event: image +2022-05-22 08:49:26 STATE: test-node-wasm.js event: detect +2022-05-22 08:49:26 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default +2022-05-22 08:49:26 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-05-22 08:49:26 DATA:  test-node-wasm.js result: performance: load: null total: 317 +2022-05-22 08:49:26 STATE: test-node-wasm.js passed: default result face match 1 female 0.97 +2022-05-22 08:49:26 INFO:  test-node-wasm.js test sync +2022-05-22 08:49:26 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-05-22 08:49:26 STATE: test-node-wasm.js event: image +2022-05-22 08:49:26 STATE: test-node-wasm.js event: detect +2022-05-22 08:49:26 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default +2022-05-22 08:49:26 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-05-22 08:49:26 DATA:  test-node-wasm.js result: performance: load: null total: 318 +2022-05-22 08:49:26 STATE: test-node-wasm.js passed: default sync 1 female 0.97 +2022-05-22 08:49:26 INFO:  test-node-wasm.js test: image process +2022-05-22 08:49:26 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-05-22 08:49:26 STATE: test-node-wasm.js passed: image input null [1,256,256,3] +2022-05-22 08:49:26 INFO:  test-node-wasm.js test: image null +2022-05-22 08:49:26 STATE: test-node-wasm.js passed: invalid input could not convert input to tensor +2022-05-22 08:49:26 INFO:  test-node-wasm.js test face similarity +2022-05-22 08:49:26 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-05-22 08:49:26 STATE: test-node-wasm.js event: image +2022-05-22 08:49:27 STATE: test-node-wasm.js event: detect +2022-05-22 08:49:27 STATE: test-node-wasm.js passed: detect: samples/in/ai-face.jpg default +2022-05-22 08:49:27 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":3} +2022-05-22 08:49:27 DATA:  test-node-wasm.js result: performance: load: null total: 300 +2022-05-22 08:49:27 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-05-22 08:49:27 STATE: test-node-wasm.js event: image +2022-05-22 08:49:27 STATE: test-node-wasm.js event: detect +2022-05-22 08:49:27 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default +2022-05-22 08:49:27 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-05-22 08:49:27 DATA:  test-node-wasm.js result: performance: load: null total: 318 +2022-05-22 08:49:27 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} +2022-05-22 08:49:27 STATE: test-node-wasm.js event: image +2022-05-22 08:49:27 STATE: test-node-wasm.js event: detect +2022-05-22 08:49:27 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg default +2022-05-22 08:49:27 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":7} +2022-05-22 08:49:27 DATA:  test-node-wasm.js result: performance: load: null total: 295 +2022-05-22 08:49:27 STATE: test-node-wasm.js passed: face descriptor +2022-05-22 08:49:27 STATE: test-node-wasm.js passed: face similarity {"similarity":[1,0.5266119940661309,0.4858842904087851],"descriptors":[1024,1024,1024]} +2022-05-22 08:49:27 INFO:  test-node-wasm.js test face matching +2022-05-22 08:49:27 STATE: test-node-wasm.js passed: face database 40 +2022-05-22 08:49:27 STATE: test-node-wasm.js passed: face match {"first":{"index":4,"similarity":0.7827852754786533}} {"second":{"index":4,"similarity":0.5660821189104794}} {"third":{"index":4,"similarity":0.45074189882665594}} +2022-05-22 08:49:27 INFO:  test-node-wasm.js test object +2022-05-22 08:49:28 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-05-22 08:49:28 STATE: test-node-wasm.js event: image +2022-05-22 08:49:28 STATE: test-node-wasm.js event: detect +2022-05-22 08:49:28 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default +2022-05-22 08:49:28 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-05-22 08:49:28 DATA:  test-node-wasm.js result: performance: load: null total: 321 +2022-05-22 08:49:28 STATE: test-node-wasm.js passed: object result match +2022-05-22 08:49:28 INFO:  test-node-wasm.js test sensitive +2022-05-22 08:49:28 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-05-22 08:49:28 STATE: test-node-wasm.js event: image +2022-05-22 08:49:29 STATE: test-node-wasm.js event: detect +2022-05-22 08:49:29 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default +2022-05-22 08:49:29 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-05-22 08:49:29 DATA:  test-node-wasm.js result: performance: load: null total: 352 +2022-05-22 08:49:29 STATE: test-node-wasm.js passed: sensitive result match +2022-05-22 08:49:29 STATE: test-node-wasm.js passed: sensitive face result match +2022-05-22 08:49:29 STATE: test-node-wasm.js passed: sensitive face emotion result [{"score":0.46,"emotion":"neutral"},{"score":0.24,"emotion":"fear"},{"score":0.17,"emotion":"sad"}] +2022-05-22 08:49:29 STATE: test-node-wasm.js passed: sensitive body result match +2022-05-22 08:49:29 STATE: test-node-wasm.js passed: sensitive hand result match +2022-05-22 08:49:29 INFO:  test-node-wasm.js test detectors +2022-05-22 08:49:29 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-05-22 08:49:29 STATE: test-node-wasm.js event: image +2022-05-22 08:49:29 STATE: test-node-wasm.js event: detect +2022-05-22 08:49:29 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default +2022-05-22 08:49:29 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-05-22 08:49:29 DATA:  test-node-wasm.js result: performance: load: null total: 227 +2022-05-22 08:49:29 STATE: test-node-wasm.js passed: detector result face match +2022-05-22 08:49:29 STATE: test-node-wasm.js passed: detector result hand match +2022-05-22 08:49:29 INFO:  test-node-wasm.js test: multi-instance +2022-05-22 08:49:29 STATE: test-node-wasm.js event: image +2022-05-22 08:49:29 STATE: test-node-wasm.js event: detect +2022-05-22 08:49:29 STATE: test-node-wasm.js passed: detect: random default +2022-05-22 08:49:29 DATA:  test-node-wasm.js result: face: 0 body: 1 hand: 0 gesture: 0 object: 0 person: 0 {} {} {"score":0.07,"keypoints":15} +2022-05-22 08:49:29 DATA:  test-node-wasm.js result: performance: load: null total: 206 +2022-05-22 08:49:29 INFO:  test-node-wasm.js test: first instance +2022-05-22 08:49:29 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} +2022-05-22 08:49:30 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg default +2022-05-22 08:49:30 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} +2022-05-22 08:49:30 DATA:  test-node-wasm.js result: performance: load: null total: 215 +2022-05-22 08:49:30 INFO:  test-node-wasm.js test: second instance +2022-05-22 08:49:30 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} +2022-05-22 08:49:30 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg default +2022-05-22 08:49:30 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} +2022-05-22 08:49:30 DATA:  test-node-wasm.js result: performance: load: null total: 219 +2022-05-22 08:49:30 INFO:  test-node-wasm.js test: concurrent +2022-05-22 08:49:30 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-05-22 08:49:30 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-05-22 08:49:30 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-05-22 08:49:30 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-05-22 08:49:30 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} +2022-05-22 08:49:31 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} +2022-05-22 08:49:31 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-05-22 08:49:31 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-05-22 08:49:31 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} +2022-05-22 08:49:31 STATE: test-node-wasm.js event: image +2022-05-22 08:49:31 STATE: test-node-wasm.js event: image +2022-05-22 08:49:31 STATE: test-node-wasm.js event: image +2022-05-22 08:49:32 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg default +2022-05-22 08:49:32 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} +2022-05-22 08:49:32 DATA:  test-node-wasm.js result: performance: load: null total: 1956 +2022-05-22 08:49:32 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg default +2022-05-22 08:49:32 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} +2022-05-22 08:49:32 DATA:  test-node-wasm.js result: performance: load: null total: 1956 +2022-05-22 08:49:33 STATE: test-node-wasm.js passed: detect: samples/in/ai-face.jpg default +2022-05-22 08:49:33 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 2 object: 1 person: 1 {"score":0.91} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":17} +2022-05-22 08:49:33 DATA:  test-node-wasm.js result: performance: load: null total: 2175 +2022-05-22 08:49:33 STATE: test-node-wasm.js passed: detect: samples/in/ai-face.jpg default +2022-05-22 08:49:33 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 2 object: 1 person: 1 {"score":0.91} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":17} +2022-05-22 08:49:33 DATA:  test-node-wasm.js result: performance: load: null total: 2175 +2022-05-22 08:49:33 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default +2022-05-22 08:49:33 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-05-22 08:49:33 DATA:  test-node-wasm.js result: performance: load: null total: 2175 +2022-05-22 08:49:33 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default +2022-05-22 08:49:33 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-05-22 08:49:33 DATA:  test-node-wasm.js result: performance: load: null total: 2175 +2022-05-22 08:49:33 STATE: test-node-wasm.js event: detect +2022-05-22 08:49:33 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg default +2022-05-22 08:49:33 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} +2022-05-22 08:49:33 DATA:  test-node-wasm.js result: performance: load: null total: 1874 +2022-05-22 08:49:33 STATE: test-node-wasm.js event: detect +2022-05-22 08:49:33 STATE: test-node-wasm.js event: detect +2022-05-22 08:49:33 STATE: test-node-wasm.js passed: detect: samples/in/ai-face.jpg default +2022-05-22 08:49:33 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 2 object: 1 person: 1 {"score":0.91} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":17} +2022-05-22 08:49:33 DATA:  test-node-wasm.js result: performance: load: null total: 1874 +2022-05-22 08:49:33 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default +2022-05-22 08:49:33 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-05-22 08:49:33 DATA:  test-node-wasm.js result: performance: load: null total: 1874 +2022-05-22 08:49:33 INFO:  test-node-wasm.js test: monkey-patch +2022-05-22 08:49:33 STATE: test-node-wasm.js event: image +2022-05-22 08:49:33 STATE: test-node-wasm.js event: detect +2022-05-22 08:49:33 STATE: test-node-wasm.js passed: monkey patch +2022-05-22 08:49:33 STATE: test-node-wasm.js passed: segmentation [65536] +2022-05-22 08:49:33 STATE: test-node-wasm.js passeed: equal usage +2022-05-22 08:49:33 INFO:  test-node-wasm.js test: input compare +2022-05-22 08:49:33 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-05-22 08:49:33 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-05-22 08:49:33 STATE: test-node-wasm.js passed: image compare 0 23.280073018790848 +2022-05-22 08:49:33 INFO:  test-node-wasm.js events: {"image":21,"detect":21,"warmup":2} +2022-05-22 08:49:33 INFO:  test-node-wasm.js tensors 1927 +2022-05-22 08:49:33 INFO:  test-node-wasm.js test complete: 13806 ms +2022-05-22 08:49:33 INFO:  all tests complete +2022-05-22 08:49:33 INFO:  failed: {"count":0,"messages":[]} +2022-05-22 08:49:33 INFO:  status: {"test":"test-node.js","passed":101,"failed":0} +2022-05-22 08:49:33 INFO:  status: {"test":"test-node-gpu.js","passed":101,"failed":0} +2022-05-22 08:49:33 INFO:  status: {"test":"test-node-wasm.js","passed":102,"failed":0}