From c08395433ead7fe793d8a3912b77f7da14ebef23 Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Wed, 13 Jul 2022 12:08:23 -0400 Subject: [PATCH] placeholder for face contours --- CHANGELOG.md | 1 + demo/index.js | 2 + src/draw/face.ts | 7 + src/draw/primitives.ts | 2 +- src/face/blazeface.ts | 4 +- src/face/facemesh.ts | 12 +- src/result.ts | 6 +- test/build.log | 48 +- test/test.log | 1368 ++++++++++++++++++++-------------------- types/human.d.ts | 2 + 10 files changed, 739 insertions(+), 713 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4504c2ca..f50c8739 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ ### **HEAD -> main** 2022/07/13 mandic00@live.com +- add webview support - fix(gear): ensure gear.modelpath is used for loadmodel() - npm default install should be prod only - fix npm v7 compatibility diff --git a/demo/index.js b/demo/index.js index 29cb4424..d62efd4d 100644 --- a/demo/index.js +++ b/demo/index.js @@ -56,10 +56,12 @@ let userConfig = { // body: { enabled: true, modelPath: 'movenet-multipose.json' }, segmentation: { enabled: false }, */ + /* face: { iris: { enabled: false }, emotion: { enabled: false } }, hand: { enabled: false }, body: { enabled: false }, gesture: { enabled: false }, + */ }; const drawOptions = { diff --git a/src/draw/face.ts b/src/draw/face.ts index e8181fbe..a7d554a4 100644 --- a/src/draw/face.ts +++ b/src/draw/face.ts @@ -120,6 +120,13 @@ function drawFacePolygons(f: FaceResult, ctx: CanvasRenderingContext2D | Offscre } drawIrisElipse(f, ctx); } + /* + if (opt.drawPolygons && f.contours.length > 1) { + ctx.lineWidth = 5; + lines(ctx, f.contours, opt); + } + ctx.lineWidth = 1; + */ } function drawFacePoints(f: FaceResult, ctx: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D) { diff --git a/src/draw/primitives.ts b/src/draw/primitives.ts index 7666646b..9d29c9ee 100644 --- a/src/draw/primitives.ts +++ b/src/draw/primitives.ts @@ -57,7 +57,7 @@ export function lines(ctx: CanvasRenderingContext2D | OffscreenCanvasRenderingCo ctx.beginPath(); ctx.moveTo(points[0][0], points[0][1]); for (const pt of points) { - ctx.strokeStyle = colorDepth(pt[2], localOptions); + ctx.strokeStyle = colorDepth(pt[2] || 0, localOptions); ctx.lineTo(Math.trunc(pt[0]), Math.trunc(pt[1])); } ctx.stroke(); diff --git a/src/face/blazeface.ts b/src/face/blazeface.ts index eb91f869..00f97d76 100644 --- a/src/face/blazeface.ts +++ b/src/face/blazeface.ts @@ -34,7 +34,7 @@ export async function load(config: Config): Promise { return model; } -function decodeBounds(boxOutputs: Tensor) { +function decodeBoxes(boxOutputs: Tensor) { const t: Record = {}; t.boxStarts = tf.slice(boxOutputs, [0, 1], [-1, 2]); t.centers = tf.add(t.boxStarts, anchors); @@ -71,7 +71,7 @@ export async function getBoxes(inputImage: Tensor, config: Config) { t.batch = tf.squeeze(res); } tf.dispose(res); - t.boxes = decodeBounds(t.batch); + t.boxes = decodeBoxes(t.batch); t.logits = tf.slice(t.batch, [0, 0], [-1, 1]); t.sigmoid = tf.sigmoid(t.logits); t.scores = tf.squeeze(t.sigmoid); diff --git a/src/face/facemesh.ts b/src/face/facemesh.ts index d64cd7d3..5a03c665 100644 --- a/src/face/facemesh.ts +++ b/src/face/facemesh.ts @@ -59,6 +59,8 @@ export async function predict(input: Tensor, config: Config): Promise, }; @@ -89,6 +91,7 @@ export async function predict(input: Tensor, config: Config): Promise t.shape[t.shape.length - 1] === 1) as Tensor; const faceConfidence = await confidenceT.data(); face.faceScore = Math.round(100 * faceConfidence[0]) / 100; + if (face.faceScore < (config.face.detector?.minConfidence || 1)) { // low confidence in detected mesh box.confidence = face.faceScore; // reset confidence of cached box if (config.face.mesh?.keepInvalid) { @@ -99,7 +102,7 @@ export async function predict(input: Tensor, config: Config): Promise [pt[0] / (input.shape[2] || 0), pt[1] / (input.shape[1] || 0), (pt[2] || 0) / inputSize]); + face.meshRaw = face.mesh.map((pt) => [pt[0] / (input.shape[2] || 1), pt[1] / (input.shape[1] || 1), (pt[2] || 0) / inputSize]); for (const key of Object.keys(coords.blazeFaceLandmarks)) { face.annotations[key] = [face.mesh[coords.blazeFaceLandmarks[key] as number]]; // add annotations } @@ -121,6 +124,13 @@ export async function predict(input: Tensor, config: Config): Promise t.shape[t.shape.length - 1] === 266) as Tensor; + const contoursData = contoursT && await contoursT.data(); // 133 x 2d points + face.contoursRaw = []; + for (let j = 0; j < contoursData.length / 2; j++) face.contoursRaw.push([contoursData[2 * j + 0] / inputSize, contoursData[2 * j + 1] / inputSize]); + face.contours = face.contoursRaw.map((c) => [Math.trunc((input.shape[2] || 1) * c[0]), Math.trunc((input.shape[1] || 1) * c[1])]); + */ newCache.push(calculatedBox); } tf.dispose(results); diff --git a/src/result.ts b/src/result.ts index e7f749fd..4f7f6e75 100644 --- a/src/result.ts +++ b/src/result.ts @@ -40,7 +40,11 @@ export interface FaceResult { /** detected face mesh */ mesh: Array /** detected face mesh normalized to 0..1 */ - meshRaw: Array + meshRaw: Array, + /** face contours as array of 2d points normalized to 0..1 */ + // contoursRaw: Array<[number, number]>, + /** face contours as array of 2d points */ + // contours: Array<[number, number]>, /** mesh keypoints combined into annotated results */ annotations: Record, /** detected age */ diff --git a/test/build.log b/test/build.log index 4a553957..0b6260ed 100644 --- a/test/build.log +++ b/test/build.log @@ -1,24 +1,24 @@ -2022-07-13 09:15:44 INFO:  Application: {"name":"@vladmandic/human","version":"2.8.1"} -2022-07-13 09:15:44 INFO:  Environment: {"profile":"production","config":".build.json","package":"package.json","tsconfig":true,"eslintrc":true,"git":true} -2022-07-13 09:15:44 INFO:  Toolchain: {"build":"0.7.3","esbuild":"0.14.49","typescript":"4.7.4","typedoc":"0.22.18","eslint":"8.19.0"} -2022-07-13 09:15:44 INFO:  Build: {"profile":"production","steps":["clean","compile","typings","typedoc","lint","changelog"]} -2022-07-13 09:15:44 STATE: Clean: {"locations":["dist/*","types/lib/*","typedoc/*"]} -2022-07-13 09:15:44 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":608} -2022-07-13 09:15:44 STATE: Compile: {"name":"human/nodejs/cpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node.js","files":73,"inputBytes":644542,"outputBytes":301481} -2022-07-13 09:15:44 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":612} -2022-07-13 09:15:45 STATE: Compile: {"name":"human/nodejs/gpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-gpu.js","files":73,"inputBytes":644546,"outputBytes":301485} -2022-07-13 09:15:45 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":664} -2022-07-13 09:15:45 STATE: Compile: {"name":"human/nodejs/wasm","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-wasm.js","files":73,"inputBytes":644598,"outputBytes":301535} -2022-07-13 09:15:45 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-07-13 09:15:45 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-07-13 09:15:45 STATE: Compile: {"name":"human/browser/esm/nobundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm-nobundle.js","files":73,"inputBytes":644517,"outputBytes":300369} -2022-07-13 09:15:45 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":1353528} -2022-07-13 09:15:45 STATE: Compile: {"name":"human/browser/iife/bundle","format":"iife","platform":"browser","input":"src/human.ts","output":"dist/human.js","files":73,"inputBytes":1997462,"outputBytes":1652983} -2022-07-13 09:15:45 STATE: Compile: {"name":"human/browser/esm/bundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm.js","files":73,"inputBytes":1997462,"outputBytes":2140437} -2022-07-13 09:15:51 STATE: Typings: {"input":"src/human.ts","output":"types/lib","files":116} -2022-07-13 09:15:54 STATE: TypeDoc: {"input":"src/human.ts","output":"typedoc","objects":74,"generated":true} -2022-07-13 09:15:54 STATE: Compile: {"name":"demo/typescript","format":"esm","platform":"browser","input":"demo/typescript/index.ts","output":"demo/typescript/index.js","files":1,"inputBytes":6324,"outputBytes":3057} -2022-07-13 09:15:54 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-07-13 09:16:02 STATE: Lint: {"locations":["*.json","src/**/*.ts","test/**/*.js","demo/**/*.js"],"files":106,"errors":0,"warnings":0} -2022-07-13 09:16:03 STATE: ChangeLog: {"repository":"https://github.com/vladmandic/human","branch":"main","output":"CHANGELOG.md"} -2022-07-13 09:16:03 INFO:  Done... +2022-07-13 12:06:43 INFO:  Application: {"name":"@vladmandic/human","version":"2.8.1"} +2022-07-13 12:06:43 INFO:  Environment: {"profile":"production","config":".build.json","package":"package.json","tsconfig":true,"eslintrc":true,"git":true} +2022-07-13 12:06:43 INFO:  Toolchain: {"build":"0.7.3","esbuild":"0.14.49","typescript":"4.7.4","typedoc":"0.22.18","eslint":"8.19.0"} +2022-07-13 12:06:43 INFO:  Build: {"profile":"production","steps":["clean","compile","typings","typedoc","lint","changelog"]} +2022-07-13 12:06:43 STATE: Clean: {"locations":["dist/*","types/lib/*","typedoc/*"]} +2022-07-13 12:06:43 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":608} +2022-07-13 12:06:43 STATE: Compile: {"name":"human/nodejs/cpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node.js","files":73,"inputBytes":645458,"outputBytes":301484} +2022-07-13 12:06:43 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":612} +2022-07-13 12:06:43 STATE: Compile: {"name":"human/nodejs/gpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-gpu.js","files":73,"inputBytes":645462,"outputBytes":301488} +2022-07-13 12:06:43 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":664} +2022-07-13 12:06:43 STATE: Compile: {"name":"human/nodejs/wasm","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-wasm.js","files":73,"inputBytes":645514,"outputBytes":301538} +2022-07-13 12:06:43 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-07-13 12:06:44 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-07-13 12:06:44 STATE: Compile: {"name":"human/browser/esm/nobundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm-nobundle.js","files":73,"inputBytes":645433,"outputBytes":300372} +2022-07-13 12:06:44 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":1364648} +2022-07-13 12:06:44 STATE: Compile: {"name":"human/browser/iife/bundle","format":"iife","platform":"browser","input":"src/human.ts","output":"dist/human.js","files":73,"inputBytes":2009498,"outputBytes":1664353} +2022-07-13 12:06:44 STATE: Compile: {"name":"human/browser/esm/bundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm.js","files":73,"inputBytes":2009498,"outputBytes":2154326} +2022-07-13 12:06:50 STATE: Typings: {"input":"src/human.ts","output":"types/lib","files":116} +2022-07-13 12:06:52 STATE: TypeDoc: {"input":"src/human.ts","output":"typedoc","objects":74,"generated":true} +2022-07-13 12:06:52 STATE: Compile: {"name":"demo/typescript","format":"esm","platform":"browser","input":"demo/typescript/index.ts","output":"demo/typescript/index.js","files":1,"inputBytes":6324,"outputBytes":3057} +2022-07-13 12:06:52 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-07-13 12:07:01 STATE: Lint: {"locations":["*.json","src/**/*.ts","test/**/*.js","demo/**/*.js"],"files":106,"errors":0,"warnings":0} +2022-07-13 12:07:02 STATE: ChangeLog: {"repository":"https://github.com/vladmandic/human","branch":"main","output":"CHANGELOG.md"} +2022-07-13 12:07:02 INFO:  Done... diff --git a/test/test.log b/test/test.log index f4d5b8a9..0ca8265a 100644 --- a/test/test.log +++ b/test/test.log @@ -1,684 +1,684 @@ -2022-07-13 08:49:20 INFO:  @vladmandic/human version 2.8.1 -2022-07-13 08:49:20 INFO:  User: vlado Platform: linux Arch: x64 Node: v16.15.0 -2022-07-13 08:49:20 INFO:  tests: ["test-node.js","test-node-gpu.js","test-node-wasm.js"] -2022-07-13 08:49:20 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-07-13 08:49:20 INFO:  -2022-07-13 08:49:20 INFO:  test-node.js start -2022-07-13 08:49:20 INFO:  test-node.js test: configuration validation -2022-07-13 08:49:20 STATE: test-node.js passed: configuration default validation [] -2022-07-13 08:49:20 STATE: test-node.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}] -2022-07-13 08:49:20 INFO:  test-node.js test: model load -2022-07-13 08:49:20 STATE: test-node.js passed: models loaded 22 12 [{"name":"ssrnetage","loaded":false,"url":null},{"name":"gear","loaded":false,"url":null},{"name":"blazeposedetect","loaded":false,"url":null},{"name":"blazepose","loaded":false,"url":null},{"name":"centernet","loaded":true,"url":"file://models/mb3-centernet.json"},{"name":"efficientpose","loaded":false,"url":null},{"name":"mobilefacenet","loaded":false,"url":null},{"name":"emotion","loaded":true,"url":"file://models/emotion.json"},{"name":"facedetect","loaded":true,"url":"file://models/blazeface.json"},{"name":"faceiris","loaded":true,"url":"file://models/iris.json"},{"name":"facemesh","loaded":true,"url":"file://models/facemesh.json"},{"name":"faceres","loaded":true,"url":"file://models/faceres.json"},{"name":"ssrnetgender","loaded":false,"url":null},{"name":"handpose","loaded":false,"url":null},{"name":"handskeleton","loaded":true,"url":"file://models/handlandmark-full.json"},{"name":"handtrack","loaded":true,"url":"file://models/handtrack.json"},{"name":"liveness","loaded":true,"url":"file://models/liveness.json"},{"name":"movenet","loaded":true,"url":"file://models/movenet-lightning.json"},{"name":"nanodet","loaded":false,"url":null},{"name":"posenet","loaded":false,"url":null},{"name":"segmentation","loaded":true,"url":"file://models/selfie.json"},{"name":"antispoof","loaded":true,"url":"file://models/antispoof.json"}] -2022-07-13 08:49:20 INFO:  test-node.js test: warmup -2022-07-13 08:49:20 STATE: test-node.js passed: create human -2022-07-13 08:49:20 INFO:  test-node.js human version: 2.8.1 -2022-07-13 08:49:20 INFO:  test-node.js platform: linux x64 agent: NodeJS v16.15.0 -2022-07-13 08:49:20 INFO:  test-node.js tfjs version: 3.18.0 -2022-07-13 08:49:20 INFO:  test-node.js tensorflow binding version: 2.7.0-dev20211101 -2022-07-13 08:49:20 STATE: test-node.js passed: set backend: tensorflow -2022-07-13 08:49:20 STATE: test-node.js tensors 1921 -2022-07-13 08:49:20 STATE: test-node.js passed: load models -2022-07-13 08:49:20 STATE: test-node.js result: defined models: 22 loaded models: 12 -2022-07-13 08:49:20 STATE: test-node.js passed: warmup: none default -2022-07-13 08:49:20 DATA:  test-node.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {} -2022-07-13 08:49:20 DATA:  test-node.js result: performance: load: null total: null -2022-07-13 08:49:20 STATE: test-node.js passed: warmup none result match -2022-07-13 08:49:20 STATE: test-node.js event: image -2022-07-13 08:49:21 STATE: test-node.js event: detect -2022-07-13 08:49:21 STATE: test-node.js event: warmup -2022-07-13 08:49:21 STATE: test-node.js passed: warmup: face default -2022-07-13 08:49:21 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-07-13 08:49:21 DATA:  test-node.js result: performance: load: null total: 368 -2022-07-13 08:49:21 STATE: test-node.js passed: warmup face result match -2022-07-13 08:49:21 STATE: test-node.js event: image -2022-07-13 08:49:21 STATE: test-node.js event: detect -2022-07-13 08:49:21 STATE: test-node.js event: warmup -2022-07-13 08:49:21 STATE: test-node.js passed: warmup: body default -2022-07-13 08:49:21 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-13 08:49:21 DATA:  test-node.js result: performance: load: null total: 272 -2022-07-13 08:49:21 STATE: test-node.js passed: warmup body result match -2022-07-13 08:49:21 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"},{"face":0,"gesture":"mouth 10% open"},{"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-07-13 08:49:21 INFO:  test-node.js test: details verification -2022-07-13 08:49:21 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-07-13 08:49:21 STATE: test-node.js event: image -2022-07-13 08:49:22 STATE: test-node.js event: detect -2022-07-13 08:49:22 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default -2022-07-13 08:49:22 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-13 08:49:22 DATA:  test-node.js result: performance: load: null total: 263 -2022-07-13 08:49:22 STATE: test-node.js passed: details face length 1 -2022-07-13 08:49:22 STATE: test-node.js passed: details face score 1 0.93 1 -2022-07-13 08:49:22 STATE: test-node.js passed: details face age/gender 23.7 female 0.97 85.47 -2022-07-13 08:49:22 STATE: test-node.js passed: details face arrays 4 478 1024 -2022-07-13 08:49:22 STATE: test-node.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"} -2022-07-13 08:49:22 STATE: test-node.js passed: details face anti-spoofing 0.79 -2022-07-13 08:49:22 STATE: test-node.js passed: details face liveness 0.83 -2022-07-13 08:49:22 STATE: test-node.js passed: details body length 1 -2022-07-13 08:49:22 STATE: test-node.js passed: details body 0.92 17 6 -2022-07-13 08:49:22 STATE: test-node.js passed: details hand length 1 -2022-07-13 08:49:22 STATE: test-node.js passed: details hand 0.51 0.73 point -2022-07-13 08:49:22 STATE: test-node.js passed: details hand arrays 21 5 7 -2022-07-13 08:49:22 STATE: test-node.js passed: details gesture length 7 -2022-07-13 08:49:22 STATE: test-node.js passed: details gesture first {"face":0,"gesture":"facing right"} -2022-07-13 08:49:22 STATE: test-node.js passed: details object length 1 -2022-07-13 08:49:22 STATE: test-node.js passed: details object 0.72 person -2022-07-13 08:49:22 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996928} -2022-07-13 08:49:22 STATE: test-node.js event: image -2022-07-13 08:49:22 STATE: test-node.js event: detect -2022-07-13 08:49:22 STATE: test-node.js passed: tensor shape: [1,1200,1200,4] dtype: float32 -2022-07-13 08:49:22 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1371996928} -2022-07-13 08:49:22 STATE: test-node.js event: image -2022-07-13 08:49:23 STATE: test-node.js event: detect -2022-07-13 08:49:23 STATE: test-node.js passed: tensor shape: [1200,1200,4] dtype: float32 -2022-07-13 08:49:23 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-07-13 08:49:23 STATE: test-node.js event: image -2022-07-13 08:49:23 STATE: test-node.js event: detect -2022-07-13 08:49:23 STATE: test-node.js passed: tensor shape: [1,1200,1200,3] dtype: float32 -2022-07-13 08:49:23 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1004796864} -2022-07-13 08:49:23 STATE: test-node.js event: image -2022-07-13 08:49:23 STATE: test-node.js event: detect -2022-07-13 08:49:23 STATE: test-node.js passed: tensor shape: [1200,1200,3] dtype: float32 -2022-07-13 08:49:24 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871} -2022-07-13 08:49:24 STATE: test-node.js event: image -2022-07-13 08:49:24 STATE: test-node.js event: detect -2022-07-13 08:49:24 STATE: test-node.js passed: tensor shape: [1,1200,1200,4] dtype: int32 -2022-07-13 08:49:24 INFO:  test-node.js test default -2022-07-13 08:49:24 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-07-13 08:49:24 STATE: test-node.js event: image -2022-07-13 08:49:24 STATE: test-node.js event: detect -2022-07-13 08:49:24 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default -2022-07-13 08:49:24 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-13 08:49:24 DATA:  test-node.js result: performance: load: null total: 244 -2022-07-13 08:49:24 STATE: test-node.js passed: default result face match 1 female 0.97 -2022-07-13 08:49:24 INFO:  test-node.js test sync -2022-07-13 08:49:24 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-07-13 08:49:24 STATE: test-node.js event: image -2022-07-13 08:49:25 STATE: test-node.js event: detect -2022-07-13 08:49:25 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default -2022-07-13 08:49:25 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-13 08:49:25 DATA:  test-node.js result: performance: load: null total: 235 -2022-07-13 08:49:25 STATE: test-node.js passed: default sync 1 female 0.97 -2022-07-13 08:49:25 INFO:  test-node.js test: image process -2022-07-13 08:49:25 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-07-13 08:49:25 STATE: test-node.js passed: image input null [1,256,256,3] -2022-07-13 08:49:25 INFO:  test-node.js test: image null -2022-07-13 08:49:25 STATE: test-node.js passed: invalid input could not convert input to tensor -2022-07-13 08:49:25 INFO:  test-node.js test face similarity -2022-07-13 08:49:25 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-07-13 08:49:25 STATE: test-node.js event: image -2022-07-13 08:49:25 STATE: test-node.js event: detect -2022-07-13 08:49:25 STATE: test-node.js passed: detect: samples/in/ai-face.jpg default -2022-07-13 08:49:25 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-07-13 08:49:25 DATA:  test-node.js result: performance: load: null total: 228 -2022-07-13 08:49:25 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-07-13 08:49:25 STATE: test-node.js event: image -2022-07-13 08:49:25 STATE: test-node.js event: detect -2022-07-13 08:49:25 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default -2022-07-13 08:49:25 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-13 08:49:25 DATA:  test-node.js result: performance: load: null total: 226 -2022-07-13 08:49:25 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} -2022-07-13 08:49:25 STATE: test-node.js event: image -2022-07-13 08:49:26 STATE: test-node.js event: detect -2022-07-13 08:49:26 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg default -2022-07-13 08:49:26 DATA:  test-node.js result: face: 1 body: 1 hand: 0 gesture: 4 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":7} -2022-07-13 08:49:26 DATA:  test-node.js result: performance: load: null total: 211 -2022-07-13 08:49:26 STATE: test-node.js passed: face descriptor -2022-07-13 08:49:26 STATE: test-node.js passed: face similarity {"similarity":[1,0.44727452329649126,0.5567935850640406],"descriptors":[1024,1024,1024]} -2022-07-13 08:49:26 INFO:  test-node.js test face matching -2022-07-13 08:49:26 STATE: test-node.js passed: face database 40 -2022-07-13 08:49:26 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-07-13 08:49:26 INFO:  test-node.js test object -2022-07-13 08:49:26 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-07-13 08:49:26 STATE: test-node.js event: image -2022-07-13 08:49:26 STATE: test-node.js event: detect -2022-07-13 08:49:26 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default -2022-07-13 08:49:26 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-13 08:49:26 DATA:  test-node.js result: performance: load: null total: 229 -2022-07-13 08:49:26 STATE: test-node.js passed: object result match -2022-07-13 08:49:26 INFO:  test-node.js test sensitive -2022-07-13 08:49:26 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-07-13 08:49:26 STATE: test-node.js event: image -2022-07-13 08:49:26 STATE: test-node.js event: detect -2022-07-13 08:49:26 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default -2022-07-13 08:49:26 DATA:  test-node.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-13 08:49:26 DATA:  test-node.js result: performance: load: null total: 272 -2022-07-13 08:49:26 STATE: test-node.js passed: sensitive result match -2022-07-13 08:49:26 STATE: test-node.js passed: sensitive face result match -2022-07-13 08:49:26 STATE: test-node.js passed: sensitive face emotion result [{"score":0.59,"emotion":"angry"},{"score":0.29,"emotion":"fear"}] -2022-07-13 08:49:26 STATE: test-node.js passed: sensitive body result match -2022-07-13 08:49:26 STATE: test-node.js passed: sensitive hand result match -2022-07-13 08:49:26 INFO:  test-node.js test detectors -2022-07-13 08:49:27 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-07-13 08:49:27 STATE: test-node.js event: image -2022-07-13 08:49:27 STATE: test-node.js event: detect -2022-07-13 08:49:27 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default -2022-07-13 08:49:27 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-07-13 08:49:27 DATA:  test-node.js result: performance: load: null total: 174 -2022-07-13 08:49:27 STATE: test-node.js passed: detector result face match -2022-07-13 08:49:27 STATE: test-node.js passed: detector result hand match -2022-07-13 08:49:27 INFO:  test-node.js test: multi-instance -2022-07-13 08:49:27 STATE: test-node.js event: image -2022-07-13 08:49:27 STATE: test-node.js event: detect -2022-07-13 08:49:27 STATE: test-node.js passed: detect: random default -2022-07-13 08:49:27 DATA:  test-node.js result: face: 0 body: 1 hand: 0 gesture: 0 object: 0 person: 0 {} {} {"score":0.08,"keypoints":15} -2022-07-13 08:49:27 DATA:  test-node.js result: performance: load: null total: 160 -2022-07-13 08:49:27 INFO:  test-node.js test: first instance -2022-07-13 08:49:27 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} -2022-07-13 08:49:27 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg default -2022-07-13 08:49:27 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-07-13 08:49:27 DATA:  test-node.js result: performance: load: null total: 171 -2022-07-13 08:49:27 INFO:  test-node.js test: second instance -2022-07-13 08:49:27 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} -2022-07-13 08:49:28 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg default -2022-07-13 08:49:28 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-07-13 08:49:28 DATA:  test-node.js result: performance: load: null total: 156 -2022-07-13 08:49:28 INFO:  test-node.js test: concurrent -2022-07-13 08:49:28 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-07-13 08:49:28 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-07-13 08:49:28 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-07-13 08:49:28 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-07-13 08:49:28 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} -2022-07-13 08:49:28 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} -2022-07-13 08:49:28 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-07-13 08:49:28 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-07-13 08:49:28 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} -2022-07-13 08:49:28 STATE: test-node.js event: image -2022-07-13 08:49:28 STATE: test-node.js event: image -2022-07-13 08:49:28 STATE: test-node.js event: image -2022-07-13 08:49:30 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg default -2022-07-13 08:49:30 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-07-13 08:49:30 DATA:  test-node.js result: performance: load: null total: 1505 -2022-07-13 08:49:30 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg default -2022-07-13 08:49:30 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-07-13 08:49:30 DATA:  test-node.js result: performance: load: null total: 1505 -2022-07-13 08:49:30 STATE: test-node.js passed: detect: samples/in/ai-face.jpg default -2022-07-13 08:49:30 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-07-13 08:49:30 DATA:  test-node.js result: performance: load: null total: 1645 -2022-07-13 08:49:30 STATE: test-node.js passed: detect: samples/in/ai-face.jpg default -2022-07-13 08:49:30 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-07-13 08:49:30 DATA:  test-node.js result: performance: load: null total: 1645 -2022-07-13 08:49:30 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default -2022-07-13 08:49:30 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-07-13 08:49:30 DATA:  test-node.js result: performance: load: null total: 1645 -2022-07-13 08:49:30 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default -2022-07-13 08:49:30 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-07-13 08:49:30 DATA:  test-node.js result: performance: load: null total: 1645 -2022-07-13 08:49:30 STATE: test-node.js event: detect -2022-07-13 08:49:30 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg default -2022-07-13 08:49:30 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-07-13 08:49:30 DATA:  test-node.js result: performance: load: null total: 1390 -2022-07-13 08:49:30 STATE: test-node.js event: detect -2022-07-13 08:49:30 STATE: test-node.js event: detect -2022-07-13 08:49:30 STATE: test-node.js passed: detect: samples/in/ai-face.jpg default -2022-07-13 08:49:30 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-07-13 08:49:30 DATA:  test-node.js result: performance: load: null total: 1390 -2022-07-13 08:49:30 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default -2022-07-13 08:49:30 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-07-13 08:49:30 DATA:  test-node.js result: performance: load: null total: 1390 -2022-07-13 08:49:30 INFO:  test-node.js test: monkey-patch -2022-07-13 08:49:30 STATE: test-node.js event: image -2022-07-13 08:49:30 STATE: test-node.js event: detect -2022-07-13 08:49:30 STATE: test-node.js passed: monkey patch -2022-07-13 08:49:30 STATE: test-node.js passed: segmentation [65536] -2022-07-13 08:49:30 STATE: test-node.js passeed: equal usage -2022-07-13 08:49:30 INFO:  test-node.js test: input compare -2022-07-13 08:49:30 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-07-13 08:49:30 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-07-13 08:49:30 STATE: test-node.js passed: image compare 0 23.275441687091504 -2022-07-13 08:49:30 INFO:  test-node.js events: {"image":21,"detect":21,"warmup":2} -2022-07-13 08:49:30 INFO:  test-node.js tensors 1927 -2022-07-13 08:49:30 INFO:  test-node.js test complete: 9818 ms -2022-07-13 08:49:30 INFO:  -2022-07-13 08:49:30 INFO:  test-node-gpu.js start -2022-07-13 08:49:31 INFO:  test-node-gpu.js test: configuration validation -2022-07-13 08:49:31 STATE: test-node-gpu.js passed: configuration default validation [] -2022-07-13 08:49:31 STATE: test-node-gpu.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}] -2022-07-13 08:49:31 INFO:  test-node-gpu.js test: model load -2022-07-13 08:49:31 STATE: test-node-gpu.js passed: models loaded 22 12 [{"name":"ssrnetage","loaded":false,"url":null},{"name":"gear","loaded":false,"url":null},{"name":"blazeposedetect","loaded":false,"url":null},{"name":"blazepose","loaded":false,"url":null},{"name":"centernet","loaded":true,"url":"file://models/mb3-centernet.json"},{"name":"efficientpose","loaded":false,"url":null},{"name":"mobilefacenet","loaded":false,"url":null},{"name":"emotion","loaded":true,"url":"file://models/emotion.json"},{"name":"facedetect","loaded":true,"url":"file://models/blazeface.json"},{"name":"faceiris","loaded":true,"url":"file://models/iris.json"},{"name":"facemesh","loaded":true,"url":"file://models/facemesh.json"},{"name":"faceres","loaded":true,"url":"file://models/faceres.json"},{"name":"ssrnetgender","loaded":false,"url":null},{"name":"handpose","loaded":false,"url":null},{"name":"handskeleton","loaded":true,"url":"file://models/handlandmark-full.json"},{"name":"handtrack","loaded":true,"url":"file://models/handtrack.json"},{"name":"liveness","loaded":true,"url":"file://models/liveness.json"},{"name":"movenet","loaded":true,"url":"file://models/movenet-lightning.json"},{"name":"nanodet","loaded":false,"url":null},{"name":"posenet","loaded":false,"url":null},{"name":"segmentation","loaded":true,"url":"file://models/selfie.json"},{"name":"antispoof","loaded":true,"url":"file://models/antispoof.json"}] -2022-07-13 08:49:31 INFO:  test-node-gpu.js test: warmup -2022-07-13 08:49:31 STATE: test-node-gpu.js passed: create human -2022-07-13 08:49:31 INFO:  test-node-gpu.js human version: 2.8.1 -2022-07-13 08:49:31 INFO:  test-node-gpu.js platform: linux x64 agent: NodeJS v16.15.0 -2022-07-13 08:49:31 INFO:  test-node-gpu.js tfjs version: 3.18.0 -2022-07-13 08:49:31 INFO:  test-node-gpu.js tensorflow binding version: 2.7.0-dev20211101 -2022-07-13 08:49:31 STATE: test-node-gpu.js passed: set backend: tensorflow -2022-07-13 08:49:31 STATE: test-node-gpu.js tensors 1921 -2022-07-13 08:49:31 STATE: test-node-gpu.js passed: load models -2022-07-13 08:49:31 STATE: test-node-gpu.js result: defined models: 22 loaded models: 12 -2022-07-13 08:49:31 STATE: test-node-gpu.js passed: warmup: none default -2022-07-13 08:49:31 DATA:  test-node-gpu.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {} -2022-07-13 08:49:31 DATA:  test-node-gpu.js result: performance: load: null total: null -2022-07-13 08:49:31 STATE: test-node-gpu.js passed: warmup none result match -2022-07-13 08:49:32 STATE: test-node-gpu.js event: image -2022-07-13 08:49:36 STATE: test-node-gpu.js event: detect -2022-07-13 08:49:36 STATE: test-node-gpu.js event: warmup -2022-07-13 08:49:36 STATE: test-node-gpu.js passed: warmup: face default -2022-07-13 08:49:36 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-07-13 08:49:36 DATA:  test-node-gpu.js result: performance: load: null total: 3904 -2022-07-13 08:49:36 STATE: test-node-gpu.js passed: warmup face result match -2022-07-13 08:49:36 STATE: test-node-gpu.js event: image -2022-07-13 08:49:36 STATE: test-node-gpu.js event: detect -2022-07-13 08:49:36 STATE: test-node-gpu.js event: warmup -2022-07-13 08:49:36 STATE: test-node-gpu.js passed: warmup: body default -2022-07-13 08:49:36 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-13 08:49:36 DATA:  test-node-gpu.js result: performance: load: null total: 227 -2022-07-13 08:49:36 STATE: test-node-gpu.js passed: warmup body result match -2022-07-13 08:49:36 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"},{"face":0,"gesture":"mouth 10% open"},{"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-07-13 08:49:36 INFO:  test-node-gpu.js test: details verification -2022-07-13 08:49:36 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-07-13 08:49:36 STATE: test-node-gpu.js event: image -2022-07-13 08:49:36 STATE: test-node-gpu.js event: detect -2022-07-13 08:49:36 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default -2022-07-13 08:49:36 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-13 08:49:36 DATA:  test-node-gpu.js result: performance: load: null total: 199 -2022-07-13 08:49:36 STATE: test-node-gpu.js passed: details face length 1 -2022-07-13 08:49:36 STATE: test-node-gpu.js passed: details face score 1 0.93 1 -2022-07-13 08:49:36 STATE: test-node-gpu.js passed: details face age/gender 23.7 female 0.97 85.47 -2022-07-13 08:49:36 STATE: test-node-gpu.js passed: details face arrays 4 478 1024 -2022-07-13 08:49:36 STATE: test-node-gpu.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"} -2022-07-13 08:49:36 STATE: test-node-gpu.js passed: details face anti-spoofing 0.79 -2022-07-13 08:49:36 STATE: test-node-gpu.js passed: details face liveness 0.83 -2022-07-13 08:49:36 STATE: test-node-gpu.js passed: details body length 1 -2022-07-13 08:49:36 STATE: test-node-gpu.js passed: details body 0.92 17 6 -2022-07-13 08:49:36 STATE: test-node-gpu.js passed: details hand length 1 -2022-07-13 08:49:36 STATE: test-node-gpu.js passed: details hand 0.51 0.73 point -2022-07-13 08:49:36 STATE: test-node-gpu.js passed: details hand arrays 21 5 7 -2022-07-13 08:49:36 STATE: test-node-gpu.js passed: details gesture length 7 -2022-07-13 08:49:36 STATE: test-node-gpu.js passed: details gesture first {"face":0,"gesture":"facing right"} -2022-07-13 08:49:36 STATE: test-node-gpu.js passed: details object length 1 -2022-07-13 08:49:36 STATE: test-node-gpu.js passed: details object 0.72 person -2022-07-13 08:49:37 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996928} -2022-07-13 08:49:37 STATE: test-node-gpu.js event: image -2022-07-13 08:49:37 STATE: test-node-gpu.js event: detect -2022-07-13 08:49:37 STATE: test-node-gpu.js passed: tensor shape: [1,1200,1200,4] dtype: float32 -2022-07-13 08:49:37 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1371996928} -2022-07-13 08:49:37 STATE: test-node-gpu.js event: image -2022-07-13 08:49:37 STATE: test-node-gpu.js event: detect -2022-07-13 08:49:37 STATE: test-node-gpu.js passed: tensor shape: [1200,1200,4] dtype: float32 -2022-07-13 08:49:37 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-07-13 08:49:37 STATE: test-node-gpu.js event: image -2022-07-13 08:49:38 STATE: test-node-gpu.js event: detect -2022-07-13 08:49:38 STATE: test-node-gpu.js passed: tensor shape: [1,1200,1200,3] dtype: float32 -2022-07-13 08:49:38 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1004796928} -2022-07-13 08:49:38 STATE: test-node-gpu.js event: image -2022-07-13 08:49:38 STATE: test-node-gpu.js event: detect -2022-07-13 08:49:38 STATE: test-node-gpu.js passed: tensor shape: [1200,1200,3] dtype: float32 -2022-07-13 08:49:38 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871} -2022-07-13 08:49:38 STATE: test-node-gpu.js event: image -2022-07-13 08:49:38 STATE: test-node-gpu.js event: detect -2022-07-13 08:49:38 STATE: test-node-gpu.js passed: tensor shape: [1,1200,1200,4] dtype: int32 -2022-07-13 08:49:38 INFO:  test-node-gpu.js test default -2022-07-13 08:49:39 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-07-13 08:49:39 STATE: test-node-gpu.js event: image -2022-07-13 08:49:39 STATE: test-node-gpu.js event: detect -2022-07-13 08:49:39 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default -2022-07-13 08:49:39 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-13 08:49:39 DATA:  test-node-gpu.js result: performance: load: null total: 253 -2022-07-13 08:49:39 STATE: test-node-gpu.js passed: default result face match 1 female 0.97 -2022-07-13 08:49:39 INFO:  test-node-gpu.js test sync -2022-07-13 08:49:39 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-07-13 08:49:39 STATE: test-node-gpu.js event: image -2022-07-13 08:49:39 STATE: test-node-gpu.js event: detect -2022-07-13 08:49:39 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default -2022-07-13 08:49:39 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-13 08:49:39 DATA:  test-node-gpu.js result: performance: load: null total: 226 -2022-07-13 08:49:39 STATE: test-node-gpu.js passed: default sync 1 female 0.97 -2022-07-13 08:49:39 INFO:  test-node-gpu.js test: image process -2022-07-13 08:49:39 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-07-13 08:49:39 STATE: test-node-gpu.js passed: image input null [1,256,256,3] -2022-07-13 08:49:39 INFO:  test-node-gpu.js test: image null -2022-07-13 08:49:39 STATE: test-node-gpu.js passed: invalid input could not convert input to tensor -2022-07-13 08:49:39 INFO:  test-node-gpu.js test face similarity -2022-07-13 08:49:39 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-07-13 08:49:39 STATE: test-node-gpu.js event: image -2022-07-13 08:49:39 STATE: test-node-gpu.js event: detect -2022-07-13 08:49:39 STATE: test-node-gpu.js passed: detect: samples/in/ai-face.jpg default -2022-07-13 08:49:39 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-07-13 08:49:39 DATA:  test-node-gpu.js result: performance: load: null total: 179 -2022-07-13 08:49:40 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-07-13 08:49:40 STATE: test-node-gpu.js event: image -2022-07-13 08:49:40 STATE: test-node-gpu.js event: detect -2022-07-13 08:49:40 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default -2022-07-13 08:49:40 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-13 08:49:40 DATA:  test-node-gpu.js result: performance: load: null total: 170 -2022-07-13 08:49:40 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} -2022-07-13 08:49:40 STATE: test-node-gpu.js event: image -2022-07-13 08:49:40 STATE: test-node-gpu.js event: detect -2022-07-13 08:49:40 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg default -2022-07-13 08:49:40 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 4 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":7} -2022-07-13 08:49:40 DATA:  test-node-gpu.js result: performance: load: null total: 173 -2022-07-13 08:49:40 STATE: test-node-gpu.js passed: face descriptor -2022-07-13 08:49:40 STATE: test-node-gpu.js passed: face similarity {"similarity":[1,0.447238756461232,0.556914029877052],"descriptors":[1024,1024,1024]} -2022-07-13 08:49:40 INFO:  test-node-gpu.js test face matching -2022-07-13 08:49:40 STATE: test-node-gpu.js passed: face database 40 -2022-07-13 08:49:40 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-07-13 08:49:40 INFO:  test-node-gpu.js test object -2022-07-13 08:49:40 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-07-13 08:49:40 STATE: test-node-gpu.js event: image -2022-07-13 08:49:40 STATE: test-node-gpu.js event: detect -2022-07-13 08:49:40 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default -2022-07-13 08:49:40 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-13 08:49:40 DATA:  test-node-gpu.js result: performance: load: null total: 180 -2022-07-13 08:49:40 STATE: test-node-gpu.js passed: object result match -2022-07-13 08:49:40 INFO:  test-node-gpu.js test sensitive -2022-07-13 08:49:41 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-07-13 08:49:41 STATE: test-node-gpu.js event: image -2022-07-13 08:49:41 STATE: test-node-gpu.js event: detect -2022-07-13 08:49:41 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default -2022-07-13 08:49:41 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-13 08:49:41 DATA:  test-node-gpu.js result: performance: load: null total: 173 -2022-07-13 08:49:41 STATE: test-node-gpu.js passed: sensitive result match -2022-07-13 08:49:41 STATE: test-node-gpu.js passed: sensitive face result match -2022-07-13 08:49:41 STATE: test-node-gpu.js passed: sensitive face emotion result [{"score":0.59,"emotion":"angry"},{"score":0.29,"emotion":"fear"}] -2022-07-13 08:49:41 STATE: test-node-gpu.js passed: sensitive body result match -2022-07-13 08:49:41 STATE: test-node-gpu.js passed: sensitive hand result match -2022-07-13 08:49:41 INFO:  test-node-gpu.js test detectors -2022-07-13 08:49:41 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-07-13 08:49:41 STATE: test-node-gpu.js event: image -2022-07-13 08:49:41 STATE: test-node-gpu.js event: detect -2022-07-13 08:49:41 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default -2022-07-13 08:49:41 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-07-13 08:49:41 DATA:  test-node-gpu.js result: performance: load: null total: 139 -2022-07-13 08:49:41 STATE: test-node-gpu.js passed: detector result face match -2022-07-13 08:49:41 STATE: test-node-gpu.js passed: detector result hand match -2022-07-13 08:49:41 INFO:  test-node-gpu.js test: multi-instance -2022-07-13 08:49:41 STATE: test-node-gpu.js event: image -2022-07-13 08:49:41 STATE: test-node-gpu.js event: detect -2022-07-13 08:49:41 STATE: test-node-gpu.js passed: detect: random default -2022-07-13 08:49:41 DATA:  test-node-gpu.js result: face: 0 body: 1 hand: 0 gesture: 0 object: 0 person: 0 {} {} {"score":0.06,"keypoints":15} -2022-07-13 08:49:41 DATA:  test-node-gpu.js result: performance: load: null total: 107 -2022-07-13 08:49:41 INFO:  test-node-gpu.js test: first instance -2022-07-13 08:49:42 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} -2022-07-13 08:49:42 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg default -2022-07-13 08:49:42 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-07-13 08:49:42 DATA:  test-node-gpu.js result: performance: load: null total: 94 -2022-07-13 08:49:42 INFO:  test-node-gpu.js test: second instance -2022-07-13 08:49:42 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} -2022-07-13 08:49:42 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg default -2022-07-13 08:49:42 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-07-13 08:49:42 DATA:  test-node-gpu.js result: performance: load: null total: 109 -2022-07-13 08:49:42 INFO:  test-node-gpu.js test: concurrent -2022-07-13 08:49:42 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-07-13 08:49:42 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-07-13 08:49:42 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-07-13 08:49:42 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-07-13 08:49:42 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} -2022-07-13 08:49:42 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} -2022-07-13 08:49:42 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-07-13 08:49:43 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-07-13 08:49:43 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} -2022-07-13 08:49:43 STATE: test-node-gpu.js event: image -2022-07-13 08:49:43 STATE: test-node-gpu.js event: image -2022-07-13 08:49:43 STATE: test-node-gpu.js event: image -2022-07-13 08:49:43 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg default -2022-07-13 08:49:43 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-07-13 08:49:43 DATA:  test-node-gpu.js result: performance: load: null total: 970 -2022-07-13 08:49:43 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg default -2022-07-13 08:49:43 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-07-13 08:49:43 DATA:  test-node-gpu.js result: performance: load: null total: 970 -2022-07-13 08:49:43 STATE: test-node-gpu.js passed: detect: samples/in/ai-face.jpg default -2022-07-13 08:49:43 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-07-13 08:49:43 DATA:  test-node-gpu.js result: performance: load: null total: 1036 -2022-07-13 08:49:43 STATE: test-node-gpu.js passed: detect: samples/in/ai-face.jpg default -2022-07-13 08:49:43 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-07-13 08:49:43 DATA:  test-node-gpu.js result: performance: load: null total: 1036 -2022-07-13 08:49:43 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default -2022-07-13 08:49:43 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-07-13 08:49:43 DATA:  test-node-gpu.js result: performance: load: null total: 1036 -2022-07-13 08:49:43 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default -2022-07-13 08:49:43 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-07-13 08:49:43 DATA:  test-node-gpu.js result: performance: load: null total: 1036 -2022-07-13 08:49:43 STATE: test-node-gpu.js event: detect -2022-07-13 08:49:43 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg default -2022-07-13 08:49:43 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-07-13 08:49:43 DATA:  test-node-gpu.js result: performance: load: null total: 765 -2022-07-13 08:49:43 STATE: test-node-gpu.js event: detect -2022-07-13 08:49:43 STATE: test-node-gpu.js event: detect -2022-07-13 08:49:43 STATE: test-node-gpu.js passed: detect: samples/in/ai-face.jpg default -2022-07-13 08:49:43 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-07-13 08:49:43 DATA:  test-node-gpu.js result: performance: load: null total: 766 -2022-07-13 08:49:43 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default -2022-07-13 08:49:43 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-07-13 08:49:43 DATA:  test-node-gpu.js result: performance: load: null total: 766 -2022-07-13 08:49:43 INFO:  test-node-gpu.js test: monkey-patch -2022-07-13 08:49:43 STATE: test-node-gpu.js event: image -2022-07-13 08:49:43 STATE: test-node-gpu.js event: detect -2022-07-13 08:49:43 STATE: test-node-gpu.js passed: monkey patch -2022-07-13 08:49:44 STATE: test-node-gpu.js passed: segmentation [65536] -2022-07-13 08:49:44 STATE: test-node-gpu.js passeed: equal usage -2022-07-13 08:49:44 INFO:  test-node-gpu.js test: input compare -2022-07-13 08:49:44 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-07-13 08:49:44 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-07-13 08:49:44 STATE: test-node-gpu.js passed: image compare 0 23.275441687091504 -2022-07-13 08:49:44 INFO:  test-node-gpu.js events: {"image":21,"detect":21,"warmup":2} -2022-07-13 08:49:44 INFO:  test-node-gpu.js tensors 1927 -2022-07-13 08:49:44 INFO:  test-node-gpu.js test complete: 12832 ms -2022-07-13 08:49:45 INFO:  -2022-07-13 08:49:45 INFO:  test-node-wasm.js start -2022-07-13 08:49:45 STATE: test-node-wasm.js passed: model server: https://vladmandic.github.io/human/models/ -2022-07-13 08:49:45 INFO:  test-node-wasm.js test: configuration validation -2022-07-13 08:49:45 STATE: test-node-wasm.js passed: configuration default validation [] -2022-07-13 08:49:45 STATE: test-node-wasm.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}] -2022-07-13 08:49:45 INFO:  test-node-wasm.js test: model load -2022-07-13 08:49:46 STATE: test-node-wasm.js passed: models loaded 22 12 [{"name":"ssrnetage","loaded":false,"url":null},{"name":"gear","loaded":false,"url":null},{"name":"blazeposedetect","loaded":false,"url":null},{"name":"blazepose","loaded":false,"url":null},{"name":"centernet","loaded":true,"url":"https://vladmandic.github.io/human/models/mb3-centernet.json"},{"name":"efficientpose","loaded":false,"url":null},{"name":"mobilefacenet","loaded":false,"url":null},{"name":"emotion","loaded":true,"url":"https://vladmandic.github.io/human/models/emotion.json"},{"name":"facedetect","loaded":true,"url":"https://vladmandic.github.io/human/models/blazeface.json"},{"name":"faceiris","loaded":true,"url":"https://vladmandic.github.io/human/models/iris.json"},{"name":"facemesh","loaded":true,"url":"https://vladmandic.github.io/human/models/facemesh.json"},{"name":"faceres","loaded":true,"url":"https://vladmandic.github.io/human/models/faceres.json"},{"name":"ssrnetgender","loaded":false,"url":null},{"name":"handpose","loaded":false,"url":null},{"name":"handskeleton","loaded":true,"url":"https://vladmandic.github.io/human/models/handlandmark-full.json"},{"name":"handtrack","loaded":true,"url":"https://vladmandic.github.io/human/models/handtrack.json"},{"name":"liveness","loaded":true,"url":"https://vladmandic.github.io/human/models/liveness.json"},{"name":"movenet","loaded":true,"url":"https://vladmandic.github.io/human/models/movenet-lightning.json"},{"name":"nanodet","loaded":false,"url":null},{"name":"posenet","loaded":false,"url":null},{"name":"segmentation","loaded":true,"url":"https://vladmandic.github.io/human/models/selfie.json"},{"name":"antispoof","loaded":true,"url":"https://vladmandic.github.io/human/models/antispoof.json"}] -2022-07-13 08:49:46 INFO:  test-node-wasm.js test: warmup -2022-07-13 08:49:46 STATE: test-node-wasm.js passed: create human -2022-07-13 08:49:46 INFO:  test-node-wasm.js human version: 2.8.1 -2022-07-13 08:49:46 INFO:  test-node-wasm.js platform: linux x64 agent: NodeJS v16.15.0 -2022-07-13 08:49:46 INFO:  test-node-wasm.js tfjs version: 3.18.0 -2022-07-13 08:49:46 STATE: test-node-wasm.js passed: set backend: wasm -2022-07-13 08:49:46 STATE: test-node-wasm.js tensors 1921 -2022-07-13 08:49:46 STATE: test-node-wasm.js passed: load models -2022-07-13 08:49:46 STATE: test-node-wasm.js result: defined models: 22 loaded models: 12 -2022-07-13 08:49:46 STATE: test-node-wasm.js passed: warmup: none default -2022-07-13 08:49:46 DATA:  test-node-wasm.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {} -2022-07-13 08:49:46 DATA:  test-node-wasm.js result: performance: load: null total: null -2022-07-13 08:49:46 STATE: test-node-wasm.js passed: warmup none result match -2022-07-13 08:49:47 STATE: test-node-wasm.js event: image -2022-07-13 08:49:47 STATE: test-node-wasm.js event: detect -2022-07-13 08:49:47 STATE: test-node-wasm.js event: warmup -2022-07-13 08:49:47 STATE: test-node-wasm.js passed: warmup: face default -2022-07-13 08:49:47 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-07-13 08:49:47 DATA:  test-node-wasm.js result: performance: load: null total: 547 -2022-07-13 08:49:47 STATE: test-node-wasm.js passed: warmup face result match -2022-07-13 08:49:47 STATE: test-node-wasm.js event: image -2022-07-13 08:49:48 STATE: test-node-wasm.js event: detect -2022-07-13 08:49:48 STATE: test-node-wasm.js event: warmup -2022-07-13 08:49:48 STATE: test-node-wasm.js passed: warmup: body default -2022-07-13 08:49:48 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-13 08:49:48 DATA:  test-node-wasm.js result: performance: load: null total: 421 -2022-07-13 08:49:48 STATE: test-node-wasm.js passed: warmup body result match -2022-07-13 08:49:48 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"},{"face":0,"gesture":"mouth 21% open"},{"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-07-13 08:49:48 INFO:  test-node-wasm.js test: details verification -2022-07-13 08:49:48 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-07-13 08:49:48 STATE: test-node-wasm.js event: image -2022-07-13 08:49:48 STATE: test-node-wasm.js event: detect -2022-07-13 08:49:48 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default -2022-07-13 08:49:48 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-13 08:49:48 DATA:  test-node-wasm.js result: performance: load: null total: 394 -2022-07-13 08:49:48 STATE: test-node-wasm.js passed: details face length 1 -2022-07-13 08:49:48 STATE: test-node-wasm.js passed: details face score 1 0.93 1 -2022-07-13 08:49:48 STATE: test-node-wasm.js passed: details face age/gender 23.7 female 0.97 85.47 -2022-07-13 08:49:48 STATE: test-node-wasm.js passed: details face arrays 4 478 1024 -2022-07-13 08:49:48 STATE: test-node-wasm.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"} -2022-07-13 08:49:48 STATE: test-node-wasm.js passed: details face anti-spoofing 0.79 -2022-07-13 08:49:48 STATE: test-node-wasm.js passed: details face liveness 0.83 -2022-07-13 08:49:48 STATE: test-node-wasm.js passed: details body length 1 -2022-07-13 08:49:48 STATE: test-node-wasm.js passed: details body 0.92 17 6 -2022-07-13 08:49:48 STATE: test-node-wasm.js passed: details hand length 1 -2022-07-13 08:49:48 STATE: test-node-wasm.js passed: details hand 0.51 0.73 point -2022-07-13 08:49:48 STATE: test-node-wasm.js passed: details hand arrays 21 5 7 -2022-07-13 08:49:48 STATE: test-node-wasm.js passed: details gesture length 7 -2022-07-13 08:49:48 STATE: test-node-wasm.js passed: details gesture first {"face":0,"gesture":"facing right"} -2022-07-13 08:49:48 STATE: test-node-wasm.js passed: details object length 1 -2022-07-13 08:49:48 STATE: test-node-wasm.js passed: details object 0.72 person -2022-07-13 08:49:48 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1413675264} -2022-07-13 08:49:48 STATE: test-node-wasm.js event: image -2022-07-13 08:49:49 STATE: test-node-wasm.js event: detect -2022-07-13 08:49:49 STATE: test-node-wasm.js passed: tensor shape: [1,1200,1200,4] dtype: float32 -2022-07-13 08:49:49 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1413675264} -2022-07-13 08:49:49 STATE: test-node-wasm.js event: image -2022-07-13 08:49:50 STATE: test-node-wasm.js event: detect -2022-07-13 08:49:50 STATE: test-node-wasm.js passed: tensor shape: [1200,1200,4] dtype: float32 -2022-07-13 08:49:50 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-07-13 08:49:50 STATE: test-node-wasm.js event: image -2022-07-13 08:49:50 STATE: test-node-wasm.js event: detect -2022-07-13 08:49:50 STATE: test-node-wasm.js passed: tensor shape: [1,1200,1200,3] dtype: float32 -2022-07-13 08:49:50 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1038921856} -2022-07-13 08:49:50 STATE: test-node-wasm.js event: image -2022-07-13 08:49:51 STATE: test-node-wasm.js event: detect -2022-07-13 08:49:51 STATE: test-node-wasm.js passed: tensor shape: [1200,1200,3] dtype: float32 -2022-07-13 08:49:51 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871} -2022-07-13 08:49:51 STATE: test-node-wasm.js event: image -2022-07-13 08:49:51 STATE: test-node-wasm.js event: detect -2022-07-13 08:49:51 STATE: test-node-wasm.js passed: tensor shape: [1,1200,1200,4] dtype: int32 -2022-07-13 08:49:51 INFO:  test-node-wasm.js test default -2022-07-13 08:49:52 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-07-13 08:49:52 STATE: test-node-wasm.js event: image -2022-07-13 08:49:52 STATE: test-node-wasm.js event: detect -2022-07-13 08:49:52 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default -2022-07-13 08:49:52 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-13 08:49:52 DATA:  test-node-wasm.js result: performance: load: null total: 410 -2022-07-13 08:49:52 STATE: test-node-wasm.js passed: default result face match 1 female 0.97 -2022-07-13 08:49:52 INFO:  test-node-wasm.js test sync -2022-07-13 08:49:52 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-07-13 08:49:52 STATE: test-node-wasm.js event: image -2022-07-13 08:49:53 STATE: test-node-wasm.js event: detect -2022-07-13 08:49:53 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default -2022-07-13 08:49:53 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-13 08:49:53 DATA:  test-node-wasm.js result: performance: load: null total: 376 -2022-07-13 08:49:53 STATE: test-node-wasm.js passed: default sync 1 female 0.97 -2022-07-13 08:49:53 INFO:  test-node-wasm.js test: image process -2022-07-13 08:49:53 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-07-13 08:49:53 STATE: test-node-wasm.js passed: image input null [1,256,256,3] -2022-07-13 08:49:53 INFO:  test-node-wasm.js test: image null -2022-07-13 08:49:53 STATE: test-node-wasm.js passed: invalid input could not convert input to tensor -2022-07-13 08:49:53 INFO:  test-node-wasm.js test face similarity -2022-07-13 08:49:53 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-07-13 08:49:53 STATE: test-node-wasm.js event: image -2022-07-13 08:49:53 STATE: test-node-wasm.js event: detect -2022-07-13 08:49:53 STATE: test-node-wasm.js passed: detect: samples/in/ai-face.jpg default -2022-07-13 08:49:53 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-07-13 08:49:53 DATA:  test-node-wasm.js result: performance: load: null total: 336 -2022-07-13 08:49:53 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-07-13 08:49:53 STATE: test-node-wasm.js event: image -2022-07-13 08:49:54 STATE: test-node-wasm.js event: detect -2022-07-13 08:49:54 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default -2022-07-13 08:49:54 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-13 08:49:54 DATA:  test-node-wasm.js result: performance: load: null total: 385 -2022-07-13 08:49:54 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} -2022-07-13 08:49:54 STATE: test-node-wasm.js event: image -2022-07-13 08:49:54 STATE: test-node-wasm.js event: detect -2022-07-13 08:49:54 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg default -2022-07-13 08:49:54 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 4 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":7} -2022-07-13 08:49:54 DATA:  test-node-wasm.js result: performance: load: null total: 344 -2022-07-13 08:49:54 STATE: test-node-wasm.js passed: face descriptor -2022-07-13 08:49:54 STATE: test-node-wasm.js passed: face similarity {"similarity":[1,0.5266119940661309,0.4858842904087851],"descriptors":[1024,1024,1024]} -2022-07-13 08:49:54 INFO:  test-node-wasm.js test face matching -2022-07-13 08:49:54 STATE: test-node-wasm.js passed: face database 40 -2022-07-13 08:49:54 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-07-13 08:49:54 INFO:  test-node-wasm.js test object -2022-07-13 08:49:54 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-07-13 08:49:54 STATE: test-node-wasm.js event: image -2022-07-13 08:49:55 STATE: test-node-wasm.js event: detect -2022-07-13 08:49:55 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default -2022-07-13 08:49:55 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-13 08:49:55 DATA:  test-node-wasm.js result: performance: load: null total: 363 -2022-07-13 08:49:55 STATE: test-node-wasm.js passed: object result match -2022-07-13 08:49:55 INFO:  test-node-wasm.js test sensitive -2022-07-13 08:49:55 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-07-13 08:49:55 STATE: test-node-wasm.js event: image -2022-07-13 08:49:55 STATE: test-node-wasm.js event: detect -2022-07-13 08:49:55 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default -2022-07-13 08:49:55 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 10 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-13 08:49:55 DATA:  test-node-wasm.js result: performance: load: null total: 415 -2022-07-13 08:49:55 STATE: test-node-wasm.js passed: sensitive result match -2022-07-13 08:49:55 STATE: test-node-wasm.js passed: sensitive face result match -2022-07-13 08:49:55 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-07-13 08:49:55 STATE: test-node-wasm.js passed: sensitive body result match -2022-07-13 08:49:55 STATE: test-node-wasm.js passed: sensitive hand result match -2022-07-13 08:49:55 INFO:  test-node-wasm.js test detectors -2022-07-13 08:49:56 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-07-13 08:49:56 STATE: test-node-wasm.js event: image -2022-07-13 08:49:56 STATE: test-node-wasm.js event: detect -2022-07-13 08:49:56 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default -2022-07-13 08:49:56 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-07-13 08:49:56 DATA:  test-node-wasm.js result: performance: load: null total: 274 -2022-07-13 08:49:56 STATE: test-node-wasm.js passed: detector result face match -2022-07-13 08:49:56 STATE: test-node-wasm.js passed: detector result hand match -2022-07-13 08:49:56 INFO:  test-node-wasm.js test: multi-instance -2022-07-13 08:49:56 STATE: test-node-wasm.js event: image -2022-07-13 08:49:56 STATE: test-node-wasm.js event: detect -2022-07-13 08:49:56 STATE: test-node-wasm.js passed: detect: random default -2022-07-13 08:49:56 DATA:  test-node-wasm.js result: face: 0 body: 1 hand: 0 gesture: 0 object: 0 person: 0 {} {} {"score":0.08,"keypoints":15} -2022-07-13 08:49:56 DATA:  test-node-wasm.js result: performance: load: null total: 214 -2022-07-13 08:49:56 INFO:  test-node-wasm.js test: first instance -2022-07-13 08:49:56 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} -2022-07-13 08:49:57 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg default -2022-07-13 08:49:57 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-07-13 08:49:57 DATA:  test-node-wasm.js result: performance: load: null total: 271 -2022-07-13 08:49:57 INFO:  test-node-wasm.js test: second instance -2022-07-13 08:49:57 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} -2022-07-13 08:49:57 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg default -2022-07-13 08:49:57 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-07-13 08:49:57 DATA:  test-node-wasm.js result: performance: load: null total: 250 -2022-07-13 08:49:57 INFO:  test-node-wasm.js test: concurrent -2022-07-13 08:49:57 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-07-13 08:49:57 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-07-13 08:49:57 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-07-13 08:49:57 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-07-13 08:49:58 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} -2022-07-13 08:49:58 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} -2022-07-13 08:49:58 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-07-13 08:49:58 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-07-13 08:49:58 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} -2022-07-13 08:49:58 STATE: test-node-wasm.js event: image -2022-07-13 08:49:58 STATE: test-node-wasm.js event: image -2022-07-13 08:49:58 STATE: test-node-wasm.js event: image -2022-07-13 08:50:00 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg default -2022-07-13 08:50:00 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-07-13 08:50:00 DATA:  test-node-wasm.js result: performance: load: null total: 2339 -2022-07-13 08:50:00 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg default -2022-07-13 08:50:00 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-07-13 08:50:00 DATA:  test-node-wasm.js result: performance: load: null total: 2339 -2022-07-13 08:50:00 STATE: test-node-wasm.js passed: detect: samples/in/ai-face.jpg default -2022-07-13 08:50:00 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-07-13 08:50:00 DATA:  test-node-wasm.js result: performance: load: null total: 2582 -2022-07-13 08:50:00 STATE: test-node-wasm.js passed: detect: samples/in/ai-face.jpg default -2022-07-13 08:50:00 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-07-13 08:50:00 DATA:  test-node-wasm.js result: performance: load: null total: 2582 -2022-07-13 08:50:00 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default -2022-07-13 08:50:00 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-07-13 08:50:00 DATA:  test-node-wasm.js result: performance: load: null total: 2582 -2022-07-13 08:50:00 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default -2022-07-13 08:50:00 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-07-13 08:50:00 DATA:  test-node-wasm.js result: performance: load: null total: 2582 -2022-07-13 08:50:00 STATE: test-node-wasm.js event: detect -2022-07-13 08:50:00 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg default -2022-07-13 08:50:00 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-07-13 08:50:00 DATA:  test-node-wasm.js result: performance: load: null total: 2241 -2022-07-13 08:50:00 STATE: test-node-wasm.js event: detect -2022-07-13 08:50:00 STATE: test-node-wasm.js event: detect -2022-07-13 08:50:00 STATE: test-node-wasm.js passed: detect: samples/in/ai-face.jpg default -2022-07-13 08:50:00 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-07-13 08:50:00 DATA:  test-node-wasm.js result: performance: load: null total: 2242 -2022-07-13 08:50:00 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default -2022-07-13 08:50:00 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-07-13 08:50:00 DATA:  test-node-wasm.js result: performance: load: null total: 2242 -2022-07-13 08:50:00 INFO:  test-node-wasm.js test: monkey-patch -2022-07-13 08:50:00 STATE: test-node-wasm.js event: image -2022-07-13 08:50:00 STATE: test-node-wasm.js event: detect -2022-07-13 08:50:00 STATE: test-node-wasm.js passed: monkey patch -2022-07-13 08:50:01 STATE: test-node-wasm.js passed: segmentation [65536] -2022-07-13 08:50:01 STATE: test-node-wasm.js passeed: equal usage -2022-07-13 08:50:01 INFO:  test-node-wasm.js test: input compare -2022-07-13 08:50:01 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-07-13 08:50:01 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-07-13 08:50:01 STATE: test-node-wasm.js passed: image compare 0 23.280073018790848 -2022-07-13 08:50:01 INFO:  test-node-wasm.js events: {"image":21,"detect":21,"warmup":2} -2022-07-13 08:50:01 INFO:  test-node-wasm.js tensors 1929 -2022-07-13 08:50:01 INFO:  test-node-wasm.js test complete: 15631 ms -2022-07-13 08:50:01 INFO:  all tests complete -2022-07-13 08:50:01 INFO:  failed: {"count":0,"messages":[]} -2022-07-13 08:50:01 INFO:  status: {"test":"test-node.js","passed":101,"failed":0} -2022-07-13 08:50:01 INFO:  status: {"test":"test-node-gpu.js","passed":101,"failed":0} -2022-07-13 08:50:01 INFO:  status: {"test":"test-node-wasm.js","passed":102,"failed":0} +2022-07-13 12:07:17 INFO:  @vladmandic/human version 2.8.1 +2022-07-13 12:07:17 INFO:  User: vlado Platform: linux Arch: x64 Node: v16.15.0 +2022-07-13 12:07:17 INFO:  tests: ["test-node.js","test-node-gpu.js","test-node-wasm.js"] +2022-07-13 12:07: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-07-13 12:07:17 INFO:  +2022-07-13 12:07:17 INFO:  test-node.js start +2022-07-13 12:07:17 INFO:  test-node.js test: configuration validation +2022-07-13 12:07:17 STATE: test-node.js passed: configuration default validation [] +2022-07-13 12:07:17 STATE: test-node.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}] +2022-07-13 12:07:17 INFO:  test-node.js test: model load +2022-07-13 12:07:17 STATE: test-node.js passed: models loaded 22 12 [{"name":"ssrnetage","loaded":false,"url":null},{"name":"gear","loaded":false,"url":null},{"name":"blazeposedetect","loaded":false,"url":null},{"name":"blazepose","loaded":false,"url":null},{"name":"centernet","loaded":true,"url":"file://models/mb3-centernet.json"},{"name":"efficientpose","loaded":false,"url":null},{"name":"mobilefacenet","loaded":false,"url":null},{"name":"emotion","loaded":true,"url":"file://models/emotion.json"},{"name":"facedetect","loaded":true,"url":"file://models/blazeface.json"},{"name":"faceiris","loaded":true,"url":"file://models/iris.json"},{"name":"facemesh","loaded":true,"url":"file://models/facemesh.json"},{"name":"faceres","loaded":true,"url":"file://models/faceres.json"},{"name":"ssrnetgender","loaded":false,"url":null},{"name":"handpose","loaded":false,"url":null},{"name":"handskeleton","loaded":true,"url":"file://models/handlandmark-full.json"},{"name":"handtrack","loaded":true,"url":"file://models/handtrack.json"},{"name":"liveness","loaded":true,"url":"file://models/liveness.json"},{"name":"movenet","loaded":true,"url":"file://models/movenet-lightning.json"},{"name":"nanodet","loaded":false,"url":null},{"name":"posenet","loaded":false,"url":null},{"name":"segmentation","loaded":true,"url":"file://models/selfie.json"},{"name":"antispoof","loaded":true,"url":"file://models/antispoof.json"}] +2022-07-13 12:07:17 INFO:  test-node.js test: warmup +2022-07-13 12:07:17 STATE: test-node.js passed: create human +2022-07-13 12:07:17 INFO:  test-node.js human version: 2.8.1 +2022-07-13 12:07:17 INFO:  test-node.js platform: linux x64 agent: NodeJS v16.15.0 +2022-07-13 12:07:17 INFO:  test-node.js tfjs version: 3.18.0 +2022-07-13 12:07:17 INFO:  test-node.js tensorflow binding version: 2.7.0-dev20211101 +2022-07-13 12:07:17 STATE: test-node.js passed: set backend: tensorflow +2022-07-13 12:07:17 STATE: test-node.js tensors 1921 +2022-07-13 12:07:17 STATE: test-node.js passed: load models +2022-07-13 12:07:17 STATE: test-node.js result: defined models: 22 loaded models: 12 +2022-07-13 12:07:17 STATE: test-node.js passed: warmup: none default +2022-07-13 12:07:17 DATA:  test-node.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {} +2022-07-13 12:07:17 DATA:  test-node.js result: performance: load: null total: null +2022-07-13 12:07:17 STATE: test-node.js passed: warmup none result match +2022-07-13 12:07:17 STATE: test-node.js event: image +2022-07-13 12:07:18 STATE: test-node.js event: detect +2022-07-13 12:07:18 STATE: test-node.js event: warmup +2022-07-13 12:07:18 STATE: test-node.js passed: warmup: face default +2022-07-13 12:07: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-07-13 12:07:18 DATA:  test-node.js result: performance: load: null total: 364 +2022-07-13 12:07:18 STATE: test-node.js passed: warmup face result match +2022-07-13 12:07:18 STATE: test-node.js event: image +2022-07-13 12:07:18 STATE: test-node.js event: detect +2022-07-13 12:07:18 STATE: test-node.js event: warmup +2022-07-13 12:07:18 STATE: test-node.js passed: warmup: body default +2022-07-13 12:07:18 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-13 12:07:18 DATA:  test-node.js result: performance: load: null total: 271 +2022-07-13 12:07:18 STATE: test-node.js passed: warmup body result match +2022-07-13 12:07: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"},{"face":0,"gesture":"mouth 10% open"},{"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-07-13 12:07:18 INFO:  test-node.js test: details verification +2022-07-13 12:07:18 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-07-13 12:07:18 STATE: test-node.js event: image +2022-07-13 12:07:19 STATE: test-node.js event: detect +2022-07-13 12:07:19 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default +2022-07-13 12:07:19 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-13 12:07:19 DATA:  test-node.js result: performance: load: null total: 260 +2022-07-13 12:07:19 STATE: test-node.js passed: details face length 1 +2022-07-13 12:07:19 STATE: test-node.js passed: details face score 1 0.93 1 +2022-07-13 12:07:19 STATE: test-node.js passed: details face age/gender 23.7 female 0.97 85.47 +2022-07-13 12:07:19 STATE: test-node.js passed: details face arrays 4 478 1024 +2022-07-13 12:07:19 STATE: test-node.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"} +2022-07-13 12:07:19 STATE: test-node.js passed: details face anti-spoofing 0.79 +2022-07-13 12:07:19 STATE: test-node.js passed: details face liveness 0.83 +2022-07-13 12:07:19 STATE: test-node.js passed: details body length 1 +2022-07-13 12:07:19 STATE: test-node.js passed: details body 0.92 17 6 +2022-07-13 12:07:19 STATE: test-node.js passed: details hand length 1 +2022-07-13 12:07:19 STATE: test-node.js passed: details hand 0.51 0.73 point +2022-07-13 12:07:19 STATE: test-node.js passed: details hand arrays 21 5 7 +2022-07-13 12:07:19 STATE: test-node.js passed: details gesture length 7 +2022-07-13 12:07:19 STATE: test-node.js passed: details gesture first {"face":0,"gesture":"facing right"} +2022-07-13 12:07:19 STATE: test-node.js passed: details object length 1 +2022-07-13 12:07:19 STATE: test-node.js passed: details object 0.72 person +2022-07-13 12:07:19 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996928} +2022-07-13 12:07:19 STATE: test-node.js event: image +2022-07-13 12:07:19 STATE: test-node.js event: detect +2022-07-13 12:07:19 STATE: test-node.js passed: tensor shape: [1,1200,1200,4] dtype: float32 +2022-07-13 12:07:19 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1371996928} +2022-07-13 12:07:19 STATE: test-node.js event: image +2022-07-13 12:07:19 STATE: test-node.js event: detect +2022-07-13 12:07:19 STATE: test-node.js passed: tensor shape: [1200,1200,4] dtype: float32 +2022-07-13 12:07:20 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-07-13 12:07:20 STATE: test-node.js event: image +2022-07-13 12:07:20 STATE: test-node.js event: detect +2022-07-13 12:07:20 STATE: test-node.js passed: tensor shape: [1,1200,1200,3] dtype: float32 +2022-07-13 12:07:20 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1004796864} +2022-07-13 12:07:20 STATE: test-node.js event: image +2022-07-13 12:07:20 STATE: test-node.js event: detect +2022-07-13 12:07:20 STATE: test-node.js passed: tensor shape: [1200,1200,3] dtype: float32 +2022-07-13 12:07:20 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871} +2022-07-13 12:07:20 STATE: test-node.js event: image +2022-07-13 12:07:21 STATE: test-node.js event: detect +2022-07-13 12:07:21 STATE: test-node.js passed: tensor shape: [1,1200,1200,4] dtype: int32 +2022-07-13 12:07:21 INFO:  test-node.js test default +2022-07-13 12:07:21 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-07-13 12:07:21 STATE: test-node.js event: image +2022-07-13 12:07:21 STATE: test-node.js event: detect +2022-07-13 12:07:21 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default +2022-07-13 12:07:21 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-13 12:07:21 DATA:  test-node.js result: performance: load: null total: 235 +2022-07-13 12:07:21 STATE: test-node.js passed: default result face match 1 female 0.97 +2022-07-13 12:07:21 INFO:  test-node.js test sync +2022-07-13 12:07:21 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-07-13 12:07:21 STATE: test-node.js event: image +2022-07-13 12:07:21 STATE: test-node.js event: detect +2022-07-13 12:07:21 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default +2022-07-13 12:07:21 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-13 12:07:21 DATA:  test-node.js result: performance: load: null total: 217 +2022-07-13 12:07:21 STATE: test-node.js passed: default sync 1 female 0.97 +2022-07-13 12:07:21 INFO:  test-node.js test: image process +2022-07-13 12:07:21 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-07-13 12:07:21 STATE: test-node.js passed: image input null [1,256,256,3] +2022-07-13 12:07:21 INFO:  test-node.js test: image null +2022-07-13 12:07:21 STATE: test-node.js passed: invalid input could not convert input to tensor +2022-07-13 12:07:21 INFO:  test-node.js test face similarity +2022-07-13 12:07:21 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-07-13 12:07:21 STATE: test-node.js event: image +2022-07-13 12:07:22 STATE: test-node.js event: detect +2022-07-13 12:07:22 STATE: test-node.js passed: detect: samples/in/ai-face.jpg default +2022-07-13 12:07:22 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-07-13 12:07:22 DATA:  test-node.js result: performance: load: null total: 209 +2022-07-13 12:07:22 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-07-13 12:07:22 STATE: test-node.js event: image +2022-07-13 12:07:22 STATE: test-node.js event: detect +2022-07-13 12:07:22 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default +2022-07-13 12:07:22 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-13 12:07:22 DATA:  test-node.js result: performance: load: null total: 222 +2022-07-13 12:07:22 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} +2022-07-13 12:07:22 STATE: test-node.js event: image +2022-07-13 12:07:22 STATE: test-node.js event: detect +2022-07-13 12:07:22 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg default +2022-07-13 12:07:22 DATA:  test-node.js result: face: 1 body: 1 hand: 0 gesture: 4 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":7} +2022-07-13 12:07:22 DATA:  test-node.js result: performance: load: null total: 199 +2022-07-13 12:07:22 STATE: test-node.js passed: face descriptor +2022-07-13 12:07:22 STATE: test-node.js passed: face similarity {"similarity":[1,0.44727452329649126,0.5567935850640406],"descriptors":[1024,1024,1024]} +2022-07-13 12:07:22 INFO:  test-node.js test face matching +2022-07-13 12:07:22 STATE: test-node.js passed: face database 40 +2022-07-13 12:07: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-07-13 12:07:22 INFO:  test-node.js test object +2022-07-13 12:07:23 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-07-13 12:07:23 STATE: test-node.js event: image +2022-07-13 12:07:23 STATE: test-node.js event: detect +2022-07-13 12:07:23 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default +2022-07-13 12:07:23 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-13 12:07:23 DATA:  test-node.js result: performance: load: null total: 216 +2022-07-13 12:07:23 STATE: test-node.js passed: object result match +2022-07-13 12:07:23 INFO:  test-node.js test sensitive +2022-07-13 12:07:23 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-07-13 12:07:23 STATE: test-node.js event: image +2022-07-13 12:07:23 STATE: test-node.js event: detect +2022-07-13 12:07:23 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default +2022-07-13 12:07:23 DATA:  test-node.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-13 12:07:23 DATA:  test-node.js result: performance: load: null total: 242 +2022-07-13 12:07:23 STATE: test-node.js passed: sensitive result match +2022-07-13 12:07:23 STATE: test-node.js passed: sensitive face result match +2022-07-13 12:07:23 STATE: test-node.js passed: sensitive face emotion result [{"score":0.59,"emotion":"angry"},{"score":0.29,"emotion":"fear"}] +2022-07-13 12:07:23 STATE: test-node.js passed: sensitive body result match +2022-07-13 12:07:23 STATE: test-node.js passed: sensitive hand result match +2022-07-13 12:07:23 INFO:  test-node.js test detectors +2022-07-13 12:07:23 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-07-13 12:07:23 STATE: test-node.js event: image +2022-07-13 12:07:24 STATE: test-node.js event: detect +2022-07-13 12:07:24 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default +2022-07-13 12:07:24 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-07-13 12:07:24 DATA:  test-node.js result: performance: load: null total: 150 +2022-07-13 12:07:24 STATE: test-node.js passed: detector result face match +2022-07-13 12:07:24 STATE: test-node.js passed: detector result hand match +2022-07-13 12:07:24 INFO:  test-node.js test: multi-instance +2022-07-13 12:07:24 STATE: test-node.js event: image +2022-07-13 12:07:24 STATE: test-node.js event: detect +2022-07-13 12:07:24 STATE: test-node.js passed: detect: random default +2022-07-13 12:07:24 DATA:  test-node.js result: face: 0 body: 1 hand: 0 gesture: 0 object: 0 person: 0 {} {} {"score":0.07,"keypoints":15} +2022-07-13 12:07:24 DATA:  test-node.js result: performance: load: null total: 145 +2022-07-13 12:07:24 INFO:  test-node.js test: first instance +2022-07-13 12:07:24 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} +2022-07-13 12:07:24 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg default +2022-07-13 12:07:24 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-07-13 12:07:24 DATA:  test-node.js result: performance: load: null total: 142 +2022-07-13 12:07:24 INFO:  test-node.js test: second instance +2022-07-13 12:07:24 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} +2022-07-13 12:07:24 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg default +2022-07-13 12:07:24 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-07-13 12:07:24 DATA:  test-node.js result: performance: load: null total: 140 +2022-07-13 12:07:24 INFO:  test-node.js test: concurrent +2022-07-13 12:07:24 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-07-13 12:07:24 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-07-13 12:07:24 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-07-13 12:07:25 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-07-13 12:07:25 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} +2022-07-13 12:07:25 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} +2022-07-13 12:07:25 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-07-13 12:07:25 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-07-13 12:07:25 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} +2022-07-13 12:07:25 STATE: test-node.js event: image +2022-07-13 12:07:25 STATE: test-node.js event: image +2022-07-13 12:07:25 STATE: test-node.js event: image +2022-07-13 12:07:26 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg default +2022-07-13 12:07:26 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-07-13 12:07:26 DATA:  test-node.js result: performance: load: null total: 1498 +2022-07-13 12:07:26 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg default +2022-07-13 12:07:26 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-07-13 12:07:26 DATA:  test-node.js result: performance: load: null total: 1498 +2022-07-13 12:07:26 STATE: test-node.js passed: detect: samples/in/ai-face.jpg default +2022-07-13 12:07:26 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-07-13 12:07:26 DATA:  test-node.js result: performance: load: null total: 1633 +2022-07-13 12:07:26 STATE: test-node.js passed: detect: samples/in/ai-face.jpg default +2022-07-13 12:07:26 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-07-13 12:07:26 DATA:  test-node.js result: performance: load: null total: 1632 +2022-07-13 12:07:26 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default +2022-07-13 12:07:26 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-07-13 12:07:26 DATA:  test-node.js result: performance: load: null total: 1633 +2022-07-13 12:07:26 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default +2022-07-13 12:07:26 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-07-13 12:07:26 DATA:  test-node.js result: performance: load: null total: 1632 +2022-07-13 12:07:26 STATE: test-node.js event: detect +2022-07-13 12:07:26 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg default +2022-07-13 12:07:26 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-07-13 12:07:26 DATA:  test-node.js result: performance: load: null total: 1390 +2022-07-13 12:07:26 STATE: test-node.js event: detect +2022-07-13 12:07:26 STATE: test-node.js event: detect +2022-07-13 12:07:26 STATE: test-node.js passed: detect: samples/in/ai-face.jpg default +2022-07-13 12:07:26 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-07-13 12:07:26 DATA:  test-node.js result: performance: load: null total: 1390 +2022-07-13 12:07:26 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default +2022-07-13 12:07:26 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-07-13 12:07:26 DATA:  test-node.js result: performance: load: null total: 1390 +2022-07-13 12:07:26 INFO:  test-node.js test: monkey-patch +2022-07-13 12:07:26 STATE: test-node.js event: image +2022-07-13 12:07:26 STATE: test-node.js event: detect +2022-07-13 12:07:26 STATE: test-node.js passed: monkey patch +2022-07-13 12:07:26 STATE: test-node.js passed: segmentation [65536] +2022-07-13 12:07:26 STATE: test-node.js passeed: equal usage +2022-07-13 12:07:26 INFO:  test-node.js test: input compare +2022-07-13 12:07:26 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-07-13 12:07:27 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-07-13 12:07:27 STATE: test-node.js passed: image compare 0 23.275441687091504 +2022-07-13 12:07:27 INFO:  test-node.js events: {"image":21,"detect":21,"warmup":2} +2022-07-13 12:07:27 INFO:  test-node.js tensors 1927 +2022-07-13 12:07:27 INFO:  test-node.js test complete: 9408 ms +2022-07-13 12:07:27 INFO:  +2022-07-13 12:07:27 INFO:  test-node-gpu.js start +2022-07-13 12:07:28 INFO:  test-node-gpu.js test: configuration validation +2022-07-13 12:07:28 STATE: test-node-gpu.js passed: configuration default validation [] +2022-07-13 12:07:28 STATE: test-node-gpu.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}] +2022-07-13 12:07:28 INFO:  test-node-gpu.js test: model load +2022-07-13 12:07:28 STATE: test-node-gpu.js passed: models loaded 22 12 [{"name":"ssrnetage","loaded":false,"url":null},{"name":"gear","loaded":false,"url":null},{"name":"blazeposedetect","loaded":false,"url":null},{"name":"blazepose","loaded":false,"url":null},{"name":"centernet","loaded":true,"url":"file://models/mb3-centernet.json"},{"name":"efficientpose","loaded":false,"url":null},{"name":"mobilefacenet","loaded":false,"url":null},{"name":"emotion","loaded":true,"url":"file://models/emotion.json"},{"name":"facedetect","loaded":true,"url":"file://models/blazeface.json"},{"name":"faceiris","loaded":true,"url":"file://models/iris.json"},{"name":"facemesh","loaded":true,"url":"file://models/facemesh.json"},{"name":"faceres","loaded":true,"url":"file://models/faceres.json"},{"name":"ssrnetgender","loaded":false,"url":null},{"name":"handpose","loaded":false,"url":null},{"name":"handskeleton","loaded":true,"url":"file://models/handlandmark-full.json"},{"name":"handtrack","loaded":true,"url":"file://models/handtrack.json"},{"name":"liveness","loaded":true,"url":"file://models/liveness.json"},{"name":"movenet","loaded":true,"url":"file://models/movenet-lightning.json"},{"name":"nanodet","loaded":false,"url":null},{"name":"posenet","loaded":false,"url":null},{"name":"segmentation","loaded":true,"url":"file://models/selfie.json"},{"name":"antispoof","loaded":true,"url":"file://models/antispoof.json"}] +2022-07-13 12:07:28 INFO:  test-node-gpu.js test: warmup +2022-07-13 12:07:28 STATE: test-node-gpu.js passed: create human +2022-07-13 12:07:28 INFO:  test-node-gpu.js human version: 2.8.1 +2022-07-13 12:07:28 INFO:  test-node-gpu.js platform: linux x64 agent: NodeJS v16.15.0 +2022-07-13 12:07:28 INFO:  test-node-gpu.js tfjs version: 3.18.0 +2022-07-13 12:07:28 INFO:  test-node-gpu.js tensorflow binding version: 2.7.0-dev20211101 +2022-07-13 12:07:28 STATE: test-node-gpu.js passed: set backend: tensorflow +2022-07-13 12:07:28 STATE: test-node-gpu.js tensors 1921 +2022-07-13 12:07:28 STATE: test-node-gpu.js passed: load models +2022-07-13 12:07:28 STATE: test-node-gpu.js result: defined models: 22 loaded models: 12 +2022-07-13 12:07:28 STATE: test-node-gpu.js passed: warmup: none default +2022-07-13 12:07:28 DATA:  test-node-gpu.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {} +2022-07-13 12:07:28 DATA:  test-node-gpu.js result: performance: load: null total: null +2022-07-13 12:07:28 STATE: test-node-gpu.js passed: warmup none result match +2022-07-13 12:07:28 STATE: test-node-gpu.js event: image +2022-07-13 12:07:30 STATE: test-node-gpu.js event: detect +2022-07-13 12:07:30 STATE: test-node-gpu.js event: warmup +2022-07-13 12:07:30 STATE: test-node-gpu.js passed: warmup: face default +2022-07-13 12:07: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-07-13 12:07:30 DATA:  test-node-gpu.js result: performance: load: null total: 2155 +2022-07-13 12:07:30 STATE: test-node-gpu.js passed: warmup face result match +2022-07-13 12:07:30 STATE: test-node-gpu.js event: image +2022-07-13 12:07:30 STATE: test-node-gpu.js event: detect +2022-07-13 12:07:30 STATE: test-node-gpu.js event: warmup +2022-07-13 12:07:30 STATE: test-node-gpu.js passed: warmup: body default +2022-07-13 12:07:30 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-13 12:07:30 DATA:  test-node-gpu.js result: performance: load: null total: 283 +2022-07-13 12:07:30 STATE: test-node-gpu.js passed: warmup body result match +2022-07-13 12:07: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"},{"face":0,"gesture":"mouth 10% open"},{"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-07-13 12:07:30 INFO:  test-node-gpu.js test: details verification +2022-07-13 12:07:31 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-07-13 12:07:31 STATE: test-node-gpu.js event: image +2022-07-13 12:07:31 STATE: test-node-gpu.js event: detect +2022-07-13 12:07:31 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default +2022-07-13 12:07:31 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-13 12:07:31 DATA:  test-node-gpu.js result: performance: load: null total: 261 +2022-07-13 12:07:31 STATE: test-node-gpu.js passed: details face length 1 +2022-07-13 12:07:31 STATE: test-node-gpu.js passed: details face score 1 0.93 1 +2022-07-13 12:07:31 STATE: test-node-gpu.js passed: details face age/gender 23.7 female 0.97 85.47 +2022-07-13 12:07:31 STATE: test-node-gpu.js passed: details face arrays 4 478 1024 +2022-07-13 12:07:31 STATE: test-node-gpu.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"} +2022-07-13 12:07:31 STATE: test-node-gpu.js passed: details face anti-spoofing 0.79 +2022-07-13 12:07:31 STATE: test-node-gpu.js passed: details face liveness 0.83 +2022-07-13 12:07:31 STATE: test-node-gpu.js passed: details body length 1 +2022-07-13 12:07:31 STATE: test-node-gpu.js passed: details body 0.92 17 6 +2022-07-13 12:07:31 STATE: test-node-gpu.js passed: details hand length 1 +2022-07-13 12:07:31 STATE: test-node-gpu.js passed: details hand 0.51 0.73 point +2022-07-13 12:07:31 STATE: test-node-gpu.js passed: details hand arrays 21 5 7 +2022-07-13 12:07:31 STATE: test-node-gpu.js passed: details gesture length 7 +2022-07-13 12:07:31 STATE: test-node-gpu.js passed: details gesture first {"face":0,"gesture":"facing right"} +2022-07-13 12:07:31 STATE: test-node-gpu.js passed: details object length 1 +2022-07-13 12:07:31 STATE: test-node-gpu.js passed: details object 0.72 person +2022-07-13 12:07:32 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996928} +2022-07-13 12:07:32 STATE: test-node-gpu.js event: image +2022-07-13 12:07:32 STATE: test-node-gpu.js event: detect +2022-07-13 12:07:32 STATE: test-node-gpu.js passed: tensor shape: [1,1200,1200,4] dtype: float32 +2022-07-13 12:07:34 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1371996928} +2022-07-13 12:07:34 STATE: test-node-gpu.js event: image +2022-07-13 12:07:34 STATE: test-node-gpu.js event: detect +2022-07-13 12:07:34 STATE: test-node-gpu.js passed: tensor shape: [1200,1200,4] dtype: float32 +2022-07-13 12:07:34 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-07-13 12:07:34 STATE: test-node-gpu.js event: image +2022-07-13 12:07:34 STATE: test-node-gpu.js event: detect +2022-07-13 12:07:34 STATE: test-node-gpu.js passed: tensor shape: [1,1200,1200,3] dtype: float32 +2022-07-13 12:07:35 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1004796928} +2022-07-13 12:07:35 STATE: test-node-gpu.js event: image +2022-07-13 12:07:35 STATE: test-node-gpu.js event: detect +2022-07-13 12:07:35 STATE: test-node-gpu.js passed: tensor shape: [1200,1200,3] dtype: float32 +2022-07-13 12:07:35 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871} +2022-07-13 12:07:35 STATE: test-node-gpu.js event: image +2022-07-13 12:07:35 STATE: test-node-gpu.js event: detect +2022-07-13 12:07:35 STATE: test-node-gpu.js passed: tensor shape: [1,1200,1200,4] dtype: int32 +2022-07-13 12:07:35 INFO:  test-node-gpu.js test default +2022-07-13 12:07:36 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-07-13 12:07:36 STATE: test-node-gpu.js event: image +2022-07-13 12:07:36 STATE: test-node-gpu.js event: detect +2022-07-13 12:07:36 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default +2022-07-13 12:07:36 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-13 12:07:36 DATA:  test-node-gpu.js result: performance: load: null total: 209 +2022-07-13 12:07:36 STATE: test-node-gpu.js passed: default result face match 1 female 0.97 +2022-07-13 12:07:36 INFO:  test-node-gpu.js test sync +2022-07-13 12:07:36 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-07-13 12:07:36 STATE: test-node-gpu.js event: image +2022-07-13 12:07:36 STATE: test-node-gpu.js event: detect +2022-07-13 12:07:36 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default +2022-07-13 12:07:36 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-13 12:07:36 DATA:  test-node-gpu.js result: performance: load: null total: 206 +2022-07-13 12:07:36 STATE: test-node-gpu.js passed: default sync 1 female 0.97 +2022-07-13 12:07:36 INFO:  test-node-gpu.js test: image process +2022-07-13 12:07:36 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-07-13 12:07:36 STATE: test-node-gpu.js passed: image input null [1,256,256,3] +2022-07-13 12:07:36 INFO:  test-node-gpu.js test: image null +2022-07-13 12:07:36 STATE: test-node-gpu.js passed: invalid input could not convert input to tensor +2022-07-13 12:07:36 INFO:  test-node-gpu.js test face similarity +2022-07-13 12:07:36 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-07-13 12:07:36 STATE: test-node-gpu.js event: image +2022-07-13 12:07:36 STATE: test-node-gpu.js event: detect +2022-07-13 12:07:36 STATE: test-node-gpu.js passed: detect: samples/in/ai-face.jpg default +2022-07-13 12:07:36 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-07-13 12:07:36 DATA:  test-node-gpu.js result: performance: load: null total: 208 +2022-07-13 12:07:37 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-07-13 12:07:37 STATE: test-node-gpu.js event: image +2022-07-13 12:07:37 STATE: test-node-gpu.js event: detect +2022-07-13 12:07:37 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default +2022-07-13 12:07:37 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-13 12:07:37 DATA:  test-node-gpu.js result: performance: load: null total: 240 +2022-07-13 12:07:37 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} +2022-07-13 12:07:37 STATE: test-node-gpu.js event: image +2022-07-13 12:07:37 STATE: test-node-gpu.js event: detect +2022-07-13 12:07:37 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg default +2022-07-13 12:07:37 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 4 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":7} +2022-07-13 12:07:37 DATA:  test-node-gpu.js result: performance: load: null total: 180 +2022-07-13 12:07:37 STATE: test-node-gpu.js passed: face descriptor +2022-07-13 12:07:37 STATE: test-node-gpu.js passed: face similarity {"similarity":[1,0.447238756461232,0.556914029877052],"descriptors":[1024,1024,1024]} +2022-07-13 12:07:37 INFO:  test-node-gpu.js test face matching +2022-07-13 12:07:37 STATE: test-node-gpu.js passed: face database 40 +2022-07-13 12:07:37 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-07-13 12:07:37 INFO:  test-node-gpu.js test object +2022-07-13 12:07:37 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-07-13 12:07:37 STATE: test-node-gpu.js event: image +2022-07-13 12:07:38 STATE: test-node-gpu.js event: detect +2022-07-13 12:07:38 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default +2022-07-13 12:07:38 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-13 12:07:38 DATA:  test-node-gpu.js result: performance: load: null total: 214 +2022-07-13 12:07:38 STATE: test-node-gpu.js passed: object result match +2022-07-13 12:07:38 INFO:  test-node-gpu.js test sensitive +2022-07-13 12:07:38 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-07-13 12:07:38 STATE: test-node-gpu.js event: image +2022-07-13 12:07:38 STATE: test-node-gpu.js event: detect +2022-07-13 12:07:38 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default +2022-07-13 12:07:38 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-13 12:07:38 DATA:  test-node-gpu.js result: performance: load: null total: 210 +2022-07-13 12:07:38 STATE: test-node-gpu.js passed: sensitive result match +2022-07-13 12:07:38 STATE: test-node-gpu.js passed: sensitive face result match +2022-07-13 12:07:38 STATE: test-node-gpu.js passed: sensitive face emotion result [{"score":0.59,"emotion":"angry"},{"score":0.29,"emotion":"fear"}] +2022-07-13 12:07:38 STATE: test-node-gpu.js passed: sensitive body result match +2022-07-13 12:07:38 STATE: test-node-gpu.js passed: sensitive hand result match +2022-07-13 12:07:38 INFO:  test-node-gpu.js test detectors +2022-07-13 12:07:38 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-07-13 12:07:38 STATE: test-node-gpu.js event: image +2022-07-13 12:07:38 STATE: test-node-gpu.js event: detect +2022-07-13 12:07:38 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default +2022-07-13 12:07:38 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-07-13 12:07:38 DATA:  test-node-gpu.js result: performance: load: null total: 140 +2022-07-13 12:07:38 STATE: test-node-gpu.js passed: detector result face match +2022-07-13 12:07:38 STATE: test-node-gpu.js passed: detector result hand match +2022-07-13 12:07:38 INFO:  test-node-gpu.js test: multi-instance +2022-07-13 12:07:38 STATE: test-node-gpu.js event: image +2022-07-13 12:07:39 STATE: test-node-gpu.js event: detect +2022-07-13 12:07:39 STATE: test-node-gpu.js passed: detect: random default +2022-07-13 12:07:39 DATA:  test-node-gpu.js result: face: 0 body: 1 hand: 0 gesture: 0 object: 0 person: 0 {} {} {"score":0.07,"keypoints":15} +2022-07-13 12:07:39 DATA:  test-node-gpu.js result: performance: load: null total: 135 +2022-07-13 12:07:39 INFO:  test-node-gpu.js test: first instance +2022-07-13 12:07:39 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} +2022-07-13 12:07:39 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg default +2022-07-13 12:07:39 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-07-13 12:07:39 DATA:  test-node-gpu.js result: performance: load: null total: 105 +2022-07-13 12:07:39 INFO:  test-node-gpu.js test: second instance +2022-07-13 12:07:39 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} +2022-07-13 12:07:39 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg default +2022-07-13 12:07:39 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-07-13 12:07:39 DATA:  test-node-gpu.js result: performance: load: null total: 102 +2022-07-13 12:07:39 INFO:  test-node-gpu.js test: concurrent +2022-07-13 12:07:39 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-07-13 12:07:39 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-07-13 12:07:39 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-07-13 12:07:39 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-07-13 12:07:40 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} +2022-07-13 12:07:40 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} +2022-07-13 12:07:40 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-07-13 12:07:40 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-07-13 12:07:40 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} +2022-07-13 12:07:40 STATE: test-node-gpu.js event: image +2022-07-13 12:07:40 STATE: test-node-gpu.js event: image +2022-07-13 12:07:40 STATE: test-node-gpu.js event: image +2022-07-13 12:07:41 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg default +2022-07-13 12:07:41 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-07-13 12:07:41 DATA:  test-node-gpu.js result: performance: load: null total: 1179 +2022-07-13 12:07:41 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg default +2022-07-13 12:07:41 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-07-13 12:07:41 DATA:  test-node-gpu.js result: performance: load: null total: 1179 +2022-07-13 12:07:41 STATE: test-node-gpu.js passed: detect: samples/in/ai-face.jpg default +2022-07-13 12:07:41 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-07-13 12:07:41 DATA:  test-node-gpu.js result: performance: load: null total: 1255 +2022-07-13 12:07:41 STATE: test-node-gpu.js passed: detect: samples/in/ai-face.jpg default +2022-07-13 12:07:41 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-07-13 12:07:41 DATA:  test-node-gpu.js result: performance: load: null total: 1255 +2022-07-13 12:07:41 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default +2022-07-13 12:07:41 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-07-13 12:07:41 DATA:  test-node-gpu.js result: performance: load: null total: 1255 +2022-07-13 12:07:41 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default +2022-07-13 12:07:41 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-07-13 12:07:41 DATA:  test-node-gpu.js result: performance: load: null total: 1255 +2022-07-13 12:07:41 STATE: test-node-gpu.js event: detect +2022-07-13 12:07:41 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg default +2022-07-13 12:07:41 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-07-13 12:07:41 DATA:  test-node-gpu.js result: performance: load: null total: 976 +2022-07-13 12:07:41 STATE: test-node-gpu.js event: detect +2022-07-13 12:07:41 STATE: test-node-gpu.js event: detect +2022-07-13 12:07:41 STATE: test-node-gpu.js passed: detect: samples/in/ai-face.jpg default +2022-07-13 12:07:41 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-07-13 12:07:41 DATA:  test-node-gpu.js result: performance: load: null total: 976 +2022-07-13 12:07:41 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default +2022-07-13 12:07:41 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-07-13 12:07:41 DATA:  test-node-gpu.js result: performance: load: null total: 976 +2022-07-13 12:07:41 INFO:  test-node-gpu.js test: monkey-patch +2022-07-13 12:07:41 STATE: test-node-gpu.js event: image +2022-07-13 12:07:41 STATE: test-node-gpu.js event: detect +2022-07-13 12:07:41 STATE: test-node-gpu.js passed: monkey patch +2022-07-13 12:07:41 STATE: test-node-gpu.js passed: segmentation [65536] +2022-07-13 12:07:41 STATE: test-node-gpu.js passeed: equal usage +2022-07-13 12:07:41 INFO:  test-node-gpu.js test: input compare +2022-07-13 12:07:41 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-07-13 12:07:41 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-07-13 12:07:41 STATE: test-node-gpu.js passed: image compare 0 23.275441687091504 +2022-07-13 12:07:41 INFO:  test-node-gpu.js events: {"image":21,"detect":21,"warmup":2} +2022-07-13 12:07:41 INFO:  test-node-gpu.js tensors 1927 +2022-07-13 12:07:41 INFO:  test-node-gpu.js test complete: 13851 ms +2022-07-13 12:07:42 INFO:  +2022-07-13 12:07:42 INFO:  test-node-wasm.js start +2022-07-13 12:07:42 STATE: test-node-wasm.js passed: model server: https://vladmandic.github.io/human/models/ +2022-07-13 12:07:42 INFO:  test-node-wasm.js test: configuration validation +2022-07-13 12:07:42 STATE: test-node-wasm.js passed: configuration default validation [] +2022-07-13 12:07:42 STATE: test-node-wasm.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}] +2022-07-13 12:07:42 INFO:  test-node-wasm.js test: model load +2022-07-13 12:07:43 STATE: test-node-wasm.js passed: models loaded 22 12 [{"name":"ssrnetage","loaded":false,"url":null},{"name":"gear","loaded":false,"url":null},{"name":"blazeposedetect","loaded":false,"url":null},{"name":"blazepose","loaded":false,"url":null},{"name":"centernet","loaded":true,"url":"https://vladmandic.github.io/human/models/mb3-centernet.json"},{"name":"efficientpose","loaded":false,"url":null},{"name":"mobilefacenet","loaded":false,"url":null},{"name":"emotion","loaded":true,"url":"https://vladmandic.github.io/human/models/emotion.json"},{"name":"facedetect","loaded":true,"url":"https://vladmandic.github.io/human/models/blazeface.json"},{"name":"faceiris","loaded":true,"url":"https://vladmandic.github.io/human/models/iris.json"},{"name":"facemesh","loaded":true,"url":"https://vladmandic.github.io/human/models/facemesh.json"},{"name":"faceres","loaded":true,"url":"https://vladmandic.github.io/human/models/faceres.json"},{"name":"ssrnetgender","loaded":false,"url":null},{"name":"handpose","loaded":false,"url":null},{"name":"handskeleton","loaded":true,"url":"https://vladmandic.github.io/human/models/handlandmark-full.json"},{"name":"handtrack","loaded":true,"url":"https://vladmandic.github.io/human/models/handtrack.json"},{"name":"liveness","loaded":true,"url":"https://vladmandic.github.io/human/models/liveness.json"},{"name":"movenet","loaded":true,"url":"https://vladmandic.github.io/human/models/movenet-lightning.json"},{"name":"nanodet","loaded":false,"url":null},{"name":"posenet","loaded":false,"url":null},{"name":"segmentation","loaded":true,"url":"https://vladmandic.github.io/human/models/selfie.json"},{"name":"antispoof","loaded":true,"url":"https://vladmandic.github.io/human/models/antispoof.json"}] +2022-07-13 12:07:43 INFO:  test-node-wasm.js test: warmup +2022-07-13 12:07:43 STATE: test-node-wasm.js passed: create human +2022-07-13 12:07:43 INFO:  test-node-wasm.js human version: 2.8.1 +2022-07-13 12:07:43 INFO:  test-node-wasm.js platform: linux x64 agent: NodeJS v16.15.0 +2022-07-13 12:07:43 INFO:  test-node-wasm.js tfjs version: 3.18.0 +2022-07-13 12:07:43 STATE: test-node-wasm.js passed: set backend: wasm +2022-07-13 12:07:43 STATE: test-node-wasm.js tensors 1921 +2022-07-13 12:07:43 STATE: test-node-wasm.js passed: load models +2022-07-13 12:07:43 STATE: test-node-wasm.js result: defined models: 22 loaded models: 12 +2022-07-13 12:07:43 STATE: test-node-wasm.js passed: warmup: none default +2022-07-13 12:07:43 DATA:  test-node-wasm.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {} +2022-07-13 12:07:43 DATA:  test-node-wasm.js result: performance: load: null total: null +2022-07-13 12:07:43 STATE: test-node-wasm.js passed: warmup none result match +2022-07-13 12:07:43 STATE: test-node-wasm.js event: image +2022-07-13 12:07:44 STATE: test-node-wasm.js event: detect +2022-07-13 12:07:44 STATE: test-node-wasm.js event: warmup +2022-07-13 12:07:44 STATE: test-node-wasm.js passed: warmup: face default +2022-07-13 12:07:44 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-07-13 12:07:44 DATA:  test-node-wasm.js result: performance: load: null total: 547 +2022-07-13 12:07:44 STATE: test-node-wasm.js passed: warmup face result match +2022-07-13 12:07:44 STATE: test-node-wasm.js event: image +2022-07-13 12:07:44 STATE: test-node-wasm.js event: detect +2022-07-13 12:07:44 STATE: test-node-wasm.js event: warmup +2022-07-13 12:07:44 STATE: test-node-wasm.js passed: warmup: body default +2022-07-13 12:07:44 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-13 12:07:44 DATA:  test-node-wasm.js result: performance: load: null total: 401 +2022-07-13 12:07:44 STATE: test-node-wasm.js passed: warmup body result match +2022-07-13 12:07:44 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"},{"face":0,"gesture":"mouth 21% open"},{"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-07-13 12:07:44 INFO:  test-node-wasm.js test: details verification +2022-07-13 12:07:44 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-07-13 12:07:44 STATE: test-node-wasm.js event: image +2022-07-13 12:07:45 STATE: test-node-wasm.js event: detect +2022-07-13 12:07:45 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default +2022-07-13 12:07:45 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-13 12:07:45 DATA:  test-node-wasm.js result: performance: load: null total: 338 +2022-07-13 12:07:45 STATE: test-node-wasm.js passed: details face length 1 +2022-07-13 12:07:45 STATE: test-node-wasm.js passed: details face score 1 0.93 1 +2022-07-13 12:07:45 STATE: test-node-wasm.js passed: details face age/gender 23.7 female 0.97 85.47 +2022-07-13 12:07:45 STATE: test-node-wasm.js passed: details face arrays 4 478 1024 +2022-07-13 12:07:45 STATE: test-node-wasm.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"} +2022-07-13 12:07:45 STATE: test-node-wasm.js passed: details face anti-spoofing 0.79 +2022-07-13 12:07:45 STATE: test-node-wasm.js passed: details face liveness 0.83 +2022-07-13 12:07:45 STATE: test-node-wasm.js passed: details body length 1 +2022-07-13 12:07:45 STATE: test-node-wasm.js passed: details body 0.92 17 6 +2022-07-13 12:07:45 STATE: test-node-wasm.js passed: details hand length 1 +2022-07-13 12:07:45 STATE: test-node-wasm.js passed: details hand 0.51 0.73 point +2022-07-13 12:07:45 STATE: test-node-wasm.js passed: details hand arrays 21 5 7 +2022-07-13 12:07:45 STATE: test-node-wasm.js passed: details gesture length 7 +2022-07-13 12:07:45 STATE: test-node-wasm.js passed: details gesture first {"face":0,"gesture":"facing right"} +2022-07-13 12:07:45 STATE: test-node-wasm.js passed: details object length 1 +2022-07-13 12:07:45 STATE: test-node-wasm.js passed: details object 0.72 person +2022-07-13 12:07:45 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1413675264} +2022-07-13 12:07:45 STATE: test-node-wasm.js event: image +2022-07-13 12:07:45 STATE: test-node-wasm.js event: detect +2022-07-13 12:07:45 STATE: test-node-wasm.js passed: tensor shape: [1,1200,1200,4] dtype: float32 +2022-07-13 12:07:46 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1413675264} +2022-07-13 12:07:46 STATE: test-node-wasm.js event: image +2022-07-13 12:07:46 STATE: test-node-wasm.js event: detect +2022-07-13 12:07:46 STATE: test-node-wasm.js passed: tensor shape: [1200,1200,4] dtype: float32 +2022-07-13 12:07:46 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-07-13 12:07:46 STATE: test-node-wasm.js event: image +2022-07-13 12:07:47 STATE: test-node-wasm.js event: detect +2022-07-13 12:07:47 STATE: test-node-wasm.js passed: tensor shape: [1,1200,1200,3] dtype: float32 +2022-07-13 12:07:47 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1038921856} +2022-07-13 12:07:47 STATE: test-node-wasm.js event: image +2022-07-13 12:07:47 STATE: test-node-wasm.js event: detect +2022-07-13 12:07:47 STATE: test-node-wasm.js passed: tensor shape: [1200,1200,3] dtype: float32 +2022-07-13 12:07:47 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871} +2022-07-13 12:07:47 STATE: test-node-wasm.js event: image +2022-07-13 12:07:48 STATE: test-node-wasm.js event: detect +2022-07-13 12:07:48 STATE: test-node-wasm.js passed: tensor shape: [1,1200,1200,4] dtype: int32 +2022-07-13 12:07:48 INFO:  test-node-wasm.js test default +2022-07-13 12:07:48 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-07-13 12:07:48 STATE: test-node-wasm.js event: image +2022-07-13 12:07:48 STATE: test-node-wasm.js event: detect +2022-07-13 12:07:48 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default +2022-07-13 12:07:48 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-13 12:07:48 DATA:  test-node-wasm.js result: performance: load: null total: 333 +2022-07-13 12:07:48 STATE: test-node-wasm.js passed: default result face match 1 female 0.97 +2022-07-13 12:07:48 INFO:  test-node-wasm.js test sync +2022-07-13 12:07:49 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-07-13 12:07:49 STATE: test-node-wasm.js event: image +2022-07-13 12:07:49 STATE: test-node-wasm.js event: detect +2022-07-13 12:07:49 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default +2022-07-13 12:07:49 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-13 12:07:49 DATA:  test-node-wasm.js result: performance: load: null total: 360 +2022-07-13 12:07:49 STATE: test-node-wasm.js passed: default sync 1 female 0.97 +2022-07-13 12:07:49 INFO:  test-node-wasm.js test: image process +2022-07-13 12:07:49 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-07-13 12:07:49 STATE: test-node-wasm.js passed: image input null [1,256,256,3] +2022-07-13 12:07:49 INFO:  test-node-wasm.js test: image null +2022-07-13 12:07:49 STATE: test-node-wasm.js passed: invalid input could not convert input to tensor +2022-07-13 12:07:49 INFO:  test-node-wasm.js test face similarity +2022-07-13 12:07:49 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-07-13 12:07:49 STATE: test-node-wasm.js event: image +2022-07-13 12:07:49 STATE: test-node-wasm.js event: detect +2022-07-13 12:07:49 STATE: test-node-wasm.js passed: detect: samples/in/ai-face.jpg default +2022-07-13 12:07:49 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-07-13 12:07:49 DATA:  test-node-wasm.js result: performance: load: null total: 362 +2022-07-13 12:07:50 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-07-13 12:07:50 STATE: test-node-wasm.js event: image +2022-07-13 12:07:50 STATE: test-node-wasm.js event: detect +2022-07-13 12:07:50 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default +2022-07-13 12:07:50 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-13 12:07:50 DATA:  test-node-wasm.js result: performance: load: null total: 404 +2022-07-13 12:07:50 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} +2022-07-13 12:07:50 STATE: test-node-wasm.js event: image +2022-07-13 12:07:50 STATE: test-node-wasm.js event: detect +2022-07-13 12:07:50 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg default +2022-07-13 12:07:50 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 4 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":7} +2022-07-13 12:07:50 DATA:  test-node-wasm.js result: performance: load: null total: 335 +2022-07-13 12:07:50 STATE: test-node-wasm.js passed: face descriptor +2022-07-13 12:07:50 STATE: test-node-wasm.js passed: face similarity {"similarity":[1,0.5266119940661309,0.4858842904087851],"descriptors":[1024,1024,1024]} +2022-07-13 12:07:50 INFO:  test-node-wasm.js test face matching +2022-07-13 12:07:50 STATE: test-node-wasm.js passed: face database 40 +2022-07-13 12:07:50 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-07-13 12:07:50 INFO:  test-node-wasm.js test object +2022-07-13 12:07:51 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-07-13 12:07:51 STATE: test-node-wasm.js event: image +2022-07-13 12:07:51 STATE: test-node-wasm.js event: detect +2022-07-13 12:07:51 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default +2022-07-13 12:07:51 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-13 12:07:51 DATA:  test-node-wasm.js result: performance: load: null total: 375 +2022-07-13 12:07:51 STATE: test-node-wasm.js passed: object result match +2022-07-13 12:07:51 INFO:  test-node-wasm.js test sensitive +2022-07-13 12:07:51 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-07-13 12:07:51 STATE: test-node-wasm.js event: image +2022-07-13 12:07:52 STATE: test-node-wasm.js event: detect +2022-07-13 12:07:52 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default +2022-07-13 12:07:52 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 10 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-13 12:07:52 DATA:  test-node-wasm.js result: performance: load: null total: 370 +2022-07-13 12:07:52 STATE: test-node-wasm.js passed: sensitive result match +2022-07-13 12:07:52 STATE: test-node-wasm.js passed: sensitive face result match +2022-07-13 12:07:52 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-07-13 12:07:52 STATE: test-node-wasm.js passed: sensitive body result match +2022-07-13 12:07:52 STATE: test-node-wasm.js passed: sensitive hand result match +2022-07-13 12:07:52 INFO:  test-node-wasm.js test detectors +2022-07-13 12:07:52 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-07-13 12:07:52 STATE: test-node-wasm.js event: image +2022-07-13 12:07:52 STATE: test-node-wasm.js event: detect +2022-07-13 12:07:52 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default +2022-07-13 12:07: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-07-13 12:07:52 DATA:  test-node-wasm.js result: performance: load: null total: 236 +2022-07-13 12:07:52 STATE: test-node-wasm.js passed: detector result face match +2022-07-13 12:07:52 STATE: test-node-wasm.js passed: detector result hand match +2022-07-13 12:07:52 INFO:  test-node-wasm.js test: multi-instance +2022-07-13 12:07:52 STATE: test-node-wasm.js event: image +2022-07-13 12:07:52 STATE: test-node-wasm.js event: detect +2022-07-13 12:07:52 STATE: test-node-wasm.js passed: detect: random default +2022-07-13 12:07:52 DATA:  test-node-wasm.js result: face: 0 body: 1 hand: 0 gesture: 0 object: 0 person: 0 {} {} {"score":0.06,"keypoints":15} +2022-07-13 12:07:52 DATA:  test-node-wasm.js result: performance: load: null total: 208 +2022-07-13 12:07:52 INFO:  test-node-wasm.js test: first instance +2022-07-13 12:07:52 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} +2022-07-13 12:07:53 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg default +2022-07-13 12:07:53 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-07-13 12:07:53 DATA:  test-node-wasm.js result: performance: load: null total: 252 +2022-07-13 12:07:53 INFO:  test-node-wasm.js test: second instance +2022-07-13 12:07:53 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} +2022-07-13 12:07:53 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg default +2022-07-13 12:07:53 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-07-13 12:07:53 DATA:  test-node-wasm.js result: performance: load: null total: 254 +2022-07-13 12:07:53 INFO:  test-node-wasm.js test: concurrent +2022-07-13 12:07:53 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-07-13 12:07:53 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-07-13 12:07:53 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-07-13 12:07:54 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-07-13 12:07:54 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} +2022-07-13 12:07:54 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} +2022-07-13 12:07:54 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-07-13 12:07:54 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-07-13 12:07:54 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} +2022-07-13 12:07:54 STATE: test-node-wasm.js event: image +2022-07-13 12:07:54 STATE: test-node-wasm.js event: image +2022-07-13 12:07:54 STATE: test-node-wasm.js event: image +2022-07-13 12:07:56 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg default +2022-07-13 12:07:56 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-07-13 12:07:56 DATA:  test-node-wasm.js result: performance: load: null total: 2255 +2022-07-13 12:07:56 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg default +2022-07-13 12:07:56 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-07-13 12:07:56 DATA:  test-node-wasm.js result: performance: load: null total: 2255 +2022-07-13 12:07:56 STATE: test-node-wasm.js passed: detect: samples/in/ai-face.jpg default +2022-07-13 12:07:56 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-07-13 12:07:56 DATA:  test-node-wasm.js result: performance: load: null total: 2530 +2022-07-13 12:07:56 STATE: test-node-wasm.js passed: detect: samples/in/ai-face.jpg default +2022-07-13 12:07:56 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-07-13 12:07:56 DATA:  test-node-wasm.js result: performance: load: null total: 2530 +2022-07-13 12:07:56 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default +2022-07-13 12:07:56 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-07-13 12:07:56 DATA:  test-node-wasm.js result: performance: load: null total: 2530 +2022-07-13 12:07:56 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default +2022-07-13 12:07:56 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-07-13 12:07:56 DATA:  test-node-wasm.js result: performance: load: null total: 2530 +2022-07-13 12:07:56 STATE: test-node-wasm.js event: detect +2022-07-13 12:07:56 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg default +2022-07-13 12:07:56 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-07-13 12:07:56 DATA:  test-node-wasm.js result: performance: load: null total: 2163 +2022-07-13 12:07:56 STATE: test-node-wasm.js event: detect +2022-07-13 12:07:56 STATE: test-node-wasm.js event: detect +2022-07-13 12:07:56 STATE: test-node-wasm.js passed: detect: samples/in/ai-face.jpg default +2022-07-13 12:07:56 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-07-13 12:07:56 DATA:  test-node-wasm.js result: performance: load: null total: 2163 +2022-07-13 12:07:56 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default +2022-07-13 12:07:56 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-07-13 12:07:56 DATA:  test-node-wasm.js result: performance: load: null total: 2163 +2022-07-13 12:07:56 INFO:  test-node-wasm.js test: monkey-patch +2022-07-13 12:07:56 STATE: test-node-wasm.js event: image +2022-07-13 12:07:56 STATE: test-node-wasm.js event: detect +2022-07-13 12:07:56 STATE: test-node-wasm.js passed: monkey patch +2022-07-13 12:07:56 STATE: test-node-wasm.js passed: segmentation [65536] +2022-07-13 12:07:56 STATE: test-node-wasm.js passeed: equal usage +2022-07-13 12:07:56 INFO:  test-node-wasm.js test: input compare +2022-07-13 12:07:57 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-07-13 12:07:57 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-07-13 12:07:57 STATE: test-node-wasm.js passed: image compare 0 23.280073018790848 +2022-07-13 12:07:57 INFO:  test-node-wasm.js events: {"image":21,"detect":21,"warmup":2} +2022-07-13 12:07:57 INFO:  test-node-wasm.js tensors 1929 +2022-07-13 12:07:57 INFO:  test-node-wasm.js test complete: 14559 ms +2022-07-13 12:07:57 INFO:  all tests complete +2022-07-13 12:07:57 INFO:  failed: {"count":0,"messages":[]} +2022-07-13 12:07:57 INFO:  status: {"test":"test-node.js","passed":101,"failed":0} +2022-07-13 12:07:57 INFO:  status: {"test":"test-node-gpu.js","passed":101,"failed":0} +2022-07-13 12:07:57 INFO:  status: {"test":"test-node-wasm.js","passed":102,"failed":0} diff --git a/types/human.d.ts b/types/human.d.ts index c897d17f..4cd536c2 100644 --- a/types/human.d.ts +++ b/types/human.d.ts @@ -601,6 +601,8 @@ export declare interface FaceResult { mesh: Array; /** detected face mesh normalized to 0..1 */ meshRaw: Array; + /** face contours as array of 2d points normalized to 0..1 */ + /** face contours as array of 2d points */ /** mesh keypoints combined into annotated results */ annotations: Record; /** detected age */