From ebc9c72567f4958b40681c0bd6ab994254007d9c Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Wed, 21 Dec 2022 14:17:07 -0500 Subject: [PATCH] update dependencies --- CHANGELOG.md | 2 +- package.json | 16 +- test/build.log | 100 +- test/test.log | 2001 +++++++++++++++++++------------------- typedoc/assets/main.js | 54 +- typedoc/assets/style.css | 23 + 6 files changed, 1084 insertions(+), 1112 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 43338851..0f66ffe2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,7 @@ ## Changelog -### **HEAD -> main** 2022/11/22 mandic00@live.com +### **HEAD -> main** 2022/11/28 mandic00@live.com ### **release: 3.0.1** 2022/11/22 mandic00@live.com diff --git a/package.json b/package.json index c4536a45..0505c9cd 100644 --- a/package.json +++ b/package.json @@ -74,7 +74,7 @@ "devDependencies": { "@html-eslint/eslint-plugin": "^0.15.0", "@html-eslint/parser": "^0.15.0", - "@microsoft/api-extractor": "^7.33.6", + "@microsoft/api-extractor": "^7.33.7", "@tensorflow/tfjs-backend-cpu": "^4.1.0", "@tensorflow/tfjs-backend-wasm": "^4.1.0", "@tensorflow/tfjs-backend-webgl": "^4.1.0", @@ -83,16 +83,16 @@ "@tensorflow/tfjs-core": "^4.1.0", "@tensorflow/tfjs-node": "^4.1.0", "@tensorflow/tfjs-node-gpu": "^4.1.0", - "@types/node": "^18.11.9", + "@types/node": "^18.11.17", "@types/offscreencanvas": "^2019.7.0", - "@typescript-eslint/eslint-plugin": "^5.44.0", - "@typescript-eslint/parser": "^5.44.0", + "@typescript-eslint/eslint-plugin": "^5.47.0", + "@typescript-eslint/parser": "^5.47.0", "@vladmandic/build": "^0.7.14", "@vladmandic/pilogger": "^0.4.6", "@vladmandic/tfjs": "github:vladmandic/tfjs", "canvas": "^2.10.2", - "esbuild": "^0.15.16", - "eslint": "8.28.0", + "esbuild": "^0.16.10", + "eslint": "8.30.0", "eslint-config-airbnb-base": "^15.0.0", "eslint-plugin-html": "^7.1.0", "eslint-plugin-import": "^2.26.0", @@ -102,7 +102,7 @@ "eslint-plugin-promise": "^6.1.1", "rimraf": "^3.0.2", "tslib": "^2.4.1", - "typedoc": "0.23.21", - "typescript": "4.9.3" + "typedoc": "0.23.23", + "typescript": "4.9.4" } } diff --git a/test/build.log b/test/build.log index 5b9ce130..b46ca36e 100644 --- a/test/build.log +++ b/test/build.log @@ -1,50 +1,50 @@ -2022-11-28 10:20:43 DATA:  Build {"name":"@vladmandic/human","version":"3.0.1"} -2022-11-28 10:20:43 INFO:  Application: {"name":"@vladmandic/human","version":"3.0.1"} -2022-11-28 10:20:43 INFO:  Environment: {"profile":"production","config":".build.json","package":"package.json","tsconfig":true,"eslintrc":true,"git":true} -2022-11-28 10:20:43 INFO:  Toolchain: {"build":"0.7.14","esbuild":"0.15.16","typescript":"4.9.3","typedoc":"0.23.21","eslint":"8.28.0"} -2022-11-28 10:20:43 INFO:  Build: {"profile":"production","steps":["clean","compile","typings","typedoc","lint","changelog"]} -2022-11-28 10:20:43 STATE: Clean: {"locations":["dist/*","types/*","typedoc/*"]} -2022-11-28 10:20:43 STATE: Compile: {"name":"tfjs/browser/version","format":"esm","platform":"browser","input":"tfjs/tf-version.ts","output":"dist/tfjs.version.js","files":1,"inputBytes":1289,"outputBytes":361} -2022-11-28 10:20:43 STATE: Compile: {"name":"tfjs/nodejs/cpu","format":"cjs","platform":"node","input":"tfjs/tf-node.ts","output":"dist/tfjs.esm.js","files":2,"inputBytes":569,"outputBytes":924} -2022-11-28 10:20:43 STATE: Compile: {"name":"human/nodejs/cpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node.js","files":80,"inputBytes":670543,"outputBytes":317619} -2022-11-28 10:20:43 STATE: Compile: {"name":"tfjs/nodejs/gpu","format":"cjs","platform":"node","input":"tfjs/tf-node-gpu.ts","output":"dist/tfjs.esm.js","files":2,"inputBytes":577,"outputBytes":928} -2022-11-28 10:20:43 STATE: Compile: {"name":"human/nodejs/gpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-gpu.js","files":80,"inputBytes":670547,"outputBytes":317623} -2022-11-28 10:20:43 STATE: Compile: {"name":"tfjs/nodejs/wasm","format":"cjs","platform":"node","input":"tfjs/tf-node-wasm.ts","output":"dist/tfjs.esm.js","files":2,"inputBytes":665,"outputBytes":1876} -2022-11-28 10:20:43 STATE: Compile: {"name":"human/nodejs/wasm","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-wasm.js","files":80,"inputBytes":671495,"outputBytes":317734} -2022-11-28 10:20:43 STATE: Compile: {"name":"tfjs/browser/esm/nobundle","format":"esm","platform":"browser","input":"tfjs/tf-browser.ts","output":"dist/tfjs.esm.js","files":2,"inputBytes":1375,"outputBytes":670} -2022-11-28 10:20:43 STATE: Compile: {"name":"human/browser/esm/nobundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm-nobundle.js","files":80,"inputBytes":670289,"outputBytes":316195} -2022-11-28 10:20:43 STATE: Compile: {"name":"tfjs/browser/esm/bundle","format":"esm","platform":"browser","input":"tfjs/tf-browser.ts","output":"dist/tfjs.esm.js","files":10,"inputBytes":1375,"outputBytes":1138192} -2022-11-28 10:20:43 STATE: Compile: {"name":"human/browser/iife/bundle","format":"iife","platform":"browser","input":"src/human.ts","output":"dist/human.js","files":80,"inputBytes":1807811,"outputBytes":1450757} -2022-11-28 10:20:44 STATE: Compile: {"name":"human/browser/esm/bundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm.js","files":80,"inputBytes":1807811,"outputBytes":1894175} -2022-11-28 10:20:48 STATE: Typings: {"input":"src/human.ts","output":"types/lib","files":15} -2022-11-28 10:20:50 STATE: TypeDoc: {"input":"src/human.ts","output":"typedoc","objects":77,"generated":true} -2022-11-28 10:20:50 STATE: Compile: {"name":"demo/typescript","format":"esm","platform":"browser","input":"demo/typescript/index.ts","output":"demo/typescript/index.js","files":1,"inputBytes":6082,"outputBytes":2872} -2022-11-28 10:20:50 STATE: Compile: {"name":"demo/faceid","format":"esm","platform":"browser","input":"demo/faceid/index.ts","output":"demo/faceid/index.js","files":2,"inputBytes":17572,"outputBytes":9456} -2022-11-28 10:20:58 STATE: Lint: {"locations":["**/*.json","src/**/*.ts","test/**/*.js","demo/**/*.js","**/*.md"],"files":169,"errors":0,"warnings":0} -2022-11-28 10:20:59 STATE: ChangeLog: {"repository":"https://github.com/vladmandic/human","branch":"main","output":"CHANGELOG.md"} -2022-11-28 10:20:59 STATE: Copy: {"input":"node_modules/@vladmandic/tfjs/types/tfjs-core.d.ts","output":"types/tfjs-core.d.ts"} -2022-11-28 10:20:59 INFO:  Done... -2022-11-28 10:20:59 STATE: Copy: {"input":"node_modules/@vladmandic/tfjs/types/tfjs.d.ts","output":"types/tfjs.esm.d.ts"} -2022-11-28 10:20:59 STATE: Copy: {"input":"src/types/tsconfig.json","output":"types/tsconfig.json"} -2022-11-28 10:20:59 STATE: Copy: {"input":"src/types/eslint.json","output":"types/.eslintrc.json"} -2022-11-28 10:20:59 STATE: Copy: {"input":"src/types/tfjs.esm.d.ts","output":"dist/tfjs.esm.d.ts"} -2022-11-28 10:20:59 STATE: Filter: {"input":"types/tfjs-core.d.ts"} -2022-11-28 10:21:00 STATE: API-Extractor: {"succeeeded":true,"errors":0,"warnings":204} -2022-11-28 10:21:00 STATE: Filter: {"input":"types/human.d.ts"} -2022-11-28 10:21:00 STATE: Write: {"output":"dist/human.esm-nobundle.d.ts"} -2022-11-28 10:21:00 STATE: Write: {"output":"dist/human.esm.d.ts"} -2022-11-28 10:21:00 STATE: Write: {"output":"dist/human.d.ts"} -2022-11-28 10:21:00 STATE: Write: {"output":"dist/human.node-gpu.d.ts"} -2022-11-28 10:21:00 STATE: Write: {"output":"dist/human.node.d.ts"} -2022-11-28 10:21:00 STATE: Write: {"output":"dist/human.node-wasm.d.ts"} -2022-11-28 10:21:00 INFO:  Analyze models: {"folders":8,"result":"models/models.json"} -2022-11-28 10:21:00 STATE: Models {"folder":"./models","models":12} -2022-11-28 10:21:00 STATE: Models {"folder":"../human-models/models","models":41} -2022-11-28 10:21:00 STATE: Models {"folder":"../blazepose/model/","models":4} -2022-11-28 10:21:00 STATE: Models {"folder":"../anti-spoofing/model","models":1} -2022-11-28 10:21:00 STATE: Models {"folder":"../efficientpose/models","models":3} -2022-11-28 10:21:00 STATE: Models {"folder":"../insightface/models","models":5} -2022-11-28 10:21:00 STATE: Models {"folder":"../movenet/models","models":3} -2022-11-28 10:21:00 STATE: Models {"folder":"../nanodet/models","models":4} -2022-11-28 10:21:01 STATE: Models: {"count":55,"totalSize":372917743} -2022-11-28 10:21:01 INFO:  Human Build complete... {"logFile":"test/build.log"} +2022-12-21 14:14:44 DATA:  Build {"name":"@vladmandic/human","version":"3.0.1"} +2022-12-21 14:14:44 INFO:  Application: {"name":"@vladmandic/human","version":"3.0.1"} +2022-12-21 14:14:44 INFO:  Environment: {"profile":"production","config":".build.json","package":"package.json","tsconfig":true,"eslintrc":true,"git":true} +2022-12-21 14:14:44 INFO:  Toolchain: {"build":"0.7.14","esbuild":"0.15.18","typescript":"4.9.4","typedoc":"0.23.23","eslint":"8.30.0"} +2022-12-21 14:14:44 INFO:  Build: {"profile":"production","steps":["clean","compile","typings","typedoc","lint","changelog"]} +2022-12-21 14:14:44 STATE: Clean: {"locations":["dist/*","types/*","typedoc/*"]} +2022-12-21 14:14:44 STATE: Compile: {"name":"tfjs/browser/version","format":"esm","platform":"browser","input":"tfjs/tf-version.ts","output":"dist/tfjs.version.js","files":1,"inputBytes":1289,"outputBytes":361} +2022-12-21 14:14:44 STATE: Compile: {"name":"tfjs/nodejs/cpu","format":"cjs","platform":"node","input":"tfjs/tf-node.ts","output":"dist/tfjs.esm.js","files":2,"inputBytes":569,"outputBytes":924} +2022-12-21 14:14:44 STATE: Compile: {"name":"human/nodejs/cpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node.js","files":80,"inputBytes":670544,"outputBytes":317619} +2022-12-21 14:14:44 STATE: Compile: {"name":"tfjs/nodejs/gpu","format":"cjs","platform":"node","input":"tfjs/tf-node-gpu.ts","output":"dist/tfjs.esm.js","files":2,"inputBytes":577,"outputBytes":928} +2022-12-21 14:14:44 STATE: Compile: {"name":"human/nodejs/gpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-gpu.js","files":80,"inputBytes":670548,"outputBytes":317623} +2022-12-21 14:14:44 STATE: Compile: {"name":"tfjs/nodejs/wasm","format":"cjs","platform":"node","input":"tfjs/tf-node-wasm.ts","output":"dist/tfjs.esm.js","files":2,"inputBytes":665,"outputBytes":1876} +2022-12-21 14:14:44 STATE: Compile: {"name":"human/nodejs/wasm","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-wasm.js","files":80,"inputBytes":671496,"outputBytes":317734} +2022-12-21 14:14: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":1375,"outputBytes":670} +2022-12-21 14:14:44 STATE: Compile: {"name":"human/browser/esm/nobundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm-nobundle.js","files":80,"inputBytes":670290,"outputBytes":316195} +2022-12-21 14:14:44 STATE: Compile: {"name":"tfjs/browser/esm/bundle","format":"esm","platform":"browser","input":"tfjs/tf-browser.ts","output":"dist/tfjs.esm.js","files":10,"inputBytes":1375,"outputBytes":1138192} +2022-12-21 14:14:44 STATE: Compile: {"name":"human/browser/iife/bundle","format":"iife","platform":"browser","input":"src/human.ts","output":"dist/human.js","files":80,"inputBytes":1807812,"outputBytes":1450757} +2022-12-21 14:14:44 STATE: Compile: {"name":"human/browser/esm/bundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm.js","files":80,"inputBytes":1807812,"outputBytes":1894175} +2022-12-21 14:14:48 STATE: Typings: {"input":"src/human.ts","output":"types/lib","files":15} +2022-12-21 14:14:49 STATE: TypeDoc: {"input":"src/human.ts","output":"typedoc","objects":77,"generated":true} +2022-12-21 14:14:49 STATE: Compile: {"name":"demo/typescript","format":"esm","platform":"browser","input":"demo/typescript/index.ts","output":"demo/typescript/index.js","files":1,"inputBytes":6082,"outputBytes":2872} +2022-12-21 14:14:49 STATE: Compile: {"name":"demo/faceid","format":"esm","platform":"browser","input":"demo/faceid/index.ts","output":"demo/faceid/index.js","files":2,"inputBytes":17572,"outputBytes":9456} +2022-12-21 14:14:58 STATE: Lint: {"locations":["**/*.json","src/**/*.ts","test/**/*.js","demo/**/*.js","**/*.md"],"files":169,"errors":0,"warnings":0} +2022-12-21 14:14:58 STATE: ChangeLog: {"repository":"https://github.com/vladmandic/human","branch":"main","output":"CHANGELOG.md"} +2022-12-21 14:14:58 STATE: Copy: {"input":"node_modules/@vladmandic/tfjs/types/tfjs-core.d.ts","output":"types/tfjs-core.d.ts"} +2022-12-21 14:14:58 INFO:  Done... +2022-12-21 14:14:58 STATE: Copy: {"input":"node_modules/@vladmandic/tfjs/types/tfjs.d.ts","output":"types/tfjs.esm.d.ts"} +2022-12-21 14:14:58 STATE: Copy: {"input":"src/types/tsconfig.json","output":"types/tsconfig.json"} +2022-12-21 14:14:58 STATE: Copy: {"input":"src/types/eslint.json","output":"types/.eslintrc.json"} +2022-12-21 14:14:58 STATE: Copy: {"input":"src/types/tfjs.esm.d.ts","output":"dist/tfjs.esm.d.ts"} +2022-12-21 14:14:58 STATE: Filter: {"input":"types/tfjs-core.d.ts"} +2022-12-21 14:14:59 STATE: API-Extractor: {"succeeeded":true,"errors":0,"warnings":204} +2022-12-21 14:14:59 STATE: Filter: {"input":"types/human.d.ts"} +2022-12-21 14:14:59 STATE: Write: {"output":"dist/human.esm-nobundle.d.ts"} +2022-12-21 14:14:59 STATE: Write: {"output":"dist/human.esm.d.ts"} +2022-12-21 14:14:59 STATE: Write: {"output":"dist/human.d.ts"} +2022-12-21 14:14:59 STATE: Write: {"output":"dist/human.node-gpu.d.ts"} +2022-12-21 14:14:59 STATE: Write: {"output":"dist/human.node.d.ts"} +2022-12-21 14:14:59 STATE: Write: {"output":"dist/human.node-wasm.d.ts"} +2022-12-21 14:14:59 INFO:  Analyze models: {"folders":8,"result":"models/models.json"} +2022-12-21 14:14:59 STATE: Models {"folder":"./models","models":12} +2022-12-21 14:14:59 STATE: Models {"folder":"../human-models/models","models":41} +2022-12-21 14:14:59 STATE: Models {"folder":"../blazepose/model/","models":4} +2022-12-21 14:14:59 STATE: Models {"folder":"../anti-spoofing/model","models":1} +2022-12-21 14:14:59 STATE: Models {"folder":"../efficientpose/models","models":3} +2022-12-21 14:14:59 STATE: Models {"folder":"../insightface/models","models":5} +2022-12-21 14:14:59 STATE: Models {"folder":"../movenet/models","models":3} +2022-12-21 14:14:59 STATE: Models {"folder":"../nanodet/models","models":4} +2022-12-21 14:15:00 STATE: Models: {"count":55,"totalSize":372917743} +2022-12-21 14:15:00 INFO:  Human Build complete... {"logFile":"test/build.log"} diff --git a/test/test.log b/test/test.log index b5126470..2291626a 100644 --- a/test/test.log +++ b/test/test.log @@ -1,1001 +1,1000 @@ -2022-11-22 10:35:11 INFO:  @vladmandic/human version 3.0.1 -2022-11-22 10:35:11 INFO:  User: vlado Platform: linux Arch: x64 Node: v19.1.0 -2022-11-22 10:35:11 INFO:  demos: [{"cmd":"../demo/nodejs/node.js","args":[]},{"cmd":"../demo/nodejs/node-simple.js","args":[]},{"cmd":"../demo/nodejs/node-event.js","args":["samples/in/ai-body.jpg"]},{"cmd":"../demo/nodejs/node-similarity.js","args":["samples/in/ai-face.jpg","samples/in/ai-upper.jpg"]},{"cmd":"../demo/nodejs/node-canvas.js","args":["samples/in/ai-body.jpg","samples/out/ai-body.jpg"]},{"cmd":"../demo/nodejs/process-folder.js","args":["samples"]},{"cmd":"../demo/multithread/node-multiprocess.js","args":[]},{"cmd":"../demo/facematch/node-match.js","args":[]},{"cmd":"../demo/nodejs/node-bench.js","args":[]}] -2022-11-22 10:35:11 INFO:  {"cmd":"../demo/nodejs/node.js","args":[]} start -2022-11-22 10:35:12 INFO:  {"cmd":"../demo/nodejs/node-simple.js","args":[]} start -2022-11-22 10:35:13 INFO:  {"cmd":"../demo/nodejs/node-event.js","args":["samples/in/ai-body.jpg"]} start -2022-11-22 10:35:14 INFO:  {"cmd":"../demo/nodejs/node-similarity.js","args":["samples/in/ai-face.jpg","samples/in/ai-upper.jpg"]} start -2022-11-22 10:35:14 INFO:  {"cmd":"../demo/nodejs/node-canvas.js","args":["samples/in/ai-body.jpg","samples/out/ai-body.jpg"]} start -2022-11-22 10:35:15 INFO:  {"cmd":"../demo/nodejs/process-folder.js","args":["samples"]} start -2022-11-22 10:35:17 INFO:  {"cmd":"../demo/multithread/node-multiprocess.js","args":[]} start -2022-11-22 10:35:29 INFO:  {"cmd":"../demo/facematch/node-match.js","args":[]} start -2022-11-22 10:35:30 INFO:  {"cmd":"../demo/nodejs/node-bench.js","args":[]} start -2022-11-22 10:35:46 INFO:  tests: ["test-node-load.js","test-node-gear.js","test-backend-node.js","test-backend-node-gpu.js","test-backend-node-wasm.js"] -2022-11-22 10:35:46 INFO:  -2022-11-22 10:35:46 INFO:  test-node-load.js start -2022-11-22 10:35:46 INFO:  test-node-load.js load start {"human":"3.0.1","tf":"4.1.0","progress":0} -2022-11-22 10:35:46 DATA:  test-node-load.js load interval {"elapsed":0,"progress":0} -2022-11-22 10:35:46 DATA:  test-node-load.js load interval {"elapsed":11,"progress":0} -2022-11-22 10:35:46 DATA:  test-node-load.js load interval {"elapsed":25,"progress":0.12865823126207815} -2022-11-22 10:35:46 DATA:  test-node-load.js load interval {"elapsed":37,"progress":0.33826045252170456} -2022-11-22 10:35:46 DATA:  test-node-load.js load interval {"elapsed":60,"progress":0.4726970548784964} -2022-11-22 10:35:46 DATA:  test-node-load.js load interval {"elapsed":73,"progress":0.68355493315821} -2022-11-22 10:35:46 STATE: test-node-load.js passed {"progress":1} -2022-11-22 10:35:46 INFO:  test-node-load.js load final {"progress":1} -2022-11-22 10:35:47 DATA:  test-node-load.js load interval {"elapsed":432,"progress":1} -2022-11-22 10:35:47 INFO:  -2022-11-22 10:35:47 INFO:  test-node-gear.js start -2022-11-22 10:35:47 DATA:  test-node-gear.js input: ["samples/in/ai-face.jpg"] -2022-11-22 10:35:48 STATE: test-node-gear.js passed: gear faceres samples/in/ai-face.jpg -2022-11-22 10:35:48 DATA:  test-node-gear.js results {"face":0,"model":"faceres","image":"samples/in/ai-face.jpg","age":23.5,"gender":"female","genderScore":0.92} -2022-11-22 10:35:48 STATE: test-node-gear.js passed: gear gear samples/in/ai-face.jpg -2022-11-22 10:35:48 DATA:  test-node-gear.js results {"face":0,"model":"gear","image":"samples/in/ai-face.jpg","age":23.3,"gender":"female","genderScore":0.51,"race":[{"score":0.93,"race":"white"}]} -2022-11-22 10:35:48 STATE: test-node-gear.js passed: gear ssrnet samples/in/ai-face.jpg -2022-11-22 10:35:48 DATA:  test-node-gear.js results {"face":0,"model":"ssrnet","image":"samples/in/ai-face.jpg","age":23.4,"gender":"female","genderScore":0.99} -2022-11-22 10:35:48 INFO:  -2022-11-22 10:35:48 INFO:  test-backend-node.js start -2022-11-22 10:35:48 INFO:  test-backend-node.js test: configuration validation -2022-11-22 10:35:48 STATE: test-backend-node.js passed: configuration default validation [] -2022-11-22 10:35:48 STATE: test-backend-node.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}] -2022-11-22 10:35:48 INFO:  test-backend-node.js test: model load -2022-11-22 10:35:48 STATE: test-backend-node.js passed: models loaded 11 11 [{"name":"antispoof","loaded":true,"size":853098,"url":"file://models/antispoof.json"},{"name":"blazeface","loaded":true,"size":538928,"url":"file://models/blazeface.json"},{"name":"emotion","loaded":true,"size":820516,"url":"file://models/emotion.json"},{"name":"liveness","loaded":true,"size":592976,"url":"file://models/liveness.json"},{"name":"facemesh","loaded":true,"size":1477958,"url":"file://models/facemesh.json"},{"name":"handskeleton","loaded":true,"size":0,"url":"file://models/handlandmark-lite.json"},{"name":"iris","loaded":true,"size":2599092,"url":"file://models/iris.json"},{"name":"handtrack","loaded":true,"size":2964837,"url":"file://models/handtrack.json"},{"name":"centernet","loaded":true,"size":4030290,"url":"file://models/centernet.json"},{"name":"movenet","loaded":true,"size":4650216,"url":"file://models/movenet-lightning.json"},{"name":"faceres","loaded":true,"size":6978814,"url":"file://models/faceres.json"}] -2022-11-22 10:35:48 INFO:  test-backend-node.js memory: {"memory":{"unreliable":true,"numTensors":1785,"numDataBuffers":1785,"numBytes":56431460}} -2022-11-22 10:35:48 INFO:  test-backend-node.js state: {"state":{"registeredVariables":{},"nextTapeNodeId":0,"numBytes":56431460,"numTensors":1785,"numStringTensors":0,"numDataBuffers":1785,"gradientDepth":0,"kernelDepth":0,"scopeStack":[],"numDataMovesStack":[],"nextScopeId":0,"tensorInfo":{},"profiling":false,"activeProfile":{"newBytes":0,"newTensors":0,"peakBytes":0,"kernels":[],"result":null,"kernelNames":[]}}} -2022-11-22 10:35:48 INFO:  test-backend-node.js test: warmup -2022-11-22 10:35:48 STATE: test-backend-node.js passed: create human -2022-11-22 10:35:48 INFO:  test-backend-node.js human version: 3.0.1 -2022-11-22 10:35:48 INFO:  test-backend-node.js platform: linux x64 agent: NodeJS v19.1.0 -2022-11-22 10:35:48 INFO:  test-backend-node.js tfjs version: 4.1.0 -2022-11-22 10:35:48 INFO:  test-backend-node.js env: {"browser":false,"node":true,"platform":"linux x64","agent":"NodeJS v19.1.0","backends":["cpu","tensorflow"],"initial":false,"tfjs":{"version":"4.1.0"},"offscreen":false,"perfadd":false,"tensorflow":{"version":"2.9.1","gpu":false},"wasm":{"supported":true,"backend":false},"webgl":{"supported":false,"backend":false},"webgpu":{"supported":false,"backend":false},"cpu":{"flags":[]},"kernels":169} -2022-11-22 10:35:48 STATE: test-backend-node.js passed: set backend: tensorflow -2022-11-22 10:35:48 STATE: test-backend-node.js tensors 1785 -2022-11-22 10:35:48 STATE: test-backend-node.js result: defined models: 11 loaded models: 11 -2022-11-22 10:35:48 STATE: test-backend-node.js passed: load models 11 -2022-11-22 10:35:48 STATE: test-backend-node.js passed: warmup: none default -2022-11-22 10:35:48 DATA:  test-backend-node.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {} -2022-11-22 10:35:48 DATA:  test-backend-node.js result: performance: load: null total: null -2022-11-22 10:35:48 STATE: test-backend-node.js passed: warmup none result match -2022-11-22 10:35:48 STATE: test-backend-node.js event: image -2022-11-22 10:35:49 STATE: test-backend-node.js event: detect -2022-11-22 10:35:49 STATE: test-backend-node.js event: warmup -2022-11-22 10:35:49 STATE: test-backend-node.js passed: warmup: face default -2022-11-22 10:35:49 DATA:  test-backend-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.42,"keypoints":4} -2022-11-22 10:35:49 DATA:  test-backend-node.js result: performance: load: null total: 419 -2022-11-22 10:35:49 STATE: test-backend-node.js passed: warmup face result match -2022-11-22 10:35:49 STATE: test-backend-node.js event: image -2022-11-22 10:35:49 STATE: test-backend-node.js event: detect -2022-11-22 10:35:49 STATE: test-backend-node.js event: warmup -2022-11-22 10:35:49 STATE: test-backend-node.js passed: warmup: body default -2022-11-22 10:35:49 DATA:  test-backend-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-11-22 10:35:49 DATA:  test-backend-node.js result: performance: load: null total: 350 -2022-11-22 10:35:49 STATE: test-backend-node.js passed: warmup body result match -2022-11-22 10:35:49 STATE: test-backend-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":"thumb up"},{"hand":0,"gesture":"open palm"},{"iris":0,"gesture":"looking left"},{"iris":0,"gesture":"looking up"}]} -2022-11-22 10:35:49 INFO:  test-backend-node.js test: details verification -2022-11-22 10:35:49 STATE: test-backend-node.js start default -2022-11-22 10:35:49 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-11-22 10:35:49 STATE: test-backend-node.js event: image -2022-11-22 10:35:50 STATE: test-backend-node.js event: detect -2022-11-22 10:35:50 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg default -2022-11-22 10:35:50 DATA:  test-backend-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-11-22 10:35:50 DATA:  test-backend-node.js result: performance: load: null total: 318 -2022-11-22 10:35:50 STATE: test-backend-node.js passed: details face length 1 -2022-11-22 10:35:50 STATE: test-backend-node.js passed: details face score 1 0.93 1 -2022-11-22 10:35:50 STATE: test-backend-node.js passed: details face age/gender 23.7 female 0.97 2.34 -2022-11-22 10:35:50 STATE: test-backend-node.js passed: details face arrays 4 478 1024 -2022-11-22 10:35:50 STATE: test-backend-node.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"} -2022-11-22 10:35:50 STATE: test-backend-node.js passed: details face anti-spoofing 0.79 -2022-11-22 10:35:50 STATE: test-backend-node.js passed: details face liveness 0.83 -2022-11-22 10:35:50 STATE: test-backend-node.js passed: details body length 1 -2022-11-22 10:35:50 STATE: test-backend-node.js passed: details body 0.92 17 6 -2022-11-22 10:35:50 STATE: test-backend-node.js passed: details hand length 1 -2022-11-22 10:35:50 STATE: test-backend-node.js passed: details hand 0.51 0.73 point -2022-11-22 10:35:50 STATE: test-backend-node.js passed: details hand arrays 21 5 7 -2022-11-22 10:35:50 STATE: test-backend-node.js passed: details gesture length 7 -2022-11-22 10:35:50 STATE: test-backend-node.js passed: details gesture first {"face":0,"gesture":"facing right"} -2022-11-22 10:35:50 STATE: test-backend-node.js passed: details object length 1 -2022-11-22 10:35:50 STATE: test-backend-node.js passed: details object 0.72 person -2022-11-22 10:35:50 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996928} -2022-11-22 10:35:50 STATE: test-backend-node.js event: image -2022-11-22 10:35:50 STATE: test-backend-node.js event: detect -2022-11-22 10:35:50 STATE: test-backend-node.js passed: tensor shape: [1,1200,1200,4] dtype: float32 -2022-11-22 10:35:50 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1371996928} -2022-11-22 10:35:50 STATE: test-backend-node.js event: image -2022-11-22 10:35:51 STATE: test-backend-node.js event: detect -2022-11-22 10:35:51 STATE: test-backend-node.js passed: tensor shape: [1200,1200,4] dtype: float32 -2022-11-22 10:35:51 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-11-22 10:35:51 STATE: test-backend-node.js event: image -2022-11-22 10:35:51 STATE: test-backend-node.js event: detect -2022-11-22 10:35:51 STATE: test-backend-node.js passed: tensor shape: [1,1200,1200,3] dtype: float32 -2022-11-22 10:35:51 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1004796864} -2022-11-22 10:35:51 STATE: test-backend-node.js event: image -2022-11-22 10:35:52 STATE: test-backend-node.js event: detect -2022-11-22 10:35:52 STATE: test-backend-node.js passed: tensor shape: [1200,1200,3] dtype: float32 -2022-11-22 10:35:52 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871} -2022-11-22 10:35:52 STATE: test-backend-node.js event: image -2022-11-22 10:35:52 STATE: test-backend-node.js event: detect -2022-11-22 10:35:52 STATE: test-backend-node.js passed: tensor shape: [1,1200,1200,4] dtype: int32 -2022-11-22 10:35:52 INFO:  test-backend-node.js test default -2022-11-22 10:35:52 STATE: test-backend-node.js start async -2022-11-22 10:35:52 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-11-22 10:35:52 STATE: test-backend-node.js event: image -2022-11-22 10:35:53 STATE: test-backend-node.js event: detect -2022-11-22 10:35:53 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg async -2022-11-22 10:35:53 DATA:  test-backend-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-11-22 10:35:53 DATA:  test-backend-node.js result: performance: load: null total: 296 -2022-11-22 10:35:53 STATE: test-backend-node.js passed: default result face match 1 female 0.97 -2022-11-22 10:35:53 INFO:  test-backend-node.js test sync -2022-11-22 10:35:53 STATE: test-backend-node.js start sync -2022-11-22 10:35:53 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-11-22 10:35:53 STATE: test-backend-node.js event: image -2022-11-22 10:35:53 STATE: test-backend-node.js event: detect -2022-11-22 10:35:53 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg sync -2022-11-22 10:35:53 DATA:  test-backend-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-11-22 10:35:53 DATA:  test-backend-node.js result: performance: load: null total: 307 -2022-11-22 10:35:53 STATE: test-backend-node.js passed: default sync 1 female 0.97 -2022-11-22 10:35:53 INFO:  test-backend-node.js test: image process -2022-11-22 10:35:53 STATE: test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-11-22 10:35:53 STATE: test-backend-node.js passed: image input null [1,256,256,3] -2022-11-22 10:35:53 INFO:  test-backend-node.js test: image null -2022-11-22 10:35:53 STATE: test-backend-node.js passed: invalid input could not convert input to tensor -2022-11-22 10:35:53 INFO:  test-backend-node.js test face similarity -2022-11-22 10:35:53 STATE: test-backend-node.js start face similarity -2022-11-22 10:35:53 STATE: test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-11-22 10:35:53 STATE: test-backend-node.js event: image -2022-11-22 10:35:53 STATE: test-backend-node.js event: detect -2022-11-22 10:35:53 STATE: test-backend-node.js passed: detect: samples/in/ai-face.jpg face similarity -2022-11-22 10:35:53 DATA:  test-backend-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-11-22 10:35:53 DATA:  test-backend-node.js result: performance: load: null total: 286 -2022-11-22 10:35:53 STATE: test-backend-node.js start face similarity -2022-11-22 10:35:54 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-11-22 10:35:54 STATE: test-backend-node.js event: image -2022-11-22 10:35:54 STATE: test-backend-node.js event: detect -2022-11-22 10:35:54 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg face similarity -2022-11-22 10:35:54 DATA:  test-backend-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-11-22 10:35:54 DATA:  test-backend-node.js result: performance: load: null total: 294 -2022-11-22 10:35:54 STATE: test-backend-node.js start face similarity -2022-11-22 10:35:54 STATE: test-backend-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} -2022-11-22 10:35:54 STATE: test-backend-node.js event: image -2022-11-22 10:35:54 STATE: test-backend-node.js event: detect -2022-11-22 10:35:54 STATE: test-backend-node.js passed: detect: samples/in/ai-upper.jpg face similarity -2022-11-22 10:35:54 DATA:  test-backend-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-11-22 10:35:54 DATA:  test-backend-node.js result: performance: load: null total: 270 -2022-11-22 10:35:54 STATE: test-backend-node.js passed: face descriptor -2022-11-22 10:35:54 STATE: test-backend-node.js passed: face similarity {"similarity":[1,0.44727441595492046,0.556793560189727],"descriptors":[1024,1024,1024]} -2022-11-22 10:35:54 INFO:  test-backend-node.js test object -2022-11-22 10:35:54 STATE: test-backend-node.js start object -2022-11-22 10:35:54 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-11-22 10:35:54 STATE: test-backend-node.js event: image -2022-11-22 10:35:55 STATE: test-backend-node.js event: detect -2022-11-22 10:35:55 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg object -2022-11-22 10:35:55 DATA:  test-backend-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-11-22 10:35:55 DATA:  test-backend-node.js result: performance: load: null total: 293 -2022-11-22 10:35:55 STATE: test-backend-node.js passed: centernet -2022-11-22 10:35:55 STATE: test-backend-node.js start object -2022-11-22 10:35:56 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-11-22 10:35:56 STATE: test-backend-node.js event: image -2022-11-22 10:35:56 STATE: test-backend-node.js event: detect -2022-11-22 10:35:56 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg object -2022-11-22 10:35:56 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 3 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.86,"class":"person"} {"score":0.92,"keypoints":17} -2022-11-22 10:35:56 DATA:  test-backend-node.js result: performance: load: null total: 337 -2022-11-22 10:35:56 STATE: test-backend-node.js passed: nanodet -2022-11-22 10:35:56 INFO:  test-backend-node.js test sensitive -2022-11-22 10:35:56 STATE: test-backend-node.js start sensitive -2022-11-22 10:35:56 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-11-22 10:35:56 STATE: test-backend-node.js event: image -2022-11-22 10:35:57 STATE: test-backend-node.js event: detect -2022-11-22 10:35:57 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg sensitive -2022-11-22 10:35:57 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.92,"keypoints":17} -2022-11-22 10:35:57 DATA:  test-backend-node.js result: performance: load: null total: 259 -2022-11-22 10:35:57 STATE: test-backend-node.js passed: sensitive result match -2022-11-22 10:35:57 STATE: test-backend-node.js passed: sensitive face result match -2022-11-22 10:35:57 STATE: test-backend-node.js passed: sensitive face emotion result [{"score":0.59,"emotion":"angry"},{"score":0.29,"emotion":"fear"}] -2022-11-22 10:35:57 STATE: test-backend-node.js passed: sensitive body result match -2022-11-22 10:35:57 STATE: test-backend-node.js passed: sensitive hand result match -2022-11-22 10:35:57 INFO:  test-backend-node.js test body -2022-11-22 10:35:57 STATE: test-backend-node.js start blazepose -2022-11-22 10:35:59 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-11-22 10:35:59 STATE: test-backend-node.js event: image -2022-11-22 10:35:59 STATE: test-backend-node.js event: detect -2022-11-22 10:35:59 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg blazepose -2022-11-22 10:35:59 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.99,"keypoints":39} -2022-11-22 10:35:59 DATA:  test-backend-node.js result: performance: load: null total: 335 -2022-11-22 10:35:59 STATE: test-backend-node.js passed: blazepose -2022-11-22 10:35:59 STATE: test-backend-node.js start efficientpose -2022-11-22 10:36:00 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-11-22 10:36:00 STATE: test-backend-node.js event: image -2022-11-22 10:36:00 STATE: test-backend-node.js event: detect -2022-11-22 10:36:00 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg efficientpose -2022-11-22 10:36:00 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.75,"keypoints":13} -2022-11-22 10:36:00 DATA:  test-backend-node.js result: performance: load: null total: 322 -2022-11-22 10:36:00 STATE: test-backend-node.js passed: efficientpose -2022-11-22 10:36:00 STATE: test-backend-node.js start posenet -2022-11-22 10:36:01 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-11-22 10:36:01 STATE: test-backend-node.js event: image -2022-11-22 10:36:01 STATE: test-backend-node.js event: detect -2022-11-22 10:36:01 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg posenet -2022-11-22 10:36:01 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.96,"keypoints":16} -2022-11-22 10:36:01 DATA:  test-backend-node.js result: performance: load: null total: 268 -2022-11-22 10:36:01 STATE: test-backend-node.js passed: posenet -2022-11-22 10:36:01 STATE: test-backend-node.js start movenet -2022-11-22 10:36:01 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-11-22 10:36:01 STATE: test-backend-node.js event: image -2022-11-22 10:36:01 STATE: test-backend-node.js event: detect -2022-11-22 10:36:01 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg movenet -2022-11-22 10:36:01 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.92,"keypoints":17} -2022-11-22 10:36:01 DATA:  test-backend-node.js result: performance: load: null total: 257 -2022-11-22 10:36:01 STATE: test-backend-node.js passed: movenet -2022-11-22 10:36:01 INFO:  test-backend-node.js test face matching -2022-11-22 10:36:01 STATE: test-backend-node.js passed: face database 40 -2022-11-22 10:36:01 STATE: test-backend-node.js passed: face match {"first":{"index":4,"similarity":0.7827852251220577}} {"second":{"index":4,"similarity":0.5002052057057577}} {"third":{"index":4,"similarity":0.5401588464054732}} -2022-11-22 10:36:01 INFO:  test-backend-node.js test face similarity alternative -2022-11-22 10:36:01 STATE: test-backend-node.js start face embeddings -2022-11-22 10:36:02 STATE: test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-11-22 10:36:02 STATE: test-backend-node.js event: image -2022-11-22 10:36:02 STATE: test-backend-node.js event: detect -2022-11-22 10:36:02 STATE: test-backend-node.js passed: detect: samples/in/ai-face.jpg face embeddings -2022-11-22 10:36:02 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} -2022-11-22 10:36:02 DATA:  test-backend-node.js result: performance: load: null total: 276 -2022-11-22 10:36:02 STATE: test-backend-node.js passed: mobilefacenet {"embedding":192} -2022-11-22 10:36:02 STATE: test-backend-node.js start face embeddings -2022-11-22 10:36:03 STATE: test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-11-22 10:36:03 STATE: test-backend-node.js event: image -2022-11-22 10:36:03 STATE: test-backend-node.js event: detect -2022-11-22 10:36:03 STATE: test-backend-node.js passed: detect: samples/in/ai-face.jpg face embeddings -2022-11-22 10:36:03 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} -2022-11-22 10:36:03 DATA:  test-backend-node.js result: performance: load: null total: 298 -2022-11-22 10:36:03 STATE: test-backend-node.js passed: insightface {"embedding":512} -2022-11-22 10:36:03 INFO:  test-backend-node.js test face attention -2022-11-22 10:36:03 STATE: test-backend-node.js start face attention -2022-11-22 10:36:04 STATE: test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-11-22 10:36:04 STATE: test-backend-node.js event: image -2022-11-22 10:36:04 STATE: test-backend-node.js event: detect -2022-11-22 10:36:04 STATE: test-backend-node.js passed: detect: samples/in/ai-face.jpg face attention -2022-11-22 10:36:04 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} -2022-11-22 10:36:04 DATA:  test-backend-node.js result: performance: load: null total: 275 -2022-11-22 10:36:04 STATE: test-backend-node.js passed: face attention -2022-11-22 10:36:04 INFO:  test-backend-node.js test detectors -2022-11-22 10:36:04 STATE: test-backend-node.js start detectors -2022-11-22 10:36:04 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-11-22 10:36:04 STATE: test-backend-node.js event: image -2022-11-22 10:36:04 STATE: test-backend-node.js event: detect -2022-11-22 10:36:04 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg detectors -2022-11-22 10:36:04 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} -2022-11-22 10:36:04 DATA:  test-backend-node.js result: performance: load: null total: 178 -2022-11-22 10:36:04 STATE: test-backend-node.js passed: detector result face match -2022-11-22 10:36:04 STATE: test-backend-node.js passed: detector result hand match -2022-11-22 10:36:04 INFO:  test-backend-node.js test: multi-instance -2022-11-22 10:36:04 STATE: test-backend-node.js start multi instance -2022-11-22 10:36:04 STATE: test-backend-node.js event: image -2022-11-22 10:36:05 STATE: test-backend-node.js event: detect -2022-11-22 10:36:05 STATE: test-backend-node.js passed: detect: random multi instance -2022-11-22 10:36:05 DATA:  test-backend-node.js result: face: 0 body: 1 hand: 0 gesture: 0 object: 0 person: 0 {} {} {"score":0,"keypoints":0} -2022-11-22 10:36:05 DATA:  test-backend-node.js result: performance: load: null total: 129 -2022-11-22 10:36:05 INFO:  test-backend-node.js test: first instance -2022-11-22 10:36:05 STATE: test-backend-node.js start multi instance -2022-11-22 10:36:05 STATE: test-backend-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} -2022-11-22 10:36:05 STATE: test-backend-node.js passed: detect: samples/in/ai-upper.jpg multi instance -2022-11-22 10:36:05 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-11-22 10:36:05 DATA:  test-backend-node.js result: performance: load: null total: 155 -2022-11-22 10:36:05 INFO:  test-backend-node.js test: second instance -2022-11-22 10:36:05 STATE: test-backend-node.js start multi instance -2022-11-22 10:36:05 STATE: test-backend-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} -2022-11-22 10:36:05 STATE: test-backend-node.js passed: detect: samples/in/ai-upper.jpg multi instance -2022-11-22 10:36:05 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-11-22 10:36:05 DATA:  test-backend-node.js result: performance: load: null total: 143 -2022-11-22 10:36:05 INFO:  test-backend-node.js test: concurrent -2022-11-22 10:36:05 STATE: test-backend-node.js start concurrent -2022-11-22 10:36:05 STATE: test-backend-node.js start concurrent -2022-11-22 10:36:05 STATE: test-backend-node.js start concurrent -2022-11-22 10:36:05 STATE: test-backend-node.js start concurrent -2022-11-22 10:36:05 STATE: test-backend-node.js start concurrent -2022-11-22 10:36:05 STATE: test-backend-node.js start concurrent -2022-11-22 10:36:05 STATE: test-backend-node.js start concurrent -2022-11-22 10:36:05 STATE: test-backend-node.js start concurrent -2022-11-22 10:36:05 STATE: test-backend-node.js start concurrent -2022-11-22 10:36:05 STATE: test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-11-22 10:36:05 STATE: test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-11-22 10:36:05 STATE: test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-11-22 10:36:05 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-11-22 10:36:05 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-11-22 10:36:06 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-11-22 10:36:06 STATE: test-backend-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} -2022-11-22 10:36:06 STATE: test-backend-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} -2022-11-22 10:36:06 STATE: test-backend-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} -2022-11-22 10:36:06 STATE: test-backend-node.js event: image -2022-11-22 10:36:06 STATE: test-backend-node.js event: image -2022-11-22 10:36:06 STATE: test-backend-node.js event: image -2022-11-22 10:36:07 STATE: test-backend-node.js event: detect -2022-11-22 10:36:07 STATE: test-backend-node.js passed: detect: samples/in/ai-upper.jpg concurrent -2022-11-22 10:36:07 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-11-22 10:36:07 DATA:  test-backend-node.js result: performance: load: null total: 1295 -2022-11-22 10:36:07 STATE: test-backend-node.js passed: detect: samples/in/ai-upper.jpg concurrent -2022-11-22 10:36:07 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-11-22 10:36:07 DATA:  test-backend-node.js result: performance: load: null total: 1295 -2022-11-22 10:36:07 STATE: test-backend-node.js passed: detect: samples/in/ai-upper.jpg concurrent -2022-11-22 10:36:07 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-11-22 10:36:07 DATA:  test-backend-node.js result: performance: load: null total: 1295 -2022-11-22 10:36:07 STATE: test-backend-node.js event: detect -2022-11-22 10:36:07 STATE: test-backend-node.js event: detect -2022-11-22 10:36:07 STATE: test-backend-node.js passed: detect: samples/in/ai-face.jpg concurrent -2022-11-22 10:36:07 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} -2022-11-22 10:36:07 DATA:  test-backend-node.js result: performance: load: null total: 1296 -2022-11-22 10:36:07 STATE: test-backend-node.js passed: detect: samples/in/ai-face.jpg concurrent -2022-11-22 10:36:07 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} -2022-11-22 10:36:07 DATA:  test-backend-node.js result: performance: load: null total: 1296 -2022-11-22 10:36:07 STATE: test-backend-node.js passed: detect: samples/in/ai-face.jpg concurrent -2022-11-22 10:36:07 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} -2022-11-22 10:36:07 DATA:  test-backend-node.js result: performance: load: null total: 1295 -2022-11-22 10:36:07 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg concurrent -2022-11-22 10:36:07 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} -2022-11-22 10:36:07 DATA:  test-backend-node.js result: performance: load: null total: 1296 -2022-11-22 10:36:07 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg concurrent -2022-11-22 10:36:07 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} -2022-11-22 10:36:07 DATA:  test-backend-node.js result: performance: load: null total: 1296 -2022-11-22 10:36:07 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg concurrent -2022-11-22 10:36:07 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} -2022-11-22 10:36:07 DATA:  test-backend-node.js result: performance: load: null total: 1295 -2022-11-22 10:36:07 INFO:  test-backend-node.js test: monkey-patch -2022-11-22 10:36:07 STATE: test-backend-node.js event: image -2022-11-22 10:36:07 STATE: test-backend-node.js event: detect -2022-11-22 10:36:07 STATE: test-backend-node.js passed: monkey patch -2022-11-22 10:36:08 STATE: test-backend-node.js passed: segmentation [262144] -2022-11-22 10:36:08 STATE: test-backend-node.js passeed: equal usage -2022-11-22 10:36:08 INFO:  test-backend-node.js test: input compare -2022-11-22 10:36:08 STATE: test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-11-22 10:36:08 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-11-22 10:36:08 STATE: test-backend-node.js passed: image compare 0 23.275441687091504 -2022-11-22 10:36:08 INFO:  test-backend-node.js events: {"image":29,"detect":29,"warmup":2} -2022-11-22 10:36:08 INFO:  test-backend-node.js tensors 4441 -2022-11-22 10:36:08 INFO:  test-backend-node.js test complete: 20130 ms -2022-11-22 10:36:08 INFO:  -2022-11-22 10:36:08 INFO:  test-backend-node-gpu.js start -2022-11-22 10:36:09 INFO:  test-backend-node-gpu.js test: configuration validation -2022-11-22 10:36:09 STATE: test-backend-node-gpu.js passed: configuration default validation [] -2022-11-22 10:36:09 STATE: test-backend-node-gpu.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}] -2022-11-22 10:36:09 INFO:  test-backend-node-gpu.js test: model load -2022-11-22 10:36:09 STATE: test-backend-node-gpu.js passed: models loaded 11 11 [{"name":"blazeface","loaded":true,"size":538928,"url":"file://models/blazeface.json"},{"name":"emotion","loaded":true,"size":820516,"url":"file://models/emotion.json"},{"name":"antispoof","loaded":true,"size":853098,"url":"file://models/antispoof.json"},{"name":"liveness","loaded":true,"size":592976,"url":"file://models/liveness.json"},{"name":"facemesh","loaded":true,"size":1477958,"url":"file://models/facemesh.json"},{"name":"handskeleton","loaded":true,"size":0,"url":"file://models/handlandmark-lite.json"},{"name":"iris","loaded":true,"size":2599092,"url":"file://models/iris.json"},{"name":"handtrack","loaded":true,"size":2964837,"url":"file://models/handtrack.json"},{"name":"movenet","loaded":true,"size":4650216,"url":"file://models/movenet-lightning.json"},{"name":"centernet","loaded":true,"size":4030290,"url":"file://models/centernet.json"},{"name":"faceres","loaded":true,"size":6978814,"url":"file://models/faceres.json"}] -2022-11-22 10:36:09 INFO:  test-backend-node-gpu.js memory: {"memory":{"unreliable":true,"numTensors":1785,"numDataBuffers":1785,"numBytes":56431460}} -2022-11-22 10:36:09 INFO:  test-backend-node-gpu.js state: {"state":{"registeredVariables":{},"nextTapeNodeId":0,"numBytes":56431460,"numTensors":1785,"numStringTensors":0,"numDataBuffers":1785,"gradientDepth":0,"kernelDepth":0,"scopeStack":[],"numDataMovesStack":[],"nextScopeId":0,"tensorInfo":{},"profiling":false,"activeProfile":{"newBytes":0,"newTensors":0,"peakBytes":0,"kernels":[],"result":null,"kernelNames":[]}}} -2022-11-22 10:36:09 INFO:  test-backend-node-gpu.js test: warmup -2022-11-22 10:36:09 STATE: test-backend-node-gpu.js passed: create human -2022-11-22 10:36:09 INFO:  test-backend-node-gpu.js human version: 3.0.1 -2022-11-22 10:36:09 INFO:  test-backend-node-gpu.js platform: linux x64 agent: NodeJS v19.1.0 -2022-11-22 10:36:09 INFO:  test-backend-node-gpu.js tfjs version: 4.1.0 -2022-11-22 10:36:09 INFO:  test-backend-node-gpu.js env: {"browser":false,"node":true,"platform":"linux x64","agent":"NodeJS v19.1.0","backends":["cpu","tensorflow"],"initial":false,"tfjs":{"version":"4.1.0"},"offscreen":false,"perfadd":false,"tensorflow":{"version":"2.9.1","gpu":true},"wasm":{"supported":true,"backend":false},"webgl":{"supported":false,"backend":false},"webgpu":{"supported":false,"backend":false},"cpu":{"flags":[]},"kernels":169} -2022-11-22 10:36:09 STATE: test-backend-node-gpu.js passed: set backend: tensorflow -2022-11-22 10:36:09 STATE: test-backend-node-gpu.js tensors 1785 -2022-11-22 10:36:09 STATE: test-backend-node-gpu.js result: defined models: 11 loaded models: 11 -2022-11-22 10:36:09 STATE: test-backend-node-gpu.js passed: load models 11 -2022-11-22 10:36:09 STATE: test-backend-node-gpu.js passed: warmup: none default -2022-11-22 10:36:09 DATA:  test-backend-node-gpu.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {} -2022-11-22 10:36:09 DATA:  test-backend-node-gpu.js result: performance: load: null total: null -2022-11-22 10:36:09 STATE: test-backend-node-gpu.js passed: warmup none result match -2022-11-22 10:36:09 STATE: test-backend-node-gpu.js event: image -2022-11-22 10:36:11 STATE: test-backend-node-gpu.js event: detect -2022-11-22 10:36:11 STATE: test-backend-node-gpu.js event: warmup -2022-11-22 10:36:11 STATE: test-backend-node-gpu.js passed: warmup: face default -2022-11-22 10:36:11 DATA:  test-backend-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.42,"keypoints":4} -2022-11-22 10:36:11 DATA:  test-backend-node-gpu.js result: performance: load: null total: 1901 -2022-11-22 10:36:11 STATE: test-backend-node-gpu.js passed: warmup face result match -2022-11-22 10:36:11 STATE: test-backend-node-gpu.js event: image -2022-11-22 10:36:12 STATE: test-backend-node-gpu.js event: detect -2022-11-22 10:36:12 STATE: test-backend-node-gpu.js event: warmup -2022-11-22 10:36:12 STATE: test-backend-node-gpu.js passed: warmup: body default -2022-11-22 10:36:12 DATA:  test-backend-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-11-22 10:36:12 DATA:  test-backend-node-gpu.js result: performance: load: null total: 199 -2022-11-22 10:36:12 STATE: test-backend-node-gpu.js passed: warmup body result match -2022-11-22 10:36:12 STATE: test-backend-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":"thumb up"},{"hand":0,"gesture":"open palm"},{"iris":0,"gesture":"looking left"},{"iris":0,"gesture":"looking up"}]} -2022-11-22 10:36:12 INFO:  test-backend-node-gpu.js test: details verification -2022-11-22 10:36:12 STATE: test-backend-node-gpu.js start default -2022-11-22 10:36:12 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-11-22 10:36:12 STATE: test-backend-node-gpu.js event: image -2022-11-22 10:36:12 STATE: test-backend-node-gpu.js event: detect -2022-11-22 10:36:12 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg default -2022-11-22 10:36:12 DATA:  test-backend-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-11-22 10:36:12 DATA:  test-backend-node-gpu.js result: performance: load: null total: 179 -2022-11-22 10:36:12 STATE: test-backend-node-gpu.js passed: details face length 1 -2022-11-22 10:36:12 STATE: test-backend-node-gpu.js passed: details face score 1 0.93 1 -2022-11-22 10:36:12 STATE: test-backend-node-gpu.js passed: details face age/gender 23.7 female 0.97 2.34 -2022-11-22 10:36:12 STATE: test-backend-node-gpu.js passed: details face arrays 4 478 1024 -2022-11-22 10:36:12 STATE: test-backend-node-gpu.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"} -2022-11-22 10:36:12 STATE: test-backend-node-gpu.js passed: details face anti-spoofing 0.79 -2022-11-22 10:36:12 STATE: test-backend-node-gpu.js passed: details face liveness 0.83 -2022-11-22 10:36:12 STATE: test-backend-node-gpu.js passed: details body length 1 -2022-11-22 10:36:12 STATE: test-backend-node-gpu.js passed: details body 0.92 17 6 -2022-11-22 10:36:12 STATE: test-backend-node-gpu.js passed: details hand length 1 -2022-11-22 10:36:12 STATE: test-backend-node-gpu.js passed: details hand 0.51 0.73 point -2022-11-22 10:36:12 STATE: test-backend-node-gpu.js passed: details hand arrays 21 5 7 -2022-11-22 10:36:12 STATE: test-backend-node-gpu.js passed: details gesture length 7 -2022-11-22 10:36:12 STATE: test-backend-node-gpu.js passed: details gesture first {"face":0,"gesture":"facing right"} -2022-11-22 10:36:12 STATE: test-backend-node-gpu.js passed: details object length 1 -2022-11-22 10:36:12 STATE: test-backend-node-gpu.js passed: details object 0.72 person -2022-11-22 10:36:13 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996928} -2022-11-22 10:36:13 STATE: test-backend-node-gpu.js event: image -2022-11-22 10:36:13 STATE: test-backend-node-gpu.js event: detect -2022-11-22 10:36:13 STATE: test-backend-node-gpu.js passed: tensor shape: [1,1200,1200,4] dtype: float32 -2022-11-22 10:36:13 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1371996928} -2022-11-22 10:36:13 STATE: test-backend-node-gpu.js event: image -2022-11-22 10:36:13 STATE: test-backend-node-gpu.js event: detect -2022-11-22 10:36:13 STATE: test-backend-node-gpu.js passed: tensor shape: [1200,1200,4] dtype: float32 -2022-11-22 10:36:13 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-11-22 10:36:13 STATE: test-backend-node-gpu.js event: image -2022-11-22 10:36:13 STATE: test-backend-node-gpu.js event: detect -2022-11-22 10:36:13 STATE: test-backend-node-gpu.js passed: tensor shape: [1,1200,1200,3] dtype: float32 -2022-11-22 10:36:14 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1004796928} -2022-11-22 10:36:14 STATE: test-backend-node-gpu.js event: image -2022-11-22 10:36:14 STATE: test-backend-node-gpu.js event: detect -2022-11-22 10:36:14 STATE: test-backend-node-gpu.js passed: tensor shape: [1200,1200,3] dtype: float32 -2022-11-22 10:36:14 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871} -2022-11-22 10:36:14 STATE: test-backend-node-gpu.js event: image -2022-11-22 10:36:14 STATE: test-backend-node-gpu.js event: detect -2022-11-22 10:36:14 STATE: test-backend-node-gpu.js passed: tensor shape: [1,1200,1200,4] dtype: int32 -2022-11-22 10:36:14 INFO:  test-backend-node-gpu.js test default -2022-11-22 10:36:14 STATE: test-backend-node-gpu.js start async -2022-11-22 10:36:15 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-11-22 10:36:15 STATE: test-backend-node-gpu.js event: image -2022-11-22 10:36:15 STATE: test-backend-node-gpu.js event: detect -2022-11-22 10:36:15 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg async -2022-11-22 10:36:15 DATA:  test-backend-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-11-22 10:36:15 DATA:  test-backend-node-gpu.js result: performance: load: null total: 171 -2022-11-22 10:36:15 STATE: test-backend-node-gpu.js passed: default result face match 1 female 0.97 -2022-11-22 10:36:15 INFO:  test-backend-node-gpu.js test sync -2022-11-22 10:36:15 STATE: test-backend-node-gpu.js start sync -2022-11-22 10:36:15 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-11-22 10:36:15 STATE: test-backend-node-gpu.js event: image -2022-11-22 10:36:15 STATE: test-backend-node-gpu.js event: detect -2022-11-22 10:36:15 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg sync -2022-11-22 10:36:15 DATA:  test-backend-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-11-22 10:36:15 DATA:  test-backend-node-gpu.js result: performance: load: null total: 146 -2022-11-22 10:36:15 STATE: test-backend-node-gpu.js passed: default sync 1 female 0.97 -2022-11-22 10:36:15 INFO:  test-backend-node-gpu.js test: image process -2022-11-22 10:36:15 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-11-22 10:36:15 STATE: test-backend-node-gpu.js passed: image input null [1,256,256,3] -2022-11-22 10:36:15 INFO:  test-backend-node-gpu.js test: image null -2022-11-22 10:36:15 STATE: test-backend-node-gpu.js passed: invalid input could not convert input to tensor -2022-11-22 10:36:15 INFO:  test-backend-node-gpu.js test face similarity -2022-11-22 10:36:15 STATE: test-backend-node-gpu.js start face similarity -2022-11-22 10:36:15 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-11-22 10:36:15 STATE: test-backend-node-gpu.js event: image -2022-11-22 10:36:15 STATE: test-backend-node-gpu.js event: detect -2022-11-22 10:36:15 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-face.jpg face similarity -2022-11-22 10:36:15 DATA:  test-backend-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-11-22 10:36:15 DATA:  test-backend-node-gpu.js result: performance: load: null total: 158 -2022-11-22 10:36:15 STATE: test-backend-node-gpu.js start face similarity -2022-11-22 10:36:15 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-11-22 10:36:15 STATE: test-backend-node-gpu.js event: image -2022-11-22 10:36:16 STATE: test-backend-node-gpu.js event: detect -2022-11-22 10:36:16 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg face similarity -2022-11-22 10:36:16 DATA:  test-backend-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-11-22 10:36:16 DATA:  test-backend-node-gpu.js result: performance: load: null total: 138 -2022-11-22 10:36:16 STATE: test-backend-node-gpu.js start face similarity -2022-11-22 10:36:16 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} -2022-11-22 10:36:16 STATE: test-backend-node-gpu.js event: image -2022-11-22 10:36:16 STATE: test-backend-node-gpu.js event: detect -2022-11-22 10:36:16 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-upper.jpg face similarity -2022-11-22 10:36:16 DATA:  test-backend-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-11-22 10:36:16 DATA:  test-backend-node-gpu.js result: performance: load: null total: 160 -2022-11-22 10:36:16 STATE: test-backend-node-gpu.js passed: face descriptor -2022-11-22 10:36:16 STATE: test-backend-node-gpu.js passed: face similarity {"similarity":[1,0.4475002983522097,0.5570879556505012],"descriptors":[1024,1024,1024]} -2022-11-22 10:36:16 INFO:  test-backend-node-gpu.js test object -2022-11-22 10:36:16 STATE: test-backend-node-gpu.js start object -2022-11-22 10:36:16 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-11-22 10:36:16 STATE: test-backend-node-gpu.js event: image -2022-11-22 10:36:17 STATE: test-backend-node-gpu.js event: detect -2022-11-22 10:36:17 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg object -2022-11-22 10:36:17 DATA:  test-backend-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-11-22 10:36:17 DATA:  test-backend-node-gpu.js result: performance: load: null total: 167 -2022-11-22 10:36:17 STATE: test-backend-node-gpu.js passed: centernet -2022-11-22 10:36:17 STATE: test-backend-node-gpu.js start object -2022-11-22 10:36:18 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-11-22 10:36:18 STATE: test-backend-node-gpu.js event: image -2022-11-22 10:36:18 STATE: test-backend-node-gpu.js event: detect -2022-11-22 10:36:18 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg object -2022-11-22 10:36:18 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 3 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.86,"class":"person"} {"score":0.92,"keypoints":17} -2022-11-22 10:36:18 DATA:  test-backend-node-gpu.js result: performance: load: null total: 703 -2022-11-22 10:36:18 STATE: test-backend-node-gpu.js passed: nanodet -2022-11-22 10:36:18 INFO:  test-backend-node-gpu.js test sensitive -2022-11-22 10:36:18 STATE: test-backend-node-gpu.js start sensitive -2022-11-22 10:36:18 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-11-22 10:36:18 STATE: test-backend-node-gpu.js event: image -2022-11-22 10:36:19 STATE: test-backend-node-gpu.js event: detect -2022-11-22 10:36:19 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg sensitive -2022-11-22 10:36:19 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.92,"keypoints":17} -2022-11-22 10:36:19 DATA:  test-backend-node-gpu.js result: performance: load: null total: 136 -2022-11-22 10:36:19 STATE: test-backend-node-gpu.js passed: sensitive result match -2022-11-22 10:36:19 STATE: test-backend-node-gpu.js passed: sensitive face result match -2022-11-22 10:36:19 STATE: test-backend-node-gpu.js passed: sensitive face emotion result [{"score":0.59,"emotion":"angry"},{"score":0.29,"emotion":"fear"}] -2022-11-22 10:36:19 STATE: test-backend-node-gpu.js passed: sensitive body result match -2022-11-22 10:36:19 STATE: test-backend-node-gpu.js passed: sensitive hand result match -2022-11-22 10:36:19 INFO:  test-backend-node-gpu.js test body -2022-11-22 10:36:19 STATE: test-backend-node-gpu.js start blazepose -2022-11-22 10:36:20 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-11-22 10:36:20 STATE: test-backend-node-gpu.js event: image -2022-11-22 10:36:21 STATE: test-backend-node-gpu.js event: detect -2022-11-22 10:36:21 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg blazepose -2022-11-22 10:36:21 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.99,"keypoints":39} -2022-11-22 10:36:21 DATA:  test-backend-node-gpu.js result: performance: load: null total: 464 -2022-11-22 10:36:21 STATE: test-backend-node-gpu.js passed: blazepose -2022-11-22 10:36:21 STATE: test-backend-node-gpu.js start efficientpose -2022-11-22 10:36:21 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-11-22 10:36:21 STATE: test-backend-node-gpu.js event: image -2022-11-22 10:36:22 STATE: test-backend-node-gpu.js event: detect -2022-11-22 10:36:22 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg efficientpose -2022-11-22 10:36:22 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.75,"keypoints":13} -2022-11-22 10:36:22 DATA:  test-backend-node-gpu.js result: performance: load: null total: 921 -2022-11-22 10:36:22 STATE: test-backend-node-gpu.js passed: efficientpose -2022-11-22 10:36:22 STATE: test-backend-node-gpu.js start posenet -2022-11-22 10:36:23 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-11-22 10:36:23 STATE: test-backend-node-gpu.js event: image -2022-11-22 10:36:23 STATE: test-backend-node-gpu.js event: detect -2022-11-22 10:36:23 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg posenet -2022-11-22 10:36:23 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.96,"keypoints":16} -2022-11-22 10:36:23 DATA:  test-backend-node-gpu.js result: performance: load: null total: 127 -2022-11-22 10:36:23 STATE: test-backend-node-gpu.js passed: posenet -2022-11-22 10:36:23 STATE: test-backend-node-gpu.js start movenet -2022-11-22 10:36:24 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-11-22 10:36:24 STATE: test-backend-node-gpu.js event: image -2022-11-22 10:36:24 STATE: test-backend-node-gpu.js event: detect -2022-11-22 10:36:24 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg movenet -2022-11-22 10:36:24 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.92,"keypoints":17} -2022-11-22 10:36:24 DATA:  test-backend-node-gpu.js result: performance: load: null total: 138 -2022-11-22 10:36:24 STATE: test-backend-node-gpu.js passed: movenet -2022-11-22 10:36:24 INFO:  test-backend-node-gpu.js test face matching -2022-11-22 10:36:24 STATE: test-backend-node-gpu.js passed: face database 40 -2022-11-22 10:36:24 STATE: test-backend-node-gpu.js passed: face match {"first":{"index":4,"similarity":0.7829338043932047}} {"second":{"index":4,"similarity":0.5002928781584631}} {"third":{"index":4,"similarity":0.5402934771672516}} -2022-11-22 10:36:24 INFO:  test-backend-node-gpu.js test face similarity alternative -2022-11-22 10:36:24 STATE: test-backend-node-gpu.js start face embeddings -2022-11-22 10:36:25 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-11-22 10:36:25 STATE: test-backend-node-gpu.js event: image -2022-11-22 10:36:25 STATE: test-backend-node-gpu.js event: detect -2022-11-22 10:36:25 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-face.jpg face embeddings -2022-11-22 10:36:25 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} -2022-11-22 10:36:25 DATA:  test-backend-node-gpu.js result: performance: load: null total: 204 -2022-11-22 10:36:25 STATE: test-backend-node-gpu.js passed: mobilefacenet {"embedding":192} -2022-11-22 10:36:25 STATE: test-backend-node-gpu.js start face embeddings -2022-11-22 10:36:25 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-11-22 10:36:25 STATE: test-backend-node-gpu.js event: image -2022-11-22 10:36:26 STATE: test-backend-node-gpu.js event: detect -2022-11-22 10:36:26 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-face.jpg face embeddings -2022-11-22 10:36:26 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} -2022-11-22 10:36:26 DATA:  test-backend-node-gpu.js result: performance: load: null total: 233 -2022-11-22 10:36:26 STATE: test-backend-node-gpu.js passed: insightface {"embedding":512} -2022-11-22 10:36:26 INFO:  test-backend-node-gpu.js test face attention -2022-11-22 10:36:26 STATE: test-backend-node-gpu.js start face attention -2022-11-22 10:36:26 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-11-22 10:36:26 STATE: test-backend-node-gpu.js event: image -2022-11-22 10:36:26 STATE: test-backend-node-gpu.js event: detect -2022-11-22 10:36:26 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-face.jpg face attention -2022-11-22 10:36:26 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} -2022-11-22 10:36:26 DATA:  test-backend-node-gpu.js result: performance: load: null total: 234 -2022-11-22 10:36:26 STATE: test-backend-node-gpu.js passed: face attention -2022-11-22 10:36:26 INFO:  test-backend-node-gpu.js test detectors -2022-11-22 10:36:26 STATE: test-backend-node-gpu.js start detectors -2022-11-22 10:36:26 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-11-22 10:36:26 STATE: test-backend-node-gpu.js event: image -2022-11-22 10:36:26 STATE: test-backend-node-gpu.js event: detect -2022-11-22 10:36:26 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg detectors -2022-11-22 10:36:26 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} -2022-11-22 10:36:26 DATA:  test-backend-node-gpu.js result: performance: load: null total: 109 -2022-11-22 10:36:26 STATE: test-backend-node-gpu.js passed: detector result face match -2022-11-22 10:36:26 STATE: test-backend-node-gpu.js passed: detector result hand match -2022-11-22 10:36:26 INFO:  test-backend-node-gpu.js test: multi-instance -2022-11-22 10:36:26 STATE: test-backend-node-gpu.js start multi instance -2022-11-22 10:36:26 STATE: test-backend-node-gpu.js event: image -2022-11-22 10:36:27 STATE: test-backend-node-gpu.js event: detect -2022-11-22 10:36:27 STATE: test-backend-node-gpu.js passed: detect: random multi instance -2022-11-22 10:36:27 DATA:  test-backend-node-gpu.js result: face: 0 body: 1 hand: 0 gesture: 0 object: 0 person: 0 {} {} {"score":0,"keypoints":0} -2022-11-22 10:36:27 DATA:  test-backend-node-gpu.js result: performance: load: null total: 67 -2022-11-22 10:36:27 INFO:  test-backend-node-gpu.js test: first instance -2022-11-22 10:36:27 STATE: test-backend-node-gpu.js start multi instance -2022-11-22 10:36:27 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} -2022-11-22 10:36:27 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-upper.jpg multi instance -2022-11-22 10:36:27 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-11-22 10:36:27 DATA:  test-backend-node-gpu.js result: performance: load: null total: 82 -2022-11-22 10:36:27 INFO:  test-backend-node-gpu.js test: second instance -2022-11-22 10:36:27 STATE: test-backend-node-gpu.js start multi instance -2022-11-22 10:36:27 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} -2022-11-22 10:36:27 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-upper.jpg multi instance -2022-11-22 10:36:27 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-11-22 10:36:27 DATA:  test-backend-node-gpu.js result: performance: load: null total: 86 -2022-11-22 10:36:27 INFO:  test-backend-node-gpu.js test: concurrent -2022-11-22 10:36:27 STATE: test-backend-node-gpu.js start concurrent -2022-11-22 10:36:27 STATE: test-backend-node-gpu.js start concurrent -2022-11-22 10:36:27 STATE: test-backend-node-gpu.js start concurrent -2022-11-22 10:36:27 STATE: test-backend-node-gpu.js start concurrent -2022-11-22 10:36:27 STATE: test-backend-node-gpu.js start concurrent -2022-11-22 10:36:27 STATE: test-backend-node-gpu.js start concurrent -2022-11-22 10:36:27 STATE: test-backend-node-gpu.js start concurrent -2022-11-22 10:36:27 STATE: test-backend-node-gpu.js start concurrent -2022-11-22 10:36:27 STATE: test-backend-node-gpu.js start concurrent -2022-11-22 10:36:27 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-11-22 10:36:27 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-11-22 10:36:27 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-11-22 10:36:27 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-11-22 10:36:27 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-11-22 10:36:28 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-11-22 10:36:28 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} -2022-11-22 10:36:28 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} -2022-11-22 10:36:28 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} -2022-11-22 10:36:28 STATE: test-backend-node-gpu.js event: image -2022-11-22 10:36:28 STATE: test-backend-node-gpu.js event: image -2022-11-22 10:36:28 STATE: test-backend-node-gpu.js event: image -2022-11-22 10:36:28 STATE: test-backend-node-gpu.js event: detect -2022-11-22 10:36:28 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-upper.jpg concurrent -2022-11-22 10:36:28 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-11-22 10:36:28 DATA:  test-backend-node-gpu.js result: performance: load: null total: 745 -2022-11-22 10:36:28 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-upper.jpg concurrent -2022-11-22 10:36:28 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-11-22 10:36:28 DATA:  test-backend-node-gpu.js result: performance: load: null total: 745 -2022-11-22 10:36:28 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-upper.jpg concurrent -2022-11-22 10:36:28 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-11-22 10:36:28 DATA:  test-backend-node-gpu.js result: performance: load: null total: 745 -2022-11-22 10:36:28 STATE: test-backend-node-gpu.js event: detect -2022-11-22 10:36:28 STATE: test-backend-node-gpu.js event: detect -2022-11-22 10:36:28 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-face.jpg concurrent -2022-11-22 10:36:28 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} -2022-11-22 10:36:28 DATA:  test-backend-node-gpu.js result: performance: load: null total: 745 -2022-11-22 10:36:28 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-face.jpg concurrent -2022-11-22 10:36:28 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} -2022-11-22 10:36:28 DATA:  test-backend-node-gpu.js result: performance: load: null total: 745 -2022-11-22 10:36:28 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-face.jpg concurrent -2022-11-22 10:36:28 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} -2022-11-22 10:36:28 DATA:  test-backend-node-gpu.js result: performance: load: null total: 745 -2022-11-22 10:36:28 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg concurrent -2022-11-22 10:36:28 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} -2022-11-22 10:36:28 DATA:  test-backend-node-gpu.js result: performance: load: null total: 745 -2022-11-22 10:36:28 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg concurrent -2022-11-22 10:36:28 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} -2022-11-22 10:36:28 DATA:  test-backend-node-gpu.js result: performance: load: null total: 745 -2022-11-22 10:36:28 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg concurrent -2022-11-22 10:36:28 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} -2022-11-22 10:36:28 DATA:  test-backend-node-gpu.js result: performance: load: null total: 745 -2022-11-22 10:36:28 INFO:  test-backend-node-gpu.js test: monkey-patch -2022-11-22 10:36:28 STATE: test-backend-node-gpu.js event: image -2022-11-22 10:36:29 STATE: test-backend-node-gpu.js event: detect -2022-11-22 10:36:29 STATE: test-backend-node-gpu.js passed: monkey patch -2022-11-22 10:36:29 STATE: test-backend-node-gpu.js passed: segmentation [262144] -2022-11-22 10:36:29 STATE: test-backend-node-gpu.js passeed: equal usage -2022-11-22 10:36:29 INFO:  test-backend-node-gpu.js test: input compare -2022-11-22 10:36:29 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-11-22 10:36:29 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-11-22 10:36:29 STATE: test-backend-node-gpu.js passed: image compare 0 23.275441687091504 -2022-11-22 10:36:29 INFO:  test-backend-node-gpu.js events: {"image":29,"detect":29,"warmup":2} -2022-11-22 10:36:29 INFO:  test-backend-node-gpu.js tensors 4441 -2022-11-22 10:36:29 INFO:  test-backend-node-gpu.js test complete: 20448 ms -2022-11-22 10:36:30 INFO:  -2022-11-22 10:36:30 INFO:  test-backend-node-wasm.js start -2022-11-22 10:36:30 DATA:  test-backend-node-wasm.js stdout: 2022-11-22 10:36:30 INFO:  { supported: true, backend: true, simd: undefined, multithread: undefined } https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-backend-wasm@4.1.0/dist/ -2022-11-22 10:36:30 STATE: test-backend-node-wasm.js passed: model server: https://vladmandic.github.io/human-models/models/ -2022-11-22 10:36:30 INFO:  test-backend-node-wasm.js test: configuration validation -2022-11-22 10:36:30 STATE: test-backend-node-wasm.js passed: configuration default validation [] -2022-11-22 10:36:30 STATE: test-backend-node-wasm.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}] -2022-11-22 10:36:30 INFO:  test-backend-node-wasm.js test: model load -2022-11-22 10:36:32 STATE: test-backend-node-wasm.js passed: models loaded 11 11 [{"name":"blazeface","loaded":true,"size":538928,"url":"https://vladmandic.github.io/human-models/models/blazeface.json"},{"name":"liveness","loaded":true,"size":592976,"url":"https://vladmandic.github.io/human-models/models/liveness.json"},{"name":"facemesh","loaded":true,"size":1477958,"url":"https://vladmandic.github.io/human-models/models/facemesh.json"},{"name":"emotion","loaded":true,"size":820516,"url":"https://vladmandic.github.io/human-models/models/emotion.json"},{"name":"antispoof","loaded":true,"size":853098,"url":"https://vladmandic.github.io/human-models/models/antispoof.json"},{"name":"centernet","loaded":true,"size":4030290,"url":"https://vladmandic.github.io/human-models/models/centernet.json"},{"name":"iris","loaded":true,"size":2599092,"url":"https://vladmandic.github.io/human-models/models/iris.json"},{"name":"handskeleton","loaded":true,"size":0,"url":"https://vladmandic.github.io/human-models/models/handlandmark-lite.json"},{"name":"movenet","loaded":true,"size":4650216,"url":"https://vladmandic.github.io/human-models/models/movenet-lightning.json"},{"name":"faceres","loaded":true,"size":6978814,"url":"https://vladmandic.github.io/human-models/models/faceres.json"},{"name":"handtrack","loaded":true,"size":2964837,"url":"https://vladmandic.github.io/human-models/models/handtrack.json"}] -2022-11-22 10:36:32 INFO:  test-backend-node-wasm.js memory: {"memory":{"unreliable":false,"numTensors":1785,"numDataBuffers":1785,"numBytes":56431460}} -2022-11-22 10:36:32 INFO:  test-backend-node-wasm.js state: {"state":{"registeredVariables":{},"nextTapeNodeId":0,"numBytes":56431460,"numTensors":1785,"numStringTensors":0,"numDataBuffers":1785,"gradientDepth":0,"kernelDepth":0,"scopeStack":[],"numDataMovesStack":[],"nextScopeId":0,"tensorInfo":{},"profiling":false,"activeProfile":{"newBytes":0,"newTensors":0,"peakBytes":0,"kernels":[],"result":null,"kernelNames":[]}}} -2022-11-22 10:36:32 INFO:  test-backend-node-wasm.js test: warmup -2022-11-22 10:36:32 STATE: test-backend-node-wasm.js passed: create human -2022-11-22 10:36:32 INFO:  test-backend-node-wasm.js human version: 3.0.1 -2022-11-22 10:36:32 INFO:  test-backend-node-wasm.js platform: linux x64 agent: NodeJS v19.1.0 -2022-11-22 10:36:32 INFO:  test-backend-node-wasm.js tfjs version: 4.1.0 -2022-11-22 10:36:32 INFO:  test-backend-node-wasm.js env: {"browser":false,"node":true,"platform":"linux x64","agent":"NodeJS v19.1.0","backends":["wasm"],"initial":false,"tfjs":{"version":"4.1.0"},"offscreen":false,"perfadd":false,"tensorflow":{},"wasm":{"supported":true,"backend":true,"simd":true,"multithread":false},"webgl":{"supported":false,"backend":false},"webgpu":{"supported":false,"backend":false},"cpu":{"flags":[]},"kernels":128} -2022-11-22 10:36:32 STATE: test-backend-node-wasm.js passed: set backend: wasm -2022-11-22 10:36:32 STATE: test-backend-node-wasm.js tensors 1785 -2022-11-22 10:36:32 STATE: test-backend-node-wasm.js result: defined models: 11 loaded models: 11 -2022-11-22 10:36:32 STATE: test-backend-node-wasm.js passed: load models 11 -2022-11-22 10:36:32 STATE: test-backend-node-wasm.js passed: warmup: none default -2022-11-22 10:36:32 DATA:  test-backend-node-wasm.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {} -2022-11-22 10:36:32 DATA:  test-backend-node-wasm.js result: performance: load: null total: null -2022-11-22 10:36:32 STATE: test-backend-node-wasm.js passed: warmup none result match -2022-11-22 10:36:32 STATE: test-backend-node-wasm.js event: image -2022-11-22 10:36:33 STATE: test-backend-node-wasm.js event: detect -2022-11-22 10:36:33 STATE: test-backend-node-wasm.js event: warmup -2022-11-22 10:36:33 STATE: test-backend-node-wasm.js passed: warmup: face default -2022-11-22 10:36:33 DATA:  test-backend-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-11-22 10:36:33 DATA:  test-backend-node-wasm.js result: performance: load: null total: 459 -2022-11-22 10:36:33 STATE: test-backend-node-wasm.js passed: warmup face result match -2022-11-22 10:36:33 STATE: test-backend-node-wasm.js event: image -2022-11-22 10:36:33 STATE: test-backend-node-wasm.js event: detect -2022-11-22 10:36:33 STATE: test-backend-node-wasm.js event: warmup -2022-11-22 10:36:33 STATE: test-backend-node-wasm.js passed: warmup: body default -2022-11-22 10:36:33 DATA:  test-backend-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-11-22 10:36:33 DATA:  test-backend-node-wasm.js result: performance: load: null total: 327 -2022-11-22 10:36:33 STATE: test-backend-node-wasm.js passed: warmup body result match -2022-11-22 10:36:33 STATE: test-backend-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":"thumb up"},{"hand":0,"gesture":"open palm"},{"iris":0,"gesture":"looking left"},{"iris":0,"gesture":"looking up"}]} -2022-11-22 10:36:33 INFO:  test-backend-node-wasm.js test: details verification -2022-11-22 10:36:33 STATE: test-backend-node-wasm.js start default -2022-11-22 10:36:34 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-11-22 10:36:34 STATE: test-backend-node-wasm.js event: image -2022-11-22 10:36:34 STATE: test-backend-node-wasm.js event: detect -2022-11-22 10:36:34 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg default -2022-11-22 10:36:34 DATA:  test-backend-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-11-22 10:36:34 DATA:  test-backend-node-wasm.js result: performance: load: null total: 320 -2022-11-22 10:36:34 STATE: test-backend-node-wasm.js passed: details face length 1 -2022-11-22 10:36:34 STATE: test-backend-node-wasm.js passed: details face score 1 0.93 1 -2022-11-22 10:36:34 STATE: test-backend-node-wasm.js passed: details face age/gender 23.7 female 0.97 2.34 -2022-11-22 10:36:34 STATE: test-backend-node-wasm.js passed: details face arrays 4 478 1024 -2022-11-22 10:36:34 STATE: test-backend-node-wasm.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"} -2022-11-22 10:36:34 STATE: test-backend-node-wasm.js passed: details face anti-spoofing 0.79 -2022-11-22 10:36:34 STATE: test-backend-node-wasm.js passed: details face liveness 0.83 -2022-11-22 10:36:34 STATE: test-backend-node-wasm.js passed: details body length 1 -2022-11-22 10:36:34 STATE: test-backend-node-wasm.js passed: details body 0.92 17 6 -2022-11-22 10:36:34 STATE: test-backend-node-wasm.js passed: details hand length 1 -2022-11-22 10:36:34 STATE: test-backend-node-wasm.js passed: details hand 0.51 0.73 point -2022-11-22 10:36:34 STATE: test-backend-node-wasm.js passed: details hand arrays 21 5 7 -2022-11-22 10:36:34 STATE: test-backend-node-wasm.js passed: details gesture length 7 -2022-11-22 10:36:34 STATE: test-backend-node-wasm.js passed: details gesture first {"face":0,"gesture":"facing right"} -2022-11-22 10:36:34 STATE: test-backend-node-wasm.js passed: details object length 1 -2022-11-22 10:36:34 STATE: test-backend-node-wasm.js passed: details object 0.72 person -2022-11-22 10:36:34 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1413675264} -2022-11-22 10:36:34 STATE: test-backend-node-wasm.js event: image -2022-11-22 10:36:34 STATE: test-backend-node-wasm.js event: detect -2022-11-22 10:36:34 STATE: test-backend-node-wasm.js passed: tensor shape: [1,1200,1200,4] dtype: float32 -2022-11-22 10:36:35 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1413675264} -2022-11-22 10:36:35 STATE: test-backend-node-wasm.js event: image -2022-11-22 10:36:35 STATE: test-backend-node-wasm.js event: detect -2022-11-22 10:36:35 STATE: test-backend-node-wasm.js passed: tensor shape: [1200,1200,4] dtype: float32 -2022-11-22 10:36:35 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-11-22 10:36:35 STATE: test-backend-node-wasm.js event: image -2022-11-22 10:36:35 STATE: test-backend-node-wasm.js event: detect -2022-11-22 10:36:35 STATE: test-backend-node-wasm.js passed: tensor shape: [1,1200,1200,3] dtype: float32 -2022-11-22 10:36:36 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1038921856} -2022-11-22 10:36:36 STATE: test-backend-node-wasm.js event: image -2022-11-22 10:36:36 STATE: test-backend-node-wasm.js event: detect -2022-11-22 10:36:36 STATE: test-backend-node-wasm.js passed: tensor shape: [1200,1200,3] dtype: float32 -2022-11-22 10:36:36 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871} -2022-11-22 10:36:36 STATE: test-backend-node-wasm.js event: image -2022-11-22 10:36:37 STATE: test-backend-node-wasm.js event: detect -2022-11-22 10:36:37 STATE: test-backend-node-wasm.js passed: tensor shape: [1,1200,1200,4] dtype: int32 -2022-11-22 10:36:37 INFO:  test-backend-node-wasm.js test default -2022-11-22 10:36:37 STATE: test-backend-node-wasm.js start async -2022-11-22 10:36:37 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-11-22 10:36:37 STATE: test-backend-node-wasm.js event: image -2022-11-22 10:36:37 STATE: test-backend-node-wasm.js event: detect -2022-11-22 10:36:37 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg async -2022-11-22 10:36:37 DATA:  test-backend-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-11-22 10:36:37 DATA:  test-backend-node-wasm.js result: performance: load: null total: 316 -2022-11-22 10:36:37 STATE: test-backend-node-wasm.js passed: default result face match 1 female 0.97 -2022-11-22 10:36:37 INFO:  test-backend-node-wasm.js test sync -2022-11-22 10:36:37 STATE: test-backend-node-wasm.js start sync -2022-11-22 10:36:37 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-11-22 10:36:37 STATE: test-backend-node-wasm.js event: image -2022-11-22 10:36:38 STATE: test-backend-node-wasm.js event: detect -2022-11-22 10:36:38 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg sync -2022-11-22 10:36:38 DATA:  test-backend-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-11-22 10:36:38 DATA:  test-backend-node-wasm.js result: performance: load: null total: 310 -2022-11-22 10:36:38 STATE: test-backend-node-wasm.js passed: default sync 1 female 0.97 -2022-11-22 10:36:38 INFO:  test-backend-node-wasm.js test: image process -2022-11-22 10:36:38 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-11-22 10:36:38 STATE: test-backend-node-wasm.js passed: image input null [1,256,256,3] -2022-11-22 10:36:38 INFO:  test-backend-node-wasm.js test: image null -2022-11-22 10:36:38 STATE: test-backend-node-wasm.js passed: invalid input could not convert input to tensor -2022-11-22 10:36:38 INFO:  test-backend-node-wasm.js test face similarity -2022-11-22 10:36:38 STATE: test-backend-node-wasm.js start face similarity -2022-11-22 10:36:38 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-11-22 10:36:38 STATE: test-backend-node-wasm.js event: image -2022-11-22 10:36:38 STATE: test-backend-node-wasm.js event: detect -2022-11-22 10:36:38 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-face.jpg face similarity -2022-11-22 10:36:38 DATA:  test-backend-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-11-22 10:36:38 DATA:  test-backend-node-wasm.js result: performance: load: null total: 292 -2022-11-22 10:36:38 STATE: test-backend-node-wasm.js start face similarity -2022-11-22 10:36:38 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-11-22 10:36:38 STATE: test-backend-node-wasm.js event: image -2022-11-22 10:36:38 STATE: test-backend-node-wasm.js event: detect -2022-11-22 10:36:38 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg face similarity -2022-11-22 10:36:38 DATA:  test-backend-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-11-22 10:36:38 DATA:  test-backend-node-wasm.js result: performance: load: null total: 308 -2022-11-22 10:36:38 STATE: test-backend-node-wasm.js start face similarity -2022-11-22 10:36:39 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} -2022-11-22 10:36:39 STATE: test-backend-node-wasm.js event: image -2022-11-22 10:36:39 STATE: test-backend-node-wasm.js event: detect -2022-11-22 10:36:39 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-upper.jpg face similarity -2022-11-22 10:36:39 DATA:  test-backend-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-11-22 10:36:39 DATA:  test-backend-node-wasm.js result: performance: load: null total: 284 -2022-11-22 10:36:39 STATE: test-backend-node-wasm.js passed: face descriptor -2022-11-22 10:36:39 STATE: test-backend-node-wasm.js passed: face similarity {"similarity":[1,0.5266119940661309,0.4858842904087851],"descriptors":[1024,1024,1024]} -2022-11-22 10:36:39 INFO:  test-backend-node-wasm.js test object -2022-11-22 10:36:39 STATE: test-backend-node-wasm.js start object -2022-11-22 10:36:39 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-11-22 10:36:39 STATE: test-backend-node-wasm.js event: image -2022-11-22 10:36:39 STATE: test-backend-node-wasm.js event: detect -2022-11-22 10:36:39 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg object -2022-11-22 10:36:39 DATA:  test-backend-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-11-22 10:36:39 DATA:  test-backend-node-wasm.js result: performance: load: null total: 305 -2022-11-22 10:36:39 STATE: test-backend-node-wasm.js passed: centernet -2022-11-22 10:36:39 STATE: test-backend-node-wasm.js start object -2022-11-22 10:36:40 WARN:  test-backend-node-wasm.js missing kernel ops {"title":"object","model":"nanodet","url":"https://vladmandic.github.io/human-models/models/nanodet.json","missing":["sparsetodense"],"backkend":"wasm"} -2022-11-22 10:36:41 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-11-22 10:36:41 STATE: test-backend-node-wasm.js event: image -2022-11-22 10:36:41 STATE: test-backend-node-wasm.js event: detect -2022-11-22 10:36:41 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg object -2022-11-22 10:36:41 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 0 person: 1 {"score":1,"age":29.6,"gender":"female"} {} {"score":0.92,"keypoints":17} -2022-11-22 10:36:41 DATA:  test-backend-node-wasm.js result: performance: load: null total: 198 -2022-11-22 10:36:41 ERROR: test-backend-node-wasm.js failed: nanodet [] -2022-11-22 10:36:41 INFO:  test-backend-node-wasm.js test sensitive -2022-11-22 10:36:41 STATE: test-backend-node-wasm.js start sensitive -2022-11-22 10:36:41 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-11-22 10:36:41 STATE: test-backend-node-wasm.js event: image -2022-11-22 10:36:41 STATE: test-backend-node-wasm.js event: detect -2022-11-22 10:36:41 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg sensitive -2022-11-22 10:36:41 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 10 object: 0 person: 1 {"score":1,"age":29.6,"gender":"female"} {} {"score":0.92,"keypoints":17} -2022-11-22 10:36:41 DATA:  test-backend-node-wasm.js result: performance: load: null total: 217 -2022-11-22 10:36:41 STATE: test-backend-node-wasm.js passed: sensitive result match -2022-11-22 10:36:41 STATE: test-backend-node-wasm.js passed: sensitive face result match -2022-11-22 10:36:41 STATE: test-backend-node-wasm.js passed: sensitive face emotion result [{"score":0.46,"emotion":"neutral"},{"score":0.24,"emotion":"fear"},{"score":0.17,"emotion":"sad"}] -2022-11-22 10:36:41 STATE: test-backend-node-wasm.js passed: sensitive body result match -2022-11-22 10:36:41 STATE: test-backend-node-wasm.js passed: sensitive hand result match -2022-11-22 10:36:41 INFO:  test-backend-node-wasm.js test body -2022-11-22 10:36:41 STATE: test-backend-node-wasm.js start blazepose -2022-11-22 10:36:44 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-11-22 10:36:44 STATE: test-backend-node-wasm.js event: image -2022-11-22 10:36:44 STATE: test-backend-node-wasm.js event: detect -2022-11-22 10:36:44 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg blazepose -2022-11-22 10:36:44 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 10 object: 0 person: 1 {"score":1,"age":29.6,"gender":"female"} {} {"score":0.99,"keypoints":39} -2022-11-22 10:36:44 DATA:  test-backend-node-wasm.js result: performance: load: null total: 387 -2022-11-22 10:36:44 STATE: test-backend-node-wasm.js passed: blazepose -2022-11-22 10:36:44 STATE: test-backend-node-wasm.js start efficientpose -2022-11-22 10:36:45 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-11-22 10:36:45 STATE: test-backend-node-wasm.js event: image -2022-11-22 10:36:46 STATE: test-backend-node-wasm.js event: detect -2022-11-22 10:36:46 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg efficientpose -2022-11-22 10:36:46 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 10 object: 0 person: 1 {"score":1,"age":29.6,"gender":"female"} {} {"score":0.75,"keypoints":13} -2022-11-22 10:36:46 DATA:  test-backend-node-wasm.js result: performance: load: null total: 644 -2022-11-22 10:36:46 STATE: test-backend-node-wasm.js passed: efficientpose -2022-11-22 10:36:46 STATE: test-backend-node-wasm.js start posenet -2022-11-22 10:36:47 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-11-22 10:36:47 STATE: test-backend-node-wasm.js event: image -2022-11-22 10:36:47 STATE: test-backend-node-wasm.js event: detect -2022-11-22 10:36:47 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg posenet -2022-11-22 10:36:47 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 10 object: 0 person: 1 {"score":1,"age":29.6,"gender":"female"} {} {"score":0.96,"keypoints":16} -2022-11-22 10:36:47 DATA:  test-backend-node-wasm.js result: performance: load: null total: 268 -2022-11-22 10:36:47 STATE: test-backend-node-wasm.js passed: posenet -2022-11-22 10:36:47 STATE: test-backend-node-wasm.js start movenet -2022-11-22 10:36:47 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-11-22 10:36:47 STATE: test-backend-node-wasm.js event: image -2022-11-22 10:36:47 STATE: test-backend-node-wasm.js event: detect -2022-11-22 10:36:47 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg movenet -2022-11-22 10:36:47 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 10 object: 0 person: 1 {"score":1,"age":29.6,"gender":"female"} {} {"score":0.92,"keypoints":17} -2022-11-22 10:36:47 DATA:  test-backend-node-wasm.js result: performance: load: null total: 221 -2022-11-22 10:36:47 STATE: test-backend-node-wasm.js passed: movenet -2022-11-22 10:36:47 INFO:  test-backend-node-wasm.js test face matching -2022-11-22 10:36:47 STATE: test-backend-node-wasm.js passed: face database 40 -2022-11-22 10:36:47 STATE: test-backend-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-11-22 10:36:47 INFO:  test-backend-node-wasm.js test face similarity alternative -2022-11-22 10:36:47 STATE: test-backend-node-wasm.js start face embeddings -2022-11-22 10:36:48 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-11-22 10:36:48 STATE: test-backend-node-wasm.js event: image -2022-11-22 10:36:48 STATE: test-backend-node-wasm.js event: detect -2022-11-22 10:36:48 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-face.jpg face embeddings -2022-11-22 10:36:48 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} -2022-11-22 10:36:48 DATA:  test-backend-node-wasm.js result: performance: load: null total: 217 -2022-11-22 10:36:48 STATE: test-backend-node-wasm.js passed: mobilefacenet {"embedding":192} -2022-11-22 10:36:48 STATE: test-backend-node-wasm.js start face embeddings -2022-11-22 10:36:49 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-11-22 10:36:49 STATE: test-backend-node-wasm.js event: image -2022-11-22 10:36:50 STATE: test-backend-node-wasm.js event: detect -2022-11-22 10:36:50 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-face.jpg face embeddings -2022-11-22 10:36:50 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} -2022-11-22 10:36:50 DATA:  test-backend-node-wasm.js result: performance: load: null total: 259 -2022-11-22 10:36:50 STATE: test-backend-node-wasm.js passed: insightface {"embedding":512} -2022-11-22 10:36:50 INFO:  test-backend-node-wasm.js test face attention -2022-11-22 10:36:50 STATE: test-backend-node-wasm.js start face attention -2022-11-22 10:36:50 WARN:  test-backend-node-wasm.js missing kernel ops {"title":"face attention","model":"facemesh","url":"https://vladmandic.github.io/human-models/models/facemesh-attention.json","missing":["atan2"],"backkend":"wasm"} -2022-11-22 10:36:50 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-11-22 10:36:50 STATE: test-backend-node-wasm.js event: image -2022-11-22 10:36:50 STATE: test-backend-node-wasm.js event: detect -2022-11-22 10:36:50 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-face.jpg face attention -2022-11-22 10:36:50 DATA:  test-backend-node-wasm.js result: face: 0 body: 1 hand: 1 gesture: 2 object: 0 person: 0 {} {} {"score":0.47,"keypoints":3} -2022-11-22 10:36:50 DATA:  test-backend-node-wasm.js result: performance: load: null total: 104 -2022-11-22 10:36:50 ERROR: test-backend-node-wasm.js failed: face attention {"annotations":0} -2022-11-22 10:36:50 INFO:  test-backend-node-wasm.js test detectors -2022-11-22 10:36:50 STATE: test-backend-node-wasm.js start detectors -2022-11-22 10:36:50 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-11-22 10:36:50 STATE: test-backend-node-wasm.js event: image -2022-11-22 10:36:50 STATE: test-backend-node-wasm.js event: detect -2022-11-22 10:36:50 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg detectors -2022-11-22 10:36:50 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} -2022-11-22 10:36:50 DATA:  test-backend-node-wasm.js result: performance: load: null total: 124 -2022-11-22 10:36:50 STATE: test-backend-node-wasm.js passed: detector result face match -2022-11-22 10:36:50 STATE: test-backend-node-wasm.js passed: detector result hand match -2022-11-22 10:36:50 INFO:  test-backend-node-wasm.js test: multi-instance -2022-11-22 10:36:50 STATE: test-backend-node-wasm.js start multi instance -2022-11-22 10:36:50 STATE: test-backend-node-wasm.js event: image -2022-11-22 10:36:51 STATE: test-backend-node-wasm.js event: detect -2022-11-22 10:36:51 STATE: test-backend-node-wasm.js passed: detect: random multi instance -2022-11-22 10:36:51 DATA:  test-backend-node-wasm.js result: face: 0 body: 1 hand: 0 gesture: 0 object: 0 person: 0 {} {} {"score":0,"keypoints":0} -2022-11-22 10:36:51 DATA:  test-backend-node-wasm.js result: performance: load: null total: 100 -2022-11-22 10:36:51 INFO:  test-backend-node-wasm.js test: first instance -2022-11-22 10:36:51 STATE: test-backend-node-wasm.js start multi instance -2022-11-22 10:36:51 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} -2022-11-22 10:36:51 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-upper.jpg multi instance -2022-11-22 10:36:51 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-11-22 10:36:51 DATA:  test-backend-node-wasm.js result: performance: load: null total: 107 -2022-11-22 10:36:51 INFO:  test-backend-node-wasm.js test: second instance -2022-11-22 10:36:51 STATE: test-backend-node-wasm.js start multi instance -2022-11-22 10:36:51 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} -2022-11-22 10:36:51 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-upper.jpg multi instance -2022-11-22 10:36:51 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-11-22 10:36:51 DATA:  test-backend-node-wasm.js result: performance: load: null total: 107 -2022-11-22 10:36:51 INFO:  test-backend-node-wasm.js test: concurrent -2022-11-22 10:36:51 STATE: test-backend-node-wasm.js start concurrent -2022-11-22 10:36:51 STATE: test-backend-node-wasm.js start concurrent -2022-11-22 10:36:51 STATE: test-backend-node-wasm.js start concurrent -2022-11-22 10:36:51 STATE: test-backend-node-wasm.js start concurrent -2022-11-22 10:36:51 STATE: test-backend-node-wasm.js start concurrent -2022-11-22 10:36:51 STATE: test-backend-node-wasm.js start concurrent -2022-11-22 10:36:51 STATE: test-backend-node-wasm.js start concurrent -2022-11-22 10:36:51 STATE: test-backend-node-wasm.js start concurrent -2022-11-22 10:36:51 STATE: test-backend-node-wasm.js start concurrent -2022-11-22 10:36:51 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-11-22 10:36:51 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-11-22 10:36:51 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-11-22 10:36:51 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-11-22 10:36:51 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-11-22 10:36:52 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-11-22 10:36:52 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} -2022-11-22 10:36:52 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} -2022-11-22 10:36:52 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} -2022-11-22 10:36:52 STATE: test-backend-node-wasm.js event: image -2022-11-22 10:36:52 STATE: test-backend-node-wasm.js event: image -2022-11-22 10:36:52 STATE: test-backend-node-wasm.js event: image -2022-11-22 10:36:53 STATE: test-backend-node-wasm.js event: detect -2022-11-22 10:36:53 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-upper.jpg concurrent -2022-11-22 10:36:53 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-11-22 10:36:53 DATA:  test-backend-node-wasm.js result: performance: load: null total: 953 -2022-11-22 10:36:53 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-upper.jpg concurrent -2022-11-22 10:36:53 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-11-22 10:36:53 DATA:  test-backend-node-wasm.js result: performance: load: null total: 953 -2022-11-22 10:36:53 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-upper.jpg concurrent -2022-11-22 10:36:53 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-11-22 10:36:53 DATA:  test-backend-node-wasm.js result: performance: load: null total: 953 -2022-11-22 10:36:53 STATE: test-backend-node-wasm.js event: detect -2022-11-22 10:36:53 STATE: test-backend-node-wasm.js event: detect -2022-11-22 10:36:53 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-face.jpg concurrent -2022-11-22 10:36:53 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} -2022-11-22 10:36:53 DATA:  test-backend-node-wasm.js result: performance: load: null total: 954 -2022-11-22 10:36:53 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-face.jpg concurrent -2022-11-22 10:36:53 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} -2022-11-22 10:36:53 DATA:  test-backend-node-wasm.js result: performance: load: null total: 954 -2022-11-22 10:36:53 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-face.jpg concurrent -2022-11-22 10:36:53 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} -2022-11-22 10:36:53 DATA:  test-backend-node-wasm.js result: performance: load: null total: 954 -2022-11-22 10:36:53 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg concurrent -2022-11-22 10:36:53 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} -2022-11-22 10:36:53 DATA:  test-backend-node-wasm.js result: performance: load: null total: 954 -2022-11-22 10:36:53 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg concurrent -2022-11-22 10:36:53 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} -2022-11-22 10:36:53 DATA:  test-backend-node-wasm.js result: performance: load: null total: 954 -2022-11-22 10:36:53 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg concurrent -2022-11-22 10:36:53 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} -2022-11-22 10:36:53 DATA:  test-backend-node-wasm.js result: performance: load: null total: 954 -2022-11-22 10:36:53 INFO:  test-backend-node-wasm.js test: monkey-patch -2022-11-22 10:36:53 STATE: test-backend-node-wasm.js event: image -2022-11-22 10:36:53 STATE: test-backend-node-wasm.js event: detect -2022-11-22 10:36:53 STATE: test-backend-node-wasm.js passed: monkey patch -2022-11-22 10:36:54 STATE: test-backend-node-wasm.js passed: segmentation [262144] -2022-11-22 10:36:54 STATE: test-backend-node-wasm.js passeed: equal usage -2022-11-22 10:36:54 INFO:  test-backend-node-wasm.js test: input compare -2022-11-22 10:36:54 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-11-22 10:36:54 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-11-22 10:36:54 STATE: test-backend-node-wasm.js passed: image compare 0 23.280073018790848 -2022-11-22 10:36:54 INFO:  test-backend-node-wasm.js events: {"image":29,"detect":29,"warmup":2} -2022-11-22 10:36:54 INFO:  test-backend-node-wasm.js tensors 4443 -2022-11-22 10:36:54 INFO:  test-backend-node-wasm.js test complete: 23460 ms -2022-11-22 10:36:54 STATE: all tests complete -2022-11-22 10:36:54 INFO:  status {"test":"../demo/nodejs/node.js","passed":1,"failed":0} -2022-11-22 10:36:54 INFO:  status {"test":"../demo/nodejs/node-simple.js","passed":1,"failed":0} -2022-11-22 10:36:54 INFO:  status {"test":"../demo/nodejs/node-event.js","passed":1,"failed":0} -2022-11-22 10:36:54 INFO:  status {"test":"../demo/nodejs/node-similarity.js","passed":1,"failed":0} -2022-11-22 10:36:54 INFO:  status {"test":"../demo/nodejs/node-canvas.js","passed":1,"failed":0} -2022-11-22 10:36:54 INFO:  status {"test":"../demo/nodejs/process-folder.js","passed":1,"failed":0} -2022-11-22 10:36:54 INFO:  status {"test":"../demo/multithread/node-multiprocess.js","passed":1,"failed":0} -2022-11-22 10:36:54 INFO:  status {"test":"../demo/facematch/node-match.js","passed":1,"failed":0} -2022-11-22 10:36:54 INFO:  status {"test":"../demo/nodejs/node-bench.js","passed":1,"failed":0} -2022-11-22 10:36:54 INFO:  status {"test":"test-node-load.js","passed":1,"failed":0} -2022-11-22 10:36:54 INFO:  status {"test":"test-node-gear.js","passed":3,"failed":0} -2022-11-22 10:36:54 INFO:  status {"test":"test-backend-node.js","passed":125,"failed":0} -2022-11-22 10:36:54 INFO:  status {"test":"test-backend-node-gpu.js","passed":125,"failed":0} -2022-11-22 10:36:54 INFO:  status {"test":"test-backend-node-wasm.js","passed":124,"failed":2} -2022-11-22 10:36:54 INFO:  failures {"count":2} -2022-11-22 10:36:54 WARN:  failed {"test":"test-backend-node-wasm.js","message":["error",["failed: nanodet",[]]]} -2022-11-22 10:36:54 WARN:  failed {"test":"test-backend-node-wasm.js","message":["error",["failed: face attention",{"annotations":0}]]} +2022-12-21 14:15:12 INFO:  @vladmandic/human version 3.0.1 +2022-12-21 14:15:12 INFO:  User: vlado Platform: linux Arch: x64 Node: v19.1.0 +2022-12-21 14:15:12 INFO:  demos: [{"cmd":"../demo/nodejs/node.js","args":[]},{"cmd":"../demo/nodejs/node-simple.js","args":[]},{"cmd":"../demo/nodejs/node-event.js","args":["samples/in/ai-body.jpg"]},{"cmd":"../demo/nodejs/node-similarity.js","args":["samples/in/ai-face.jpg","samples/in/ai-upper.jpg"]},{"cmd":"../demo/nodejs/node-canvas.js","args":["samples/in/ai-body.jpg","samples/out/ai-body.jpg"]},{"cmd":"../demo/nodejs/process-folder.js","args":["samples"]},{"cmd":"../demo/multithread/node-multiprocess.js","args":[]},{"cmd":"../demo/facematch/node-match.js","args":[]},{"cmd":"../demo/nodejs/node-bench.js","args":[]}] +2022-12-21 14:15:12 INFO:  {"cmd":"../demo/nodejs/node.js","args":[]} start +2022-12-21 14:15:13 INFO:  {"cmd":"../demo/nodejs/node-simple.js","args":[]} start +2022-12-21 14:15:14 INFO:  {"cmd":"../demo/nodejs/node-event.js","args":["samples/in/ai-body.jpg"]} start +2022-12-21 14:15:15 INFO:  {"cmd":"../demo/nodejs/node-similarity.js","args":["samples/in/ai-face.jpg","samples/in/ai-upper.jpg"]} start +2022-12-21 14:15:15 INFO:  {"cmd":"../demo/nodejs/node-canvas.js","args":["samples/in/ai-body.jpg","samples/out/ai-body.jpg"]} start +2022-12-21 14:15:16 INFO:  {"cmd":"../demo/nodejs/process-folder.js","args":["samples"]} start +2022-12-21 14:15:18 INFO:  {"cmd":"../demo/multithread/node-multiprocess.js","args":[]} start +2022-12-21 14:15:30 INFO:  {"cmd":"../demo/facematch/node-match.js","args":[]} start +2022-12-21 14:15:31 INFO:  {"cmd":"../demo/nodejs/node-bench.js","args":[]} start +2022-12-21 14:15:48 INFO:  tests: ["test-node-load.js","test-node-gear.js","test-backend-node.js","test-backend-node-gpu.js","test-backend-node-wasm.js"] +2022-12-21 14:15:48 INFO:  +2022-12-21 14:15:48 INFO:  test-node-load.js start +2022-12-21 14:15:48 INFO:  test-node-load.js load start {"human":"3.0.1","tf":"4.1.0","progress":0} +2022-12-21 14:15:48 DATA:  test-node-load.js load interval {"elapsed":0,"progress":0} +2022-12-21 14:15:48 DATA:  test-node-load.js load interval {"elapsed":11,"progress":0} +2022-12-21 14:15:48 DATA:  test-node-load.js load interval {"elapsed":29,"progress":0.12865823126207815} +2022-12-21 14:15:48 DATA:  test-node-load.js load interval {"elapsed":61,"progress":0.4726970548784964} +2022-12-21 14:15:48 DATA:  test-node-load.js load interval {"elapsed":79,"progress":0.68355493315821} +2022-12-21 14:15:48 STATE: test-node-load.js passed {"progress":1} +2022-12-21 14:15:48 INFO:  test-node-load.js load final {"progress":1} +2022-12-21 14:15:49 DATA:  test-node-load.js load interval {"elapsed":456,"progress":1} +2022-12-21 14:15:49 INFO:  +2022-12-21 14:15:49 INFO:  test-node-gear.js start +2022-12-21 14:15:49 DATA:  test-node-gear.js input: ["samples/in/ai-face.jpg"] +2022-12-21 14:15:51 STATE: test-node-gear.js passed: gear faceres samples/in/ai-face.jpg +2022-12-21 14:15:51 DATA:  test-node-gear.js results {"face":0,"model":"faceres","image":"samples/in/ai-face.jpg","age":23.5,"gender":"female","genderScore":0.92} +2022-12-21 14:15:51 STATE: test-node-gear.js passed: gear gear samples/in/ai-face.jpg +2022-12-21 14:15:51 DATA:  test-node-gear.js results {"face":0,"model":"gear","image":"samples/in/ai-face.jpg","age":23.3,"gender":"female","genderScore":0.51,"race":[{"score":0.93,"race":"white"}]} +2022-12-21 14:15:51 STATE: test-node-gear.js passed: gear ssrnet samples/in/ai-face.jpg +2022-12-21 14:15:51 DATA:  test-node-gear.js results {"face":0,"model":"ssrnet","image":"samples/in/ai-face.jpg","age":23.4,"gender":"female","genderScore":0.99} +2022-12-21 14:15:51 INFO:  +2022-12-21 14:15:51 INFO:  test-backend-node.js start +2022-12-21 14:15:51 INFO:  test-backend-node.js test: configuration validation +2022-12-21 14:15:51 STATE: test-backend-node.js passed: configuration default validation [] +2022-12-21 14:15:51 STATE: test-backend-node.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}] +2022-12-21 14:15:51 INFO:  test-backend-node.js test: model load +2022-12-21 14:15:52 STATE: test-backend-node.js passed: models loaded 11 11 [{"name":"blazeface","loaded":true,"size":538928,"url":"file://models/blazeface.json"},{"name":"liveness","loaded":true,"size":592976,"url":"file://models/liveness.json"},{"name":"antispoof","loaded":true,"size":853098,"url":"file://models/antispoof.json"},{"name":"emotion","loaded":true,"size":820516,"url":"file://models/emotion.json"},{"name":"facemesh","loaded":true,"size":1477958,"url":"file://models/facemesh.json"},{"name":"handskeleton","loaded":true,"size":0,"url":"file://models/handlandmark-lite.json"},{"name":"iris","loaded":true,"size":2599092,"url":"file://models/iris.json"},{"name":"handtrack","loaded":true,"size":2964837,"url":"file://models/handtrack.json"},{"name":"movenet","loaded":true,"size":4650216,"url":"file://models/movenet-lightning.json"},{"name":"centernet","loaded":true,"size":4030290,"url":"file://models/centernet.json"},{"name":"faceres","loaded":true,"size":6978814,"url":"file://models/faceres.json"}] +2022-12-21 14:15:52 INFO:  test-backend-node.js memory: {"memory":{"unreliable":true,"numTensors":1785,"numDataBuffers":1785,"numBytes":56431460}} +2022-12-21 14:15:52 INFO:  test-backend-node.js state: {"state":{"registeredVariables":{},"nextTapeNodeId":0,"numBytes":56431460,"numTensors":1785,"numStringTensors":0,"numDataBuffers":1785,"gradientDepth":0,"kernelDepth":0,"scopeStack":[],"numDataMovesStack":[],"nextScopeId":0,"tensorInfo":{},"profiling":false,"activeProfile":{"newBytes":0,"newTensors":0,"peakBytes":0,"kernels":[],"result":null,"kernelNames":[]}}} +2022-12-21 14:15:52 INFO:  test-backend-node.js test: warmup +2022-12-21 14:15:52 STATE: test-backend-node.js passed: create human +2022-12-21 14:15:52 INFO:  test-backend-node.js human version: 3.0.1 +2022-12-21 14:15:52 INFO:  test-backend-node.js platform: linux x64 agent: NodeJS v19.1.0 +2022-12-21 14:15:52 INFO:  test-backend-node.js tfjs version: 4.1.0 +2022-12-21 14:15:52 INFO:  test-backend-node.js env: {"browser":false,"node":true,"platform":"linux x64","agent":"NodeJS v19.1.0","backends":["cpu","tensorflow"],"initial":false,"tfjs":{"version":"4.1.0"},"offscreen":false,"perfadd":false,"tensorflow":{"version":"2.9.1","gpu":false},"wasm":{"supported":true,"backend":false},"webgl":{"supported":false,"backend":false},"webgpu":{"supported":false,"backend":false},"cpu":{"flags":[]},"kernels":169} +2022-12-21 14:15:52 STATE: test-backend-node.js passed: set backend: tensorflow +2022-12-21 14:15:52 STATE: test-backend-node.js tensors 1785 +2022-12-21 14:15:52 STATE: test-backend-node.js result: defined models: 11 loaded models: 11 +2022-12-21 14:15:52 STATE: test-backend-node.js passed: load models 11 +2022-12-21 14:15:52 STATE: test-backend-node.js passed: warmup: none default +2022-12-21 14:15:52 DATA:  test-backend-node.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {} +2022-12-21 14:15:52 DATA:  test-backend-node.js result: performance: load: null total: null +2022-12-21 14:15:52 STATE: test-backend-node.js passed: warmup none result match +2022-12-21 14:15:52 STATE: test-backend-node.js event: image +2022-12-21 14:15:52 STATE: test-backend-node.js event: detect +2022-12-21 14:15:52 STATE: test-backend-node.js event: warmup +2022-12-21 14:15:52 STATE: test-backend-node.js passed: warmup: face default +2022-12-21 14:15:52 DATA:  test-backend-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.42,"keypoints":4} +2022-12-21 14:15:52 DATA:  test-backend-node.js result: performance: load: null total: 432 +2022-12-21 14:15:52 STATE: test-backend-node.js passed: warmup face result match +2022-12-21 14:15:52 STATE: test-backend-node.js event: image +2022-12-21 14:15:52 STATE: test-backend-node.js event: detect +2022-12-21 14:15:52 STATE: test-backend-node.js event: warmup +2022-12-21 14:15:52 STATE: test-backend-node.js passed: warmup: body default +2022-12-21 14:15:52 DATA:  test-backend-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-12-21 14:15:52 DATA:  test-backend-node.js result: performance: load: null total: 324 +2022-12-21 14:15:52 STATE: test-backend-node.js passed: warmup body result match +2022-12-21 14:15:52 STATE: test-backend-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":"thumb up"},{"hand":0,"gesture":"open palm"},{"iris":0,"gesture":"looking left"},{"iris":0,"gesture":"looking up"}]} +2022-12-21 14:15:52 INFO:  test-backend-node.js test: details verification +2022-12-21 14:15:52 STATE: test-backend-node.js start default +2022-12-21 14:15:52 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-12-21 14:15:52 STATE: test-backend-node.js event: image +2022-12-21 14:15:53 STATE: test-backend-node.js event: detect +2022-12-21 14:15:53 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg default +2022-12-21 14:15:53 DATA:  test-backend-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-12-21 14:15:53 DATA:  test-backend-node.js result: performance: load: null total: 318 +2022-12-21 14:15:53 STATE: test-backend-node.js passed: details face length 1 +2022-12-21 14:15:53 STATE: test-backend-node.js passed: details face score 1 0.93 1 +2022-12-21 14:15:53 STATE: test-backend-node.js passed: details face age/gender 23.7 female 0.97 2.34 +2022-12-21 14:15:53 STATE: test-backend-node.js passed: details face arrays 4 478 1024 +2022-12-21 14:15:53 STATE: test-backend-node.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"} +2022-12-21 14:15:53 STATE: test-backend-node.js passed: details face anti-spoofing 0.79 +2022-12-21 14:15:53 STATE: test-backend-node.js passed: details face liveness 0.83 +2022-12-21 14:15:53 STATE: test-backend-node.js passed: details body length 1 +2022-12-21 14:15:53 STATE: test-backend-node.js passed: details body 0.92 17 6 +2022-12-21 14:15:53 STATE: test-backend-node.js passed: details hand length 1 +2022-12-21 14:15:53 STATE: test-backend-node.js passed: details hand 0.51 0.73 point +2022-12-21 14:15:53 STATE: test-backend-node.js passed: details hand arrays 21 5 7 +2022-12-21 14:15:53 STATE: test-backend-node.js passed: details gesture length 7 +2022-12-21 14:15:53 STATE: test-backend-node.js passed: details gesture first {"face":0,"gesture":"facing right"} +2022-12-21 14:15:53 STATE: test-backend-node.js passed: details object length 1 +2022-12-21 14:15:53 STATE: test-backend-node.js passed: details object 0.72 person +2022-12-21 14:15:53 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996928} +2022-12-21 14:15:53 STATE: test-backend-node.js event: image +2022-12-21 14:15:53 STATE: test-backend-node.js event: detect +2022-12-21 14:15:53 STATE: test-backend-node.js passed: tensor shape: [1,1200,1200,4] dtype: float32 +2022-12-21 14:15:54 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1371996928} +2022-12-21 14:15:54 STATE: test-backend-node.js event: image +2022-12-21 14:15:54 STATE: test-backend-node.js event: detect +2022-12-21 14:15:54 STATE: test-backend-node.js passed: tensor shape: [1200,1200,4] dtype: float32 +2022-12-21 14:15:54 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-12-21 14:15:54 STATE: test-backend-node.js event: image +2022-12-21 14:15:54 STATE: test-backend-node.js event: detect +2022-12-21 14:15:54 STATE: test-backend-node.js passed: tensor shape: [1,1200,1200,3] dtype: float32 +2022-12-21 14:15:54 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1004796864} +2022-12-21 14:15:54 STATE: test-backend-node.js event: image +2022-12-21 14:15:55 STATE: test-backend-node.js event: detect +2022-12-21 14:15:55 STATE: test-backend-node.js passed: tensor shape: [1200,1200,3] dtype: float32 +2022-12-21 14:15:55 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871} +2022-12-21 14:15:55 STATE: test-backend-node.js event: image +2022-12-21 14:15:55 STATE: test-backend-node.js event: detect +2022-12-21 14:15:55 STATE: test-backend-node.js passed: tensor shape: [1,1200,1200,4] dtype: int32 +2022-12-21 14:15:55 INFO:  test-backend-node.js test default +2022-12-21 14:15:55 STATE: test-backend-node.js start async +2022-12-21 14:15:55 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-12-21 14:15:55 STATE: test-backend-node.js event: image +2022-12-21 14:15:56 STATE: test-backend-node.js event: detect +2022-12-21 14:15:56 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg async +2022-12-21 14:15:56 DATA:  test-backend-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-12-21 14:15:56 DATA:  test-backend-node.js result: performance: load: null total: 319 +2022-12-21 14:15:56 STATE: test-backend-node.js passed: default result face match 1 female 0.97 +2022-12-21 14:15:56 INFO:  test-backend-node.js test sync +2022-12-21 14:15:56 STATE: test-backend-node.js start sync +2022-12-21 14:15:56 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-12-21 14:15:56 STATE: test-backend-node.js event: image +2022-12-21 14:15:56 STATE: test-backend-node.js event: detect +2022-12-21 14:15:56 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg sync +2022-12-21 14:15:56 DATA:  test-backend-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-12-21 14:15:56 DATA:  test-backend-node.js result: performance: load: null total: 321 +2022-12-21 14:15:56 STATE: test-backend-node.js passed: default sync 1 female 0.97 +2022-12-21 14:15:56 INFO:  test-backend-node.js test: image process +2022-12-21 14:15:56 STATE: test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-12-21 14:15:56 STATE: test-backend-node.js passed: image input null [1,256,256,3] +2022-12-21 14:15:56 INFO:  test-backend-node.js test: image null +2022-12-21 14:15:56 STATE: test-backend-node.js passed: invalid input could not convert input to tensor +2022-12-21 14:15:56 INFO:  test-backend-node.js test face similarity +2022-12-21 14:15:56 STATE: test-backend-node.js start face similarity +2022-12-21 14:15:56 STATE: test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-12-21 14:15:56 STATE: test-backend-node.js event: image +2022-12-21 14:15:57 STATE: test-backend-node.js event: detect +2022-12-21 14:15:57 STATE: test-backend-node.js passed: detect: samples/in/ai-face.jpg face similarity +2022-12-21 14:15:57 DATA:  test-backend-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-12-21 14:15:57 DATA:  test-backend-node.js result: performance: load: null total: 317 +2022-12-21 14:15:57 STATE: test-backend-node.js start face similarity +2022-12-21 14:15:57 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-12-21 14:15:57 STATE: test-backend-node.js event: image +2022-12-21 14:15:57 STATE: test-backend-node.js event: detect +2022-12-21 14:15:57 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg face similarity +2022-12-21 14:15:57 DATA:  test-backend-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-12-21 14:15:57 DATA:  test-backend-node.js result: performance: load: null total: 335 +2022-12-21 14:15:57 STATE: test-backend-node.js start face similarity +2022-12-21 14:15:57 STATE: test-backend-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} +2022-12-21 14:15:57 STATE: test-backend-node.js event: image +2022-12-21 14:15:58 STATE: test-backend-node.js event: detect +2022-12-21 14:15:58 STATE: test-backend-node.js passed: detect: samples/in/ai-upper.jpg face similarity +2022-12-21 14:15:58 DATA:  test-backend-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-12-21 14:15:58 DATA:  test-backend-node.js result: performance: load: null total: 286 +2022-12-21 14:15:58 STATE: test-backend-node.js passed: face descriptor +2022-12-21 14:15:58 STATE: test-backend-node.js passed: face similarity {"similarity":[1,0.44727441595492046,0.556793560189727],"descriptors":[1024,1024,1024]} +2022-12-21 14:15:58 INFO:  test-backend-node.js test object +2022-12-21 14:15:58 STATE: test-backend-node.js start object +2022-12-21 14:15:58 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-12-21 14:15:58 STATE: test-backend-node.js event: image +2022-12-21 14:15:58 STATE: test-backend-node.js event: detect +2022-12-21 14:15:58 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg object +2022-12-21 14:15:58 DATA:  test-backend-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-12-21 14:15:58 DATA:  test-backend-node.js result: performance: load: null total: 301 +2022-12-21 14:15:58 STATE: test-backend-node.js passed: centernet +2022-12-21 14:15:58 STATE: test-backend-node.js start object +2022-12-21 14:15:59 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-12-21 14:15:59 STATE: test-backend-node.js event: image +2022-12-21 14:15:59 STATE: test-backend-node.js event: detect +2022-12-21 14:15:59 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg object +2022-12-21 14:15:59 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 3 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.86,"class":"person"} {"score":0.92,"keypoints":17} +2022-12-21 14:15:59 DATA:  test-backend-node.js result: performance: load: null total: 300 +2022-12-21 14:15:59 STATE: test-backend-node.js passed: nanodet +2022-12-21 14:15:59 INFO:  test-backend-node.js test sensitive +2022-12-21 14:15:59 STATE: test-backend-node.js start sensitive +2022-12-21 14:16:00 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-12-21 14:16:00 STATE: test-backend-node.js event: image +2022-12-21 14:16:00 STATE: test-backend-node.js event: detect +2022-12-21 14:16:00 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg sensitive +2022-12-21 14:16:00 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.92,"keypoints":17} +2022-12-21 14:16:00 DATA:  test-backend-node.js result: performance: load: null total: 251 +2022-12-21 14:16:00 STATE: test-backend-node.js passed: sensitive result match +2022-12-21 14:16:00 STATE: test-backend-node.js passed: sensitive face result match +2022-12-21 14:16:00 STATE: test-backend-node.js passed: sensitive face emotion result [{"score":0.59,"emotion":"angry"},{"score":0.29,"emotion":"fear"}] +2022-12-21 14:16:00 STATE: test-backend-node.js passed: sensitive body result match +2022-12-21 14:16:00 STATE: test-backend-node.js passed: sensitive hand result match +2022-12-21 14:16:00 INFO:  test-backend-node.js test body +2022-12-21 14:16:00 STATE: test-backend-node.js start blazepose +2022-12-21 14:16:02 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-12-21 14:16:02 STATE: test-backend-node.js event: image +2022-12-21 14:16:02 STATE: test-backend-node.js event: detect +2022-12-21 14:16:02 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg blazepose +2022-12-21 14:16:02 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.99,"keypoints":39} +2022-12-21 14:16:02 DATA:  test-backend-node.js result: performance: load: null total: 344 +2022-12-21 14:16:02 STATE: test-backend-node.js passed: blazepose +2022-12-21 14:16:02 STATE: test-backend-node.js start efficientpose +2022-12-21 14:16:03 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-12-21 14:16:03 STATE: test-backend-node.js event: image +2022-12-21 14:16:03 STATE: test-backend-node.js event: detect +2022-12-21 14:16:03 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg efficientpose +2022-12-21 14:16:03 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.75,"keypoints":13} +2022-12-21 14:16:03 DATA:  test-backend-node.js result: performance: load: null total: 306 +2022-12-21 14:16:03 STATE: test-backend-node.js passed: efficientpose +2022-12-21 14:16:03 STATE: test-backend-node.js start posenet +2022-12-21 14:16:04 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-12-21 14:16:04 STATE: test-backend-node.js event: image +2022-12-21 14:16:04 STATE: test-backend-node.js event: detect +2022-12-21 14:16:04 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg posenet +2022-12-21 14:16:04 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.96,"keypoints":16} +2022-12-21 14:16:04 DATA:  test-backend-node.js result: performance: load: null total: 252 +2022-12-21 14:16:04 STATE: test-backend-node.js passed: posenet +2022-12-21 14:16:04 STATE: test-backend-node.js start movenet +2022-12-21 14:16:05 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-12-21 14:16:05 STATE: test-backend-node.js event: image +2022-12-21 14:16:05 STATE: test-backend-node.js event: detect +2022-12-21 14:16:05 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg movenet +2022-12-21 14:16:05 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.92,"keypoints":17} +2022-12-21 14:16:05 DATA:  test-backend-node.js result: performance: load: null total: 256 +2022-12-21 14:16:05 STATE: test-backend-node.js passed: movenet +2022-12-21 14:16:05 INFO:  test-backend-node.js test face matching +2022-12-21 14:16:05 STATE: test-backend-node.js passed: face database 40 +2022-12-21 14:16:05 STATE: test-backend-node.js passed: face match {"first":{"index":4,"similarity":0.7827852251220577}} {"second":{"index":4,"similarity":0.5002052057057577}} {"third":{"index":4,"similarity":0.5401588464054732}} +2022-12-21 14:16:05 INFO:  test-backend-node.js test face similarity alternative +2022-12-21 14:16:05 STATE: test-backend-node.js start face embeddings +2022-12-21 14:16:05 STATE: test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-12-21 14:16:05 STATE: test-backend-node.js event: image +2022-12-21 14:16:06 STATE: test-backend-node.js event: detect +2022-12-21 14:16:06 STATE: test-backend-node.js passed: detect: samples/in/ai-face.jpg face embeddings +2022-12-21 14:16:06 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} +2022-12-21 14:16:06 DATA:  test-backend-node.js result: performance: load: null total: 283 +2022-12-21 14:16:06 STATE: test-backend-node.js passed: mobilefacenet {"embedding":192} +2022-12-21 14:16:06 STATE: test-backend-node.js start face embeddings +2022-12-21 14:16:07 STATE: test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-12-21 14:16:07 STATE: test-backend-node.js event: image +2022-12-21 14:16:07 STATE: test-backend-node.js event: detect +2022-12-21 14:16:07 STATE: test-backend-node.js passed: detect: samples/in/ai-face.jpg face embeddings +2022-12-21 14:16:07 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} +2022-12-21 14:16:07 DATA:  test-backend-node.js result: performance: load: null total: 298 +2022-12-21 14:16:07 STATE: test-backend-node.js passed: insightface {"embedding":512} +2022-12-21 14:16:07 INFO:  test-backend-node.js test face attention +2022-12-21 14:16:07 STATE: test-backend-node.js start face attention +2022-12-21 14:16:07 STATE: test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-12-21 14:16:07 STATE: test-backend-node.js event: image +2022-12-21 14:16:07 STATE: test-backend-node.js event: detect +2022-12-21 14:16:07 STATE: test-backend-node.js passed: detect: samples/in/ai-face.jpg face attention +2022-12-21 14:16:07 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} +2022-12-21 14:16:07 DATA:  test-backend-node.js result: performance: load: null total: 282 +2022-12-21 14:16:07 STATE: test-backend-node.js passed: face attention +2022-12-21 14:16:07 INFO:  test-backend-node.js test detectors +2022-12-21 14:16:07 STATE: test-backend-node.js start detectors +2022-12-21 14:16:08 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-12-21 14:16:08 STATE: test-backend-node.js event: image +2022-12-21 14:16:08 STATE: test-backend-node.js event: detect +2022-12-21 14:16:08 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg detectors +2022-12-21 14:16:08 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} +2022-12-21 14:16:08 DATA:  test-backend-node.js result: performance: load: null total: 130 +2022-12-21 14:16:08 STATE: test-backend-node.js passed: detector result face match +2022-12-21 14:16:08 STATE: test-backend-node.js passed: detector result hand match +2022-12-21 14:16:08 INFO:  test-backend-node.js test: multi-instance +2022-12-21 14:16:08 STATE: test-backend-node.js start multi instance +2022-12-21 14:16:08 STATE: test-backend-node.js event: image +2022-12-21 14:16:08 STATE: test-backend-node.js event: detect +2022-12-21 14:16:08 STATE: test-backend-node.js passed: detect: random multi instance +2022-12-21 14:16:08 DATA:  test-backend-node.js result: face: 0 body: 1 hand: 0 gesture: 0 object: 0 person: 0 {} {} {"score":0,"keypoints":0} +2022-12-21 14:16:08 DATA:  test-backend-node.js result: performance: load: null total: 127 +2022-12-21 14:16:08 INFO:  test-backend-node.js test: first instance +2022-12-21 14:16:08 STATE: test-backend-node.js start multi instance +2022-12-21 14:16:08 STATE: test-backend-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} +2022-12-21 14:16:08 STATE: test-backend-node.js passed: detect: samples/in/ai-upper.jpg multi instance +2022-12-21 14:16:08 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-12-21 14:16:08 DATA:  test-backend-node.js result: performance: load: null total: 126 +2022-12-21 14:16:08 INFO:  test-backend-node.js test: second instance +2022-12-21 14:16:08 STATE: test-backend-node.js start multi instance +2022-12-21 14:16:08 STATE: test-backend-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} +2022-12-21 14:16:08 STATE: test-backend-node.js passed: detect: samples/in/ai-upper.jpg multi instance +2022-12-21 14:16:08 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-12-21 14:16:08 DATA:  test-backend-node.js result: performance: load: null total: 122 +2022-12-21 14:16:08 INFO:  test-backend-node.js test: concurrent +2022-12-21 14:16:08 STATE: test-backend-node.js start concurrent +2022-12-21 14:16:08 STATE: test-backend-node.js start concurrent +2022-12-21 14:16:08 STATE: test-backend-node.js start concurrent +2022-12-21 14:16:08 STATE: test-backend-node.js start concurrent +2022-12-21 14:16:08 STATE: test-backend-node.js start concurrent +2022-12-21 14:16:08 STATE: test-backend-node.js start concurrent +2022-12-21 14:16:08 STATE: test-backend-node.js start concurrent +2022-12-21 14:16:08 STATE: test-backend-node.js start concurrent +2022-12-21 14:16:08 STATE: test-backend-node.js start concurrent +2022-12-21 14:16:08 STATE: test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-12-21 14:16:08 STATE: test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-12-21 14:16:08 STATE: test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-12-21 14:16:09 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-12-21 14:16:09 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-12-21 14:16:09 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-12-21 14:16:09 STATE: test-backend-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} +2022-12-21 14:16:09 STATE: test-backend-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} +2022-12-21 14:16:09 STATE: test-backend-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} +2022-12-21 14:16:09 STATE: test-backend-node.js event: image +2022-12-21 14:16:09 STATE: test-backend-node.js event: image +2022-12-21 14:16:09 STATE: test-backend-node.js event: image +2022-12-21 14:16:10 STATE: test-backend-node.js event: detect +2022-12-21 14:16:10 STATE: test-backend-node.js passed: detect: samples/in/ai-upper.jpg concurrent +2022-12-21 14:16:10 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-12-21 14:16:10 DATA:  test-backend-node.js result: performance: load: null total: 1127 +2022-12-21 14:16:10 STATE: test-backend-node.js passed: detect: samples/in/ai-upper.jpg concurrent +2022-12-21 14:16:10 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-12-21 14:16:10 DATA:  test-backend-node.js result: performance: load: null total: 1127 +2022-12-21 14:16:10 STATE: test-backend-node.js passed: detect: samples/in/ai-upper.jpg concurrent +2022-12-21 14:16:10 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-12-21 14:16:10 DATA:  test-backend-node.js result: performance: load: null total: 1127 +2022-12-21 14:16:10 STATE: test-backend-node.js event: detect +2022-12-21 14:16:10 STATE: test-backend-node.js event: detect +2022-12-21 14:16:10 STATE: test-backend-node.js passed: detect: samples/in/ai-face.jpg concurrent +2022-12-21 14:16:10 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} +2022-12-21 14:16:10 DATA:  test-backend-node.js result: performance: load: null total: 1127 +2022-12-21 14:16:10 STATE: test-backend-node.js passed: detect: samples/in/ai-face.jpg concurrent +2022-12-21 14:16:10 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} +2022-12-21 14:16:10 DATA:  test-backend-node.js result: performance: load: null total: 1127 +2022-12-21 14:16:10 STATE: test-backend-node.js passed: detect: samples/in/ai-face.jpg concurrent +2022-12-21 14:16:10 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} +2022-12-21 14:16:10 DATA:  test-backend-node.js result: performance: load: null total: 1127 +2022-12-21 14:16:10 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg concurrent +2022-12-21 14:16:10 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} +2022-12-21 14:16:10 DATA:  test-backend-node.js result: performance: load: null total: 1127 +2022-12-21 14:16:10 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg concurrent +2022-12-21 14:16:10 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} +2022-12-21 14:16:10 DATA:  test-backend-node.js result: performance: load: null total: 1127 +2022-12-21 14:16:10 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg concurrent +2022-12-21 14:16:10 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} +2022-12-21 14:16:10 DATA:  test-backend-node.js result: performance: load: null total: 1127 +2022-12-21 14:16:10 INFO:  test-backend-node.js test: monkey-patch +2022-12-21 14:16:10 STATE: test-backend-node.js event: image +2022-12-21 14:16:10 STATE: test-backend-node.js event: detect +2022-12-21 14:16:10 STATE: test-backend-node.js passed: monkey patch +2022-12-21 14:16:11 STATE: test-backend-node.js passed: segmentation [262144] +2022-12-21 14:16:11 STATE: test-backend-node.js passeed: equal usage +2022-12-21 14:16:11 INFO:  test-backend-node.js test: input compare +2022-12-21 14:16:11 STATE: test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-12-21 14:16:11 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-12-21 14:16:11 STATE: test-backend-node.js passed: image compare 0 23.275441687091504 +2022-12-21 14:16:11 INFO:  test-backend-node.js events: {"image":29,"detect":29,"warmup":2} +2022-12-21 14:16:11 INFO:  test-backend-node.js tensors 4453 +2022-12-21 14:16:11 INFO:  test-backend-node.js test complete: 19750 ms +2022-12-21 14:16:11 INFO:  +2022-12-21 14:16:11 INFO:  test-backend-node-gpu.js start +2022-12-21 14:16:12 INFO:  test-backend-node-gpu.js test: configuration validation +2022-12-21 14:16:12 STATE: test-backend-node-gpu.js passed: configuration default validation [] +2022-12-21 14:16:12 STATE: test-backend-node-gpu.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}] +2022-12-21 14:16:12 INFO:  test-backend-node-gpu.js test: model load +2022-12-21 14:16:12 STATE: test-backend-node-gpu.js passed: models loaded 11 11 [{"name":"blazeface","loaded":true,"size":538928,"url":"file://models/blazeface.json"},{"name":"emotion","loaded":true,"size":820516,"url":"file://models/emotion.json"},{"name":"antispoof","loaded":true,"size":853098,"url":"file://models/antispoof.json"},{"name":"liveness","loaded":true,"size":592976,"url":"file://models/liveness.json"},{"name":"facemesh","loaded":true,"size":1477958,"url":"file://models/facemesh.json"},{"name":"handskeleton","loaded":true,"size":0,"url":"file://models/handlandmark-lite.json"},{"name":"iris","loaded":true,"size":2599092,"url":"file://models/iris.json"},{"name":"centernet","loaded":true,"size":4030290,"url":"file://models/centernet.json"},{"name":"handtrack","loaded":true,"size":2964837,"url":"file://models/handtrack.json"},{"name":"movenet","loaded":true,"size":4650216,"url":"file://models/movenet-lightning.json"},{"name":"faceres","loaded":true,"size":6978814,"url":"file://models/faceres.json"}] +2022-12-21 14:16:12 INFO:  test-backend-node-gpu.js memory: {"memory":{"unreliable":true,"numTensors":1785,"numDataBuffers":1785,"numBytes":56431460}} +2022-12-21 14:16:12 INFO:  test-backend-node-gpu.js state: {"state":{"registeredVariables":{},"nextTapeNodeId":0,"numBytes":56431460,"numTensors":1785,"numStringTensors":0,"numDataBuffers":1785,"gradientDepth":0,"kernelDepth":0,"scopeStack":[],"numDataMovesStack":[],"nextScopeId":0,"tensorInfo":{},"profiling":false,"activeProfile":{"newBytes":0,"newTensors":0,"peakBytes":0,"kernels":[],"result":null,"kernelNames":[]}}} +2022-12-21 14:16:12 INFO:  test-backend-node-gpu.js test: warmup +2022-12-21 14:16:12 STATE: test-backend-node-gpu.js passed: create human +2022-12-21 14:16:12 INFO:  test-backend-node-gpu.js human version: 3.0.1 +2022-12-21 14:16:12 INFO:  test-backend-node-gpu.js platform: linux x64 agent: NodeJS v19.1.0 +2022-12-21 14:16:12 INFO:  test-backend-node-gpu.js tfjs version: 4.1.0 +2022-12-21 14:16:12 INFO:  test-backend-node-gpu.js env: {"browser":false,"node":true,"platform":"linux x64","agent":"NodeJS v19.1.0","backends":["cpu","tensorflow"],"initial":false,"tfjs":{"version":"4.1.0"},"offscreen":false,"perfadd":false,"tensorflow":{"version":"2.9.1","gpu":true},"wasm":{"supported":true,"backend":false},"webgl":{"supported":false,"backend":false},"webgpu":{"supported":false,"backend":false},"cpu":{"flags":[]},"kernels":169} +2022-12-21 14:16:12 STATE: test-backend-node-gpu.js passed: set backend: tensorflow +2022-12-21 14:16:12 STATE: test-backend-node-gpu.js tensors 1785 +2022-12-21 14:16:12 STATE: test-backend-node-gpu.js result: defined models: 11 loaded models: 11 +2022-12-21 14:16:12 STATE: test-backend-node-gpu.js passed: load models 11 +2022-12-21 14:16:12 STATE: test-backend-node-gpu.js passed: warmup: none default +2022-12-21 14:16:12 DATA:  test-backend-node-gpu.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {} +2022-12-21 14:16:12 DATA:  test-backend-node-gpu.js result: performance: load: null total: null +2022-12-21 14:16:12 STATE: test-backend-node-gpu.js passed: warmup none result match +2022-12-21 14:16:13 STATE: test-backend-node-gpu.js event: image +2022-12-21 14:16:14 STATE: test-backend-node-gpu.js event: detect +2022-12-21 14:16:14 STATE: test-backend-node-gpu.js event: warmup +2022-12-21 14:16:14 STATE: test-backend-node-gpu.js passed: warmup: face default +2022-12-21 14:16:14 DATA:  test-backend-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.42,"keypoints":4} +2022-12-21 14:16:14 DATA:  test-backend-node-gpu.js result: performance: load: null total: 1897 +2022-12-21 14:16:14 STATE: test-backend-node-gpu.js passed: warmup face result match +2022-12-21 14:16:14 STATE: test-backend-node-gpu.js event: image +2022-12-21 14:16:15 STATE: test-backend-node-gpu.js event: detect +2022-12-21 14:16:15 STATE: test-backend-node-gpu.js event: warmup +2022-12-21 14:16:15 STATE: test-backend-node-gpu.js passed: warmup: body default +2022-12-21 14:16:15 DATA:  test-backend-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-12-21 14:16:15 DATA:  test-backend-node-gpu.js result: performance: load: null total: 187 +2022-12-21 14:16:15 STATE: test-backend-node-gpu.js passed: warmup body result match +2022-12-21 14:16:15 STATE: test-backend-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":"thumb up"},{"hand":0,"gesture":"open palm"},{"iris":0,"gesture":"looking left"},{"iris":0,"gesture":"looking up"}]} +2022-12-21 14:16:15 INFO:  test-backend-node-gpu.js test: details verification +2022-12-21 14:16:15 STATE: test-backend-node-gpu.js start default +2022-12-21 14:16:15 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-12-21 14:16:15 STATE: test-backend-node-gpu.js event: image +2022-12-21 14:16:15 STATE: test-backend-node-gpu.js event: detect +2022-12-21 14:16:15 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg default +2022-12-21 14:16:15 DATA:  test-backend-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-12-21 14:16:15 DATA:  test-backend-node-gpu.js result: performance: load: null total: 148 +2022-12-21 14:16:15 STATE: test-backend-node-gpu.js passed: details face length 1 +2022-12-21 14:16:15 STATE: test-backend-node-gpu.js passed: details face score 1 0.93 1 +2022-12-21 14:16:15 STATE: test-backend-node-gpu.js passed: details face age/gender 23.7 female 0.97 2.34 +2022-12-21 14:16:15 STATE: test-backend-node-gpu.js passed: details face arrays 4 478 1024 +2022-12-21 14:16:15 STATE: test-backend-node-gpu.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"} +2022-12-21 14:16:15 STATE: test-backend-node-gpu.js passed: details face anti-spoofing 0.79 +2022-12-21 14:16:15 STATE: test-backend-node-gpu.js passed: details face liveness 0.83 +2022-12-21 14:16:15 STATE: test-backend-node-gpu.js passed: details body length 1 +2022-12-21 14:16:15 STATE: test-backend-node-gpu.js passed: details body 0.92 17 6 +2022-12-21 14:16:15 STATE: test-backend-node-gpu.js passed: details hand length 1 +2022-12-21 14:16:15 STATE: test-backend-node-gpu.js passed: details hand 0.51 0.73 point +2022-12-21 14:16:15 STATE: test-backend-node-gpu.js passed: details hand arrays 21 5 7 +2022-12-21 14:16:15 STATE: test-backend-node-gpu.js passed: details gesture length 7 +2022-12-21 14:16:15 STATE: test-backend-node-gpu.js passed: details gesture first {"face":0,"gesture":"facing right"} +2022-12-21 14:16:15 STATE: test-backend-node-gpu.js passed: details object length 1 +2022-12-21 14:16:15 STATE: test-backend-node-gpu.js passed: details object 0.72 person +2022-12-21 14:16:15 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996928} +2022-12-21 14:16:15 STATE: test-backend-node-gpu.js event: image +2022-12-21 14:16:15 STATE: test-backend-node-gpu.js event: detect +2022-12-21 14:16:15 STATE: test-backend-node-gpu.js passed: tensor shape: [1,1200,1200,4] dtype: float32 +2022-12-21 14:16:16 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1371996928} +2022-12-21 14:16:16 STATE: test-backend-node-gpu.js event: image +2022-12-21 14:16:16 STATE: test-backend-node-gpu.js event: detect +2022-12-21 14:16:16 STATE: test-backend-node-gpu.js passed: tensor shape: [1200,1200,4] dtype: float32 +2022-12-21 14:16:16 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-12-21 14:16:16 STATE: test-backend-node-gpu.js event: image +2022-12-21 14:16:16 STATE: test-backend-node-gpu.js event: detect +2022-12-21 14:16:16 STATE: test-backend-node-gpu.js passed: tensor shape: [1,1200,1200,3] dtype: float32 +2022-12-21 14:16:16 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1004796928} +2022-12-21 14:16:16 STATE: test-backend-node-gpu.js event: image +2022-12-21 14:16:16 STATE: test-backend-node-gpu.js event: detect +2022-12-21 14:16:16 STATE: test-backend-node-gpu.js passed: tensor shape: [1200,1200,3] dtype: float32 +2022-12-21 14:16:17 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871} +2022-12-21 14:16:17 STATE: test-backend-node-gpu.js event: image +2022-12-21 14:16:17 STATE: test-backend-node-gpu.js event: detect +2022-12-21 14:16:17 STATE: test-backend-node-gpu.js passed: tensor shape: [1,1200,1200,4] dtype: int32 +2022-12-21 14:16:17 INFO:  test-backend-node-gpu.js test default +2022-12-21 14:16:17 STATE: test-backend-node-gpu.js start async +2022-12-21 14:16:17 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-12-21 14:16:17 STATE: test-backend-node-gpu.js event: image +2022-12-21 14:16:17 STATE: test-backend-node-gpu.js event: detect +2022-12-21 14:16:17 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg async +2022-12-21 14:16:17 DATA:  test-backend-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-12-21 14:16:17 DATA:  test-backend-node-gpu.js result: performance: load: null total: 139 +2022-12-21 14:16:17 STATE: test-backend-node-gpu.js passed: default result face match 1 female 0.97 +2022-12-21 14:16:17 INFO:  test-backend-node-gpu.js test sync +2022-12-21 14:16:17 STATE: test-backend-node-gpu.js start sync +2022-12-21 14:16:17 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-12-21 14:16:17 STATE: test-backend-node-gpu.js event: image +2022-12-21 14:16:17 STATE: test-backend-node-gpu.js event: detect +2022-12-21 14:16:17 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg sync +2022-12-21 14:16:17 DATA:  test-backend-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-12-21 14:16:17 DATA:  test-backend-node-gpu.js result: performance: load: null total: 127 +2022-12-21 14:16:17 STATE: test-backend-node-gpu.js passed: default sync 1 female 0.97 +2022-12-21 14:16:17 INFO:  test-backend-node-gpu.js test: image process +2022-12-21 14:16:17 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-12-21 14:16:17 STATE: test-backend-node-gpu.js passed: image input null [1,256,256,3] +2022-12-21 14:16:17 INFO:  test-backend-node-gpu.js test: image null +2022-12-21 14:16:17 STATE: test-backend-node-gpu.js passed: invalid input could not convert input to tensor +2022-12-21 14:16:17 INFO:  test-backend-node-gpu.js test face similarity +2022-12-21 14:16:17 STATE: test-backend-node-gpu.js start face similarity +2022-12-21 14:16:17 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-12-21 14:16:17 STATE: test-backend-node-gpu.js event: image +2022-12-21 14:16:17 STATE: test-backend-node-gpu.js event: detect +2022-12-21 14:16:17 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-face.jpg face similarity +2022-12-21 14:16:17 DATA:  test-backend-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-12-21 14:16:17 DATA:  test-backend-node-gpu.js result: performance: load: null total: 131 +2022-12-21 14:16:17 STATE: test-backend-node-gpu.js start face similarity +2022-12-21 14:16:18 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-12-21 14:16:18 STATE: test-backend-node-gpu.js event: image +2022-12-21 14:16:18 STATE: test-backend-node-gpu.js event: detect +2022-12-21 14:16:18 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg face similarity +2022-12-21 14:16:18 DATA:  test-backend-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-12-21 14:16:18 DATA:  test-backend-node-gpu.js result: performance: load: null total: 118 +2022-12-21 14:16:18 STATE: test-backend-node-gpu.js start face similarity +2022-12-21 14:16:18 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} +2022-12-21 14:16:18 STATE: test-backend-node-gpu.js event: image +2022-12-21 14:16:18 STATE: test-backend-node-gpu.js event: detect +2022-12-21 14:16:18 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-upper.jpg face similarity +2022-12-21 14:16:18 DATA:  test-backend-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-12-21 14:16:18 DATA:  test-backend-node-gpu.js result: performance: load: null total: 141 +2022-12-21 14:16:18 STATE: test-backend-node-gpu.js passed: face descriptor +2022-12-21 14:16:18 STATE: test-backend-node-gpu.js passed: face similarity {"similarity":[1,0.4475002983522097,0.5570879556505012],"descriptors":[1024,1024,1024]} +2022-12-21 14:16:18 INFO:  test-backend-node-gpu.js test object +2022-12-21 14:16:18 STATE: test-backend-node-gpu.js start object +2022-12-21 14:16:18 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-12-21 14:16:18 STATE: test-backend-node-gpu.js event: image +2022-12-21 14:16:18 STATE: test-backend-node-gpu.js event: detect +2022-12-21 14:16:18 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg object +2022-12-21 14:16:18 DATA:  test-backend-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-12-21 14:16:18 DATA:  test-backend-node-gpu.js result: performance: load: null total: 156 +2022-12-21 14:16:18 STATE: test-backend-node-gpu.js passed: centernet +2022-12-21 14:16:18 STATE: test-backend-node-gpu.js start object +2022-12-21 14:16:19 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-12-21 14:16:19 STATE: test-backend-node-gpu.js event: image +2022-12-21 14:16:20 STATE: test-backend-node-gpu.js event: detect +2022-12-21 14:16:20 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg object +2022-12-21 14:16:20 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 3 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.86,"class":"person"} {"score":0.92,"keypoints":17} +2022-12-21 14:16:20 DATA:  test-backend-node-gpu.js result: performance: load: null total: 570 +2022-12-21 14:16:20 STATE: test-backend-node-gpu.js passed: nanodet +2022-12-21 14:16:20 INFO:  test-backend-node-gpu.js test sensitive +2022-12-21 14:16:20 STATE: test-backend-node-gpu.js start sensitive +2022-12-21 14:16:20 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-12-21 14:16:20 STATE: test-backend-node-gpu.js event: image +2022-12-21 14:16:20 STATE: test-backend-node-gpu.js event: detect +2022-12-21 14:16:20 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg sensitive +2022-12-21 14:16:20 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.92,"keypoints":17} +2022-12-21 14:16:20 DATA:  test-backend-node-gpu.js result: performance: load: null total: 159 +2022-12-21 14:16:20 STATE: test-backend-node-gpu.js passed: sensitive result match +2022-12-21 14:16:20 STATE: test-backend-node-gpu.js passed: sensitive face result match +2022-12-21 14:16:20 STATE: test-backend-node-gpu.js passed: sensitive face emotion result [{"score":0.59,"emotion":"angry"},{"score":0.29,"emotion":"fear"}] +2022-12-21 14:16:20 STATE: test-backend-node-gpu.js passed: sensitive body result match +2022-12-21 14:16:20 STATE: test-backend-node-gpu.js passed: sensitive hand result match +2022-12-21 14:16:20 INFO:  test-backend-node-gpu.js test body +2022-12-21 14:16:20 STATE: test-backend-node-gpu.js start blazepose +2022-12-21 14:16:22 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-12-21 14:16:22 STATE: test-backend-node-gpu.js event: image +2022-12-21 14:16:22 STATE: test-backend-node-gpu.js event: detect +2022-12-21 14:16:22 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg blazepose +2022-12-21 14:16:22 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.99,"keypoints":39} +2022-12-21 14:16:22 DATA:  test-backend-node-gpu.js result: performance: load: null total: 282 +2022-12-21 14:16:22 STATE: test-backend-node-gpu.js passed: blazepose +2022-12-21 14:16:22 STATE: test-backend-node-gpu.js start efficientpose +2022-12-21 14:16:23 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-12-21 14:16:23 STATE: test-backend-node-gpu.js event: image +2022-12-21 14:16:24 STATE: test-backend-node-gpu.js event: detect +2022-12-21 14:16:24 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg efficientpose +2022-12-21 14:16:24 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.75,"keypoints":13} +2022-12-21 14:16:24 DATA:  test-backend-node-gpu.js result: performance: load: null total: 1027 +2022-12-21 14:16:24 STATE: test-backend-node-gpu.js passed: efficientpose +2022-12-21 14:16:24 STATE: test-backend-node-gpu.js start posenet +2022-12-21 14:16:24 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-12-21 14:16:24 STATE: test-backend-node-gpu.js event: image +2022-12-21 14:16:24 STATE: test-backend-node-gpu.js event: detect +2022-12-21 14:16:24 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg posenet +2022-12-21 14:16:24 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.96,"keypoints":16} +2022-12-21 14:16:24 DATA:  test-backend-node-gpu.js result: performance: load: null total: 153 +2022-12-21 14:16:24 STATE: test-backend-node-gpu.js passed: posenet +2022-12-21 14:16:24 STATE: test-backend-node-gpu.js start movenet +2022-12-21 14:16:25 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-12-21 14:16:25 STATE: test-backend-node-gpu.js event: image +2022-12-21 14:16:25 STATE: test-backend-node-gpu.js event: detect +2022-12-21 14:16:25 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg movenet +2022-12-21 14:16:25 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.92,"keypoints":17} +2022-12-21 14:16:25 DATA:  test-backend-node-gpu.js result: performance: load: null total: 126 +2022-12-21 14:16:25 STATE: test-backend-node-gpu.js passed: movenet +2022-12-21 14:16:25 INFO:  test-backend-node-gpu.js test face matching +2022-12-21 14:16:25 STATE: test-backend-node-gpu.js passed: face database 40 +2022-12-21 14:16:25 STATE: test-backend-node-gpu.js passed: face match {"first":{"index":4,"similarity":0.7829338043932047}} {"second":{"index":4,"similarity":0.5002928781584631}} {"third":{"index":4,"similarity":0.5402934771672516}} +2022-12-21 14:16:25 INFO:  test-backend-node-gpu.js test face similarity alternative +2022-12-21 14:16:25 STATE: test-backend-node-gpu.js start face embeddings +2022-12-21 14:16:25 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-12-21 14:16:25 STATE: test-backend-node-gpu.js event: image +2022-12-21 14:16:25 STATE: test-backend-node-gpu.js event: detect +2022-12-21 14:16:25 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-face.jpg face embeddings +2022-12-21 14:16:25 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} +2022-12-21 14:16:25 DATA:  test-backend-node-gpu.js result: performance: load: null total: 252 +2022-12-21 14:16:25 STATE: test-backend-node-gpu.js passed: mobilefacenet {"embedding":192} +2022-12-21 14:16:25 STATE: test-backend-node-gpu.js start face embeddings +2022-12-21 14:16:26 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-12-21 14:16:26 STATE: test-backend-node-gpu.js event: image +2022-12-21 14:16:26 STATE: test-backend-node-gpu.js event: detect +2022-12-21 14:16:26 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-face.jpg face embeddings +2022-12-21 14:16:26 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} +2022-12-21 14:16:26 DATA:  test-backend-node-gpu.js result: performance: load: null total: 224 +2022-12-21 14:16:26 STATE: test-backend-node-gpu.js passed: insightface {"embedding":512} +2022-12-21 14:16:26 INFO:  test-backend-node-gpu.js test face attention +2022-12-21 14:16:26 STATE: test-backend-node-gpu.js start face attention +2022-12-21 14:16:26 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-12-21 14:16:26 STATE: test-backend-node-gpu.js event: image +2022-12-21 14:16:27 STATE: test-backend-node-gpu.js event: detect +2022-12-21 14:16:27 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-face.jpg face attention +2022-12-21 14:16:27 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} +2022-12-21 14:16:27 DATA:  test-backend-node-gpu.js result: performance: load: null total: 422 +2022-12-21 14:16:27 STATE: test-backend-node-gpu.js passed: face attention +2022-12-21 14:16:27 INFO:  test-backend-node-gpu.js test detectors +2022-12-21 14:16:27 STATE: test-backend-node-gpu.js start detectors +2022-12-21 14:16:27 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-12-21 14:16:27 STATE: test-backend-node-gpu.js event: image +2022-12-21 14:16:27 STATE: test-backend-node-gpu.js event: detect +2022-12-21 14:16:27 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg detectors +2022-12-21 14:16:27 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} +2022-12-21 14:16:27 DATA:  test-backend-node-gpu.js result: performance: load: null total: 57 +2022-12-21 14:16:27 STATE: test-backend-node-gpu.js passed: detector result face match +2022-12-21 14:16:27 STATE: test-backend-node-gpu.js passed: detector result hand match +2022-12-21 14:16:27 INFO:  test-backend-node-gpu.js test: multi-instance +2022-12-21 14:16:27 STATE: test-backend-node-gpu.js start multi instance +2022-12-21 14:16:27 STATE: test-backend-node-gpu.js event: image +2022-12-21 14:16:27 STATE: test-backend-node-gpu.js event: detect +2022-12-21 14:16:27 STATE: test-backend-node-gpu.js passed: detect: random multi instance +2022-12-21 14:16:27 DATA:  test-backend-node-gpu.js result: face: 0 body: 1 hand: 0 gesture: 0 object: 0 person: 0 {} {} {"score":0,"keypoints":0} +2022-12-21 14:16:27 DATA:  test-backend-node-gpu.js result: performance: load: null total: 56 +2022-12-21 14:16:27 INFO:  test-backend-node-gpu.js test: first instance +2022-12-21 14:16:27 STATE: test-backend-node-gpu.js start multi instance +2022-12-21 14:16:27 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} +2022-12-21 14:16:27 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-upper.jpg multi instance +2022-12-21 14:16:27 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-12-21 14:16:27 DATA:  test-backend-node-gpu.js result: performance: load: null total: 53 +2022-12-21 14:16:27 INFO:  test-backend-node-gpu.js test: second instance +2022-12-21 14:16:27 STATE: test-backend-node-gpu.js start multi instance +2022-12-21 14:16:27 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} +2022-12-21 14:16:27 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-upper.jpg multi instance +2022-12-21 14:16:27 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-12-21 14:16:27 DATA:  test-backend-node-gpu.js result: performance: load: null total: 54 +2022-12-21 14:16:27 INFO:  test-backend-node-gpu.js test: concurrent +2022-12-21 14:16:27 STATE: test-backend-node-gpu.js start concurrent +2022-12-21 14:16:27 STATE: test-backend-node-gpu.js start concurrent +2022-12-21 14:16:27 STATE: test-backend-node-gpu.js start concurrent +2022-12-21 14:16:27 STATE: test-backend-node-gpu.js start concurrent +2022-12-21 14:16:27 STATE: test-backend-node-gpu.js start concurrent +2022-12-21 14:16:27 STATE: test-backend-node-gpu.js start concurrent +2022-12-21 14:16:27 STATE: test-backend-node-gpu.js start concurrent +2022-12-21 14:16:27 STATE: test-backend-node-gpu.js start concurrent +2022-12-21 14:16:27 STATE: test-backend-node-gpu.js start concurrent +2022-12-21 14:16:27 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-12-21 14:16:27 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-12-21 14:16:28 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-12-21 14:16:28 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-12-21 14:16:28 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-12-21 14:16:28 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-12-21 14:16:28 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} +2022-12-21 14:16:28 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} +2022-12-21 14:16:28 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} +2022-12-21 14:16:28 STATE: test-backend-node-gpu.js event: image +2022-12-21 14:16:28 STATE: test-backend-node-gpu.js event: image +2022-12-21 14:16:28 STATE: test-backend-node-gpu.js event: image +2022-12-21 14:16:29 STATE: test-backend-node-gpu.js event: detect +2022-12-21 14:16:29 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-upper.jpg concurrent +2022-12-21 14:16:29 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-12-21 14:16:29 DATA:  test-backend-node-gpu.js result: performance: load: null total: 448 +2022-12-21 14:16:29 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-upper.jpg concurrent +2022-12-21 14:16:29 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-12-21 14:16:29 DATA:  test-backend-node-gpu.js result: performance: load: null total: 448 +2022-12-21 14:16:29 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-upper.jpg concurrent +2022-12-21 14:16:29 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-12-21 14:16:29 DATA:  test-backend-node-gpu.js result: performance: load: null total: 448 +2022-12-21 14:16:29 STATE: test-backend-node-gpu.js event: detect +2022-12-21 14:16:29 STATE: test-backend-node-gpu.js event: detect +2022-12-21 14:16:29 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-face.jpg concurrent +2022-12-21 14:16:29 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} +2022-12-21 14:16:29 DATA:  test-backend-node-gpu.js result: performance: load: null total: 448 +2022-12-21 14:16:29 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-face.jpg concurrent +2022-12-21 14:16:29 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} +2022-12-21 14:16:29 DATA:  test-backend-node-gpu.js result: performance: load: null total: 448 +2022-12-21 14:16:29 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-face.jpg concurrent +2022-12-21 14:16:29 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} +2022-12-21 14:16:29 DATA:  test-backend-node-gpu.js result: performance: load: null total: 448 +2022-12-21 14:16:29 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg concurrent +2022-12-21 14:16:29 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} +2022-12-21 14:16:29 DATA:  test-backend-node-gpu.js result: performance: load: null total: 448 +2022-12-21 14:16:29 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg concurrent +2022-12-21 14:16:29 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} +2022-12-21 14:16:29 DATA:  test-backend-node-gpu.js result: performance: load: null total: 448 +2022-12-21 14:16:29 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg concurrent +2022-12-21 14:16:29 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} +2022-12-21 14:16:29 DATA:  test-backend-node-gpu.js result: performance: load: null total: 448 +2022-12-21 14:16:29 INFO:  test-backend-node-gpu.js test: monkey-patch +2022-12-21 14:16:29 STATE: test-backend-node-gpu.js event: image +2022-12-21 14:16:29 STATE: test-backend-node-gpu.js event: detect +2022-12-21 14:16:29 STATE: test-backend-node-gpu.js passed: monkey patch +2022-12-21 14:16:29 STATE: test-backend-node-gpu.js passed: segmentation [262144] +2022-12-21 14:16:29 STATE: test-backend-node-gpu.js passeed: equal usage +2022-12-21 14:16:29 INFO:  test-backend-node-gpu.js test: input compare +2022-12-21 14:16:29 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-12-21 14:16:30 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-12-21 14:16:30 STATE: test-backend-node-gpu.js passed: image compare 0 23.275441687091504 +2022-12-21 14:16:30 INFO:  test-backend-node-gpu.js events: {"image":29,"detect":29,"warmup":2} +2022-12-21 14:16:30 INFO:  test-backend-node-gpu.js tensors 4453 +2022-12-21 14:16:30 INFO:  test-backend-node-gpu.js test complete: 17733 ms +2022-12-21 14:16:30 INFO:  +2022-12-21 14:16:30 INFO:  test-backend-node-wasm.js start +2022-12-21 14:16:30 DATA:  test-backend-node-wasm.js stdout: 2022-12-21 14:16:30 INFO:  { supported: true, backend: true, simd: undefined, multithread: undefined } https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-backend-wasm@4.1.0/dist/ +2022-12-21 14:16:30 STATE: test-backend-node-wasm.js passed: model server: https://vladmandic.github.io/human-models/models/ +2022-12-21 14:16:30 INFO:  test-backend-node-wasm.js test: configuration validation +2022-12-21 14:16:30 STATE: test-backend-node-wasm.js passed: configuration default validation [] +2022-12-21 14:16:30 STATE: test-backend-node-wasm.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}] +2022-12-21 14:16:30 INFO:  test-backend-node-wasm.js test: model load +2022-12-21 14:16:32 STATE: test-backend-node-wasm.js passed: models loaded 11 11 [{"name":"blazeface","loaded":true,"size":538928,"url":"https://vladmandic.github.io/human-models/models/blazeface.json"},{"name":"liveness","loaded":true,"size":592976,"url":"https://vladmandic.github.io/human-models/models/liveness.json"},{"name":"emotion","loaded":true,"size":820516,"url":"https://vladmandic.github.io/human-models/models/emotion.json"},{"name":"antispoof","loaded":true,"size":853098,"url":"https://vladmandic.github.io/human-models/models/antispoof.json"},{"name":"facemesh","loaded":true,"size":1477958,"url":"https://vladmandic.github.io/human-models/models/facemesh.json"},{"name":"handskeleton","loaded":true,"size":0,"url":"https://vladmandic.github.io/human-models/models/handlandmark-lite.json"},{"name":"handtrack","loaded":true,"size":2964837,"url":"https://vladmandic.github.io/human-models/models/handtrack.json"},{"name":"iris","loaded":true,"size":2599092,"url":"https://vladmandic.github.io/human-models/models/iris.json"},{"name":"faceres","loaded":true,"size":6978814,"url":"https://vladmandic.github.io/human-models/models/faceres.json"},{"name":"centernet","loaded":true,"size":4030290,"url":"https://vladmandic.github.io/human-models/models/centernet.json"},{"name":"movenet","loaded":true,"size":4650216,"url":"https://vladmandic.github.io/human-models/models/movenet-lightning.json"}] +2022-12-21 14:16:32 INFO:  test-backend-node-wasm.js memory: {"memory":{"unreliable":false,"numTensors":1785,"numDataBuffers":1785,"numBytes":56431460}} +2022-12-21 14:16:32 INFO:  test-backend-node-wasm.js state: {"state":{"registeredVariables":{},"nextTapeNodeId":0,"numBytes":56431460,"numTensors":1785,"numStringTensors":0,"numDataBuffers":1785,"gradientDepth":0,"kernelDepth":0,"scopeStack":[],"numDataMovesStack":[],"nextScopeId":0,"tensorInfo":{},"profiling":false,"activeProfile":{"newBytes":0,"newTensors":0,"peakBytes":0,"kernels":[],"result":null,"kernelNames":[]}}} +2022-12-21 14:16:32 INFO:  test-backend-node-wasm.js test: warmup +2022-12-21 14:16:32 STATE: test-backend-node-wasm.js passed: create human +2022-12-21 14:16:32 INFO:  test-backend-node-wasm.js human version: 3.0.1 +2022-12-21 14:16:32 INFO:  test-backend-node-wasm.js platform: linux x64 agent: NodeJS v19.1.0 +2022-12-21 14:16:32 INFO:  test-backend-node-wasm.js tfjs version: 4.1.0 +2022-12-21 14:16:32 INFO:  test-backend-node-wasm.js env: {"browser":false,"node":true,"platform":"linux x64","agent":"NodeJS v19.1.0","backends":["wasm"],"initial":false,"tfjs":{"version":"4.1.0"},"offscreen":false,"perfadd":false,"tensorflow":{},"wasm":{"supported":true,"backend":true,"simd":true,"multithread":false},"webgl":{"supported":false,"backend":false},"webgpu":{"supported":false,"backend":false},"cpu":{"flags":[]},"kernels":128} +2022-12-21 14:16:32 STATE: test-backend-node-wasm.js passed: set backend: wasm +2022-12-21 14:16:32 STATE: test-backend-node-wasm.js tensors 1785 +2022-12-21 14:16:32 STATE: test-backend-node-wasm.js result: defined models: 11 loaded models: 11 +2022-12-21 14:16:32 STATE: test-backend-node-wasm.js passed: load models 11 +2022-12-21 14:16:32 STATE: test-backend-node-wasm.js passed: warmup: none default +2022-12-21 14:16:32 DATA:  test-backend-node-wasm.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {} +2022-12-21 14:16:32 DATA:  test-backend-node-wasm.js result: performance: load: null total: null +2022-12-21 14:16:32 STATE: test-backend-node-wasm.js passed: warmup none result match +2022-12-21 14:16:32 STATE: test-backend-node-wasm.js event: image +2022-12-21 14:16:33 STATE: test-backend-node-wasm.js event: detect +2022-12-21 14:16:33 STATE: test-backend-node-wasm.js event: warmup +2022-12-21 14:16:33 STATE: test-backend-node-wasm.js passed: warmup: face default +2022-12-21 14:16:33 DATA:  test-backend-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-12-21 14:16:33 DATA:  test-backend-node-wasm.js result: performance: load: null total: 465 +2022-12-21 14:16:33 STATE: test-backend-node-wasm.js passed: warmup face result match +2022-12-21 14:16:33 STATE: test-backend-node-wasm.js event: image +2022-12-21 14:16:33 STATE: test-backend-node-wasm.js event: detect +2022-12-21 14:16:33 STATE: test-backend-node-wasm.js event: warmup +2022-12-21 14:16:33 STATE: test-backend-node-wasm.js passed: warmup: body default +2022-12-21 14:16:33 DATA:  test-backend-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-12-21 14:16:33 DATA:  test-backend-node-wasm.js result: performance: load: null total: 321 +2022-12-21 14:16:33 STATE: test-backend-node-wasm.js passed: warmup body result match +2022-12-21 14:16:33 STATE: test-backend-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":"thumb up"},{"hand":0,"gesture":"open palm"},{"iris":0,"gesture":"looking left"},{"iris":0,"gesture":"looking up"}]} +2022-12-21 14:16:33 INFO:  test-backend-node-wasm.js test: details verification +2022-12-21 14:16:33 STATE: test-backend-node-wasm.js start default +2022-12-21 14:16:33 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-12-21 14:16:33 STATE: test-backend-node-wasm.js event: image +2022-12-21 14:16:34 STATE: test-backend-node-wasm.js event: detect +2022-12-21 14:16:34 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg default +2022-12-21 14:16:34 DATA:  test-backend-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-12-21 14:16:34 DATA:  test-backend-node-wasm.js result: performance: load: null total: 308 +2022-12-21 14:16:34 STATE: test-backend-node-wasm.js passed: details face length 1 +2022-12-21 14:16:34 STATE: test-backend-node-wasm.js passed: details face score 1 0.93 1 +2022-12-21 14:16:34 STATE: test-backend-node-wasm.js passed: details face age/gender 23.7 female 0.97 2.34 +2022-12-21 14:16:34 STATE: test-backend-node-wasm.js passed: details face arrays 4 478 1024 +2022-12-21 14:16:34 STATE: test-backend-node-wasm.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"} +2022-12-21 14:16:34 STATE: test-backend-node-wasm.js passed: details face anti-spoofing 0.79 +2022-12-21 14:16:34 STATE: test-backend-node-wasm.js passed: details face liveness 0.83 +2022-12-21 14:16:34 STATE: test-backend-node-wasm.js passed: details body length 1 +2022-12-21 14:16:34 STATE: test-backend-node-wasm.js passed: details body 0.92 17 6 +2022-12-21 14:16:34 STATE: test-backend-node-wasm.js passed: details hand length 1 +2022-12-21 14:16:34 STATE: test-backend-node-wasm.js passed: details hand 0.51 0.73 point +2022-12-21 14:16:34 STATE: test-backend-node-wasm.js passed: details hand arrays 21 5 7 +2022-12-21 14:16:34 STATE: test-backend-node-wasm.js passed: details gesture length 7 +2022-12-21 14:16:34 STATE: test-backend-node-wasm.js passed: details gesture first {"face":0,"gesture":"facing right"} +2022-12-21 14:16:34 STATE: test-backend-node-wasm.js passed: details object length 1 +2022-12-21 14:16:34 STATE: test-backend-node-wasm.js passed: details object 0.72 person +2022-12-21 14:16:34 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1413675264} +2022-12-21 14:16:34 STATE: test-backend-node-wasm.js event: image +2022-12-21 14:16:34 STATE: test-backend-node-wasm.js event: detect +2022-12-21 14:16:34 STATE: test-backend-node-wasm.js passed: tensor shape: [1,1200,1200,4] dtype: float32 +2022-12-21 14:16:34 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1413675264} +2022-12-21 14:16:34 STATE: test-backend-node-wasm.js event: image +2022-12-21 14:16:35 STATE: test-backend-node-wasm.js event: detect +2022-12-21 14:16:35 STATE: test-backend-node-wasm.js passed: tensor shape: [1200,1200,4] dtype: float32 +2022-12-21 14:16:35 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-12-21 14:16:35 STATE: test-backend-node-wasm.js event: image +2022-12-21 14:16:35 STATE: test-backend-node-wasm.js event: detect +2022-12-21 14:16:35 STATE: test-backend-node-wasm.js passed: tensor shape: [1,1200,1200,3] dtype: float32 +2022-12-21 14:16:35 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1038921856} +2022-12-21 14:16:35 STATE: test-backend-node-wasm.js event: image +2022-12-21 14:16:36 STATE: test-backend-node-wasm.js event: detect +2022-12-21 14:16:36 STATE: test-backend-node-wasm.js passed: tensor shape: [1200,1200,3] dtype: float32 +2022-12-21 14:16:36 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871} +2022-12-21 14:16:36 STATE: test-backend-node-wasm.js event: image +2022-12-21 14:16:36 STATE: test-backend-node-wasm.js event: detect +2022-12-21 14:16:36 STATE: test-backend-node-wasm.js passed: tensor shape: [1,1200,1200,4] dtype: int32 +2022-12-21 14:16:36 INFO:  test-backend-node-wasm.js test default +2022-12-21 14:16:36 STATE: test-backend-node-wasm.js start async +2022-12-21 14:16:37 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-12-21 14:16:37 STATE: test-backend-node-wasm.js event: image +2022-12-21 14:16:37 STATE: test-backend-node-wasm.js event: detect +2022-12-21 14:16:37 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg async +2022-12-21 14:16:37 DATA:  test-backend-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-12-21 14:16:37 DATA:  test-backend-node-wasm.js result: performance: load: null total: 298 +2022-12-21 14:16:37 STATE: test-backend-node-wasm.js passed: default result face match 1 female 0.97 +2022-12-21 14:16:37 INFO:  test-backend-node-wasm.js test sync +2022-12-21 14:16:37 STATE: test-backend-node-wasm.js start sync +2022-12-21 14:16:37 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-12-21 14:16:37 STATE: test-backend-node-wasm.js event: image +2022-12-21 14:16:37 STATE: test-backend-node-wasm.js event: detect +2022-12-21 14:16:37 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg sync +2022-12-21 14:16:37 DATA:  test-backend-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-12-21 14:16:37 DATA:  test-backend-node-wasm.js result: performance: load: null total: 308 +2022-12-21 14:16:37 STATE: test-backend-node-wasm.js passed: default sync 1 female 0.97 +2022-12-21 14:16:37 INFO:  test-backend-node-wasm.js test: image process +2022-12-21 14:16:37 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-12-21 14:16:37 STATE: test-backend-node-wasm.js passed: image input null [1,256,256,3] +2022-12-21 14:16:37 INFO:  test-backend-node-wasm.js test: image null +2022-12-21 14:16:37 STATE: test-backend-node-wasm.js passed: invalid input could not convert input to tensor +2022-12-21 14:16:37 INFO:  test-backend-node-wasm.js test face similarity +2022-12-21 14:16:37 STATE: test-backend-node-wasm.js start face similarity +2022-12-21 14:16:37 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-12-21 14:16:37 STATE: test-backend-node-wasm.js event: image +2022-12-21 14:16:38 STATE: test-backend-node-wasm.js event: detect +2022-12-21 14:16:38 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-face.jpg face similarity +2022-12-21 14:16:38 DATA:  test-backend-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-12-21 14:16:38 DATA:  test-backend-node-wasm.js result: performance: load: null total: 294 +2022-12-21 14:16:38 STATE: test-backend-node-wasm.js start face similarity +2022-12-21 14:16:38 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-12-21 14:16:38 STATE: test-backend-node-wasm.js event: image +2022-12-21 14:16:38 STATE: test-backend-node-wasm.js event: detect +2022-12-21 14:16:38 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg face similarity +2022-12-21 14:16:38 DATA:  test-backend-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-12-21 14:16:38 DATA:  test-backend-node-wasm.js result: performance: load: null total: 296 +2022-12-21 14:16:38 STATE: test-backend-node-wasm.js start face similarity +2022-12-21 14:16:38 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} +2022-12-21 14:16:38 STATE: test-backend-node-wasm.js event: image +2022-12-21 14:16:39 STATE: test-backend-node-wasm.js event: detect +2022-12-21 14:16:39 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-upper.jpg face similarity +2022-12-21 14:16:39 DATA:  test-backend-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-12-21 14:16:39 DATA:  test-backend-node-wasm.js result: performance: load: null total: 288 +2022-12-21 14:16:39 STATE: test-backend-node-wasm.js passed: face descriptor +2022-12-21 14:16:39 STATE: test-backend-node-wasm.js passed: face similarity {"similarity":[1,0.4472741837136387,0.5567931378245533],"descriptors":[1024,1024,1024]} +2022-12-21 14:16:39 INFO:  test-backend-node-wasm.js test object +2022-12-21 14:16:39 STATE: test-backend-node-wasm.js start object +2022-12-21 14:16:39 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-12-21 14:16:39 STATE: test-backend-node-wasm.js event: image +2022-12-21 14:16:39 STATE: test-backend-node-wasm.js event: detect +2022-12-21 14:16:39 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg object +2022-12-21 14:16:39 DATA:  test-backend-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-12-21 14:16:39 DATA:  test-backend-node-wasm.js result: performance: load: null total: 296 +2022-12-21 14:16:39 STATE: test-backend-node-wasm.js passed: centernet +2022-12-21 14:16:39 STATE: test-backend-node-wasm.js start object +2022-12-21 14:16:40 WARN:  test-backend-node-wasm.js missing kernel ops {"title":"object","model":"nanodet","url":"https://vladmandic.github.io/human-models/models/nanodet.json","missing":["sparsetodense"],"backkend":"wasm"} +2022-12-21 14:16:40 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-12-21 14:16:40 STATE: test-backend-node-wasm.js event: image +2022-12-21 14:16:41 STATE: test-backend-node-wasm.js event: detect +2022-12-21 14:16:41 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg object +2022-12-21 14:16:41 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.92,"keypoints":17} +2022-12-21 14:16:41 DATA:  test-backend-node-wasm.js result: performance: load: null total: 188 +2022-12-21 14:16:41 ERROR: test-backend-node-wasm.js failed: nanodet [] +2022-12-21 14:16:41 INFO:  test-backend-node-wasm.js test sensitive +2022-12-21 14:16:41 STATE: test-backend-node-wasm.js start sensitive +2022-12-21 14:16:41 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-12-21 14:16:41 STATE: test-backend-node-wasm.js event: image +2022-12-21 14:16:41 STATE: test-backend-node-wasm.js event: detect +2022-12-21 14:16:41 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg sensitive +2022-12-21 14:16:41 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.92,"keypoints":17} +2022-12-21 14:16:41 DATA:  test-backend-node-wasm.js result: performance: load: null total: 206 +2022-12-21 14:16:41 STATE: test-backend-node-wasm.js passed: sensitive result match +2022-12-21 14:16:41 STATE: test-backend-node-wasm.js passed: sensitive face result match +2022-12-21 14:16:41 STATE: test-backend-node-wasm.js passed: sensitive face emotion result [{"score":0.59,"emotion":"angry"},{"score":0.29,"emotion":"fear"}] +2022-12-21 14:16:41 STATE: test-backend-node-wasm.js passed: sensitive body result match +2022-12-21 14:16:41 STATE: test-backend-node-wasm.js passed: sensitive hand result match +2022-12-21 14:16:41 INFO:  test-backend-node-wasm.js test body +2022-12-21 14:16:41 STATE: test-backend-node-wasm.js start blazepose +2022-12-21 14:16:43 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-12-21 14:16:43 STATE: test-backend-node-wasm.js event: image +2022-12-21 14:16:43 STATE: test-backend-node-wasm.js event: detect +2022-12-21 14:16:43 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg blazepose +2022-12-21 14:16:43 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.99,"keypoints":39} +2022-12-21 14:16:43 DATA:  test-backend-node-wasm.js result: performance: load: null total: 367 +2022-12-21 14:16:43 STATE: test-backend-node-wasm.js passed: blazepose +2022-12-21 14:16:43 STATE: test-backend-node-wasm.js start efficientpose +2022-12-21 14:16:44 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-12-21 14:16:44 STATE: test-backend-node-wasm.js event: image +2022-12-21 14:16:45 STATE: test-backend-node-wasm.js event: detect +2022-12-21 14:16:45 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg efficientpose +2022-12-21 14:16:45 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.75,"keypoints":13} +2022-12-21 14:16:45 DATA:  test-backend-node-wasm.js result: performance: load: null total: 635 +2022-12-21 14:16:45 STATE: test-backend-node-wasm.js passed: efficientpose +2022-12-21 14:16:45 STATE: test-backend-node-wasm.js start posenet +2022-12-21 14:16:46 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-12-21 14:16:46 STATE: test-backend-node-wasm.js event: image +2022-12-21 14:16:46 STATE: test-backend-node-wasm.js event: detect +2022-12-21 14:16:46 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg posenet +2022-12-21 14:16:46 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.96,"keypoints":16} +2022-12-21 14:16:46 DATA:  test-backend-node-wasm.js result: performance: load: null total: 252 +2022-12-21 14:16:46 STATE: test-backend-node-wasm.js passed: posenet +2022-12-21 14:16:46 STATE: test-backend-node-wasm.js start movenet +2022-12-21 14:16:46 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-12-21 14:16:46 STATE: test-backend-node-wasm.js event: image +2022-12-21 14:16:46 STATE: test-backend-node-wasm.js event: detect +2022-12-21 14:16:46 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg movenet +2022-12-21 14:16:46 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.92,"keypoints":17} +2022-12-21 14:16:46 DATA:  test-backend-node-wasm.js result: performance: load: null total: 214 +2022-12-21 14:16:46 STATE: test-backend-node-wasm.js passed: movenet +2022-12-21 14:16:46 INFO:  test-backend-node-wasm.js test face matching +2022-12-21 14:16:46 STATE: test-backend-node-wasm.js passed: face database 40 +2022-12-21 14:16:46 STATE: test-backend-node-wasm.js passed: face match {"first":{"index":4,"similarity":0.7827852754786533}} {"second":{"index":4,"similarity":0.5002051178899982}} {"third":{"index":4,"similarity":0.5401586736511599}} +2022-12-21 14:16:46 INFO:  test-backend-node-wasm.js test face similarity alternative +2022-12-21 14:16:46 STATE: test-backend-node-wasm.js start face embeddings +2022-12-21 14:16:47 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-12-21 14:16:47 STATE: test-backend-node-wasm.js event: image +2022-12-21 14:16:47 STATE: test-backend-node-wasm.js event: detect +2022-12-21 14:16:47 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-face.jpg face embeddings +2022-12-21 14:16:47 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} +2022-12-21 14:16:47 DATA:  test-backend-node-wasm.js result: performance: load: null total: 214 +2022-12-21 14:16:47 STATE: test-backend-node-wasm.js passed: mobilefacenet {"embedding":192} +2022-12-21 14:16:47 STATE: test-backend-node-wasm.js start face embeddings +2022-12-21 14:16:48 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-12-21 14:16:48 STATE: test-backend-node-wasm.js event: image +2022-12-21 14:16:48 STATE: test-backend-node-wasm.js event: detect +2022-12-21 14:16:48 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-face.jpg face embeddings +2022-12-21 14:16:48 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} +2022-12-21 14:16:48 DATA:  test-backend-node-wasm.js result: performance: load: null total: 260 +2022-12-21 14:16:48 STATE: test-backend-node-wasm.js passed: insightface {"embedding":512} +2022-12-21 14:16:48 INFO:  test-backend-node-wasm.js test face attention +2022-12-21 14:16:48 STATE: test-backend-node-wasm.js start face attention +2022-12-21 14:16:48 WARN:  test-backend-node-wasm.js missing kernel ops {"title":"face attention","model":"facemesh","url":"https://vladmandic.github.io/human-models/models/facemesh-attention.json","missing":["atan2"],"backkend":"wasm"} +2022-12-21 14:16:48 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-12-21 14:16:48 STATE: test-backend-node-wasm.js event: image +2022-12-21 14:16:48 STATE: test-backend-node-wasm.js event: detect +2022-12-21 14:16:48 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-face.jpg face attention +2022-12-21 14:16:48 DATA:  test-backend-node-wasm.js result: face: 0 body: 1 hand: 1 gesture: 2 object: 0 person: 0 {} {} {"score":0.47,"keypoints":3} +2022-12-21 14:16:48 DATA:  test-backend-node-wasm.js result: performance: load: null total: 108 +2022-12-21 14:16:48 ERROR: test-backend-node-wasm.js failed: face attention {"annotations":0} +2022-12-21 14:16:48 INFO:  test-backend-node-wasm.js test detectors +2022-12-21 14:16:48 STATE: test-backend-node-wasm.js start detectors +2022-12-21 14:16:49 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-12-21 14:16:49 STATE: test-backend-node-wasm.js event: image +2022-12-21 14:16:49 STATE: test-backend-node-wasm.js event: detect +2022-12-21 14:16:49 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg detectors +2022-12-21 14:16:49 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} +2022-12-21 14:16:49 DATA:  test-backend-node-wasm.js result: performance: load: null total: 98 +2022-12-21 14:16:49 STATE: test-backend-node-wasm.js passed: detector result face match +2022-12-21 14:16:49 STATE: test-backend-node-wasm.js passed: detector result hand match +2022-12-21 14:16:49 INFO:  test-backend-node-wasm.js test: multi-instance +2022-12-21 14:16:49 STATE: test-backend-node-wasm.js start multi instance +2022-12-21 14:16:49 STATE: test-backend-node-wasm.js event: image +2022-12-21 14:16:49 STATE: test-backend-node-wasm.js event: detect +2022-12-21 14:16:49 STATE: test-backend-node-wasm.js passed: detect: random multi instance +2022-12-21 14:16:49 DATA:  test-backend-node-wasm.js result: face: 0 body: 1 hand: 0 gesture: 0 object: 0 person: 0 {} {} {"score":0,"keypoints":0} +2022-12-21 14:16:49 DATA:  test-backend-node-wasm.js result: performance: load: null total: 98 +2022-12-21 14:16:49 INFO:  test-backend-node-wasm.js test: first instance +2022-12-21 14:16:49 STATE: test-backend-node-wasm.js start multi instance +2022-12-21 14:16:49 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} +2022-12-21 14:16:49 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-upper.jpg multi instance +2022-12-21 14:16:49 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-12-21 14:16:49 DATA:  test-backend-node-wasm.js result: performance: load: null total: 98 +2022-12-21 14:16:49 INFO:  test-backend-node-wasm.js test: second instance +2022-12-21 14:16:49 STATE: test-backend-node-wasm.js start multi instance +2022-12-21 14:16:49 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} +2022-12-21 14:16:49 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-upper.jpg multi instance +2022-12-21 14:16:49 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-12-21 14:16:49 DATA:  test-backend-node-wasm.js result: performance: load: null total: 99 +2022-12-21 14:16:49 INFO:  test-backend-node-wasm.js test: concurrent +2022-12-21 14:16:49 STATE: test-backend-node-wasm.js start concurrent +2022-12-21 14:16:49 STATE: test-backend-node-wasm.js start concurrent +2022-12-21 14:16:49 STATE: test-backend-node-wasm.js start concurrent +2022-12-21 14:16:49 STATE: test-backend-node-wasm.js start concurrent +2022-12-21 14:16:49 STATE: test-backend-node-wasm.js start concurrent +2022-12-21 14:16:49 STATE: test-backend-node-wasm.js start concurrent +2022-12-21 14:16:49 STATE: test-backend-node-wasm.js start concurrent +2022-12-21 14:16:49 STATE: test-backend-node-wasm.js start concurrent +2022-12-21 14:16:49 STATE: test-backend-node-wasm.js start concurrent +2022-12-21 14:16:49 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-12-21 14:16:49 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-12-21 14:16:49 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-12-21 14:16:49 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-12-21 14:16:50 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-12-21 14:16:50 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-12-21 14:16:50 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} +2022-12-21 14:16:50 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} +2022-12-21 14:16:50 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} +2022-12-21 14:16:50 STATE: test-backend-node-wasm.js event: image +2022-12-21 14:16:50 STATE: test-backend-node-wasm.js event: image +2022-12-21 14:16:50 STATE: test-backend-node-wasm.js event: image +2022-12-21 14:16:51 STATE: test-backend-node-wasm.js event: detect +2022-12-21 14:16:51 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-upper.jpg concurrent +2022-12-21 14:16:51 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-12-21 14:16:51 DATA:  test-backend-node-wasm.js result: performance: load: null total: 870 +2022-12-21 14:16:51 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-upper.jpg concurrent +2022-12-21 14:16:51 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-12-21 14:16:51 DATA:  test-backend-node-wasm.js result: performance: load: null total: 870 +2022-12-21 14:16:51 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-upper.jpg concurrent +2022-12-21 14:16:51 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-12-21 14:16:51 DATA:  test-backend-node-wasm.js result: performance: load: null total: 870 +2022-12-21 14:16:51 STATE: test-backend-node-wasm.js event: detect +2022-12-21 14:16:51 STATE: test-backend-node-wasm.js event: detect +2022-12-21 14:16:51 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-face.jpg concurrent +2022-12-21 14:16:51 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} +2022-12-21 14:16:51 DATA:  test-backend-node-wasm.js result: performance: load: null total: 870 +2022-12-21 14:16:51 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-face.jpg concurrent +2022-12-21 14:16:51 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} +2022-12-21 14:16:51 DATA:  test-backend-node-wasm.js result: performance: load: null total: 870 +2022-12-21 14:16:51 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-face.jpg concurrent +2022-12-21 14:16:51 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} +2022-12-21 14:16:51 DATA:  test-backend-node-wasm.js result: performance: load: null total: 870 +2022-12-21 14:16:51 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg concurrent +2022-12-21 14:16:51 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} +2022-12-21 14:16:51 DATA:  test-backend-node-wasm.js result: performance: load: null total: 870 +2022-12-21 14:16:51 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg concurrent +2022-12-21 14:16:51 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} +2022-12-21 14:16:51 DATA:  test-backend-node-wasm.js result: performance: load: null total: 870 +2022-12-21 14:16:51 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg concurrent +2022-12-21 14:16:51 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} +2022-12-21 14:16:51 DATA:  test-backend-node-wasm.js result: performance: load: null total: 870 +2022-12-21 14:16:51 INFO:  test-backend-node-wasm.js test: monkey-patch +2022-12-21 14:16:51 STATE: test-backend-node-wasm.js event: image +2022-12-21 14:16:51 STATE: test-backend-node-wasm.js event: detect +2022-12-21 14:16:51 STATE: test-backend-node-wasm.js passed: monkey patch +2022-12-21 14:16:51 STATE: test-backend-node-wasm.js passed: segmentation [262144] +2022-12-21 14:16:51 STATE: test-backend-node-wasm.js passeed: equal usage +2022-12-21 14:16:51 INFO:  test-backend-node-wasm.js test: input compare +2022-12-21 14:16:51 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-12-21 14:16:52 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-12-21 14:16:52 STATE: test-backend-node-wasm.js passed: image compare 0 23.280073018790848 +2022-12-21 14:16:52 INFO:  test-backend-node-wasm.js events: {"image":29,"detect":29,"warmup":2} +2022-12-21 14:16:52 INFO:  test-backend-node-wasm.js tensors 4455 +2022-12-21 14:16:52 INFO:  test-backend-node-wasm.js test complete: 21248 ms +2022-12-21 14:16:52 STATE: all tests complete +2022-12-21 14:16:52 INFO:  status {"test":"../demo/nodejs/node.js","passed":1,"failed":0} +2022-12-21 14:16:52 INFO:  status {"test":"../demo/nodejs/node-simple.js","passed":1,"failed":0} +2022-12-21 14:16:52 INFO:  status {"test":"../demo/nodejs/node-event.js","passed":1,"failed":0} +2022-12-21 14:16:52 INFO:  status {"test":"../demo/nodejs/node-similarity.js","passed":1,"failed":0} +2022-12-21 14:16:52 INFO:  status {"test":"../demo/nodejs/node-canvas.js","passed":1,"failed":0} +2022-12-21 14:16:52 INFO:  status {"test":"../demo/nodejs/process-folder.js","passed":1,"failed":0} +2022-12-21 14:16:52 INFO:  status {"test":"../demo/multithread/node-multiprocess.js","passed":1,"failed":0} +2022-12-21 14:16:52 INFO:  status {"test":"../demo/facematch/node-match.js","passed":1,"failed":0} +2022-12-21 14:16:52 INFO:  status {"test":"../demo/nodejs/node-bench.js","passed":1,"failed":0} +2022-12-21 14:16:52 INFO:  status {"test":"test-node-load.js","passed":1,"failed":0} +2022-12-21 14:16:52 INFO:  status {"test":"test-node-gear.js","passed":3,"failed":0} +2022-12-21 14:16:52 INFO:  status {"test":"test-backend-node.js","passed":125,"failed":0} +2022-12-21 14:16:52 INFO:  status {"test":"test-backend-node-gpu.js","passed":125,"failed":0} +2022-12-21 14:16:52 INFO:  status {"test":"test-backend-node-wasm.js","passed":124,"failed":2} +2022-12-21 14:16:52 INFO:  failures {"count":2} +2022-12-21 14:16:52 WARN:  failed {"test":"test-backend-node-wasm.js","message":["error",["failed: nanodet",[]]]} +2022-12-21 14:16:52 WARN:  failed {"test":"test-backend-node-wasm.js","message":["error",["failed: face attention",{"annotations":0}]]} diff --git a/typedoc/assets/main.js b/typedoc/assets/main.js index b949086c..0e059619 100644 --- a/typedoc/assets/main.js +++ b/typedoc/assets/main.js @@ -1,54 +1,4 @@ "use strict"; "use strict";(()=>{var Qe=Object.create;var ae=Object.defineProperty;var Pe=Object.getOwnPropertyDescriptor;var Ce=Object.getOwnPropertyNames;var Oe=Object.getPrototypeOf,Re=Object.prototype.hasOwnProperty;var _e=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Me=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ce(e))!Re.call(t,i)&&i!==n&&ae(t,i,{get:()=>e[i],enumerable:!(r=Pe(e,i))||r.enumerable});return t};var De=(t,e,n)=>(n=t!=null?Qe(Oe(t)):{},Me(e||!t||!t.__esModule?ae(n,"default",{value:t,enumerable:!0}):n,t));var de=_e((ce,he)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i0){var h=t.utils.clone(n)||{};h.position=[a,l],h.index=s.length,s.push(new t.Token(r.slice(a,o),h))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. -`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r1&&(oe&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(ou?h+=2:a==u&&(n+=r[l+1]*i[h+1],l+=2,h+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}if(s.str.length==0&&(u.final=!0),i.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}s.str.length==1&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var h=s.str.charAt(0),m=s.str.charAt(1),v;m in s.node.edges?v=s.node.edges[m]:(v=new t.TokenSet,s.node.edges[m]=v),s.str.length==1&&(v.final=!0),i.push({node:v,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof ce=="object"?he.exports=n():e.lunr=n()}(this,function(){return t})})()});var le=[];function j(t,e){le.push({selector:e,constructor:t})}var Y=class{constructor(){this.createComponents(document.body)}createComponents(e){le.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r}),r.dataset.hasInstance=String(!0))})})}};var k=class{constructor(e){this.el=e.el}};var J=class{constructor(){this.listeners={}}addEventListener(e,n){e in this.listeners||(this.listeners[e]=[]),this.listeners[e].push(n)}removeEventListener(e,n){if(!(e in this.listeners))return;let r=this.listeners[e];for(let i=0,s=r.length;i{let n=Date.now();return(...r)=>{n+e-Date.now()<0&&(t(...r),n=Date.now())}};var re=class extends J{constructor(){super();this.scrollTop=0;this.lastY=0;this.width=0;this.height=0;this.showToolbar=!0;this.toolbar=document.querySelector(".tsd-page-toolbar"),this.navigation=document.querySelector(".col-menu"),window.addEventListener("scroll",ne(()=>this.onScroll(),10)),window.addEventListener("resize",ne(()=>this.onResize(),10)),this.searchInput=document.querySelector("#tsd-search input"),this.searchInput&&this.searchInput.addEventListener("focus",()=>{this.hideShowToolbar()}),this.onResize(),this.onScroll()}triggerResize(){let n=new CustomEvent("resize",{detail:{width:this.width,height:this.height}});this.dispatchEvent(n)}onResize(){this.width=window.innerWidth||0,this.height=window.innerHeight||0;let n=new CustomEvent("resize",{detail:{width:this.width,height:this.height}});this.dispatchEvent(n)}onScroll(){this.scrollTop=window.scrollY||0;let n=new CustomEvent("scroll",{detail:{scrollTop:this.scrollTop}});this.dispatchEvent(n),this.hideShowToolbar()}hideShowToolbar(){let n=this.showToolbar;this.showToolbar=this.lastY>=this.scrollTop||this.scrollTop<=0||!!this.searchInput&&this.searchInput===document.activeElement,n!==this.showToolbar&&(this.toolbar.classList.toggle("tsd-page-toolbar--hide"),this.navigation?.classList.toggle("col-menu--hide")),this.lastY=this.scrollTop}},R=re;R.instance=new re;var X=class extends k{constructor(n){super(n);this.anchors=[];this.index=-1;R.instance.addEventListener("resize",()=>this.onResize()),R.instance.addEventListener("scroll",r=>this.onScroll(r)),this.createAnchors()}createAnchors(){let n=window.location.href;n.indexOf("#")!=-1&&(n=n.substring(0,n.indexOf("#"))),this.el.querySelectorAll("a").forEach(r=>{let i=r.href;if(i.indexOf("#")==-1||i.substring(0,n.length)!=n)return;let s=i.substring(i.indexOf("#")+1),o=document.querySelector("a.tsd-anchor[name="+s+"]"),a=r.parentNode;!o||!a||this.anchors.push({link:a,anchor:o,position:0})}),this.onResize()}onResize(){let n;for(let i=0,s=this.anchors.length;ii.position-s.position);let r=new CustomEvent("scroll",{detail:{scrollTop:R.instance.scrollTop}});this.onScroll(r)}onScroll(n){let r=n.detail.scrollTop+5,i=this.anchors,s=i.length-1,o=this.index;for(;o>-1&&i[o].position>r;)o-=1;for(;o-1&&this.anchors[this.index].link.classList.remove("focus"),this.index=o,this.index>-1&&this.anchors[this.index].link.classList.add("focus"))}};var ue=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var me=De(de());function ve(){let t=document.getElementById("tsd-search");if(!t)return;let e=document.getElementById("search-script");t.classList.add("loading"),e&&(e.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),e.addEventListener("load",()=>{t.classList.remove("loading"),t.classList.add("ready")}),window.searchData&&t.classList.remove("loading"));let n=document.querySelector("#tsd-search input"),r=document.querySelector("#tsd-search .results");if(!n||!r)throw new Error("The input field or the result list wrapper was not found");let i=!1;r.addEventListener("mousedown",()=>i=!0),r.addEventListener("mouseup",()=>{i=!1,t.classList.remove("has-focus")}),n.addEventListener("focus",()=>t.classList.add("has-focus")),n.addEventListener("blur",()=>{i||(i=!1,t.classList.remove("has-focus"))});let s={base:t.dataset.base+"/"};Fe(t,r,n,s)}function Fe(t,e,n,r){n.addEventListener("input",ue(()=>{Ae(t,e,n,r)},200));let i=!1;n.addEventListener("keydown",s=>{i=!0,s.key=="Enter"?Ve(e,n):s.key=="Escape"?n.blur():s.key=="ArrowUp"?fe(e,-1):s.key==="ArrowDown"?fe(e,1):i=!1}),n.addEventListener("keypress",s=>{i&&s.preventDefault()}),document.body.addEventListener("keydown",s=>{s.altKey||s.ctrlKey||s.metaKey||!n.matches(":focus")&&s.key==="/"&&(n.focus(),s.preventDefault())})}function He(t,e){t.index||window.searchData&&(e.classList.remove("loading"),e.classList.add("ready"),t.data=window.searchData,t.index=me.Index.load(window.searchData.index))}function Ae(t,e,n,r){if(He(r,t),!r.index||!r.data)return;e.textContent="";let i=n.value.trim(),s=i?r.index.search(`*${i}*`):[];for(let o=0;oa.score-o.score);for(let o=0,a=Math.min(10,s.length);o${pe(u.parent,i)}.${l}`);let h=document.createElement("li");h.classList.value=u.classes??"";let m=document.createElement("a");m.href=r.base+u.url,m.innerHTML=l,h.append(m),e.appendChild(h)}}function fe(t,e){let n=t.querySelector(".current");if(!n)n=t.querySelector(e==1?"li:first-child":"li:last-child"),n&&n.classList.add("current");else{let r=n;if(e===1)do r=r.nextElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);else do r=r.previousElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);r&&(n.classList.remove("current"),r.classList.add("current"))}}function Ve(t,e){let n=t.querySelector(".current");if(n||(n=t.querySelector("li:first-child")),n){let r=n.querySelector("a");r&&(window.location.href=r.href),e.blur()}}function pe(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(ie(t.substring(s,o)),`${ie(t.substring(o,o+r.length))}`),s=o+r.length,o=n.indexOf(r,s);return i.push(ie(t.substring(s))),i.join("")}var Ne={"&":"&","<":"<",">":">","'":"'",'"':"""};function ie(t){return t.replace(/[&<>"'"]/g,e=>Ne[e])}var F="mousedown",ye="mousemove",B="mouseup",Z={x:0,y:0},ge=!1,se=!1,je=!1,H=!1,xe=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(xe?"is-mobile":"not-mobile");xe&&"ontouchstart"in document.documentElement&&(je=!0,F="touchstart",ye="touchmove",B="touchend");document.addEventListener(F,t=>{se=!0,H=!1;let e=F=="touchstart"?t.targetTouches[0]:t;Z.y=e.pageY||0,Z.x=e.pageX||0});document.addEventListener(ye,t=>{if(!!se&&!H){let e=F=="touchstart"?t.targetTouches[0]:t,n=Z.x-(e.pageX||0),r=Z.y-(e.pageY||0);H=Math.sqrt(n*n+r*r)>10}});document.addEventListener(B,()=>{se=!1});document.addEventListener("click",t=>{ge&&(t.preventDefault(),t.stopImmediatePropagation(),ge=!1)});var K=class extends k{constructor(n){super(n);this.className=this.el.dataset.toggle||"",this.el.addEventListener(B,r=>this.onPointerUp(r)),this.el.addEventListener("click",r=>r.preventDefault()),document.addEventListener(F,r=>this.onDocumentPointerDown(r)),document.addEventListener(B,r=>this.onDocumentPointerUp(r))}setActive(n){if(this.active==n)return;this.active=n,document.documentElement.classList.toggle("has-"+this.className,n),this.el.classList.toggle("active",n);let r=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(r),setTimeout(()=>document.documentElement.classList.remove(r),500)}onPointerUp(n){H||(this.setActive(!0),n.preventDefault())}onDocumentPointerDown(n){if(this.active){if(n.target.closest(".col-menu, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(n){if(!H&&this.active&&n.target.closest(".col-menu")){let r=n.target.closest("a");if(r){let i=window.location.href;i.indexOf("#")!=-1&&(i=i.substring(0,i.indexOf("#"))),r.href.substring(0,i.length)==i&&setTimeout(()=>this.setActive(!1),250)}}}};var oe;try{oe=localStorage}catch{oe={getItem(){return null},setItem(){}}}var Q=oe;var Le=document.head.appendChild(document.createElement("style"));Le.dataset.for="filters";var ee=class extends k{constructor(n){super(n);this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),Le.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } -`}fromLocalStorage(){let n=Q.getItem(this.key);return n?n==="true":this.el.checked}setLocalStorage(n){Q.setItem(this.key,n.toString()),this.value=n,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),document.querySelectorAll(".tsd-index-section").forEach(n=>{n.style.display="block";let r=Array.from(n.querySelectorAll(".tsd-index-link")).every(i=>i.offsetParent==null);n.style.display=r?"none":"block"})}};var te=class extends k{constructor(n){super(n);this.calculateHeights(),this.summary=this.el.querySelector(".tsd-accordion-summary"),this.icon=this.summary.querySelector("svg"),this.key=`tsd-accordion-${this.summary.textContent.replace(/\s+/g,"-").toLowerCase()}`,this.setLocalStorage(this.fromLocalStorage(),!0),this.summary.addEventListener("click",r=>this.toggleVisibility(r)),this.icon.style.transform=this.getIconRotation()}getIconRotation(n=this.el.open){return`rotate(${n?0:-90}deg)`}calculateHeights(){let n=this.el.open,{position:r,left:i}=this.el.style;this.el.style.position="fixed",this.el.style.left="-9999px",this.el.open=!0,this.expandedHeight=this.el.offsetHeight+"px",this.el.open=!1,this.collapsedHeight=this.el.offsetHeight+"px",this.el.open=n,this.el.style.height=n?this.expandedHeight:this.collapsedHeight,this.el.style.position=r,this.el.style.left=i}toggleVisibility(n){n.preventDefault(),this.el.style.overflow="hidden",this.el.open?this.collapse():this.expand()}expand(n=!0){this.el.open=!0,this.animate(this.collapsedHeight,this.expandedHeight,{opening:!0,duration:n?300:0})}collapse(n=!0){this.animate(this.expandedHeight,this.collapsedHeight,{opening:!1,duration:n?300:0})}animate(n,r,{opening:i,duration:s=300}){if(this.animation)return;let o={duration:s,easing:"ease"};this.animation=this.el.animate({height:[n,r]},o),this.icon.animate({transform:[this.icon.style.transform||this.getIconRotation(!i),this.getIconRotation(i)]},o).addEventListener("finish",()=>{this.icon.style.transform=this.getIconRotation(i)}),this.animation.addEventListener("finish",()=>this.animationEnd(i))}animationEnd(n){this.el.open=n,this.animation=void 0,this.el.style.height="auto",this.el.style.overflow="visible",this.setLocalStorage(n)}fromLocalStorage(){let n=Q.getItem(this.key);return n?n==="true":this.el.open}setLocalStorage(n,r=!1){this.fromLocalStorage()===n&&!r||(Q.setItem(this.key,n.toString()),this.el.open=n,this.handleValueChange(r))}handleValueChange(n=!1){this.fromLocalStorage()===this.el.open&&!n||(this.fromLocalStorage()?this.expand(!1):this.collapse(!1))}};function be(t){let e=Q.getItem("tsd-theme")||"os";t.value=e,Ee(e),t.addEventListener("change",()=>{Q.setItem("tsd-theme",t.value),Ee(t.value)})}function Ee(t){document.documentElement.dataset.theme=t}ve();j(X,".menu-highlight");j(K,"a[data-toggle]");j(te,".tsd-index-accordion");j(ee,".tsd-filter-item input[type=checkbox]");var Se=document.getElementById("theme");Se&&be(Se);var Be=new Y;Object.defineProperty(window,"app",{value:Be});})(); -/*! - * lunr.Builder - * Copyright (C) 2020 Oliver Nightingale - */ -/*! - * lunr.Index - * Copyright (C) 2020 Oliver Nightingale - */ -/*! - * lunr.Pipeline - * Copyright (C) 2020 Oliver Nightingale - */ -/*! - * lunr.Set - * Copyright (C) 2020 Oliver Nightingale - */ -/*! - * lunr.TokenSet - * Copyright (C) 2020 Oliver Nightingale - */ -/*! - * lunr.Vector - * Copyright (C) 2020 Oliver Nightingale - */ -/*! - * lunr.stemmer - * Copyright (C) 2020 Oliver Nightingale - * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt - */ -/*! - * lunr.stopWordFilter - * Copyright (C) 2020 Oliver Nightingale - */ -/*! - * lunr.tokenizer - * Copyright (C) 2020 Oliver Nightingale - */ -/*! - * lunr.trimmer - * Copyright (C) 2020 Oliver Nightingale - */ -/*! - * lunr.utils - * Copyright (C) 2020 Oliver Nightingale - */ -/** - * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9 - * Copyright (C) 2020 Oliver Nightingale - * @license MIT - */ +`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r1&&(oe&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(ou?h+=2:a==u&&(n+=r[l+1]*i[h+1],l+=2,h+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}if(s.str.length==0&&(u.final=!0),i.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}s.str.length==1&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var h=s.str.charAt(0),m=s.str.charAt(1),v;m in s.node.edges?v=s.node.edges[m]:(v=new t.TokenSet,s.node.edges[m]=v),s.str.length==1&&(v.final=!0),i.push({node:v,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof ce=="object"?he.exports=n():e.lunr=n()}(this,function(){return t})})()});var le=[];function B(t,e){le.push({selector:e,constructor:t})}var Y=class{constructor(){this.alwaysVisibleMember=null;this.createComponents(document.body),this.ensureFocusedElementVisible(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible())}createComponents(e){le.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}ensureFocusedElementVisible(){this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null);let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n.tagName!=="SECTION";)n=n.parentElement;if(n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let r=document.createElement("p");r.classList.add("warning"),r.textContent="This member is normally hidden due to your filter settings.",n.prepend(r)}}};var I=class{constructor(e){this.el=e.el,this.app=e.app}};var J=class{constructor(){this.listeners={}}addEventListener(e,n){e in this.listeners||(this.listeners[e]=[]),this.listeners[e].push(n)}removeEventListener(e,n){if(!(e in this.listeners))return;let r=this.listeners[e];for(let i=0,s=r.length;i{let n=Date.now();return(...r)=>{n+e-Date.now()<0&&(t(...r),n=Date.now())}};var re=class extends J{constructor(){super();this.scrollTop=0;this.lastY=0;this.width=0;this.height=0;this.showToolbar=!0;this.toolbar=document.querySelector(".tsd-page-toolbar"),this.navigation=document.querySelector(".col-menu"),window.addEventListener("scroll",ne(()=>this.onScroll(),10)),window.addEventListener("resize",ne(()=>this.onResize(),10)),this.searchInput=document.querySelector("#tsd-search input"),this.searchInput&&this.searchInput.addEventListener("focus",()=>{this.hideShowToolbar()}),this.onResize(),this.onScroll()}triggerResize(){let n=new CustomEvent("resize",{detail:{width:this.width,height:this.height}});this.dispatchEvent(n)}onResize(){this.width=window.innerWidth||0,this.height=window.innerHeight||0;let n=new CustomEvent("resize",{detail:{width:this.width,height:this.height}});this.dispatchEvent(n)}onScroll(){this.scrollTop=window.scrollY||0;let n=new CustomEvent("scroll",{detail:{scrollTop:this.scrollTop}});this.dispatchEvent(n),this.hideShowToolbar()}hideShowToolbar(){let n=this.showToolbar;this.showToolbar=this.lastY>=this.scrollTop||this.scrollTop<=0||!!this.searchInput&&this.searchInput===document.activeElement,n!==this.showToolbar&&(this.toolbar.classList.toggle("tsd-page-toolbar--hide"),this.navigation?.classList.toggle("col-menu--hide")),this.lastY=this.scrollTop}},R=re;R.instance=new re;var X=class extends I{constructor(n){super(n);this.anchors=[];this.index=-1;R.instance.addEventListener("resize",()=>this.onResize()),R.instance.addEventListener("scroll",r=>this.onScroll(r)),this.createAnchors()}createAnchors(){let n=window.location.href;n.indexOf("#")!=-1&&(n=n.substring(0,n.indexOf("#"))),this.el.querySelectorAll("a").forEach(r=>{let i=r.href;if(i.indexOf("#")==-1||i.substring(0,n.length)!=n)return;let s=i.substring(i.indexOf("#")+1),o=document.querySelector("a.tsd-anchor[name="+s+"]"),a=r.parentNode;!o||!a||this.anchors.push({link:a,anchor:o,position:0})}),this.onResize()}onResize(){let n;for(let i=0,s=this.anchors.length;ii.position-s.position);let r=new CustomEvent("scroll",{detail:{scrollTop:R.instance.scrollTop}});this.onScroll(r)}onScroll(n){let r=n.detail.scrollTop+5,i=this.anchors,s=i.length-1,o=this.index;for(;o>-1&&i[o].position>r;)o-=1;for(;o-1&&this.anchors[this.index].link.classList.remove("focus"),this.index=o,this.index>-1&&this.anchors[this.index].link.classList.add("focus"))}};var ue=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var me=De(de());function ve(){let t=document.getElementById("tsd-search");if(!t)return;let e=document.getElementById("search-script");t.classList.add("loading"),e&&(e.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),e.addEventListener("load",()=>{t.classList.remove("loading"),t.classList.add("ready")}),window.searchData&&t.classList.remove("loading"));let n=document.querySelector("#tsd-search input"),r=document.querySelector("#tsd-search .results");if(!n||!r)throw new Error("The input field or the result list wrapper was not found");let i=!1;r.addEventListener("mousedown",()=>i=!0),r.addEventListener("mouseup",()=>{i=!1,t.classList.remove("has-focus")}),n.addEventListener("focus",()=>t.classList.add("has-focus")),n.addEventListener("blur",()=>{i||(i=!1,t.classList.remove("has-focus"))});let s={base:t.dataset.base+"/"};Fe(t,r,n,s)}function Fe(t,e,n,r){n.addEventListener("input",ue(()=>{He(t,e,n,r)},200));let i=!1;n.addEventListener("keydown",s=>{i=!0,s.key=="Enter"?Ve(e,n):s.key=="Escape"?n.blur():s.key=="ArrowUp"?pe(e,-1):s.key==="ArrowDown"?pe(e,1):i=!1}),n.addEventListener("keypress",s=>{i&&s.preventDefault()}),document.body.addEventListener("keydown",s=>{s.altKey||s.ctrlKey||s.metaKey||!n.matches(":focus")&&s.key==="/"&&(n.focus(),s.preventDefault())})}function Ae(t,e){t.index||window.searchData&&(e.classList.remove("loading"),e.classList.add("ready"),t.data=window.searchData,t.index=me.Index.load(window.searchData.index))}function He(t,e,n,r){if(Ae(r,t),!r.index||!r.data)return;e.textContent="";let i=n.value.trim(),s=i?r.index.search(`*${i}*`):[];for(let o=0;oa.score-o.score);for(let o=0,a=Math.min(10,s.length);o${fe(u.parent,i)}.${l}`);let h=document.createElement("li");h.classList.value=u.classes??"";let m=document.createElement("a");m.href=r.base+u.url,m.innerHTML=l,h.append(m),e.appendChild(h)}}function pe(t,e){let n=t.querySelector(".current");if(!n)n=t.querySelector(e==1?"li:first-child":"li:last-child"),n&&n.classList.add("current");else{let r=n;if(e===1)do r=r.nextElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);else do r=r.previousElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);r&&(n.classList.remove("current"),r.classList.add("current"))}}function Ve(t,e){let n=t.querySelector(".current");if(n||(n=t.querySelector("li:first-child")),n){let r=n.querySelector("a");r&&(window.location.href=r.href),e.blur()}}function fe(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(ie(t.substring(s,o)),`${ie(t.substring(o,o+r.length))}`),s=o+r.length,o=n.indexOf(r,s);return i.push(ie(t.substring(s))),i.join("")}var Ne={"&":"&","<":"<",">":">","'":"'",'"':"""};function ie(t){return t.replace(/[&<>"'"]/g,e=>Ne[e])}var F="mousedown",ye="mousemove",j="mouseup",Z={x:0,y:0},ge=!1,se=!1,Be=!1,A=!1,xe=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(xe?"is-mobile":"not-mobile");xe&&"ontouchstart"in document.documentElement&&(Be=!0,F="touchstart",ye="touchmove",j="touchend");document.addEventListener(F,t=>{se=!0,A=!1;let e=F=="touchstart"?t.targetTouches[0]:t;Z.y=e.pageY||0,Z.x=e.pageX||0});document.addEventListener(ye,t=>{if(se&&!A){let e=F=="touchstart"?t.targetTouches[0]:t,n=Z.x-(e.pageX||0),r=Z.y-(e.pageY||0);A=Math.sqrt(n*n+r*r)>10}});document.addEventListener(j,()=>{se=!1});document.addEventListener("click",t=>{ge&&(t.preventDefault(),t.stopImmediatePropagation(),ge=!1)});var K=class extends I{constructor(n){super(n);this.className=this.el.dataset.toggle||"",this.el.addEventListener(j,r=>this.onPointerUp(r)),this.el.addEventListener("click",r=>r.preventDefault()),document.addEventListener(F,r=>this.onDocumentPointerDown(r)),document.addEventListener(j,r=>this.onDocumentPointerUp(r))}setActive(n){if(this.active==n)return;this.active=n,document.documentElement.classList.toggle("has-"+this.className,n),this.el.classList.toggle("active",n);let r=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(r),setTimeout(()=>document.documentElement.classList.remove(r),500)}onPointerUp(n){A||(this.setActive(!0),n.preventDefault())}onDocumentPointerDown(n){if(this.active){if(n.target.closest(".col-menu, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(n){if(!A&&this.active&&n.target.closest(".col-menu")){let r=n.target.closest("a");if(r){let i=window.location.href;i.indexOf("#")!=-1&&(i=i.substring(0,i.indexOf("#"))),r.href.substring(0,i.length)==i&&setTimeout(()=>this.setActive(!1),250)}}}};var oe;try{oe=localStorage}catch{oe={getItem(){return null},setItem(){}}}var Q=oe;var Le=document.head.appendChild(document.createElement("style"));Le.dataset.for="filters";var ee=class extends I{constructor(n){super(n);this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),Le.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } +`}fromLocalStorage(){let n=Q.getItem(this.key);return n?n==="true":this.el.checked}setLocalStorage(n){Q.setItem(this.key,n.toString()),this.value=n,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),this.app.filterChanged(),document.querySelectorAll(".tsd-index-section").forEach(n=>{n.style.display="block";let r=Array.from(n.querySelectorAll(".tsd-index-link")).every(i=>i.offsetParent==null);n.style.display=r?"none":"block"})}};var te=class extends I{constructor(n){super(n);this.calculateHeights(),this.summary=this.el.querySelector(".tsd-accordion-summary"),this.icon=this.summary.querySelector("svg"),this.key=`tsd-accordion-${this.summary.textContent.replace(/\s+/g,"-").toLowerCase()}`,this.setLocalStorage(this.fromLocalStorage(),!0),this.summary.addEventListener("click",r=>this.toggleVisibility(r)),this.icon.style.transform=this.getIconRotation()}getIconRotation(n=this.el.open){return`rotate(${n?0:-90}deg)`}calculateHeights(){let n=this.el.open,{position:r,left:i}=this.el.style;this.el.style.position="fixed",this.el.style.left="-9999px",this.el.open=!0,this.expandedHeight=this.el.offsetHeight+"px",this.el.open=!1,this.collapsedHeight=this.el.offsetHeight+"px",this.el.open=n,this.el.style.height=n?this.expandedHeight:this.collapsedHeight,this.el.style.position=r,this.el.style.left=i}toggleVisibility(n){n.preventDefault(),this.el.style.overflow="hidden",this.el.open?this.collapse():this.expand()}expand(n=!0){this.el.open=!0,this.animate(this.collapsedHeight,this.expandedHeight,{opening:!0,duration:n?300:0})}collapse(n=!0){this.animate(this.expandedHeight,this.collapsedHeight,{opening:!1,duration:n?300:0})}animate(n,r,{opening:i,duration:s=300}){if(this.animation)return;let o={duration:s,easing:"ease"};this.animation=this.el.animate({height:[n,r]},o),this.icon.animate({transform:[this.icon.style.transform||this.getIconRotation(!i),this.getIconRotation(i)]},o).addEventListener("finish",()=>{this.icon.style.transform=this.getIconRotation(i)}),this.animation.addEventListener("finish",()=>this.animationEnd(i))}animationEnd(n){this.el.open=n,this.animation=void 0,this.el.style.height="auto",this.el.style.overflow="visible",this.setLocalStorage(n)}fromLocalStorage(){let n=Q.getItem(this.key);return n?n==="true":this.el.open}setLocalStorage(n,r=!1){this.fromLocalStorage()===n&&!r||(Q.setItem(this.key,n.toString()),this.el.open=n,this.handleValueChange(r))}handleValueChange(n=!1){this.fromLocalStorage()===this.el.open&&!n||(this.fromLocalStorage()?this.expand(!1):this.collapse(!1))}};function be(t){let e=Q.getItem("tsd-theme")||"os";t.value=e,Ee(e),t.addEventListener("change",()=>{Q.setItem("tsd-theme",t.value),Ee(t.value)})}function Ee(t){document.documentElement.dataset.theme=t}ve();B(X,".menu-highlight");B(K,"a[data-toggle]");B(te,".tsd-index-accordion");B(ee,".tsd-filter-item input[type=checkbox]");var we=document.getElementById("theme");we&&be(we);var je=new Y;Object.defineProperty(window,"app",{value:je});})(); diff --git a/typedoc/assets/style.css b/typedoc/assets/style.css index e5093854..2d02570d 100644 --- a/typedoc/assets/style.css +++ b/typedoc/assets/style.css @@ -2,6 +2,8 @@ /* Light */ --light-color-background: #f2f4f8; --light-color-background-secondary: #eff0f1; + --light-color-warning-text: #222; + --light-color-background-warning: #e6e600; --light-color-icon-background: var(--light-color-background); --light-color-accent: #c5c7c9; --light-color-text: #222; @@ -21,6 +23,8 @@ /* Dark */ --dark-color-background: #2b2e33; --dark-color-background-secondary: #1e2024; + --dark-color-background-warning: #bebe00; + --dark-color-warning-text: #222; --dark-color-icon-background: var(--dark-color-background-secondary); --dark-color-accent: #9096a2; --dark-color-text: #f5f5f5; @@ -42,6 +46,8 @@ :root { --color-background: var(--light-color-background); --color-background-secondary: var(--light-color-background-secondary); + --color-background-warning: var(--light-color-background-warning); + --color-warning-text: var(--light-color-warning-text); --color-icon-background: var(--light-color-icon-background); --color-accent: var(--light-color-accent); --color-text: var(--light-color-text); @@ -64,6 +70,8 @@ :root { --color-background: var(--dark-color-background); --color-background-secondary: var(--dark-color-background-secondary); + --color-background-warning: var(--dark-color-background-warning); + --color-warning-text: var(--dark-color-warning-text); --color-icon-background: var(--dark-color-icon-background); --color-accent: var(--dark-color-accent); --color-text: var(--dark-color-text); @@ -93,6 +101,8 @@ body { :root[data-theme="light"] { --color-background: var(--light-color-background); --color-background-secondary: var(--light-color-background-secondary); + --color-background-warning: var(--light-color-background-warning); + --color-warning-text: var(--light-color-warning-text); --color-icon-background: var(--light-color-icon-background); --color-accent: var(--light-color-accent); --color-text: var(--light-color-text); @@ -113,6 +123,8 @@ body { :root[data-theme="dark"] { --color-background: var(--dark-color-background); --color-background-secondary: var(--dark-color-background-secondary); + --color-background-warning: var(--dark-color-background-warning); + --color-warning-text: var(--dark-color-warning-text); --color-icon-background: var(--dark-color-icon-background); --color-accent: var(--dark-color-accent); --color-text: var(--dark-color-text); @@ -130,6 +142,11 @@ body { --color-scheme: var(--dark-color-scheme); } +.always-visible, +.always-visible .tsd-signatures { + display: inherit !important; +} + h1, h2, h3, @@ -1237,6 +1254,12 @@ img { text-decoration: line-through; } +.warning { + padding: 1rem; + color: var(--color-warning-text); + background: var(--color-background-warning); +} + * { scrollbar-width: thin; scrollbar-color: var(--color-accent) var(--color-icon-background);