diff --git a/.eslintrc.json b/.eslintrc.json
index 3b9f9394..11827163 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -3,20 +3,15 @@
"overrides": [
{
"files": ["**/*.ts"],
+ "parser": "@typescript-eslint/parser",
+ "parserOptions": { "ecmaVersion": "latest", "project": ["./tsconfig.json"] },
+ "plugins": ["@typescript-eslint"],
"env": {
"browser": true,
"commonjs": false,
"node": false,
"es2021": true
},
- "parser": "@typescript-eslint/parser",
- "parserOptions": {
- "ecmaVersion": "latest",
- "project": ["./tsconfig.json"]
- },
- "plugins": [
- "@typescript-eslint"
- ],
"extends": [
"airbnb-base",
"eslint:recommended",
@@ -72,20 +67,15 @@
},
{
"files": ["**/*.d.ts"],
+ "parser": "@typescript-eslint/parser",
+ "parserOptions": { "ecmaVersion": "latest", "project": ["./tsconfig.json"] },
+ "plugins": ["@typescript-eslint"],
"env": {
"browser": true,
"commonjs": false,
"node": false,
"es2021": true
},
- "parser": "@typescript-eslint/parser",
- "parserOptions": {
- "ecmaVersion": "latest",
- "project": ["./tsconfig.json"]
- },
- "plugins": [
- "@typescript-eslint"
- ],
"extends": [
"airbnb-base",
"eslint:recommended",
@@ -120,18 +110,14 @@
},
{
"files": ["**/*.js"],
+ "parserOptions": { "sourceType": "module", "ecmaVersion": "latest" },
+ "plugins": [],
"env": {
"browser": true,
"commonjs": true,
"node": true,
"es2021": true
},
- "parserOptions": {
- "sourceType": "module",
- "ecmaVersion": "latest"
- },
- "plugins": [
- ],
"extends": [
"airbnb-base",
"eslint:recommended",
@@ -161,43 +147,51 @@
},
{
"files": ["**/*.json"],
+ "parserOptions": { "ecmaVersion": "latest" },
+ "plugins": ["json"],
"env": {
"browser": false,
"commonjs": false,
"node": false,
"es2021": false
},
- "parserOptions": {
- "ecmaVersion": "latest"
- },
- "plugins": [
- "json"
- ],
"extends": [
"plugin:json/recommended"
]
},
{
"files": ["**/*.html"],
+ "parserOptions": { "sourceType": "module", "ecmaVersion": "latest" },
+ "parser": "@html-eslint/parser",
+ "plugins": ["html", "@html-eslint"],
"env": {
"browser": true,
"commonjs": false,
"node": false,
"es2021": false
},
- "parserOptions": {
- "sourceType": "module",
- "ecmaVersion": "latest"
- },
- "parser": "@html-eslint/parser",
"extends": ["plugin:@html-eslint/recommended"],
- "plugins": [
- "html", "@html-eslint"
- ],
"rules": {
"@html-eslint/element-newline":"off",
"@html-eslint/indent": ["error", 2]
}
+ },
+ {
+ "files": ["**/*.md"],
+ "plugins": ["markdown"],
+ "processor": "markdown/markdown",
+ "rules": {
+ "no-undef":"off"
+ }
+ },
+ {
+ "files": ["**/*.md/*.js"],
+ "rules": {
+ "no-undef":"off",
+ "promise/catch-or-return":"off",
+ "no-multi-spaces":"off",
+ "no-unused-vars":"off"
+ }
}
],
"ignorePatterns": [
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 89fb1080..9710bcb2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,8 +9,9 @@
## Changelog
-### **HEAD -> main** 2022/11/17 mandic00@live.com
+### **HEAD -> main** 2022/11/18 mandic00@live.com
+- default empty result
- refactor draw and models namespaces
- refactor distance
- add basic anthropometry
diff --git a/README.md b/README.md
index 59487302..8d203222 100644
--- a/README.md
+++ b/README.md
@@ -206,7 +206,7 @@ Performs validation check on a webcam input to detect a real face and matches it
**468-Point Face Mesh Defails:**
(view in full resolution to see keypoints)
-
+[
](assets/facemesh.png)
@@ -216,6 +216,7 @@ Simply load `Human` (*IIFE version*) directly from a cloud CDN in your HTML file
(pick one: `jsdelirv`, `unpkg` or `cdnjs`)
```html
+
@@ -270,6 +271,7 @@ function detectVideo() {
human.draw.gesture(outputCanvas, result.gesture);
// and loop immediate to the next frame
requestAnimationFrame(detectVideo);
+ return result;
});
}
@@ -309,7 +311,7 @@ human.events.addEventListener('detect', () => { // event gets triggered when det
function detectVideo() {
human.detect(inputVideo) // run detection
- .then(() => requestAnimationFrame(detectVideo)); // upon detect complete start processing of the next frame
+ .then(() => requestAnimationFrame(detectVideo)); // upon detect complete start processing of the next frame
}
detectVideo(); // start loop
@@ -386,6 +388,7 @@ And for even better results, you can run detection in a separate web worker thre
- [**TypeDoc API Specification - Main class**](https://vladmandic.github.io/human/typedoc/classes/Human.html)
- [**TypeDoc API Specification - Full**](https://vladmandic.github.io/human/typedoc/)
+ 
@@ -396,16 +399,13 @@ And for even better results, you can run detection in a separate web worker thre
*Note*: This does not include embedded `tfjs`
If you want to use embedded `tfjs` inside `Human` (`human.tf` namespace) and still full **typedefs**, add this code:
-```js
-import type * as tfjs from '@vladmandic/human/dist/tfjs.esm';
-...
-const tf = human.tf as typeof tfjs;
-```
+> import type * as tfjs from '@vladmandic/human/dist/tfjs.esm';
+> const tf = human.tf as typeof tfjs;
This is not enabled by default as `Human` does not ship with full **TFJS TypeDefs** due to size considerations
Enabling `tfjs` TypeDefs as above creates additional project (dev-only as only types are required) dependencies as defined in `@vladmandic/human/dist/tfjs.esm.d.ts`:
- @tensorflow/tfjs-core, @tensorflow/tfjs-converter, @tensorflow/tfjs-backend-wasm, @tensorflow/tfjs-backend-webgl
+> @tensorflow/tfjs-core, @tensorflow/tfjs-converter, @tensorflow/tfjs-backend-wasm, @tensorflow/tfjs-backend-webgl
diff --git a/TODO.md b/TODO.md
index d3647035..f1208a35 100644
--- a/TODO.md
+++ b/TODO.md
@@ -87,6 +87,7 @@ Architecture:
- Refactor namespace exports
Better [TypeDoc specs](https://vladmandic.github.io/human/typedoc/index.html)
- Add named export for improved bundler support when using non-default imports
+- Cleanup Git history for `dist`/`typedef`/`types`
- Support for **NodeJS v19**
- Upgrade to **TypeScript 4.9**
diff --git a/assets/screenshot-menu.png b/assets/screenshot-menu.png
index 39515d9e..b38b3458 100644
Binary files a/assets/screenshot-menu.png and b/assets/screenshot-menu.png differ
diff --git a/assets/screenshot-results.png b/assets/screenshot-results.png
index 4a6a6d1b..4e6aef7b 100644
Binary files a/assets/screenshot-results.png and b/assets/screenshot-results.png differ
diff --git a/assets/screenshot-segmentation.jpg b/assets/screenshot-segmentation.jpg
deleted file mode 100644
index 0ed4cc90..00000000
Binary files a/assets/screenshot-segmentation.jpg and /dev/null differ
diff --git a/assets/screenshot-typedoc.png b/assets/screenshot-typedoc.png
new file mode 100644
index 00000000..3d38aa07
Binary files /dev/null and b/assets/screenshot-typedoc.png differ
diff --git a/demo/README.md b/demo/README.md
index 34a10483..8e551852 100644
--- a/demo/README.md
+++ b/demo/README.md
@@ -37,12 +37,14 @@ Includes:
in `index.js:ui`
```js
+const ui = {
console: true, // log messages to browser console
useWorker: true, // use web workers for processing
buffered: true, // should output be buffered between frames
interpolated: true, // should output be interpolated for smoothness between frames
results: false, // show results tree
useWebRTC: false, // use webrtc as camera source instead of local webcam
+};
```
Demo implements several ways to use `Human` library,
diff --git a/demo/facematch/README.md b/demo/facematch/README.md
index e61bc9ff..359dfcc4 100644
--- a/demo/facematch/README.md
+++ b/demo/facematch/README.md
@@ -72,12 +72,13 @@ Non-linear performance that increases with number of worker threads due to commu
> node node-match
+
```js
-2021-10-13 07:53:36 INFO: options: { dbFile: './faces.json', dbMax: 10000, threadPoolSize: 6, workerSrc: './node-match-worker.js', debug: false, minThreshold: 0.9, descLength: 1024 }
-2021-10-13 07:53:36 DATA: created shared buffer: { maxDescriptors: 10000, totalBytes: 40960000, totalElements: 10240000 }
-2021-10-13 07:53:36 DATA: db loaded: { existingRecords: 0, newRecords: 5700 }
-2021-10-13 07:53:36 INFO: starting worker thread pool: { totalWorkers: 6, alreadyActive: 0 }
-2021-10-13 07:53:36 STATE: submitted: { matchJobs: 100, poolSize: 6, activeWorkers: 6 }
-2021-10-13 07:53:38 STATE: { matchJobsFinished: 100, totalTimeMs: 1769, averageTimeMs: 17.69 }
-2021-10-13 07:53:38 INFO: closing workers: { poolSize: 6, activeWorkers: 6 }
+INFO: options: { dbFile: './faces.json', dbMax: 10000, threadPoolSize: 6, workerSrc: './node-match-worker.js', debug: false, minThreshold: 0.9, descLength: 1024 }
+DATA: created shared buffer: { maxDescriptors: 10000, totalBytes: 40960000, totalElements: 10240000 }
+DATA: db loaded: { existingRecords: 0, newRecords: 5700 }
+INFO: starting worker thread pool: { totalWorkers: 6, alreadyActive: 0 }
+STATE: submitted: { matchJobs: 100, poolSize: 6, activeWorkers: 6 }
+STATE: { matchJobsFinished: 100, totalTimeMs: 1769, averageTimeMs: 17.69 }
+INFO: closing workers: { poolSize: 6, activeWorkers: 6 }
```
diff --git a/demo/multithread/README.md b/demo/multithread/README.md
index 7b47e6b4..4c654883 100644
--- a/demo/multithread/README.md
+++ b/demo/multithread/README.md
@@ -16,6 +16,7 @@
node demo/nodejs/node-multiprocess.js
```
+
```json
2021-06-01 08:54:19 INFO: @vladmandic/human version 2.0.0
2021-06-01 08:54:19 INFO: User: vlado Platform: linux Arch: x64 Node: v16.0.0
diff --git a/demo/nodejs/README.md b/demo/nodejs/README.md
index e5ef81f7..279eddec 100644
--- a/demo/nodejs/README.md
+++ b/demo/nodejs/README.md
@@ -28,7 +28,8 @@ or you can pass a path to image to analyze, either on local filesystem or using
node demo/nodejs/node.js
```
-```json
+
+```js
2021-06-01 08:52:15 INFO: @vladmandic/human version 2.0.0
2021-06-01 08:52:15 INFO: User: vlado Platform: linux Arch: x64 Node: v16.0.0
2021-06-01 08:52:15 INFO: Current folder: /home/vlado/dev/human
diff --git a/package.json b/package.json
index b9a815af..2ad0ec38 100644
--- a/package.json
+++ b/package.json
@@ -97,6 +97,7 @@
"eslint-plugin-html": "^7.1.0",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-json": "^3.1.0",
+ "eslint-plugin-markdown": "^3.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^6.1.1",
"rimraf": "^3.0.2",
diff --git a/test/build.log b/test/build.log
index ae17ccbf..56da9100 100644
--- a/test/build.log
+++ b/test/build.log
@@ -1,50 +1,50 @@
-2022-11-18 11:12:48 [32mDATA: [39m Build {"name":"@vladmandic/human","version":"3.0.0"}
-2022-11-18 11:12:48 [36mINFO: [39m Application: {"name":"@vladmandic/human","version":"3.0.0"}
-2022-11-18 11:12:48 [36mINFO: [39m Environment: {"profile":"production","config":".build.json","package":"package.json","tsconfig":true,"eslintrc":true,"git":true}
-2022-11-18 11:12:48 [36mINFO: [39m Toolchain: {"build":"0.7.14","esbuild":"0.15.14","typescript":"4.9.3","typedoc":"0.23.21","eslint":"8.27.0"}
-2022-11-18 11:12:48 [36mINFO: [39m Build: {"profile":"production","steps":["clean","compile","typings","typedoc","lint","changelog"]}
-2022-11-18 11:12:48 [35mSTATE:[39m Clean: {"locations":["dist/*","types/*","typedoc/*"]}
-2022-11-18 11:12:48 [35mSTATE:[39m 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-18 11:12:48 [35mSTATE:[39m 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-18 11:12:48 [35mSTATE:[39m Compile: {"name":"human/nodejs/cpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node.js","files":80,"inputBytes":670091,"outputBytes":317438}
-2022-11-18 11:12:48 [35mSTATE:[39m 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-18 11:12:48 [35mSTATE:[39m Compile: {"name":"human/nodejs/gpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-gpu.js","files":80,"inputBytes":670095,"outputBytes":317442}
-2022-11-18 11:12:48 [35mSTATE:[39m 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-18 11:12:48 [35mSTATE:[39m Compile: {"name":"human/nodejs/wasm","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-wasm.js","files":80,"inputBytes":671043,"outputBytes":317553}
-2022-11-18 11:12:48 [35mSTATE:[39m 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-18 11:12:48 [35mSTATE:[39m Compile: {"name":"human/browser/esm/nobundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm-nobundle.js","files":80,"inputBytes":669837,"outputBytes":316023}
-2022-11-18 11:12:49 [35mSTATE:[39m 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":1144900}
-2022-11-18 11:12:49 [35mSTATE:[39m Compile: {"name":"human/browser/iife/bundle","format":"iife","platform":"browser","input":"src/human.ts","output":"dist/human.js","files":80,"inputBytes":1814067,"outputBytes":1457337}
-2022-11-18 11:12:49 [35mSTATE:[39m Compile: {"name":"human/browser/esm/bundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm.js","files":80,"inputBytes":1814067,"outputBytes":1914669}
-2022-11-18 11:12:52 [35mSTATE:[39m Typings: {"input":"src/human.ts","output":"types/lib","files":15}
-2022-11-18 11:12:54 [35mSTATE:[39m TypeDoc: {"input":"src/human.ts","output":"typedoc","objects":77,"generated":true}
-2022-11-18 11:12:54 [35mSTATE:[39m Compile: {"name":"demo/typescript","format":"esm","platform":"browser","input":"demo/typescript/index.ts","output":"demo/typescript/index.js","files":1,"inputBytes":6135,"outputBytes":2913}
-2022-11-18 11:12:54 [35mSTATE:[39m 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-18 11:13:02 [35mSTATE:[39m Lint: {"locations":["*.json","src/**/*.ts","test/**/*.js","demo/**/*.js"],"files":114,"errors":0,"warnings":0}
-2022-11-18 11:13:02 [35mSTATE:[39m ChangeLog: {"repository":"https://github.com/vladmandic/human","branch":"main","output":"CHANGELOG.md"}
-2022-11-18 11:13:02 [35mSTATE:[39m Copy: {"input":"node_modules/@vladmandic/tfjs/types/tfjs-core.d.ts","output":"types/tfjs-core.d.ts"}
-2022-11-18 11:13:02 [36mINFO: [39m Done...
-2022-11-18 11:13:02 [35mSTATE:[39m Copy: {"input":"node_modules/@vladmandic/tfjs/types/tfjs.d.ts","output":"types/tfjs.esm.d.ts"}
-2022-11-18 11:13:02 [35mSTATE:[39m Copy: {"input":"src/types/tsconfig.json","output":"types/tsconfig.json"}
-2022-11-18 11:13:02 [35mSTATE:[39m Copy: {"input":"src/types/eslint.json","output":"types/.eslintrc.json"}
-2022-11-18 11:13:02 [35mSTATE:[39m Copy: {"input":"src/types/tfjs.esm.d.ts","output":"dist/tfjs.esm.d.ts"}
-2022-11-18 11:13:02 [35mSTATE:[39m Filter: {"input":"types/tfjs-core.d.ts"}
-2022-11-18 11:13:03 [35mSTATE:[39m API-Extractor: {"succeeeded":true,"errors":0,"warnings":195}
-2022-11-18 11:13:03 [35mSTATE:[39m Filter: {"input":"types/human.d.ts"}
-2022-11-18 11:13:03 [35mSTATE:[39m Write: {"output":"dist/human.esm-nobundle.d.ts"}
-2022-11-18 11:13:03 [35mSTATE:[39m Write: {"output":"dist/human.esm.d.ts"}
-2022-11-18 11:13:03 [35mSTATE:[39m Write: {"output":"dist/human.d.ts"}
-2022-11-18 11:13:03 [35mSTATE:[39m Write: {"output":"dist/human.node-gpu.d.ts"}
-2022-11-18 11:13:03 [35mSTATE:[39m Write: {"output":"dist/human.node.d.ts"}
-2022-11-18 11:13:03 [35mSTATE:[39m Write: {"output":"dist/human.node-wasm.d.ts"}
-2022-11-18 11:13:03 [36mINFO: [39m Analyze models: {"folders":8,"result":"models/models.json"}
-2022-11-18 11:13:03 [35mSTATE:[39m Models {"folder":"./models","models":12}
-2022-11-18 11:13:03 [35mSTATE:[39m Models {"folder":"../human-models/models","models":43}
-2022-11-18 11:13:03 [35mSTATE:[39m Models {"folder":"../blazepose/model/","models":4}
-2022-11-18 11:13:03 [35mSTATE:[39m Models {"folder":"../anti-spoofing/model","models":1}
-2022-11-18 11:13:03 [35mSTATE:[39m Models {"folder":"../efficientpose/models","models":3}
-2022-11-18 11:13:03 [35mSTATE:[39m Models {"folder":"../insightface/models","models":5}
-2022-11-18 11:13:03 [35mSTATE:[39m Models {"folder":"../movenet/models","models":3}
-2022-11-18 11:13:03 [35mSTATE:[39m Models {"folder":"../nanodet/models","models":4}
-2022-11-18 11:13:03 [35mSTATE:[39m Models: {"count":58,"totalSize":386543911}
-2022-11-18 11:13:03 [36mINFO: [39m Human Build complete... {"logFile":"test/build.log"}
+2022-11-18 11:52:39 [32mDATA: [39m Build {"name":"@vladmandic/human","version":"3.0.0"}
+2022-11-18 11:52:39 [36mINFO: [39m Application: {"name":"@vladmandic/human","version":"3.0.0"}
+2022-11-18 11:52:39 [36mINFO: [39m Environment: {"profile":"production","config":".build.json","package":"package.json","tsconfig":true,"eslintrc":true,"git":true}
+2022-11-18 11:52:39 [36mINFO: [39m Toolchain: {"build":"0.7.14","esbuild":"0.15.14","typescript":"4.9.3","typedoc":"0.23.21","eslint":"8.27.0"}
+2022-11-18 11:52:39 [36mINFO: [39m Build: {"profile":"production","steps":["clean","compile","typings","typedoc","lint","changelog"]}
+2022-11-18 11:52:39 [35mSTATE:[39m Clean: {"locations":["dist/*","types/*","typedoc/*"]}
+2022-11-18 11:52:39 [35mSTATE:[39m 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-18 11:52:39 [35mSTATE:[39m 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-18 11:52:39 [35mSTATE:[39m Compile: {"name":"human/nodejs/cpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node.js","files":80,"inputBytes":670131,"outputBytes":317438}
+2022-11-18 11:52:39 [35mSTATE:[39m 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-18 11:52:39 [35mSTATE:[39m Compile: {"name":"human/nodejs/gpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-gpu.js","files":80,"inputBytes":670135,"outputBytes":317442}
+2022-11-18 11:52:39 [35mSTATE:[39m 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-18 11:52:39 [35mSTATE:[39m Compile: {"name":"human/nodejs/wasm","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-wasm.js","files":80,"inputBytes":671083,"outputBytes":317553}
+2022-11-18 11:52:39 [35mSTATE:[39m 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-18 11:52:39 [35mSTATE:[39m Compile: {"name":"human/browser/esm/nobundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm-nobundle.js","files":80,"inputBytes":669877,"outputBytes":316023}
+2022-11-18 11:52:39 [35mSTATE:[39m 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":1144900}
+2022-11-18 11:52:39 [35mSTATE:[39m Compile: {"name":"human/browser/iife/bundle","format":"iife","platform":"browser","input":"src/human.ts","output":"dist/human.js","files":80,"inputBytes":1814107,"outputBytes":1457337}
+2022-11-18 11:52:39 [35mSTATE:[39m Compile: {"name":"human/browser/esm/bundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm.js","files":80,"inputBytes":1814107,"outputBytes":1914669}
+2022-11-18 11:52:43 [35mSTATE:[39m Typings: {"input":"src/human.ts","output":"types/lib","files":15}
+2022-11-18 11:52:45 [35mSTATE:[39m TypeDoc: {"input":"src/human.ts","output":"typedoc","objects":77,"generated":true}
+2022-11-18 11:52:45 [35mSTATE:[39m Compile: {"name":"demo/typescript","format":"esm","platform":"browser","input":"demo/typescript/index.ts","output":"demo/typescript/index.js","files":1,"inputBytes":6135,"outputBytes":2913}
+2022-11-18 11:52:45 [35mSTATE:[39m 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-18 11:52:53 [35mSTATE:[39m Lint: {"locations":["*.json","src/**/*.ts","test/**/*.js","demo/**/*.js"],"files":114,"errors":0,"warnings":0}
+2022-11-18 11:52:53 [35mSTATE:[39m ChangeLog: {"repository":"https://github.com/vladmandic/human","branch":"main","output":"CHANGELOG.md"}
+2022-11-18 11:52:53 [35mSTATE:[39m Copy: {"input":"node_modules/@vladmandic/tfjs/types/tfjs-core.d.ts","output":"types/tfjs-core.d.ts"}
+2022-11-18 11:52:53 [36mINFO: [39m Done...
+2022-11-18 11:52:53 [35mSTATE:[39m Copy: {"input":"node_modules/@vladmandic/tfjs/types/tfjs.d.ts","output":"types/tfjs.esm.d.ts"}
+2022-11-18 11:52:53 [35mSTATE:[39m Copy: {"input":"src/types/tsconfig.json","output":"types/tsconfig.json"}
+2022-11-18 11:52:53 [35mSTATE:[39m Copy: {"input":"src/types/eslint.json","output":"types/.eslintrc.json"}
+2022-11-18 11:52:53 [35mSTATE:[39m Copy: {"input":"src/types/tfjs.esm.d.ts","output":"dist/tfjs.esm.d.ts"}
+2022-11-18 11:52:53 [35mSTATE:[39m Filter: {"input":"types/tfjs-core.d.ts"}
+2022-11-18 11:52:54 [35mSTATE:[39m API-Extractor: {"succeeeded":true,"errors":0,"warnings":195}
+2022-11-18 11:52:54 [35mSTATE:[39m Filter: {"input":"types/human.d.ts"}
+2022-11-18 11:52:54 [35mSTATE:[39m Write: {"output":"dist/human.esm-nobundle.d.ts"}
+2022-11-18 11:52:54 [35mSTATE:[39m Write: {"output":"dist/human.esm.d.ts"}
+2022-11-18 11:52:54 [35mSTATE:[39m Write: {"output":"dist/human.d.ts"}
+2022-11-18 11:52:54 [35mSTATE:[39m Write: {"output":"dist/human.node-gpu.d.ts"}
+2022-11-18 11:52:54 [35mSTATE:[39m Write: {"output":"dist/human.node.d.ts"}
+2022-11-18 11:52:54 [35mSTATE:[39m Write: {"output":"dist/human.node-wasm.d.ts"}
+2022-11-18 11:52:54 [36mINFO: [39m Analyze models: {"folders":8,"result":"models/models.json"}
+2022-11-18 11:52:54 [35mSTATE:[39m Models {"folder":"./models","models":12}
+2022-11-18 11:52:54 [35mSTATE:[39m Models {"folder":"../human-models/models","models":43}
+2022-11-18 11:52:54 [35mSTATE:[39m Models {"folder":"../blazepose/model/","models":4}
+2022-11-18 11:52:54 [35mSTATE:[39m Models {"folder":"../anti-spoofing/model","models":1}
+2022-11-18 11:52:54 [35mSTATE:[39m Models {"folder":"../efficientpose/models","models":3}
+2022-11-18 11:52:54 [35mSTATE:[39m Models {"folder":"../insightface/models","models":5}
+2022-11-18 11:52:54 [35mSTATE:[39m Models {"folder":"../movenet/models","models":3}
+2022-11-18 11:52:54 [35mSTATE:[39m Models {"folder":"../nanodet/models","models":4}
+2022-11-18 11:52:54 [35mSTATE:[39m Models: {"count":58,"totalSize":386543911}
+2022-11-18 11:52:54 [36mINFO: [39m Human Build complete... {"logFile":"test/build.log"}
diff --git a/test/test.log b/test/test.log
index 34f79111..e2c8659c 100644
--- a/test/test.log
+++ b/test/test.log
@@ -1,657 +1,656 @@
-2022-11-17 14:20:18 [36mINFO: [39m @vladmandic/human version 3.0.0
-2022-11-17 14:20:18 [36mINFO: [39m User: vlado Platform: linux Arch: x64 Node: v19.1.0
-2022-11-17 14:20:18 [36mINFO: [39m 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":[]}]
-2022-11-17 14:20:18 [36mINFO: [39m {"cmd":"../demo/nodejs/node.js","args":[]} start
-2022-11-17 14:20:19 [36mINFO: [39m {"cmd":"../demo/nodejs/node-simple.js","args":[]} start
-2022-11-17 14:20:20 [36mINFO: [39m {"cmd":"../demo/nodejs/node-event.js","args":["samples/in/ai-body.jpg"]} start
-2022-11-17 14:20:21 [36mINFO: [39m {"cmd":"../demo/nodejs/node-similarity.js","args":["samples/in/ai-face.jpg","samples/in/ai-upper.jpg"]} start
-2022-11-17 14:20:21 [36mINFO: [39m {"cmd":"../demo/nodejs/node-canvas.js","args":["samples/in/ai-body.jpg","samples/out/ai-body.jpg"]} start
-2022-11-17 14:20:22 [36mINFO: [39m {"cmd":"../demo/nodejs/process-folder.js","args":["samples"]} start
-2022-11-17 14:20:24 [36mINFO: [39m {"cmd":"../demo/multithread/node-multiprocess.js","args":[]} start
-2022-11-17 14:20:36 [36mINFO: [39m {"cmd":"../demo/facematch/node-match.js","args":[]} start
-2022-11-17 14:20:36 [36mINFO: [39m 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-17 14:20:36 [36mINFO: [39m
-2022-11-17 14:20:36 [36mINFO: [39m test-node-load.js start
-2022-11-17 14:20:37 [36mINFO: [39m test-node-load.js load start {"human":"3.0.0","tf":"4.0.0","progress":0}
-2022-11-17 14:20:37 [32mDATA: [39m test-node-load.js load interval {"elapsed":0,"progress":0}
-2022-11-17 14:20:37 [32mDATA: [39m test-node-load.js load interval {"elapsed":10,"progress":0}
-2022-11-17 14:20:37 [32mDATA: [39m test-node-load.js load interval {"elapsed":26,"progress":0.11143791531203556}
-2022-11-17 14:20:37 [32mDATA: [39m test-node-load.js load interval {"elapsed":42,"progress":0.3961518088579138}
-2022-11-17 14:20:37 [32mDATA: [39m test-node-load.js load interval {"elapsed":64,"progress":0.5125946867158943}
-2022-11-17 14:20:37 [32mDATA: [39m test-node-load.js load interval {"elapsed":75,"progress":0.7259096583739463}
-2022-11-17 14:20:37 [35mSTATE:[39m test-node-load.js passed {"progress":1}
-2022-11-17 14:20:37 [36mINFO: [39m test-node-load.js load final {"progress":1}
-2022-11-17 14:20:37 [32mDATA: [39m test-node-load.js load interval {"elapsed":424,"progress":1}
-2022-11-17 14:20:37 [36mINFO: [39m
-2022-11-17 14:20:37 [36mINFO: [39m test-node-gear.js start
-2022-11-17 14:20:37 [32mDATA: [39m test-node-gear.js input: ["samples/in/ai-face.jpg"]
-2022-11-17 14:20:38 [35mSTATE:[39m test-node-gear.js passed: gear faceres samples/in/ai-face.jpg
-2022-11-17 14:20:38 [32mDATA: [39m 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-17 14:20:39 [35mSTATE:[39m test-node-gear.js passed: gear gear samples/in/ai-face.jpg
-2022-11-17 14:20:39 [32mDATA: [39m 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-17 14:20:39 [35mSTATE:[39m test-node-gear.js passed: gear ssrnet samples/in/ai-face.jpg
-2022-11-17 14:20:39 [32mDATA: [39m 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-17 14:20:39 [36mINFO: [39m
-2022-11-17 14:20:39 [36mINFO: [39m test-backend-node.js start
-2022-11-17 14:20:39 [36mINFO: [39m test-backend-node.js test: configuration validation
-2022-11-17 14:20:39 [35mSTATE:[39m test-backend-node.js passed: configuration default validation []
-2022-11-17 14:20:39 [35mSTATE:[39m test-backend-node.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}]
-2022-11-17 14:20:39 [36mINFO: [39m test-backend-node.js test: model load
-2022-11-17 14:20:39 [35mSTATE:[39m test-backend-node.js passed: models loaded 24 11 [{"name":"blazeface","loaded":true,"size":538928,"url":"file://models/blazeface.json"},{"name":"antispoof","loaded":true,"size":853098,"url":"file://models/antispoof.json"},{"name":"liveness","loaded":true,"size":592976,"url":"file://models/liveness.json"},{"name":"faceres","loaded":true,"size":6978814,"url":"file://models/faceres.json"},{"name":"emotion","loaded":true,"size":820516,"url":"file://models/emotion.json"},{"name":"iris","loaded":true,"size":2599092,"url":"file://models/iris.json"},{"name":"facemesh","loaded":true,"size":1477958,"url":"file://models/facemesh.json"},{"name":"gear","loaded":false,"size":0,"url":null},{"name":"ssrnetage","loaded":false,"size":0,"url":null},{"name":"ssrnetgender","loaded":false,"size":0,"url":null},{"name":"mobilefacenet","loaded":false,"size":0,"url":null},{"name":"insightface","loaded":false,"size":0,"url":null},{"name":"blazepose","loaded":false,"size":0,"url":null},{"name":"blazeposedetect","loaded":false,"size":0,"url":null},{"name":"efficientpose","loaded":false,"size":0,"url":null},{"name":"movenet","loaded":true,"size":4650216,"url":"file://models/movenet-lightning.json"},{"name":"posenet","loaded":false,"size":0,"url":null},{"name":"handtrack","loaded":true,"size":2964837,"url":"file://models/handtrack.json"},{"name":"handskeleton","loaded":true,"size":0},{"name":"centernet","loaded":true,"size":4030290,"url":"file://models/centernet.json"},{"name":"nanodet","loaded":false,"size":0,"url":null},{"name":"selfie","loaded":false,"size":0,"url":null},{"name":"meet","loaded":false,"size":0,"url":null},{"name":"rvm","loaded":false,"size":0,"url":null}]
-2022-11-17 14:20:39 [36mINFO: [39m test-backend-node.js memory: {"memory":{"unreliable":true,"numTensors":1785,"numDataBuffers":1785,"numBytes":63247332}}
-2022-11-17 14:20:39 [36mINFO: [39m test-backend-node.js state: {"state":{"registeredVariables":{},"nextTapeNodeId":0,"numBytes":63247332,"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-17 14:20:39 [36mINFO: [39m test-backend-node.js test: warmup
-2022-11-17 14:20:39 [35mSTATE:[39m test-backend-node.js passed: create human
-2022-11-17 14:20:39 [36mINFO: [39m test-backend-node.js human version: 3.0.0
-2022-11-17 14:20:39 [36mINFO: [39m test-backend-node.js platform: linux x64 agent: NodeJS v19.1.0
-2022-11-17 14:20:39 [36mINFO: [39m test-backend-node.js tfjs version: 4.0.0
-2022-11-17 14:20:39 [36mINFO: [39m 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.0.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-17 14:20:39 [35mSTATE:[39m test-backend-node.js passed: set backend: tensorflow
-2022-11-17 14:20:39 [35mSTATE:[39m test-backend-node.js tensors 1785
-2022-11-17 14:20:39 [35mSTATE:[39m test-backend-node.js passed: load models
-2022-11-17 14:20:39 [35mSTATE:[39m test-backend-node.js result: defined models: 2 loaded models: 2
-2022-11-17 14:20:39 [35mSTATE:[39m test-backend-node.js passed: warmup: none default
-2022-11-17 14:20:39 [32mDATA: [39m test-backend-node.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {}
-2022-11-17 14:20:39 [32mDATA: [39m test-backend-node.js result: performance: load: null total: null
-2022-11-17 14:20:39 [35mSTATE:[39m test-backend-node.js passed: warmup none result match
-2022-11-17 14:20:39 [35mSTATE:[39m test-backend-node.js event: image
-2022-11-17 14:20:39 [35mSTATE:[39m test-backend-node.js event: detect
-2022-11-17 14:20:39 [35mSTATE:[39m test-backend-node.js event: warmup
-2022-11-17 14:20:39 [35mSTATE:[39m test-backend-node.js passed: warmup: face default
-2022-11-17 14:20:39 [32mDATA: [39m test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.42,"keypoints":4}
-2022-11-17 14:20:39 [32mDATA: [39m test-backend-node.js result: performance: load: null total: 422
-2022-11-17 14:20:39 [35mSTATE:[39m test-backend-node.js passed: warmup face result match
-2022-11-17 14:20:39 [35mSTATE:[39m test-backend-node.js event: image
-2022-11-17 14:20:40 [35mSTATE:[39m test-backend-node.js event: detect
-2022-11-17 14:20:40 [35mSTATE:[39m test-backend-node.js event: warmup
-2022-11-17 14:20:40 [35mSTATE:[39m test-backend-node.js passed: warmup: body default
-2022-11-17 14:20:40 [32mDATA: [39m 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-17 14:20:40 [32mDATA: [39m test-backend-node.js result: performance: load: null total: 352
-2022-11-17 14:20:40 [35mSTATE:[39m test-backend-node.js passed: warmup body result match
-2022-11-17 14:20:40 [35mSTATE:[39m 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":"palm up"},{"hand":0,"gesture":"open palm"},{"iris":0,"gesture":"looking left"},{"iris":0,"gesture":"looking up"}]}
-2022-11-17 14:20:40 [36mINFO: [39m test-backend-node.js test: details verification
-2022-11-17 14:20:40 [35mSTATE:[39m test-backend-node.js start default
-2022-11-17 14:20:40 [35mSTATE:[39m test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864}
-2022-11-17 14:20:40 [35mSTATE:[39m test-backend-node.js event: image
-2022-11-17 14:20:40 [35mSTATE:[39m test-backend-node.js event: detect
-2022-11-17 14:20:40 [35mSTATE:[39m test-backend-node.js passed: detect: samples/in/ai-body.jpg default
-2022-11-17 14:20:40 [32mDATA: [39m 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-17 14:20:40 [32mDATA: [39m test-backend-node.js result: performance: load: null total: 319
-2022-11-17 14:20:40 [35mSTATE:[39m test-backend-node.js passed: details face length 1
-2022-11-17 14:20:40 [35mSTATE:[39m test-backend-node.js passed: details face score 1 0.93 1
-2022-11-17 14:20:40 [35mSTATE:[39m test-backend-node.js passed: details face age/gender 23.7 female 0.97 2.34
-2022-11-17 14:20:40 [35mSTATE:[39m test-backend-node.js passed: details face arrays 4 478 1024
-2022-11-17 14:20:40 [35mSTATE:[39m test-backend-node.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"}
-2022-11-17 14:20:40 [35mSTATE:[39m test-backend-node.js passed: details face anti-spoofing 0.79
-2022-11-17 14:20:40 [35mSTATE:[39m test-backend-node.js passed: details face liveness 0.83
-2022-11-17 14:20:40 [35mSTATE:[39m test-backend-node.js passed: details body length 1
-2022-11-17 14:20:40 [35mSTATE:[39m test-backend-node.js passed: details body 0.92 17 6
-2022-11-17 14:20:40 [35mSTATE:[39m test-backend-node.js passed: details hand length 1
-2022-11-17 14:20:40 [35mSTATE:[39m test-backend-node.js passed: details hand 0.51 0.73 point
-2022-11-17 14:20:40 [35mSTATE:[39m test-backend-node.js passed: details hand arrays 21 5 7
-2022-11-17 14:20:40 [35mSTATE:[39m test-backend-node.js passed: details gesture length 7
-2022-11-17 14:20:40 [35mSTATE:[39m test-backend-node.js passed: details gesture first {"face":0,"gesture":"facing right"}
-2022-11-17 14:20:40 [35mSTATE:[39m test-backend-node.js passed: details object length 1
-2022-11-17 14:20:40 [35mSTATE:[39m test-backend-node.js passed: details object 0.72 person
-2022-11-17 14:20:40 [35mSTATE:[39m test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996928}
-2022-11-17 14:20:40 [35mSTATE:[39m test-backend-node.js event: image
-2022-11-17 14:20:41 [35mSTATE:[39m test-backend-node.js event: detect
-2022-11-17 14:20:41 [35mSTATE:[39m test-backend-node.js passed: tensor shape: [1,1200,1200,4] dtype: float32
-2022-11-17 14:20:41 [35mSTATE:[39m test-backend-node.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1371996928}
-2022-11-17 14:20:41 [35mSTATE:[39m test-backend-node.js event: image
-2022-11-17 14:20:41 [35mSTATE:[39m test-backend-node.js event: detect
-2022-11-17 14:20:41 [35mSTATE:[39m test-backend-node.js passed: tensor shape: [1200,1200,4] dtype: float32
-2022-11-17 14:20:41 [35mSTATE:[39m test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864}
-2022-11-17 14:20:41 [35mSTATE:[39m test-backend-node.js event: image
-2022-11-17 14:20:42 [35mSTATE:[39m test-backend-node.js event: detect
-2022-11-17 14:20:42 [35mSTATE:[39m test-backend-node.js passed: tensor shape: [1,1200,1200,3] dtype: float32
-2022-11-17 14:20:42 [35mSTATE:[39m test-backend-node.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1004796864}
-2022-11-17 14:20:42 [35mSTATE:[39m test-backend-node.js event: image
-2022-11-17 14:20:42 [35mSTATE:[39m test-backend-node.js event: detect
-2022-11-17 14:20:42 [35mSTATE:[39m test-backend-node.js passed: tensor shape: [1200,1200,3] dtype: float32
-2022-11-17 14:20:42 [35mSTATE:[39m test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871}
-2022-11-17 14:20:42 [35mSTATE:[39m test-backend-node.js event: image
-2022-11-17 14:20:43 [35mSTATE:[39m test-backend-node.js event: detect
-2022-11-17 14:20:43 [35mSTATE:[39m test-backend-node.js passed: tensor shape: [1,1200,1200,4] dtype: int32
-2022-11-17 14:20:43 [36mINFO: [39m test-backend-node.js test default
-2022-11-17 14:20:43 [35mSTATE:[39m test-backend-node.js start async
-2022-11-17 14:20:43 [35mSTATE:[39m test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864}
-2022-11-17 14:20:43 [35mSTATE:[39m test-backend-node.js event: image
-2022-11-17 14:20:43 [35mSTATE:[39m test-backend-node.js event: detect
-2022-11-17 14:20:43 [35mSTATE:[39m test-backend-node.js passed: detect: samples/in/ai-body.jpg async
-2022-11-17 14:20:43 [32mDATA: [39m 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-17 14:20:43 [32mDATA: [39m test-backend-node.js result: performance: load: null total: 293
-2022-11-17 14:20:43 [35mSTATE:[39m test-backend-node.js passed: default result face match 1 female 0.97
-2022-11-17 14:20:43 [36mINFO: [39m test-backend-node.js test sync
-2022-11-17 14:20:43 [35mSTATE:[39m test-backend-node.js start sync
-2022-11-17 14:20:43 [35mSTATE:[39m test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864}
-2022-11-17 14:20:43 [35mSTATE:[39m test-backend-node.js event: image
-2022-11-17 14:20:44 [35mSTATE:[39m test-backend-node.js event: detect
-2022-11-17 14:20:44 [35mSTATE:[39m test-backend-node.js passed: detect: samples/in/ai-body.jpg sync
-2022-11-17 14:20:44 [32mDATA: [39m 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-17 14:20:44 [32mDATA: [39m test-backend-node.js result: performance: load: null total: 312
-2022-11-17 14:20:44 [35mSTATE:[39m test-backend-node.js passed: default sync 1 female 0.97
-2022-11-17 14:20:44 [36mINFO: [39m test-backend-node.js test: image process
-2022-11-17 14:20:44 [35mSTATE:[39m test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120}
-2022-11-17 14:20:44 [35mSTATE:[39m test-backend-node.js passed: image input null [1,256,256,3]
-2022-11-17 14:20:44 [36mINFO: [39m test-backend-node.js test: image null
-2022-11-17 14:20:44 [35mSTATE:[39m test-backend-node.js passed: invalid input could not convert input to tensor
-2022-11-17 14:20:44 [36mINFO: [39m test-backend-node.js test face similarity
-2022-11-17 14:20:44 [35mSTATE:[39m test-backend-node.js start face similarity
-2022-11-17 14:20:44 [35mSTATE:[39m test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120}
-2022-11-17 14:20:44 [35mSTATE:[39m test-backend-node.js event: image
-2022-11-17 14:20:44 [35mSTATE:[39m test-backend-node.js event: detect
-2022-11-17 14:20:44 [35mSTATE:[39m test-backend-node.js passed: detect: samples/in/ai-face.jpg face similarity
-2022-11-17 14:20:44 [32mDATA: [39m 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-17 14:20:44 [32mDATA: [39m test-backend-node.js result: performance: load: null total: 294
-2022-11-17 14:20:44 [35mSTATE:[39m test-backend-node.js start face similarity
-2022-11-17 14:20:44 [35mSTATE:[39m test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864}
-2022-11-17 14:20:44 [35mSTATE:[39m test-backend-node.js event: image
-2022-11-17 14:20:45 [35mSTATE:[39m test-backend-node.js event: detect
-2022-11-17 14:20:45 [35mSTATE:[39m test-backend-node.js passed: detect: samples/in/ai-body.jpg face similarity
-2022-11-17 14:20:45 [32mDATA: [39m 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-17 14:20:45 [32mDATA: [39m test-backend-node.js result: performance: load: null total: 290
-2022-11-17 14:20:45 [35mSTATE:[39m test-backend-node.js start face similarity
-2022-11-17 14:20:45 [35mSTATE:[39m test-backend-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024}
-2022-11-17 14:20:45 [35mSTATE:[39m test-backend-node.js event: image
-2022-11-17 14:20:45 [35mSTATE:[39m test-backend-node.js event: detect
-2022-11-17 14:20:45 [35mSTATE:[39m test-backend-node.js passed: detect: samples/in/ai-upper.jpg face similarity
-2022-11-17 14:20:45 [32mDATA: [39m 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-17 14:20:45 [32mDATA: [39m test-backend-node.js result: performance: load: null total: 269
-2022-11-17 14:20:45 [35mSTATE:[39m test-backend-node.js passed: face descriptor
-2022-11-17 14:20:45 [35mSTATE:[39m test-backend-node.js passed: face similarity {"similarity":[1,0.44727441595492046,0.556793560189727],"descriptors":[1024,1024,1024]}
-2022-11-17 14:20:45 [36mINFO: [39m test-backend-node.js test object
-2022-11-17 14:20:45 [35mSTATE:[39m test-backend-node.js start object
-2022-11-17 14:20:45 [35mSTATE:[39m test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864}
-2022-11-17 14:20:45 [35mSTATE:[39m test-backend-node.js event: image
-2022-11-17 14:20:45 [35mSTATE:[39m test-backend-node.js event: detect
-2022-11-17 14:20:45 [35mSTATE:[39m test-backend-node.js passed: detect: samples/in/ai-body.jpg object
-2022-11-17 14:20:45 [32mDATA: [39m 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-17 14:20:45 [32mDATA: [39m test-backend-node.js result: performance: load: null total: 298
-2022-11-17 14:20:45 [35mSTATE:[39m test-backend-node.js passed: centernet
-2022-11-17 14:20:45 [35mSTATE:[39m test-backend-node.js start object
-2022-11-17 14:20:47 [35mSTATE:[39m test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864}
-2022-11-17 14:20:47 [35mSTATE:[39m test-backend-node.js event: image
-2022-11-17 14:20:47 [35mSTATE:[39m test-backend-node.js event: detect
-2022-11-17 14:20:47 [35mSTATE:[39m test-backend-node.js passed: detect: samples/in/ai-body.jpg object
-2022-11-17 14:20:47 [32mDATA: [39m 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-17 14:20:47 [32mDATA: [39m test-backend-node.js result: performance: load: null total: 297
-2022-11-17 14:20:47 [35mSTATE:[39m test-backend-node.js passed: nanodet
-2022-11-17 14:20:47 [36mINFO: [39m test-backend-node.js test sensitive
-2022-11-17 14:20:47 [35mSTATE:[39m test-backend-node.js start sensitive
-2022-11-17 14:20:47 [35mSTATE:[39m test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864}
-2022-11-17 14:20:47 [35mSTATE:[39m test-backend-node.js event: image
-2022-11-17 14:20:47 [35mSTATE:[39m test-backend-node.js event: detect
-2022-11-17 14:20:47 [35mSTATE:[39m test-backend-node.js passed: detect: samples/in/ai-body.jpg sensitive
-2022-11-17 14:20:47 [32mDATA: [39m 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-17 14:20:47 [32mDATA: [39m test-backend-node.js result: performance: load: null total: 253
-2022-11-17 14:20:47 [35mSTATE:[39m test-backend-node.js passed: sensitive result match
-2022-11-17 14:20:47 [35mSTATE:[39m test-backend-node.js passed: sensitive face result match
-2022-11-17 14:20:47 [35mSTATE:[39m test-backend-node.js passed: sensitive face emotion result [{"score":0.59,"emotion":"angry"},{"score":0.29,"emotion":"fear"}]
-2022-11-17 14:20:47 [35mSTATE:[39m test-backend-node.js passed: sensitive body result match
-2022-11-17 14:20:47 [35mSTATE:[39m test-backend-node.js passed: sensitive hand result match
-2022-11-17 14:20:47 [36mINFO: [39m test-backend-node.js test body
-2022-11-17 14:20:47 [35mSTATE:[39m test-backend-node.js start blazepose
-2022-11-17 14:20:50 [35mSTATE:[39m test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864}
-2022-11-17 14:20:50 [35mSTATE:[39m test-backend-node.js event: image
-2022-11-17 14:20:50 [35mSTATE:[39m test-backend-node.js event: detect
-2022-11-17 14:20:50 [35mSTATE:[39m test-backend-node.js passed: detect: samples/in/ai-body.jpg blazepose
-2022-11-17 14:20:50 [32mDATA: [39m 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-17 14:20:50 [32mDATA: [39m test-backend-node.js result: performance: load: null total: 336
-2022-11-17 14:20:50 [35mSTATE:[39m test-backend-node.js passed: blazepose
-2022-11-17 14:20:50 [35mSTATE:[39m test-backend-node.js start efficientpose
-2022-11-17 14:20:51 [35mSTATE:[39m test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864}
-2022-11-17 14:20:51 [35mSTATE:[39m test-backend-node.js event: image
-2022-11-17 14:20:51 [35mSTATE:[39m test-backend-node.js event: detect
-2022-11-17 14:20:51 [35mSTATE:[39m test-backend-node.js passed: detect: samples/in/ai-body.jpg efficientpose
-2022-11-17 14:20:51 [32mDATA: [39m 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-17 14:20:51 [32mDATA: [39m test-backend-node.js result: performance: load: null total: 306
-2022-11-17 14:20:51 [35mSTATE:[39m test-backend-node.js passed: efficientpose
-2022-11-17 14:20:51 [35mSTATE:[39m test-backend-node.js start posenet
-2022-11-17 14:20:52 [35mSTATE:[39m test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864}
-2022-11-17 14:20:52 [35mSTATE:[39m test-backend-node.js event: image
-2022-11-17 14:20:52 [35mSTATE:[39m test-backend-node.js event: detect
-2022-11-17 14:20:52 [35mSTATE:[39m test-backend-node.js passed: detect: samples/in/ai-body.jpg posenet
-2022-11-17 14:20:52 [32mDATA: [39m 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-17 14:20:52 [32mDATA: [39m test-backend-node.js result: performance: load: null total: 255
-2022-11-17 14:20:52 [35mSTATE:[39m test-backend-node.js passed: posenet
-2022-11-17 14:20:52 [35mSTATE:[39m test-backend-node.js start movenet
-2022-11-17 14:20:52 [35mSTATE:[39m test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864}
-2022-11-17 14:20:52 [35mSTATE:[39m test-backend-node.js event: image
-2022-11-17 14:20:52 [35mSTATE:[39m test-backend-node.js event: detect
-2022-11-17 14:20:52 [35mSTATE:[39m test-backend-node.js passed: detect: samples/in/ai-body.jpg movenet
-2022-11-17 14:20:52 [32mDATA: [39m 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-17 14:20:52 [32mDATA: [39m test-backend-node.js result: performance: load: null total: 249
-2022-11-17 14:20:52 [35mSTATE:[39m test-backend-node.js passed: movenet
-2022-11-17 14:20:52 [36mINFO: [39m test-backend-node.js test face matching
-2022-11-17 14:20:52 [35mSTATE:[39m test-backend-node.js passed: face database 40
-2022-11-17 14:20:52 [35mSTATE:[39m 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-17 14:20:52 [36mINFO: [39m test-backend-node.js test face similarity alternative
-2022-11-17 14:20:52 [35mSTATE:[39m test-backend-node.js start face embeddings
-2022-11-17 14:20:53 [35mSTATE:[39m test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120}
-2022-11-17 14:20:53 [35mSTATE:[39m test-backend-node.js event: image
-2022-11-17 14:20:53 [31mERROR:[39m test-backend-node.js failed: testDetect face embeddings
-2022-11-17 14:20:53 [31mERROR:[39m test-backend-node.js uncaughtException {"name":"TypeError","message":"Cannot read properties of undefined (reading 'img_inputs')","stack":["TypeError: Cannot read properties of undefined (reading 'img_inputs')"," at /home/vlado/dev/human/node_modules/.pnpm/@tensorflow+tfjs-converter@4.0.0_hdmpc5coifabqk2ogondqkcwg4/node_modules/@tensorflow/tfjs-converter/dist/tf-converter.node.js:30706:69"," at Array.reduce ()"," at GraphModel.normalizeInputs (/home/vlado/dev/human/node_modules/.pnpm/@tensorflow+tfjs-converter@4.0.0_hdmpc5coifabqk2ogondqkcwg4/node_modules/@tensorflow/tfjs-converter/dist/tf-converter.node.js:30705:32)"," at GraphModel.execute (/home/vlado/dev/human/node_modules/.pnpm/@tensorflow+tfjs-converter@4.0.0_hdmpc5coifabqk2ogondqkcwg4/node_modules/@tensorflow/tfjs-converter/dist/tf-converter.node.js:30777:23)"," at /home/vlado/dev/human/dist/human.node.js:121:37595"," at new Promise ()"," at V5 (/home/vlado/dev/human/dist/human.node.js:121:37364)"," at q5 (/home/vlado/dev/human/dist/human.node.js:121:43414)"," at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"," at async /home/vlado/dev/human/dist/human.node.js:840:8563"]}
-2022-11-17 14:20:53 [36mINFO: [39m
-2022-11-17 14:20:53 [36mINFO: [39m test-backend-node-gpu.js start
-2022-11-17 14:20:54 [36mINFO: [39m test-backend-node-gpu.js test: configuration validation
-2022-11-17 14:20:54 [35mSTATE:[39m test-backend-node-gpu.js passed: configuration default validation []
-2022-11-17 14:20:54 [35mSTATE:[39m test-backend-node-gpu.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}]
-2022-11-17 14:20:54 [36mINFO: [39m test-backend-node-gpu.js test: model load
-2022-11-17 14:20:54 [35mSTATE:[39m test-backend-node-gpu.js passed: models loaded 24 11 [{"name":"blazeface","loaded":true,"size":538928,"url":"file://models/blazeface.json"},{"name":"antispoof","loaded":true,"size":853098,"url":"file://models/antispoof.json"},{"name":"liveness","loaded":true,"size":592976,"url":"file://models/liveness.json"},{"name":"faceres","loaded":true,"size":6978814,"url":"file://models/faceres.json"},{"name":"emotion","loaded":true,"size":820516,"url":"file://models/emotion.json"},{"name":"iris","loaded":true,"size":2599092,"url":"file://models/iris.json"},{"name":"facemesh","loaded":true,"size":1477958,"url":"file://models/facemesh.json"},{"name":"gear","loaded":false,"size":0,"url":null},{"name":"ssrnetage","loaded":false,"size":0,"url":null},{"name":"ssrnetgender","loaded":false,"size":0,"url":null},{"name":"mobilefacenet","loaded":false,"size":0,"url":null},{"name":"insightface","loaded":false,"size":0,"url":null},{"name":"blazepose","loaded":false,"size":0,"url":null},{"name":"blazeposedetect","loaded":false,"size":0,"url":null},{"name":"efficientpose","loaded":false,"size":0,"url":null},{"name":"movenet","loaded":true,"size":4650216,"url":"file://models/movenet-lightning.json"},{"name":"posenet","loaded":false,"size":0,"url":null},{"name":"handtrack","loaded":true,"size":2964837,"url":"file://models/handtrack.json"},{"name":"handskeleton","loaded":true,"size":0},{"name":"centernet","loaded":true,"size":4030290,"url":"file://models/centernet.json"},{"name":"nanodet","loaded":false,"size":0,"url":null},{"name":"selfie","loaded":false,"size":0,"url":null},{"name":"meet","loaded":false,"size":0,"url":null},{"name":"rvm","loaded":false,"size":0,"url":null}]
-2022-11-17 14:20:54 [36mINFO: [39m test-backend-node-gpu.js memory: {"memory":{"unreliable":true,"numTensors":1785,"numDataBuffers":1785,"numBytes":63247332}}
-2022-11-17 14:20:54 [36mINFO: [39m test-backend-node-gpu.js state: {"state":{"registeredVariables":{},"nextTapeNodeId":0,"numBytes":63247332,"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-17 14:20:54 [36mINFO: [39m test-backend-node-gpu.js test: warmup
-2022-11-17 14:20:54 [35mSTATE:[39m test-backend-node-gpu.js passed: create human
-2022-11-17 14:20:54 [36mINFO: [39m test-backend-node-gpu.js human version: 3.0.0
-2022-11-17 14:20:54 [36mINFO: [39m test-backend-node-gpu.js platform: linux x64 agent: NodeJS v19.1.0
-2022-11-17 14:20:54 [36mINFO: [39m test-backend-node-gpu.js tfjs version: 4.0.0
-2022-11-17 14:20:54 [36mINFO: [39m 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.0.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-17 14:20:54 [35mSTATE:[39m test-backend-node-gpu.js passed: set backend: tensorflow
-2022-11-17 14:20:54 [35mSTATE:[39m test-backend-node-gpu.js tensors 1785
-2022-11-17 14:20:54 [35mSTATE:[39m test-backend-node-gpu.js passed: load models
-2022-11-17 14:20:54 [35mSTATE:[39m test-backend-node-gpu.js result: defined models: 2 loaded models: 2
-2022-11-17 14:20:54 [35mSTATE:[39m test-backend-node-gpu.js passed: warmup: none default
-2022-11-17 14:20:54 [32mDATA: [39m test-backend-node-gpu.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {}
-2022-11-17 14:20:54 [32mDATA: [39m test-backend-node-gpu.js result: performance: load: null total: null
-2022-11-17 14:20:54 [35mSTATE:[39m test-backend-node-gpu.js passed: warmup none result match
-2022-11-17 14:20:54 [35mSTATE:[39m test-backend-node-gpu.js event: image
-2022-11-17 14:20:57 [35mSTATE:[39m test-backend-node-gpu.js event: detect
-2022-11-17 14:20:57 [35mSTATE:[39m test-backend-node-gpu.js event: warmup
-2022-11-17 14:20:57 [35mSTATE:[39m test-backend-node-gpu.js passed: warmup: face default
-2022-11-17 14:20:57 [32mDATA: [39m test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.42,"keypoints":4}
-2022-11-17 14:20:57 [32mDATA: [39m test-backend-node-gpu.js result: performance: load: null total: 2683
-2022-11-17 14:20:57 [35mSTATE:[39m test-backend-node-gpu.js passed: warmup face result match
-2022-11-17 14:20:57 [35mSTATE:[39m test-backend-node-gpu.js event: image
-2022-11-17 14:20:57 [35mSTATE:[39m test-backend-node-gpu.js event: detect
-2022-11-17 14:20:57 [35mSTATE:[39m test-backend-node-gpu.js event: warmup
-2022-11-17 14:20:57 [35mSTATE:[39m test-backend-node-gpu.js passed: warmup: body default
-2022-11-17 14:20:57 [32mDATA: [39m 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-17 14:20:57 [32mDATA: [39m test-backend-node-gpu.js result: performance: load: null total: 144
-2022-11-17 14:20:57 [35mSTATE:[39m test-backend-node-gpu.js passed: warmup body result match
-2022-11-17 14:20:57 [35mSTATE:[39m 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":"palm up"},{"hand":0,"gesture":"open palm"},{"iris":0,"gesture":"looking left"},{"iris":0,"gesture":"looking up"}]}
-2022-11-17 14:20:57 [36mINFO: [39m test-backend-node-gpu.js test: details verification
-2022-11-17 14:20:57 [35mSTATE:[39m test-backend-node-gpu.js start default
-2022-11-17 14:20:57 [35mSTATE:[39m test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928}
-2022-11-17 14:20:57 [35mSTATE:[39m test-backend-node-gpu.js event: image
-2022-11-17 14:20:58 [35mSTATE:[39m test-backend-node-gpu.js event: detect
-2022-11-17 14:20:58 [35mSTATE:[39m test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg default
-2022-11-17 14:20:58 [32mDATA: [39m 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-17 14:20:58 [32mDATA: [39m test-backend-node-gpu.js result: performance: load: null total: 144
-2022-11-17 14:20:58 [35mSTATE:[39m test-backend-node-gpu.js passed: details face length 1
-2022-11-17 14:20:58 [35mSTATE:[39m test-backend-node-gpu.js passed: details face score 1 0.93 1
-2022-11-17 14:20:58 [35mSTATE:[39m test-backend-node-gpu.js passed: details face age/gender 23.7 female 0.97 2.34
-2022-11-17 14:20:58 [35mSTATE:[39m test-backend-node-gpu.js passed: details face arrays 4 478 1024
-2022-11-17 14:20:58 [35mSTATE:[39m test-backend-node-gpu.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"}
-2022-11-17 14:20:58 [35mSTATE:[39m test-backend-node-gpu.js passed: details face anti-spoofing 0.79
-2022-11-17 14:20:58 [35mSTATE:[39m test-backend-node-gpu.js passed: details face liveness 0.83
-2022-11-17 14:20:58 [35mSTATE:[39m test-backend-node-gpu.js passed: details body length 1
-2022-11-17 14:20:58 [35mSTATE:[39m test-backend-node-gpu.js passed: details body 0.92 17 6
-2022-11-17 14:20:58 [35mSTATE:[39m test-backend-node-gpu.js passed: details hand length 1
-2022-11-17 14:20:58 [35mSTATE:[39m test-backend-node-gpu.js passed: details hand 0.51 0.73 point
-2022-11-17 14:20:58 [35mSTATE:[39m test-backend-node-gpu.js passed: details hand arrays 21 5 7
-2022-11-17 14:20:58 [35mSTATE:[39m test-backend-node-gpu.js passed: details gesture length 7
-2022-11-17 14:20:58 [35mSTATE:[39m test-backend-node-gpu.js passed: details gesture first {"face":0,"gesture":"facing right"}
-2022-11-17 14:20:58 [35mSTATE:[39m test-backend-node-gpu.js passed: details object length 1
-2022-11-17 14:20:58 [35mSTATE:[39m test-backend-node-gpu.js passed: details object 0.72 person
-2022-11-17 14:20:58 [35mSTATE:[39m test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996928}
-2022-11-17 14:20:58 [35mSTATE:[39m test-backend-node-gpu.js event: image
-2022-11-17 14:20:58 [35mSTATE:[39m test-backend-node-gpu.js event: detect
-2022-11-17 14:20:58 [35mSTATE:[39m test-backend-node-gpu.js passed: tensor shape: [1,1200,1200,4] dtype: float32
-2022-11-17 14:20:58 [35mSTATE:[39m test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1371996928}
-2022-11-17 14:20:58 [35mSTATE:[39m test-backend-node-gpu.js event: image
-2022-11-17 14:20:58 [35mSTATE:[39m test-backend-node-gpu.js event: detect
-2022-11-17 14:20:58 [35mSTATE:[39m test-backend-node-gpu.js passed: tensor shape: [1200,1200,4] dtype: float32
-2022-11-17 14:20:58 [35mSTATE:[39m test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928}
-2022-11-17 14:20:58 [35mSTATE:[39m test-backend-node-gpu.js event: image
-2022-11-17 14:20:59 [35mSTATE:[39m test-backend-node-gpu.js event: detect
-2022-11-17 14:20:59 [35mSTATE:[39m test-backend-node-gpu.js passed: tensor shape: [1,1200,1200,3] dtype: float32
-2022-11-17 14:20:59 [35mSTATE:[39m test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1004796928}
-2022-11-17 14:20:59 [35mSTATE:[39m test-backend-node-gpu.js event: image
-2022-11-17 14:20:59 [35mSTATE:[39m test-backend-node-gpu.js event: detect
-2022-11-17 14:20:59 [35mSTATE:[39m test-backend-node-gpu.js passed: tensor shape: [1200,1200,3] dtype: float32
-2022-11-17 14:20:59 [35mSTATE:[39m test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871}
-2022-11-17 14:20:59 [35mSTATE:[39m test-backend-node-gpu.js event: image
-2022-11-17 14:20:59 [35mSTATE:[39m test-backend-node-gpu.js event: detect
-2022-11-17 14:20:59 [35mSTATE:[39m test-backend-node-gpu.js passed: tensor shape: [1,1200,1200,4] dtype: int32
-2022-11-17 14:20:59 [36mINFO: [39m test-backend-node-gpu.js test default
-2022-11-17 14:20:59 [35mSTATE:[39m test-backend-node-gpu.js start async
-2022-11-17 14:21:00 [35mSTATE:[39m test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928}
-2022-11-17 14:21:00 [35mSTATE:[39m test-backend-node-gpu.js event: image
-2022-11-17 14:21:00 [35mSTATE:[39m test-backend-node-gpu.js event: detect
-2022-11-17 14:21:00 [35mSTATE:[39m test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg async
-2022-11-17 14:21:00 [32mDATA: [39m 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-17 14:21:00 [32mDATA: [39m test-backend-node-gpu.js result: performance: load: null total: 113
-2022-11-17 14:21:00 [35mSTATE:[39m test-backend-node-gpu.js passed: default result face match 1 female 0.97
-2022-11-17 14:21:00 [36mINFO: [39m test-backend-node-gpu.js test sync
-2022-11-17 14:21:00 [35mSTATE:[39m test-backend-node-gpu.js start sync
-2022-11-17 14:21:00 [35mSTATE:[39m test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928}
-2022-11-17 14:21:00 [35mSTATE:[39m test-backend-node-gpu.js event: image
-2022-11-17 14:21:00 [35mSTATE:[39m test-backend-node-gpu.js event: detect
-2022-11-17 14:21:00 [35mSTATE:[39m test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg sync
-2022-11-17 14:21:00 [32mDATA: [39m 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-17 14:21:00 [32mDATA: [39m test-backend-node-gpu.js result: performance: load: null total: 116
-2022-11-17 14:21:00 [35mSTATE:[39m test-backend-node-gpu.js passed: default sync 1 female 0.97
-2022-11-17 14:21:00 [36mINFO: [39m test-backend-node-gpu.js test: image process
-2022-11-17 14:21:00 [35mSTATE:[39m test-backend-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120}
-2022-11-17 14:21:00 [35mSTATE:[39m test-backend-node-gpu.js passed: image input null [1,256,256,3]
-2022-11-17 14:21:00 [36mINFO: [39m test-backend-node-gpu.js test: image null
-2022-11-17 14:21:00 [35mSTATE:[39m test-backend-node-gpu.js passed: invalid input could not convert input to tensor
-2022-11-17 14:21:00 [36mINFO: [39m test-backend-node-gpu.js test face similarity
-2022-11-17 14:21:00 [35mSTATE:[39m test-backend-node-gpu.js start face similarity
-2022-11-17 14:21:00 [35mSTATE:[39m test-backend-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120}
-2022-11-17 14:21:00 [35mSTATE:[39m test-backend-node-gpu.js event: image
-2022-11-17 14:21:00 [35mSTATE:[39m test-backend-node-gpu.js event: detect
-2022-11-17 14:21:00 [35mSTATE:[39m test-backend-node-gpu.js passed: detect: samples/in/ai-face.jpg face similarity
-2022-11-17 14:21:00 [32mDATA: [39m 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-17 14:21:00 [32mDATA: [39m test-backend-node-gpu.js result: performance: load: null total: 122
-2022-11-17 14:21:00 [35mSTATE:[39m test-backend-node-gpu.js start face similarity
-2022-11-17 14:21:00 [35mSTATE:[39m test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928}
-2022-11-17 14:21:00 [35mSTATE:[39m test-backend-node-gpu.js event: image
-2022-11-17 14:21:00 [35mSTATE:[39m test-backend-node-gpu.js event: detect
-2022-11-17 14:21:00 [35mSTATE:[39m test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg face similarity
-2022-11-17 14:21:00 [32mDATA: [39m 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-17 14:21:00 [32mDATA: [39m test-backend-node-gpu.js result: performance: load: null total: 135
-2022-11-17 14:21:00 [35mSTATE:[39m test-backend-node-gpu.js start face similarity
-2022-11-17 14:21:01 [35mSTATE:[39m test-backend-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056}
-2022-11-17 14:21:01 [35mSTATE:[39m test-backend-node-gpu.js event: image
-2022-11-17 14:21:01 [35mSTATE:[39m test-backend-node-gpu.js event: detect
-2022-11-17 14:21:01 [35mSTATE:[39m test-backend-node-gpu.js passed: detect: samples/in/ai-upper.jpg face similarity
-2022-11-17 14:21:01 [32mDATA: [39m 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-17 14:21:01 [32mDATA: [39m test-backend-node-gpu.js result: performance: load: null total: 119
-2022-11-17 14:21:01 [35mSTATE:[39m test-backend-node-gpu.js passed: face descriptor
-2022-11-17 14:21:01 [35mSTATE:[39m test-backend-node-gpu.js passed: face similarity {"similarity":[1,0.4475002983522097,0.5570879556505012],"descriptors":[1024,1024,1024]}
-2022-11-17 14:21:01 [36mINFO: [39m test-backend-node-gpu.js test object
-2022-11-17 14:21:01 [35mSTATE:[39m test-backend-node-gpu.js start object
-2022-11-17 14:21:01 [35mSTATE:[39m test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928}
-2022-11-17 14:21:01 [35mSTATE:[39m test-backend-node-gpu.js event: image
-2022-11-17 14:21:01 [35mSTATE:[39m test-backend-node-gpu.js event: detect
-2022-11-17 14:21:01 [35mSTATE:[39m test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg object
-2022-11-17 14:21:01 [32mDATA: [39m 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-17 14:21:01 [32mDATA: [39m test-backend-node-gpu.js result: performance: load: null total: 111
-2022-11-17 14:21:01 [35mSTATE:[39m test-backend-node-gpu.js passed: centernet
-2022-11-17 14:21:01 [35mSTATE:[39m test-backend-node-gpu.js start object
-2022-11-17 14:21:02 [35mSTATE:[39m test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928}
-2022-11-17 14:21:02 [35mSTATE:[39m test-backend-node-gpu.js event: image
-2022-11-17 14:21:02 [35mSTATE:[39m test-backend-node-gpu.js event: detect
-2022-11-17 14:21:02 [35mSTATE:[39m test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg object
-2022-11-17 14:21:02 [32mDATA: [39m 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-17 14:21:02 [32mDATA: [39m test-backend-node-gpu.js result: performance: load: null total: 388
-2022-11-17 14:21:02 [35mSTATE:[39m test-backend-node-gpu.js passed: nanodet
-2022-11-17 14:21:02 [36mINFO: [39m test-backend-node-gpu.js test sensitive
-2022-11-17 14:21:02 [35mSTATE:[39m test-backend-node-gpu.js start sensitive
-2022-11-17 14:21:02 [35mSTATE:[39m test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928}
-2022-11-17 14:21:02 [35mSTATE:[39m test-backend-node-gpu.js event: image
-2022-11-17 14:21:03 [35mSTATE:[39m test-backend-node-gpu.js event: detect
-2022-11-17 14:21:03 [35mSTATE:[39m test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg sensitive
-2022-11-17 14:21:03 [32mDATA: [39m 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-17 14:21:03 [32mDATA: [39m test-backend-node-gpu.js result: performance: load: null total: 112
-2022-11-17 14:21:03 [35mSTATE:[39m test-backend-node-gpu.js passed: sensitive result match
-2022-11-17 14:21:03 [35mSTATE:[39m test-backend-node-gpu.js passed: sensitive face result match
-2022-11-17 14:21:03 [35mSTATE:[39m test-backend-node-gpu.js passed: sensitive face emotion result [{"score":0.59,"emotion":"angry"},{"score":0.29,"emotion":"fear"}]
-2022-11-17 14:21:03 [35mSTATE:[39m test-backend-node-gpu.js passed: sensitive body result match
-2022-11-17 14:21:03 [35mSTATE:[39m test-backend-node-gpu.js passed: sensitive hand result match
-2022-11-17 14:21:03 [36mINFO: [39m test-backend-node-gpu.js test body
-2022-11-17 14:21:03 [35mSTATE:[39m test-backend-node-gpu.js start blazepose
-2022-11-17 14:21:05 [35mSTATE:[39m test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928}
-2022-11-17 14:21:05 [35mSTATE:[39m test-backend-node-gpu.js event: image
-2022-11-17 14:21:05 [35mSTATE:[39m test-backend-node-gpu.js event: detect
-2022-11-17 14:21:05 [35mSTATE:[39m test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg blazepose
-2022-11-17 14:21:05 [32mDATA: [39m 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-17 14:21:05 [32mDATA: [39m test-backend-node-gpu.js result: performance: load: null total: 269
-2022-11-17 14:21:05 [35mSTATE:[39m test-backend-node-gpu.js passed: blazepose
-2022-11-17 14:21:05 [35mSTATE:[39m test-backend-node-gpu.js start efficientpose
-2022-11-17 14:21:05 [35mSTATE:[39m test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928}
-2022-11-17 14:21:05 [35mSTATE:[39m test-backend-node-gpu.js event: image
-2022-11-17 14:21:06 [35mSTATE:[39m test-backend-node-gpu.js event: detect
-2022-11-17 14:21:06 [35mSTATE:[39m test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg efficientpose
-2022-11-17 14:21:06 [32mDATA: [39m 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-17 14:21:06 [32mDATA: [39m test-backend-node-gpu.js result: performance: load: null total: 972
-2022-11-17 14:21:06 [35mSTATE:[39m test-backend-node-gpu.js passed: efficientpose
-2022-11-17 14:21:06 [35mSTATE:[39m test-backend-node-gpu.js start posenet
-2022-11-17 14:21:07 [35mSTATE:[39m test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928}
-2022-11-17 14:21:07 [35mSTATE:[39m test-backend-node-gpu.js event: image
-2022-11-17 14:21:07 [35mSTATE:[39m test-backend-node-gpu.js event: detect
-2022-11-17 14:21:07 [35mSTATE:[39m test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg posenet
-2022-11-17 14:21:07 [32mDATA: [39m 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-17 14:21:07 [32mDATA: [39m test-backend-node-gpu.js result: performance: load: null total: 125
-2022-11-17 14:21:07 [35mSTATE:[39m test-backend-node-gpu.js passed: posenet
-2022-11-17 14:21:07 [35mSTATE:[39m test-backend-node-gpu.js start movenet
-2022-11-17 14:21:07 [35mSTATE:[39m test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928}
-2022-11-17 14:21:07 [35mSTATE:[39m test-backend-node-gpu.js event: image
-2022-11-17 14:21:07 [35mSTATE:[39m test-backend-node-gpu.js event: detect
-2022-11-17 14:21:07 [35mSTATE:[39m test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg movenet
-2022-11-17 14:21:07 [32mDATA: [39m 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-17 14:21:07 [32mDATA: [39m test-backend-node-gpu.js result: performance: load: null total: 99
-2022-11-17 14:21:07 [35mSTATE:[39m test-backend-node-gpu.js passed: movenet
-2022-11-17 14:21:07 [36mINFO: [39m test-backend-node-gpu.js test face matching
-2022-11-17 14:21:07 [35mSTATE:[39m test-backend-node-gpu.js passed: face database 40
-2022-11-17 14:21:07 [35mSTATE:[39m 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-17 14:21:07 [36mINFO: [39m test-backend-node-gpu.js test face similarity alternative
-2022-11-17 14:21:07 [35mSTATE:[39m test-backend-node-gpu.js start face embeddings
-2022-11-17 14:21:08 [35mSTATE:[39m test-backend-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120}
-2022-11-17 14:21:08 [35mSTATE:[39m test-backend-node-gpu.js event: image
-2022-11-17 14:21:08 [31mERROR:[39m test-backend-node-gpu.js failed: testDetect face embeddings
-2022-11-17 14:21:08 [31mERROR:[39m test-backend-node-gpu.js uncaughtException {"name":"TypeError","message":"Cannot read properties of undefined (reading 'img_inputs')","stack":["TypeError: Cannot read properties of undefined (reading 'img_inputs')"," at /home/vlado/dev/human/node_modules/.pnpm/@tensorflow+tfjs-converter@4.0.0_hdmpc5coifabqk2ogondqkcwg4/node_modules/@tensorflow/tfjs-converter/dist/tf-converter.node.js:30706:69"," at Array.reduce ()"," at GraphModel.normalizeInputs (/home/vlado/dev/human/node_modules/.pnpm/@tensorflow+tfjs-converter@4.0.0_hdmpc5coifabqk2ogondqkcwg4/node_modules/@tensorflow/tfjs-converter/dist/tf-converter.node.js:30705:32)"," at GraphModel.execute (/home/vlado/dev/human/node_modules/.pnpm/@tensorflow+tfjs-converter@4.0.0_hdmpc5coifabqk2ogondqkcwg4/node_modules/@tensorflow/tfjs-converter/dist/tf-converter.node.js:30777:23)"," at /home/vlado/dev/human/dist/human.node-gpu.js:121:37595"," at new Promise ()"," at V5 (/home/vlado/dev/human/dist/human.node-gpu.js:121:37364)"," at q5 (/home/vlado/dev/human/dist/human.node-gpu.js:121:43414)"," at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"," at async /home/vlado/dev/human/dist/human.node-gpu.js:840:8563"]}
-2022-11-17 14:21:08 [36mINFO: [39m
-2022-11-17 14:21:08 [36mINFO: [39m test-backend-node-wasm.js start
-2022-11-17 14:21:08 [32mDATA: [39m test-backend-node-wasm.js stdout: 2022-11-17 14:21:08 [36mINFO: [39m { supported: [33mtrue[39m, backend: [33mtrue[39m, simd: [90mundefined[39m, multithread: [90mundefined[39m } https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-backend-wasm@4.0.0/dist/
-2022-11-17 14:21:09 [35mSTATE:[39m test-backend-node-wasm.js passed: model server: https://vladmandic.github.io/human-models/models/
-2022-11-17 14:21:09 [36mINFO: [39m test-backend-node-wasm.js test: configuration validation
-2022-11-17 14:21:09 [35mSTATE:[39m test-backend-node-wasm.js passed: configuration default validation []
-2022-11-17 14:21:09 [35mSTATE:[39m test-backend-node-wasm.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}]
-2022-11-17 14:21:09 [36mINFO: [39m test-backend-node-wasm.js test: model load
-2022-11-17 14:21:11 [35mSTATE:[39m test-backend-node-wasm.js passed: models loaded 24 11 [{"name":"blazeface","loaded":true,"size":538928,"url":"https://vladmandic.github.io/human-models/models/blazeface.json"},{"name":"antispoof","loaded":true,"size":853098,"url":"https://vladmandic.github.io/human-models/models/antispoof.json"},{"name":"liveness","loaded":true,"size":592976,"url":"https://vladmandic.github.io/human-models/models/liveness.json"},{"name":"faceres","loaded":true,"size":6978814,"url":"https://vladmandic.github.io/human-models/models/faceres.json"},{"name":"emotion","loaded":true,"size":820516,"url":"https://vladmandic.github.io/human-models/models/emotion.json"},{"name":"iris","loaded":true,"size":2599092,"url":"https://vladmandic.github.io/human-models/models/iris.json"},{"name":"facemesh","loaded":true,"size":1477958,"url":"https://vladmandic.github.io/human-models/models/facemesh.json"},{"name":"gear","loaded":false,"size":0,"url":null},{"name":"ssrnetage","loaded":false,"size":0,"url":null},{"name":"ssrnetgender","loaded":false,"size":0,"url":null},{"name":"mobilefacenet","loaded":false,"size":0,"url":null},{"name":"insightface","loaded":false,"size":0,"url":null},{"name":"blazepose","loaded":false,"size":0,"url":null},{"name":"blazeposedetect","loaded":false,"size":0,"url":null},{"name":"efficientpose","loaded":false,"size":0,"url":null},{"name":"movenet","loaded":true,"size":4650216,"url":"https://vladmandic.github.io/human-models/models/movenet-lightning.json"},{"name":"posenet","loaded":false,"size":0,"url":null},{"name":"handtrack","loaded":true,"size":2964837,"url":"https://vladmandic.github.io/human-models/models/handtrack.json"},{"name":"handskeleton","loaded":true,"size":0},{"name":"centernet","loaded":true,"size":4030290,"url":"https://vladmandic.github.io/human-models/models/centernet.json"},{"name":"nanodet","loaded":false,"size":0,"url":null},{"name":"selfie","loaded":false,"size":0,"url":null},{"name":"meet","loaded":false,"size":0,"url":null},{"name":"rvm","loaded":false,"size":0,"url":null}]
-2022-11-17 14:21:11 [36mINFO: [39m test-backend-node-wasm.js memory: {"memory":{"unreliable":false,"numTensors":1785,"numDataBuffers":1785,"numBytes":63247332}}
-2022-11-17 14:21:11 [36mINFO: [39m test-backend-node-wasm.js state: {"state":{"registeredVariables":{},"nextTapeNodeId":0,"numBytes":63247332,"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-17 14:21:11 [36mINFO: [39m test-backend-node-wasm.js test: warmup
-2022-11-17 14:21:11 [35mSTATE:[39m test-backend-node-wasm.js passed: create human
-2022-11-17 14:21:11 [36mINFO: [39m test-backend-node-wasm.js human version: 3.0.0
-2022-11-17 14:21:11 [36mINFO: [39m test-backend-node-wasm.js platform: linux x64 agent: NodeJS v19.1.0
-2022-11-17 14:21:11 [36mINFO: [39m test-backend-node-wasm.js tfjs version: 4.0.0
-2022-11-17 14:21:11 [36mINFO: [39m 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.0.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":126}
-2022-11-17 14:21:11 [35mSTATE:[39m test-backend-node-wasm.js passed: set backend: wasm
-2022-11-17 14:21:11 [35mSTATE:[39m test-backend-node-wasm.js tensors 1785
-2022-11-17 14:21:11 [35mSTATE:[39m test-backend-node-wasm.js passed: load models
-2022-11-17 14:21:11 [35mSTATE:[39m test-backend-node-wasm.js result: defined models: 2 loaded models: 2
-2022-11-17 14:21:11 [35mSTATE:[39m test-backend-node-wasm.js passed: warmup: none default
-2022-11-17 14:21:11 [32mDATA: [39m test-backend-node-wasm.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {}
-2022-11-17 14:21:11 [32mDATA: [39m test-backend-node-wasm.js result: performance: load: null total: null
-2022-11-17 14:21:11 [35mSTATE:[39m test-backend-node-wasm.js passed: warmup none result match
-2022-11-17 14:21:11 [35mSTATE:[39m test-backend-node-wasm.js event: image
-2022-11-17 14:21:11 [35mSTATE:[39m test-backend-node-wasm.js event: detect
-2022-11-17 14:21:11 [35mSTATE:[39m test-backend-node-wasm.js event: warmup
-2022-11-17 14:21:11 [35mSTATE:[39m test-backend-node-wasm.js passed: warmup: face default
-2022-11-17 14:21:11 [32mDATA: [39m 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-17 14:21:11 [32mDATA: [39m test-backend-node-wasm.js result: performance: load: null total: 513
-2022-11-17 14:21:11 [35mSTATE:[39m test-backend-node-wasm.js passed: warmup face result match
-2022-11-17 14:21:11 [35mSTATE:[39m test-backend-node-wasm.js event: image
-2022-11-17 14:21:12 [35mSTATE:[39m test-backend-node-wasm.js event: detect
-2022-11-17 14:21:12 [35mSTATE:[39m test-backend-node-wasm.js event: warmup
-2022-11-17 14:21:12 [35mSTATE:[39m test-backend-node-wasm.js passed: warmup: body default
-2022-11-17 14:21:12 [32mDATA: [39m 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-17 14:21:12 [32mDATA: [39m test-backend-node-wasm.js result: performance: load: null total: 342
-2022-11-17 14:21:12 [35mSTATE:[39m test-backend-node-wasm.js passed: warmup body result match
-2022-11-17 14:21:12 [35mSTATE:[39m 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":"palm up"},{"hand":0,"gesture":"open palm"},{"iris":0,"gesture":"looking left"},{"iris":0,"gesture":"looking up"}]}
-2022-11-17 14:21:12 [36mINFO: [39m test-backend-node-wasm.js test: details verification
-2022-11-17 14:21:12 [35mSTATE:[39m test-backend-node-wasm.js start default
-2022-11-17 14:21:12 [35mSTATE:[39m test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856}
-2022-11-17 14:21:12 [35mSTATE:[39m test-backend-node-wasm.js event: image
-2022-11-17 14:21:12 [35mSTATE:[39m test-backend-node-wasm.js event: detect
-2022-11-17 14:21:12 [35mSTATE:[39m test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg default
-2022-11-17 14:21:12 [32mDATA: [39m 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-17 14:21:12 [32mDATA: [39m test-backend-node-wasm.js result: performance: load: null total: 325
-2022-11-17 14:21:12 [35mSTATE:[39m test-backend-node-wasm.js passed: details face length 1
-2022-11-17 14:21:12 [35mSTATE:[39m test-backend-node-wasm.js passed: details face score 1 0.93 1
-2022-11-17 14:21:12 [35mSTATE:[39m test-backend-node-wasm.js passed: details face age/gender 23.7 female 0.97 2.34
-2022-11-17 14:21:12 [35mSTATE:[39m test-backend-node-wasm.js passed: details face arrays 4 478 1024
-2022-11-17 14:21:12 [35mSTATE:[39m test-backend-node-wasm.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"}
-2022-11-17 14:21:12 [35mSTATE:[39m test-backend-node-wasm.js passed: details face anti-spoofing 0.79
-2022-11-17 14:21:12 [35mSTATE:[39m test-backend-node-wasm.js passed: details face liveness 0.83
-2022-11-17 14:21:12 [35mSTATE:[39m test-backend-node-wasm.js passed: details body length 1
-2022-11-17 14:21:12 [35mSTATE:[39m test-backend-node-wasm.js passed: details body 0.92 17 6
-2022-11-17 14:21:12 [35mSTATE:[39m test-backend-node-wasm.js passed: details hand length 1
-2022-11-17 14:21:12 [35mSTATE:[39m test-backend-node-wasm.js passed: details hand 0.51 0.73 point
-2022-11-17 14:21:12 [35mSTATE:[39m test-backend-node-wasm.js passed: details hand arrays 21 5 7
-2022-11-17 14:21:12 [35mSTATE:[39m test-backend-node-wasm.js passed: details gesture length 7
-2022-11-17 14:21:12 [35mSTATE:[39m test-backend-node-wasm.js passed: details gesture first {"face":0,"gesture":"facing right"}
-2022-11-17 14:21:12 [35mSTATE:[39m test-backend-node-wasm.js passed: details object length 1
-2022-11-17 14:21:12 [35mSTATE:[39m test-backend-node-wasm.js passed: details object 0.72 person
-2022-11-17 14:21:12 [35mSTATE:[39m test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1413675264}
-2022-11-17 14:21:13 [35mSTATE:[39m test-backend-node-wasm.js event: image
-2022-11-17 14:21:13 [35mSTATE:[39m test-backend-node-wasm.js event: detect
-2022-11-17 14:21:13 [35mSTATE:[39m test-backend-node-wasm.js passed: tensor shape: [1,1200,1200,4] dtype: float32
-2022-11-17 14:21:13 [35mSTATE:[39m test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1413675264}
-2022-11-17 14:21:13 [35mSTATE:[39m test-backend-node-wasm.js event: image
-2022-11-17 14:21:13 [35mSTATE:[39m test-backend-node-wasm.js event: detect
-2022-11-17 14:21:13 [35mSTATE:[39m test-backend-node-wasm.js passed: tensor shape: [1200,1200,4] dtype: float32
-2022-11-17 14:21:14 [35mSTATE:[39m test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856}
-2022-11-17 14:21:14 [35mSTATE:[39m test-backend-node-wasm.js event: image
-2022-11-17 14:21:14 [35mSTATE:[39m test-backend-node-wasm.js event: detect
-2022-11-17 14:21:14 [35mSTATE:[39m test-backend-node-wasm.js passed: tensor shape: [1,1200,1200,3] dtype: float32
-2022-11-17 14:21:14 [35mSTATE:[39m test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1038921856}
-2022-11-17 14:21:14 [35mSTATE:[39m test-backend-node-wasm.js event: image
-2022-11-17 14:21:14 [35mSTATE:[39m test-backend-node-wasm.js event: detect
-2022-11-17 14:21:14 [35mSTATE:[39m test-backend-node-wasm.js passed: tensor shape: [1200,1200,3] dtype: float32
-2022-11-17 14:21:15 [35mSTATE:[39m test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871}
-2022-11-17 14:21:15 [35mSTATE:[39m test-backend-node-wasm.js event: image
-2022-11-17 14:21:15 [35mSTATE:[39m test-backend-node-wasm.js event: detect
-2022-11-17 14:21:15 [35mSTATE:[39m test-backend-node-wasm.js passed: tensor shape: [1,1200,1200,4] dtype: int32
-2022-11-17 14:21:15 [36mINFO: [39m test-backend-node-wasm.js test default
-2022-11-17 14:21:15 [35mSTATE:[39m test-backend-node-wasm.js start async
-2022-11-17 14:21:15 [35mSTATE:[39m test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856}
-2022-11-17 14:21:15 [35mSTATE:[39m test-backend-node-wasm.js event: image
-2022-11-17 14:21:16 [35mSTATE:[39m test-backend-node-wasm.js event: detect
-2022-11-17 14:21:16 [35mSTATE:[39m test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg async
-2022-11-17 14:21:16 [32mDATA: [39m 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-17 14:21:16 [32mDATA: [39m test-backend-node-wasm.js result: performance: load: null total: 338
-2022-11-17 14:21:16 [35mSTATE:[39m test-backend-node-wasm.js passed: default result face match 1 female 0.97
-2022-11-17 14:21:16 [36mINFO: [39m test-backend-node-wasm.js test sync
-2022-11-17 14:21:16 [35mSTATE:[39m test-backend-node-wasm.js start sync
-2022-11-17 14:21:16 [35mSTATE:[39m test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856}
-2022-11-17 14:21:16 [35mSTATE:[39m test-backend-node-wasm.js event: image
-2022-11-17 14:21:16 [35mSTATE:[39m test-backend-node-wasm.js event: detect
-2022-11-17 14:21:16 [35mSTATE:[39m test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg sync
-2022-11-17 14:21:16 [32mDATA: [39m 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-17 14:21:16 [32mDATA: [39m test-backend-node-wasm.js result: performance: load: null total: 334
-2022-11-17 14:21:16 [35mSTATE:[39m test-backend-node-wasm.js passed: default sync 1 female 0.97
-2022-11-17 14:21:16 [36mINFO: [39m test-backend-node-wasm.js test: image process
-2022-11-17 14:21:16 [35mSTATE:[39m test-backend-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856}
-2022-11-17 14:21:16 [35mSTATE:[39m test-backend-node-wasm.js passed: image input null [1,256,256,3]
-2022-11-17 14:21:16 [36mINFO: [39m test-backend-node-wasm.js test: image null
-2022-11-17 14:21:16 [35mSTATE:[39m test-backend-node-wasm.js passed: invalid input could not convert input to tensor
-2022-11-17 14:21:16 [36mINFO: [39m test-backend-node-wasm.js test face similarity
-2022-11-17 14:21:16 [35mSTATE:[39m test-backend-node-wasm.js start face similarity
-2022-11-17 14:21:16 [35mSTATE:[39m test-backend-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856}
-2022-11-17 14:21:16 [35mSTATE:[39m test-backend-node-wasm.js event: image
-2022-11-17 14:21:17 [35mSTATE:[39m test-backend-node-wasm.js event: detect
-2022-11-17 14:21:17 [35mSTATE:[39m test-backend-node-wasm.js passed: detect: samples/in/ai-face.jpg face similarity
-2022-11-17 14:21:17 [32mDATA: [39m 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-17 14:21:17 [32mDATA: [39m test-backend-node-wasm.js result: performance: load: null total: 301
-2022-11-17 14:21:17 [35mSTATE:[39m test-backend-node-wasm.js start face similarity
-2022-11-17 14:21:17 [35mSTATE:[39m test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856}
-2022-11-17 14:21:17 [35mSTATE:[39m test-backend-node-wasm.js event: image
-2022-11-17 14:21:17 [35mSTATE:[39m test-backend-node-wasm.js event: detect
-2022-11-17 14:21:17 [35mSTATE:[39m test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg face similarity
-2022-11-17 14:21:17 [32mDATA: [39m 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-17 14:21:17 [32mDATA: [39m test-backend-node-wasm.js result: performance: load: null total: 326
-2022-11-17 14:21:17 [35mSTATE:[39m test-backend-node-wasm.js start face similarity
-2022-11-17 14:21:17 [35mSTATE:[39m test-backend-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104}
-2022-11-17 14:21:17 [35mSTATE:[39m test-backend-node-wasm.js event: image
-2022-11-17 14:21:17 [35mSTATE:[39m test-backend-node-wasm.js event: detect
-2022-11-17 14:21:17 [35mSTATE:[39m test-backend-node-wasm.js passed: detect: samples/in/ai-upper.jpg face similarity
-2022-11-17 14:21:17 [32mDATA: [39m 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-17 14:21:17 [32mDATA: [39m test-backend-node-wasm.js result: performance: load: null total: 294
-2022-11-17 14:21:17 [35mSTATE:[39m test-backend-node-wasm.js passed: face descriptor
-2022-11-17 14:21:17 [35mSTATE:[39m test-backend-node-wasm.js passed: face similarity {"similarity":[1,0.5266119940661309,0.4858842904087851],"descriptors":[1024,1024,1024]}
-2022-11-17 14:21:17 [36mINFO: [39m test-backend-node-wasm.js test object
-2022-11-17 14:21:17 [35mSTATE:[39m test-backend-node-wasm.js start object
-2022-11-17 14:21:18 [35mSTATE:[39m test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856}
-2022-11-17 14:21:18 [35mSTATE:[39m test-backend-node-wasm.js event: image
-2022-11-17 14:21:18 [35mSTATE:[39m test-backend-node-wasm.js event: detect
-2022-11-17 14:21:18 [35mSTATE:[39m test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg object
-2022-11-17 14:21:18 [32mDATA: [39m 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-17 14:21:18 [32mDATA: [39m test-backend-node-wasm.js result: performance: load: null total: 370
-2022-11-17 14:21:18 [35mSTATE:[39m test-backend-node-wasm.js passed: centernet
-2022-11-17 14:21:18 [35mSTATE:[39m test-backend-node-wasm.js start object
-2022-11-17 14:21:19 [35mSTATE:[39m test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856}
-2022-11-17 14:21:19 [35mSTATE:[39m test-backend-node-wasm.js event: image
-2022-11-17 14:21:19 [35mSTATE:[39m test-backend-node-wasm.js event: detect
-2022-11-17 14:21:19 [35mSTATE:[39m test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg object
-2022-11-17 14:21:19 [32mDATA: [39m 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-17 14:21:19 [32mDATA: [39m test-backend-node-wasm.js result: performance: load: null total: 231
-2022-11-17 14:21:19 [31mERROR:[39m test-backend-node-wasm.js failed: nanodet []
-2022-11-17 14:21:19 [36mINFO: [39m test-backend-node-wasm.js test sensitive
-2022-11-17 14:21:19 [35mSTATE:[39m test-backend-node-wasm.js start sensitive
-2022-11-17 14:21:20 [35mSTATE:[39m test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856}
-2022-11-17 14:21:20 [35mSTATE:[39m test-backend-node-wasm.js event: image
-2022-11-17 14:21:20 [35mSTATE:[39m test-backend-node-wasm.js event: detect
-2022-11-17 14:21:20 [35mSTATE:[39m test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg sensitive
-2022-11-17 14:21:20 [32mDATA: [39m 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-17 14:21:20 [32mDATA: [39m test-backend-node-wasm.js result: performance: load: null total: 272
-2022-11-17 14:21:20 [35mSTATE:[39m test-backend-node-wasm.js passed: sensitive result match
-2022-11-17 14:21:20 [35mSTATE:[39m test-backend-node-wasm.js passed: sensitive face result match
-2022-11-17 14:21:20 [35mSTATE:[39m 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-17 14:21:20 [35mSTATE:[39m test-backend-node-wasm.js passed: sensitive body result match
-2022-11-17 14:21:20 [35mSTATE:[39m test-backend-node-wasm.js passed: sensitive hand result match
-2022-11-17 14:21:20 [36mINFO: [39m test-backend-node-wasm.js test body
-2022-11-17 14:21:20 [35mSTATE:[39m test-backend-node-wasm.js start blazepose
-2022-11-17 14:21:23 [35mSTATE:[39m test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856}
-2022-11-17 14:21:23 [35mSTATE:[39m test-backend-node-wasm.js event: image
-2022-11-17 14:21:23 [35mSTATE:[39m test-backend-node-wasm.js event: detect
-2022-11-17 14:21:23 [35mSTATE:[39m test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg blazepose
-2022-11-17 14:21:23 [32mDATA: [39m 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-17 14:21:23 [32mDATA: [39m test-backend-node-wasm.js result: performance: load: null total: 394
-2022-11-17 14:21:23 [35mSTATE:[39m test-backend-node-wasm.js passed: blazepose
-2022-11-17 14:21:23 [35mSTATE:[39m test-backend-node-wasm.js start efficientpose
-2022-11-17 14:21:24 [35mSTATE:[39m test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856}
-2022-11-17 14:21:24 [35mSTATE:[39m test-backend-node-wasm.js event: image
-2022-11-17 14:21:25 [35mSTATE:[39m test-backend-node-wasm.js event: detect
-2022-11-17 14:21:25 [35mSTATE:[39m test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg efficientpose
-2022-11-17 14:21:25 [32mDATA: [39m 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-17 14:21:25 [32mDATA: [39m test-backend-node-wasm.js result: performance: load: null total: 667
-2022-11-17 14:21:25 [35mSTATE:[39m test-backend-node-wasm.js passed: efficientpose
-2022-11-17 14:21:25 [35mSTATE:[39m test-backend-node-wasm.js start posenet
-2022-11-17 14:21:26 [35mSTATE:[39m test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856}
-2022-11-17 14:21:26 [35mSTATE:[39m test-backend-node-wasm.js event: image
-2022-11-17 14:21:26 [35mSTATE:[39m test-backend-node-wasm.js event: detect
-2022-11-17 14:21:26 [35mSTATE:[39m test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg posenet
-2022-11-17 14:21:26 [32mDATA: [39m 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-17 14:21:26 [32mDATA: [39m test-backend-node-wasm.js result: performance: load: null total: 297
-2022-11-17 14:21:26 [35mSTATE:[39m test-backend-node-wasm.js passed: posenet
-2022-11-17 14:21:26 [35mSTATE:[39m test-backend-node-wasm.js start movenet
-2022-11-17 14:21:26 [35mSTATE:[39m test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856}
-2022-11-17 14:21:26 [35mSTATE:[39m test-backend-node-wasm.js event: image
-2022-11-17 14:21:26 [35mSTATE:[39m test-backend-node-wasm.js event: detect
-2022-11-17 14:21:26 [35mSTATE:[39m test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg movenet
-2022-11-17 14:21:26 [32mDATA: [39m 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-17 14:21:26 [32mDATA: [39m test-backend-node-wasm.js result: performance: load: null total: 232
-2022-11-17 14:21:26 [35mSTATE:[39m test-backend-node-wasm.js passed: movenet
-2022-11-17 14:21:26 [36mINFO: [39m test-backend-node-wasm.js test face matching
-2022-11-17 14:21:26 [35mSTATE:[39m test-backend-node-wasm.js passed: face database 40
-2022-11-17 14:21:26 [35mSTATE:[39m 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-17 14:21:26 [36mINFO: [39m test-backend-node-wasm.js test face similarity alternative
-2022-11-17 14:21:26 [35mSTATE:[39m test-backend-node-wasm.js start face embeddings
-2022-11-17 14:21:27 [35mSTATE:[39m test-backend-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856}
-2022-11-17 14:21:27 [35mSTATE:[39m test-backend-node-wasm.js event: image
-2022-11-17 14:21:27 [31mERROR:[39m test-backend-node-wasm.js failed: testDetect face embeddings
-2022-11-17 14:21:27 [31mERROR:[39m test-backend-node-wasm.js uncaughtException {"name":"TypeError","message":"Cannot read properties of undefined (reading 'img_inputs')","stack":["TypeError: Cannot read properties of undefined (reading 'img_inputs')"," at /home/vlado/dev/human/node_modules/.pnpm/@tensorflow+tfjs-converter@4.0.0_hdmpc5coifabqk2ogondqkcwg4/node_modules/@tensorflow/tfjs-converter/dist/tf-converter.node.js:30706:69"," at Array.reduce ()"," at GraphModel.normalizeInputs (/home/vlado/dev/human/node_modules/.pnpm/@tensorflow+tfjs-converter@4.0.0_hdmpc5coifabqk2ogondqkcwg4/node_modules/@tensorflow/tfjs-converter/dist/tf-converter.node.js:30705:32)"," at GraphModel.execute (/home/vlado/dev/human/node_modules/.pnpm/@tensorflow+tfjs-converter@4.0.0_hdmpc5coifabqk2ogondqkcwg4/node_modules/@tensorflow/tfjs-converter/dist/tf-converter.node.js:30777:23)"," at /home/vlado/dev/human/dist/human.node-wasm.js:121:37595"," at new Promise ()"," at Z5 (/home/vlado/dev/human/dist/human.node-wasm.js:121:37364)"," at U5 (/home/vlado/dev/human/dist/human.node-wasm.js:121:43414)"," at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"," at async /home/vlado/dev/human/dist/human.node-wasm.js:840:8563"]}
-2022-11-17 14:21:27 [35mSTATE:[39m all tests complete
-2022-11-17 14:21:27 [36mINFO: [39m status {"test":"../demo/nodejs/node.js","passed":1,"failed":0}
-2022-11-17 14:21:27 [36mINFO: [39m status {"test":"../demo/nodejs/node-simple.js","passed":1,"failed":0}
-2022-11-17 14:21:27 [36mINFO: [39m status {"test":"../demo/nodejs/node-event.js","passed":1,"failed":0}
-2022-11-17 14:21:27 [36mINFO: [39m status {"test":"../demo/nodejs/node-similarity.js","passed":1,"failed":0}
-2022-11-17 14:21:27 [36mINFO: [39m status {"test":"../demo/nodejs/node-canvas.js","passed":1,"failed":0}
-2022-11-17 14:21:27 [36mINFO: [39m status {"test":"../demo/nodejs/process-folder.js","passed":1,"failed":0}
-2022-11-17 14:21:27 [36mINFO: [39m status {"test":"../demo/multithread/node-multiprocess.js","passed":1,"failed":0}
-2022-11-17 14:21:27 [36mINFO: [39m status {"test":"../demo/facematch/node-match.js","passed":1,"failed":0}
-2022-11-17 14:21:27 [36mINFO: [39m status {"test":"test-node-load.js","passed":1,"failed":0}
-2022-11-17 14:21:27 [36mINFO: [39m status {"test":"test-node-gear.js","passed":3,"failed":0}
-2022-11-17 14:21:27 [36mINFO: [39m status {"test":"test-backend-node.js","passed":85,"failed":1}
-2022-11-17 14:21:27 [36mINFO: [39m status {"test":"test-backend-node-gpu.js","passed":85,"failed":1}
-2022-11-17 14:21:27 [36mINFO: [39m status {"test":"test-backend-node-wasm.js","passed":85,"failed":2}
-2022-11-17 14:21:27 [36mINFO: [39m failures {"count":4}
-2022-11-17 14:21:27 [33mWARN: [39m failed {"test":"test-backend-node.js","message":["error",["failed:","testDetect face embeddings"]]}
-2022-11-17 14:21:27 [33mWARN: [39m failed {"test":"test-backend-node-gpu.js","message":["error",["failed:","testDetect face embeddings"]]}
-2022-11-17 14:21:27 [33mWARN: [39m failed {"test":"test-backend-node-wasm.js","message":["error",["failed: nanodet",[]]]}
-2022-11-17 14:21:27 [33mWARN: [39m failed {"test":"test-backend-node-wasm.js","message":["error",["failed:","testDetect face embeddings"]]}
+2022-11-18 11:54:19 [36mINFO: [39m @vladmandic/human version 3.0.0
+2022-11-18 11:54:19 [36mINFO: [39m User: vlado Platform: linux Arch: x64 Node: v19.1.0
+2022-11-18 11:54:19 [36mINFO: [39m 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":[]}]
+2022-11-18 11:54:19 [36mINFO: [39m {"cmd":"../demo/nodejs/node.js","args":[]} start
+2022-11-18 11:54:20 [36mINFO: [39m {"cmd":"../demo/nodejs/node-simple.js","args":[]} start
+2022-11-18 11:54:21 [36mINFO: [39m {"cmd":"../demo/nodejs/node-event.js","args":["samples/in/ai-body.jpg"]} start
+2022-11-18 11:54:22 [36mINFO: [39m {"cmd":"../demo/nodejs/node-similarity.js","args":["samples/in/ai-face.jpg","samples/in/ai-upper.jpg"]} start
+2022-11-18 11:54:22 [36mINFO: [39m {"cmd":"../demo/nodejs/node-canvas.js","args":["samples/in/ai-body.jpg","samples/out/ai-body.jpg"]} start
+2022-11-18 11:54:23 [36mINFO: [39m {"cmd":"../demo/nodejs/process-folder.js","args":["samples"]} start
+2022-11-18 11:54:25 [36mINFO: [39m {"cmd":"../demo/multithread/node-multiprocess.js","args":[]} start
+2022-11-18 11:54:37 [36mINFO: [39m {"cmd":"../demo/facematch/node-match.js","args":[]} start
+2022-11-18 11:54:38 [36mINFO: [39m 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-18 11:54:38 [36mINFO: [39m
+2022-11-18 11:54:38 [36mINFO: [39m test-node-load.js start
+2022-11-18 11:54:38 [36mINFO: [39m test-node-load.js load start {"human":"3.0.0","tf":"4.0.0","progress":0}
+2022-11-18 11:54:38 [32mDATA: [39m test-node-load.js load interval {"elapsed":1,"progress":0}
+2022-11-18 11:54:38 [32mDATA: [39m test-node-load.js load interval {"elapsed":10,"progress":0}
+2022-11-18 11:54:38 [32mDATA: [39m test-node-load.js load interval {"elapsed":22,"progress":0.05339166087267679}
+2022-11-18 11:54:38 [32mDATA: [39m test-node-load.js load interval {"elapsed":57,"progress":0.3299591712723044}
+2022-11-18 11:54:38 [32mDATA: [39m test-node-load.js load interval {"elapsed":79,"progress":0.7259096583739463}
+2022-11-18 11:54:38 [35mSTATE:[39m test-node-load.js passed {"progress":1}
+2022-11-18 11:54:38 [36mINFO: [39m test-node-load.js load final {"progress":1}
+2022-11-18 11:54:38 [32mDATA: [39m test-node-load.js load interval {"elapsed":434,"progress":1}
+2022-11-18 11:54:38 [36mINFO: [39m
+2022-11-18 11:54:38 [36mINFO: [39m test-node-gear.js start
+2022-11-18 11:54:39 [32mDATA: [39m test-node-gear.js input: ["samples/in/ai-face.jpg"]
+2022-11-18 11:54:40 [35mSTATE:[39m test-node-gear.js passed: gear faceres samples/in/ai-face.jpg
+2022-11-18 11:54:40 [32mDATA: [39m 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-18 11:54:40 [35mSTATE:[39m test-node-gear.js passed: gear gear samples/in/ai-face.jpg
+2022-11-18 11:54:40 [32mDATA: [39m 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-18 11:54:40 [35mSTATE:[39m test-node-gear.js passed: gear ssrnet samples/in/ai-face.jpg
+2022-11-18 11:54:40 [32mDATA: [39m 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-18 11:54:40 [36mINFO: [39m
+2022-11-18 11:54:40 [36mINFO: [39m test-backend-node.js start
+2022-11-18 11:54:41 [36mINFO: [39m test-backend-node.js test: configuration validation
+2022-11-18 11:54:41 [35mSTATE:[39m test-backend-node.js passed: configuration default validation []
+2022-11-18 11:54:41 [35mSTATE:[39m test-backend-node.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}]
+2022-11-18 11:54:41 [36mINFO: [39m test-backend-node.js test: model load
+2022-11-18 11:54:41 [35mSTATE:[39m test-backend-node.js passed: models loaded 24 11 [{"name":"blazeface","loaded":true,"size":538928,"url":"file://models/blazeface.json"},{"name":"antispoof","loaded":true,"size":853098,"url":"file://models/antispoof.json"},{"name":"liveness","loaded":true,"size":592976,"url":"file://models/liveness.json"},{"name":"faceres","loaded":true,"size":6978814,"url":"file://models/faceres.json"},{"name":"emotion","loaded":true,"size":820516,"url":"file://models/emotion.json"},{"name":"iris","loaded":true,"size":2599092,"url":"file://models/iris.json"},{"name":"facemesh","loaded":true,"size":1477958,"url":"file://models/facemesh.json"},{"name":"gear","loaded":false,"size":0,"url":null},{"name":"ssrnetage","loaded":false,"size":0,"url":null},{"name":"ssrnetgender","loaded":false,"size":0,"url":null},{"name":"mobilefacenet","loaded":false,"size":0,"url":null},{"name":"insightface","loaded":false,"size":0,"url":null},{"name":"blazepose","loaded":false,"size":0,"url":null},{"name":"blazeposedetect","loaded":false,"size":0,"url":null},{"name":"efficientpose","loaded":false,"size":0,"url":null},{"name":"movenet","loaded":true,"size":4650216,"url":"file://models/movenet-lightning.json"},{"name":"posenet","loaded":false,"size":0,"url":null},{"name":"handtrack","loaded":true,"size":2964837,"url":"file://models/handtrack.json"},{"name":"handskeleton","loaded":true,"size":0},{"name":"centernet","loaded":true,"size":4030290,"url":"file://models/centernet.json"},{"name":"nanodet","loaded":false,"size":0,"url":null},{"name":"selfie","loaded":false,"size":0,"url":null},{"name":"meet","loaded":false,"size":0,"url":null},{"name":"rvm","loaded":false,"size":0,"url":null}]
+2022-11-18 11:54:41 [36mINFO: [39m test-backend-node.js memory: {"memory":{"unreliable":true,"numTensors":1785,"numDataBuffers":1785,"numBytes":63247332}}
+2022-11-18 11:54:41 [36mINFO: [39m test-backend-node.js state: {"state":{"registeredVariables":{},"nextTapeNodeId":0,"numBytes":63247332,"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-18 11:54:41 [36mINFO: [39m test-backend-node.js test: warmup
+2022-11-18 11:54:41 [35mSTATE:[39m test-backend-node.js passed: create human
+2022-11-18 11:54:41 [36mINFO: [39m test-backend-node.js human version: 3.0.0
+2022-11-18 11:54:41 [36mINFO: [39m test-backend-node.js platform: linux x64 agent: NodeJS v19.1.0
+2022-11-18 11:54:41 [36mINFO: [39m test-backend-node.js tfjs version: 4.0.0
+2022-11-18 11:54:41 [36mINFO: [39m 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.0.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-18 11:54:41 [35mSTATE:[39m test-backend-node.js passed: set backend: tensorflow
+2022-11-18 11:54:41 [35mSTATE:[39m test-backend-node.js tensors 1785
+2022-11-18 11:54:41 [35mSTATE:[39m test-backend-node.js passed: load models
+2022-11-18 11:54:41 [35mSTATE:[39m test-backend-node.js result: defined models: 2 loaded models: 2
+2022-11-18 11:54:41 [35mSTATE:[39m test-backend-node.js passed: warmup: none default
+2022-11-18 11:54:41 [32mDATA: [39m test-backend-node.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {}
+2022-11-18 11:54:41 [32mDATA: [39m test-backend-node.js result: performance: load: null total: null
+2022-11-18 11:54:41 [35mSTATE:[39m test-backend-node.js passed: warmup none result match
+2022-11-18 11:54:41 [35mSTATE:[39m test-backend-node.js event: image
+2022-11-18 11:54:41 [35mSTATE:[39m test-backend-node.js event: detect
+2022-11-18 11:54:41 [35mSTATE:[39m test-backend-node.js event: warmup
+2022-11-18 11:54:41 [35mSTATE:[39m test-backend-node.js passed: warmup: face default
+2022-11-18 11:54:41 [32mDATA: [39m test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.42,"keypoints":4}
+2022-11-18 11:54:41 [32mDATA: [39m test-backend-node.js result: performance: load: null total: 403
+2022-11-18 11:54:41 [35mSTATE:[39m test-backend-node.js passed: warmup face result match
+2022-11-18 11:54:41 [35mSTATE:[39m test-backend-node.js event: image
+2022-11-18 11:54:41 [35mSTATE:[39m test-backend-node.js event: detect
+2022-11-18 11:54:41 [35mSTATE:[39m test-backend-node.js event: warmup
+2022-11-18 11:54:41 [35mSTATE:[39m test-backend-node.js passed: warmup: body default
+2022-11-18 11:54:41 [32mDATA: [39m 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-18 11:54:41 [32mDATA: [39m test-backend-node.js result: performance: load: null total: 326
+2022-11-18 11:54:41 [35mSTATE:[39m test-backend-node.js passed: warmup body result match
+2022-11-18 11:54:41 [35mSTATE:[39m 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":"palm up"},{"hand":0,"gesture":"open palm"},{"iris":0,"gesture":"looking left"},{"iris":0,"gesture":"looking up"}]}
+2022-11-18 11:54:41 [36mINFO: [39m test-backend-node.js test: details verification
+2022-11-18 11:54:41 [35mSTATE:[39m test-backend-node.js start default
+2022-11-18 11:54:42 [35mSTATE:[39m test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864}
+2022-11-18 11:54:42 [35mSTATE:[39m test-backend-node.js event: image
+2022-11-18 11:54:42 [35mSTATE:[39m test-backend-node.js event: detect
+2022-11-18 11:54:42 [35mSTATE:[39m test-backend-node.js passed: detect: samples/in/ai-body.jpg default
+2022-11-18 11:54:42 [32mDATA: [39m 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-18 11:54:42 [32mDATA: [39m test-backend-node.js result: performance: load: null total: 308
+2022-11-18 11:54:42 [35mSTATE:[39m test-backend-node.js passed: details face length 1
+2022-11-18 11:54:42 [35mSTATE:[39m test-backend-node.js passed: details face score 1 0.93 1
+2022-11-18 11:54:42 [35mSTATE:[39m test-backend-node.js passed: details face age/gender 23.7 female 0.97 2.34
+2022-11-18 11:54:42 [35mSTATE:[39m test-backend-node.js passed: details face arrays 4 478 1024
+2022-11-18 11:54:42 [35mSTATE:[39m test-backend-node.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"}
+2022-11-18 11:54:42 [35mSTATE:[39m test-backend-node.js passed: details face anti-spoofing 0.79
+2022-11-18 11:54:42 [35mSTATE:[39m test-backend-node.js passed: details face liveness 0.83
+2022-11-18 11:54:42 [35mSTATE:[39m test-backend-node.js passed: details body length 1
+2022-11-18 11:54:42 [35mSTATE:[39m test-backend-node.js passed: details body 0.92 17 6
+2022-11-18 11:54:42 [35mSTATE:[39m test-backend-node.js passed: details hand length 1
+2022-11-18 11:54:42 [35mSTATE:[39m test-backend-node.js passed: details hand 0.51 0.73 point
+2022-11-18 11:54:42 [35mSTATE:[39m test-backend-node.js passed: details hand arrays 21 5 7
+2022-11-18 11:54:42 [35mSTATE:[39m test-backend-node.js passed: details gesture length 7
+2022-11-18 11:54:42 [35mSTATE:[39m test-backend-node.js passed: details gesture first {"face":0,"gesture":"facing right"}
+2022-11-18 11:54:42 [35mSTATE:[39m test-backend-node.js passed: details object length 1
+2022-11-18 11:54:42 [35mSTATE:[39m test-backend-node.js passed: details object 0.72 person
+2022-11-18 11:54:42 [35mSTATE:[39m test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996928}
+2022-11-18 11:54:42 [35mSTATE:[39m test-backend-node.js event: image
+2022-11-18 11:54:42 [35mSTATE:[39m test-backend-node.js event: detect
+2022-11-18 11:54:42 [35mSTATE:[39m test-backend-node.js passed: tensor shape: [1,1200,1200,4] dtype: float32
+2022-11-18 11:54:43 [35mSTATE:[39m test-backend-node.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1371996928}
+2022-11-18 11:54:43 [35mSTATE:[39m test-backend-node.js event: image
+2022-11-18 11:54:43 [35mSTATE:[39m test-backend-node.js event: detect
+2022-11-18 11:54:43 [35mSTATE:[39m test-backend-node.js passed: tensor shape: [1200,1200,4] dtype: float32
+2022-11-18 11:54:43 [35mSTATE:[39m test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864}
+2022-11-18 11:54:43 [35mSTATE:[39m test-backend-node.js event: image
+2022-11-18 11:54:43 [35mSTATE:[39m test-backend-node.js event: detect
+2022-11-18 11:54:43 [35mSTATE:[39m test-backend-node.js passed: tensor shape: [1,1200,1200,3] dtype: float32
+2022-11-18 11:54:44 [35mSTATE:[39m test-backend-node.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1004796864}
+2022-11-18 11:54:44 [35mSTATE:[39m test-backend-node.js event: image
+2022-11-18 11:54:44 [35mSTATE:[39m test-backend-node.js event: detect
+2022-11-18 11:54:44 [35mSTATE:[39m test-backend-node.js passed: tensor shape: [1200,1200,3] dtype: float32
+2022-11-18 11:54:44 [35mSTATE:[39m test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871}
+2022-11-18 11:54:44 [35mSTATE:[39m test-backend-node.js event: image
+2022-11-18 11:54:44 [35mSTATE:[39m test-backend-node.js event: detect
+2022-11-18 11:54:44 [35mSTATE:[39m test-backend-node.js passed: tensor shape: [1,1200,1200,4] dtype: int32
+2022-11-18 11:54:44 [36mINFO: [39m test-backend-node.js test default
+2022-11-18 11:54:44 [35mSTATE:[39m test-backend-node.js start async
+2022-11-18 11:54:45 [35mSTATE:[39m test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864}
+2022-11-18 11:54:45 [35mSTATE:[39m test-backend-node.js event: image
+2022-11-18 11:54:45 [35mSTATE:[39m test-backend-node.js event: detect
+2022-11-18 11:54:45 [35mSTATE:[39m test-backend-node.js passed: detect: samples/in/ai-body.jpg async
+2022-11-18 11:54:45 [32mDATA: [39m 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-18 11:54:45 [32mDATA: [39m test-backend-node.js result: performance: load: null total: 294
+2022-11-18 11:54:45 [35mSTATE:[39m test-backend-node.js passed: default result face match 1 female 0.97
+2022-11-18 11:54:45 [36mINFO: [39m test-backend-node.js test sync
+2022-11-18 11:54:45 [35mSTATE:[39m test-backend-node.js start sync
+2022-11-18 11:54:45 [35mSTATE:[39m test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864}
+2022-11-18 11:54:45 [35mSTATE:[39m test-backend-node.js event: image
+2022-11-18 11:54:45 [35mSTATE:[39m test-backend-node.js event: detect
+2022-11-18 11:54:45 [35mSTATE:[39m test-backend-node.js passed: detect: samples/in/ai-body.jpg sync
+2022-11-18 11:54:45 [32mDATA: [39m 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-18 11:54:45 [32mDATA: [39m test-backend-node.js result: performance: load: null total: 288
+2022-11-18 11:54:45 [35mSTATE:[39m test-backend-node.js passed: default sync 1 female 0.97
+2022-11-18 11:54:45 [36mINFO: [39m test-backend-node.js test: image process
+2022-11-18 11:54:45 [35mSTATE:[39m test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120}
+2022-11-18 11:54:45 [35mSTATE:[39m test-backend-node.js passed: image input null [1,256,256,3]
+2022-11-18 11:54:45 [36mINFO: [39m test-backend-node.js test: image null
+2022-11-18 11:54:45 [35mSTATE:[39m test-backend-node.js passed: invalid input could not convert input to tensor
+2022-11-18 11:54:45 [36mINFO: [39m test-backend-node.js test face similarity
+2022-11-18 11:54:45 [35mSTATE:[39m test-backend-node.js start face similarity
+2022-11-18 11:54:45 [35mSTATE:[39m test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120}
+2022-11-18 11:54:45 [35mSTATE:[39m test-backend-node.js event: image
+2022-11-18 11:54:46 [35mSTATE:[39m test-backend-node.js event: detect
+2022-11-18 11:54:46 [35mSTATE:[39m test-backend-node.js passed: detect: samples/in/ai-face.jpg face similarity
+2022-11-18 11:54:46 [32mDATA: [39m 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-18 11:54:46 [32mDATA: [39m test-backend-node.js result: performance: load: null total: 284
+2022-11-18 11:54:46 [35mSTATE:[39m test-backend-node.js start face similarity
+2022-11-18 11:54:46 [35mSTATE:[39m test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864}
+2022-11-18 11:54:46 [35mSTATE:[39m test-backend-node.js event: image
+2022-11-18 11:54:46 [35mSTATE:[39m test-backend-node.js event: detect
+2022-11-18 11:54:46 [35mSTATE:[39m test-backend-node.js passed: detect: samples/in/ai-body.jpg face similarity
+2022-11-18 11:54:46 [32mDATA: [39m 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-18 11:54:46 [32mDATA: [39m test-backend-node.js result: performance: load: null total: 288
+2022-11-18 11:54:46 [35mSTATE:[39m test-backend-node.js start face similarity
+2022-11-18 11:54:46 [35mSTATE:[39m test-backend-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024}
+2022-11-18 11:54:46 [35mSTATE:[39m test-backend-node.js event: image
+2022-11-18 11:54:46 [35mSTATE:[39m test-backend-node.js event: detect
+2022-11-18 11:54:46 [35mSTATE:[39m test-backend-node.js passed: detect: samples/in/ai-upper.jpg face similarity
+2022-11-18 11:54:46 [32mDATA: [39m 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-18 11:54:46 [32mDATA: [39m test-backend-node.js result: performance: load: null total: 262
+2022-11-18 11:54:46 [35mSTATE:[39m test-backend-node.js passed: face descriptor
+2022-11-18 11:54:46 [35mSTATE:[39m test-backend-node.js passed: face similarity {"similarity":[1,0.44727441595492046,0.556793560189727],"descriptors":[1024,1024,1024]}
+2022-11-18 11:54:46 [36mINFO: [39m test-backend-node.js test object
+2022-11-18 11:54:46 [35mSTATE:[39m test-backend-node.js start object
+2022-11-18 11:54:47 [35mSTATE:[39m test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864}
+2022-11-18 11:54:47 [35mSTATE:[39m test-backend-node.js event: image
+2022-11-18 11:54:47 [35mSTATE:[39m test-backend-node.js event: detect
+2022-11-18 11:54:47 [35mSTATE:[39m test-backend-node.js passed: detect: samples/in/ai-body.jpg object
+2022-11-18 11:54:47 [32mDATA: [39m 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-18 11:54:47 [32mDATA: [39m test-backend-node.js result: performance: load: null total: 298
+2022-11-18 11:54:47 [35mSTATE:[39m test-backend-node.js passed: centernet
+2022-11-18 11:54:47 [35mSTATE:[39m test-backend-node.js start object
+2022-11-18 11:54:48 [35mSTATE:[39m test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864}
+2022-11-18 11:54:48 [35mSTATE:[39m test-backend-node.js event: image
+2022-11-18 11:54:48 [35mSTATE:[39m test-backend-node.js event: detect
+2022-11-18 11:54:48 [35mSTATE:[39m test-backend-node.js passed: detect: samples/in/ai-body.jpg object
+2022-11-18 11:54:48 [32mDATA: [39m 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-18 11:54:48 [32mDATA: [39m test-backend-node.js result: performance: load: null total: 291
+2022-11-18 11:54:48 [35mSTATE:[39m test-backend-node.js passed: nanodet
+2022-11-18 11:54:48 [36mINFO: [39m test-backend-node.js test sensitive
+2022-11-18 11:54:48 [35mSTATE:[39m test-backend-node.js start sensitive
+2022-11-18 11:54:49 [35mSTATE:[39m test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864}
+2022-11-18 11:54:49 [35mSTATE:[39m test-backend-node.js event: image
+2022-11-18 11:54:49 [35mSTATE:[39m test-backend-node.js event: detect
+2022-11-18 11:54:49 [35mSTATE:[39m test-backend-node.js passed: detect: samples/in/ai-body.jpg sensitive
+2022-11-18 11:54:49 [32mDATA: [39m 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-18 11:54:49 [32mDATA: [39m test-backend-node.js result: performance: load: null total: 261
+2022-11-18 11:54:49 [35mSTATE:[39m test-backend-node.js passed: sensitive result match
+2022-11-18 11:54:49 [35mSTATE:[39m test-backend-node.js passed: sensitive face result match
+2022-11-18 11:54:49 [35mSTATE:[39m test-backend-node.js passed: sensitive face emotion result [{"score":0.59,"emotion":"angry"},{"score":0.29,"emotion":"fear"}]
+2022-11-18 11:54:49 [35mSTATE:[39m test-backend-node.js passed: sensitive body result match
+2022-11-18 11:54:49 [35mSTATE:[39m test-backend-node.js passed: sensitive hand result match
+2022-11-18 11:54:49 [36mINFO: [39m test-backend-node.js test body
+2022-11-18 11:54:49 [35mSTATE:[39m test-backend-node.js start blazepose
+2022-11-18 11:54:51 [35mSTATE:[39m test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864}
+2022-11-18 11:54:51 [35mSTATE:[39m test-backend-node.js event: image
+2022-11-18 11:54:51 [35mSTATE:[39m test-backend-node.js event: detect
+2022-11-18 11:54:51 [35mSTATE:[39m test-backend-node.js passed: detect: samples/in/ai-body.jpg blazepose
+2022-11-18 11:54:51 [32mDATA: [39m 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-18 11:54:51 [32mDATA: [39m test-backend-node.js result: performance: load: null total: 333
+2022-11-18 11:54:51 [35mSTATE:[39m test-backend-node.js passed: blazepose
+2022-11-18 11:54:51 [35mSTATE:[39m test-backend-node.js start efficientpose
+2022-11-18 11:54:52 [35mSTATE:[39m test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864}
+2022-11-18 11:54:52 [35mSTATE:[39m test-backend-node.js event: image
+2022-11-18 11:54:52 [35mSTATE:[39m test-backend-node.js event: detect
+2022-11-18 11:54:52 [35mSTATE:[39m test-backend-node.js passed: detect: samples/in/ai-body.jpg efficientpose
+2022-11-18 11:54:52 [32mDATA: [39m 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-18 11:54:52 [32mDATA: [39m test-backend-node.js result: performance: load: null total: 300
+2022-11-18 11:54:52 [35mSTATE:[39m test-backend-node.js passed: efficientpose
+2022-11-18 11:54:52 [35mSTATE:[39m test-backend-node.js start posenet
+2022-11-18 11:54:53 [35mSTATE:[39m test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864}
+2022-11-18 11:54:53 [35mSTATE:[39m test-backend-node.js event: image
+2022-11-18 11:54:53 [35mSTATE:[39m test-backend-node.js event: detect
+2022-11-18 11:54:53 [35mSTATE:[39m test-backend-node.js passed: detect: samples/in/ai-body.jpg posenet
+2022-11-18 11:54:53 [32mDATA: [39m 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-18 11:54:53 [32mDATA: [39m test-backend-node.js result: performance: load: null total: 245
+2022-11-18 11:54:53 [35mSTATE:[39m test-backend-node.js passed: posenet
+2022-11-18 11:54:53 [35mSTATE:[39m test-backend-node.js start movenet
+2022-11-18 11:54:54 [35mSTATE:[39m test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864}
+2022-11-18 11:54:54 [35mSTATE:[39m test-backend-node.js event: image
+2022-11-18 11:54:54 [35mSTATE:[39m test-backend-node.js event: detect
+2022-11-18 11:54:54 [35mSTATE:[39m test-backend-node.js passed: detect: samples/in/ai-body.jpg movenet
+2022-11-18 11:54:54 [32mDATA: [39m 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-18 11:54:54 [32mDATA: [39m test-backend-node.js result: performance: load: null total: 251
+2022-11-18 11:54:54 [35mSTATE:[39m test-backend-node.js passed: movenet
+2022-11-18 11:54:54 [36mINFO: [39m test-backend-node.js test face matching
+2022-11-18 11:54:54 [35mSTATE:[39m test-backend-node.js passed: face database 40
+2022-11-18 11:54:54 [35mSTATE:[39m 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-18 11:54:54 [36mINFO: [39m test-backend-node.js test face similarity alternative
+2022-11-18 11:54:54 [35mSTATE:[39m test-backend-node.js start face embeddings
+2022-11-18 11:54:54 [35mSTATE:[39m test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120}
+2022-11-18 11:54:54 [35mSTATE:[39m test-backend-node.js event: image
+2022-11-18 11:54:55 [31mERROR:[39m test-backend-node.js failed: testDetect face embeddings
+2022-11-18 11:54:55 [31mERROR:[39m test-backend-node.js uncaughtException {"name":"TypeError","message":"Cannot read properties of undefined (reading 'img_inputs')","stack":["TypeError: Cannot read properties of undefined (reading 'img_inputs')"," at /home/vlado/dev/human/node_modules/.pnpm/@tensorflow+tfjs-converter@4.0.0_hdmpc5coifabqk2ogondqkcwg4/node_modules/@tensorflow/tfjs-converter/dist/tf-converter.node.js:30706:69"," at Array.reduce ()"," at GraphModel.normalizeInputs (/home/vlado/dev/human/node_modules/.pnpm/@tensorflow+tfjs-converter@4.0.0_hdmpc5coifabqk2ogondqkcwg4/node_modules/@tensorflow/tfjs-converter/dist/tf-converter.node.js:30705:32)"," at GraphModel.execute (/home/vlado/dev/human/node_modules/.pnpm/@tensorflow+tfjs-converter@4.0.0_hdmpc5coifabqk2ogondqkcwg4/node_modules/@tensorflow/tfjs-converter/dist/tf-converter.node.js:30777:23)"," at /home/vlado/dev/human/dist/human.node.js:121:37595"," at new Promise ()"," at B5 (/home/vlado/dev/human/dist/human.node.js:121:37364)"," at V5 (/home/vlado/dev/human/dist/human.node.js:121:43414)"," at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"," at async /home/vlado/dev/human/dist/human.node.js:840:8294"]}
+2022-11-18 11:54:55 [36mINFO: [39m
+2022-11-18 11:54:55 [36mINFO: [39m test-backend-node-gpu.js start
+2022-11-18 11:54:55 [36mINFO: [39m test-backend-node-gpu.js test: configuration validation
+2022-11-18 11:54:55 [35mSTATE:[39m test-backend-node-gpu.js passed: configuration default validation []
+2022-11-18 11:54:55 [35mSTATE:[39m test-backend-node-gpu.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}]
+2022-11-18 11:54:55 [36mINFO: [39m test-backend-node-gpu.js test: model load
+2022-11-18 11:54:55 [35mSTATE:[39m test-backend-node-gpu.js passed: models loaded 24 11 [{"name":"blazeface","loaded":true,"size":538928,"url":"file://models/blazeface.json"},{"name":"antispoof","loaded":true,"size":853098,"url":"file://models/antispoof.json"},{"name":"liveness","loaded":true,"size":592976,"url":"file://models/liveness.json"},{"name":"faceres","loaded":true,"size":6978814,"url":"file://models/faceres.json"},{"name":"emotion","loaded":true,"size":820516,"url":"file://models/emotion.json"},{"name":"iris","loaded":true,"size":2599092,"url":"file://models/iris.json"},{"name":"facemesh","loaded":true,"size":1477958,"url":"file://models/facemesh.json"},{"name":"gear","loaded":false,"size":0,"url":null},{"name":"ssrnetage","loaded":false,"size":0,"url":null},{"name":"ssrnetgender","loaded":false,"size":0,"url":null},{"name":"mobilefacenet","loaded":false,"size":0,"url":null},{"name":"insightface","loaded":false,"size":0,"url":null},{"name":"blazepose","loaded":false,"size":0,"url":null},{"name":"blazeposedetect","loaded":false,"size":0,"url":null},{"name":"efficientpose","loaded":false,"size":0,"url":null},{"name":"movenet","loaded":true,"size":4650216,"url":"file://models/movenet-lightning.json"},{"name":"posenet","loaded":false,"size":0,"url":null},{"name":"handtrack","loaded":true,"size":2964837,"url":"file://models/handtrack.json"},{"name":"handskeleton","loaded":true,"size":0},{"name":"centernet","loaded":true,"size":4030290,"url":"file://models/centernet.json"},{"name":"nanodet","loaded":false,"size":0,"url":null},{"name":"selfie","loaded":false,"size":0,"url":null},{"name":"meet","loaded":false,"size":0,"url":null},{"name":"rvm","loaded":false,"size":0,"url":null}]
+2022-11-18 11:54:55 [36mINFO: [39m test-backend-node-gpu.js memory: {"memory":{"unreliable":true,"numTensors":1785,"numDataBuffers":1785,"numBytes":63247332}}
+2022-11-18 11:54:55 [36mINFO: [39m test-backend-node-gpu.js state: {"state":{"registeredVariables":{},"nextTapeNodeId":0,"numBytes":63247332,"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-18 11:54:55 [36mINFO: [39m test-backend-node-gpu.js test: warmup
+2022-11-18 11:54:55 [35mSTATE:[39m test-backend-node-gpu.js passed: create human
+2022-11-18 11:54:55 [36mINFO: [39m test-backend-node-gpu.js human version: 3.0.0
+2022-11-18 11:54:55 [36mINFO: [39m test-backend-node-gpu.js platform: linux x64 agent: NodeJS v19.1.0
+2022-11-18 11:54:55 [36mINFO: [39m test-backend-node-gpu.js tfjs version: 4.0.0
+2022-11-18 11:54:55 [36mINFO: [39m 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.0.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-18 11:54:55 [35mSTATE:[39m test-backend-node-gpu.js passed: set backend: tensorflow
+2022-11-18 11:54:55 [35mSTATE:[39m test-backend-node-gpu.js tensors 1785
+2022-11-18 11:54:55 [35mSTATE:[39m test-backend-node-gpu.js passed: load models
+2022-11-18 11:54:55 [35mSTATE:[39m test-backend-node-gpu.js result: defined models: 2 loaded models: 2
+2022-11-18 11:54:55 [35mSTATE:[39m test-backend-node-gpu.js passed: warmup: none default
+2022-11-18 11:54:55 [32mDATA: [39m test-backend-node-gpu.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {}
+2022-11-18 11:54:55 [32mDATA: [39m test-backend-node-gpu.js result: performance: load: null total: null
+2022-11-18 11:54:55 [35mSTATE:[39m test-backend-node-gpu.js passed: warmup none result match
+2022-11-18 11:54:56 [35mSTATE:[39m test-backend-node-gpu.js event: image
+2022-11-18 11:54:59 [35mSTATE:[39m test-backend-node-gpu.js event: detect
+2022-11-18 11:54:59 [35mSTATE:[39m test-backend-node-gpu.js event: warmup
+2022-11-18 11:54:59 [35mSTATE:[39m test-backend-node-gpu.js passed: warmup: face default
+2022-11-18 11:54:59 [32mDATA: [39m test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.42,"keypoints":4}
+2022-11-18 11:54:59 [32mDATA: [39m test-backend-node-gpu.js result: performance: load: null total: 3308
+2022-11-18 11:54:59 [35mSTATE:[39m test-backend-node-gpu.js passed: warmup face result match
+2022-11-18 11:54:59 [35mSTATE:[39m test-backend-node-gpu.js event: image
+2022-11-18 11:54:59 [35mSTATE:[39m test-backend-node-gpu.js event: detect
+2022-11-18 11:54:59 [35mSTATE:[39m test-backend-node-gpu.js event: warmup
+2022-11-18 11:54:59 [35mSTATE:[39m test-backend-node-gpu.js passed: warmup: body default
+2022-11-18 11:54:59 [32mDATA: [39m 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-18 11:54:59 [32mDATA: [39m test-backend-node-gpu.js result: performance: load: null total: 174
+2022-11-18 11:54:59 [35mSTATE:[39m test-backend-node-gpu.js passed: warmup body result match
+2022-11-18 11:54:59 [35mSTATE:[39m 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":"palm up"},{"hand":0,"gesture":"open palm"},{"iris":0,"gesture":"looking left"},{"iris":0,"gesture":"looking up"}]}
+2022-11-18 11:54:59 [36mINFO: [39m test-backend-node-gpu.js test: details verification
+2022-11-18 11:54:59 [35mSTATE:[39m test-backend-node-gpu.js start default
+2022-11-18 11:54:59 [35mSTATE:[39m test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928}
+2022-11-18 11:54:59 [35mSTATE:[39m test-backend-node-gpu.js event: image
+2022-11-18 11:55:00 [35mSTATE:[39m test-backend-node-gpu.js event: detect
+2022-11-18 11:55:00 [35mSTATE:[39m test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg default
+2022-11-18 11:55:00 [32mDATA: [39m 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-18 11:55:00 [32mDATA: [39m test-backend-node-gpu.js result: performance: load: null total: 154
+2022-11-18 11:55:00 [35mSTATE:[39m test-backend-node-gpu.js passed: details face length 1
+2022-11-18 11:55:00 [35mSTATE:[39m test-backend-node-gpu.js passed: details face score 1 0.93 1
+2022-11-18 11:55:00 [35mSTATE:[39m test-backend-node-gpu.js passed: details face age/gender 23.7 female 0.97 2.34
+2022-11-18 11:55:00 [35mSTATE:[39m test-backend-node-gpu.js passed: details face arrays 4 478 1024
+2022-11-18 11:55:00 [35mSTATE:[39m test-backend-node-gpu.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"}
+2022-11-18 11:55:00 [35mSTATE:[39m test-backend-node-gpu.js passed: details face anti-spoofing 0.79
+2022-11-18 11:55:00 [35mSTATE:[39m test-backend-node-gpu.js passed: details face liveness 0.83
+2022-11-18 11:55:00 [35mSTATE:[39m test-backend-node-gpu.js passed: details body length 1
+2022-11-18 11:55:00 [35mSTATE:[39m test-backend-node-gpu.js passed: details body 0.92 17 6
+2022-11-18 11:55:00 [35mSTATE:[39m test-backend-node-gpu.js passed: details hand length 1
+2022-11-18 11:55:00 [35mSTATE:[39m test-backend-node-gpu.js passed: details hand 0.51 0.73 point
+2022-11-18 11:55:00 [35mSTATE:[39m test-backend-node-gpu.js passed: details hand arrays 21 5 7
+2022-11-18 11:55:00 [35mSTATE:[39m test-backend-node-gpu.js passed: details gesture length 7
+2022-11-18 11:55:00 [35mSTATE:[39m test-backend-node-gpu.js passed: details gesture first {"face":0,"gesture":"facing right"}
+2022-11-18 11:55:00 [35mSTATE:[39m test-backend-node-gpu.js passed: details object length 1
+2022-11-18 11:55:00 [35mSTATE:[39m test-backend-node-gpu.js passed: details object 0.72 person
+2022-11-18 11:55:00 [35mSTATE:[39m test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996928}
+2022-11-18 11:55:00 [35mSTATE:[39m test-backend-node-gpu.js event: image
+2022-11-18 11:55:00 [35mSTATE:[39m test-backend-node-gpu.js event: detect
+2022-11-18 11:55:00 [35mSTATE:[39m test-backend-node-gpu.js passed: tensor shape: [1,1200,1200,4] dtype: float32
+2022-11-18 11:55:00 [35mSTATE:[39m test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1371996928}
+2022-11-18 11:55:00 [35mSTATE:[39m test-backend-node-gpu.js event: image
+2022-11-18 11:55:00 [35mSTATE:[39m test-backend-node-gpu.js event: detect
+2022-11-18 11:55:00 [35mSTATE:[39m test-backend-node-gpu.js passed: tensor shape: [1200,1200,4] dtype: float32
+2022-11-18 11:55:00 [35mSTATE:[39m test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928}
+2022-11-18 11:55:00 [35mSTATE:[39m test-backend-node-gpu.js event: image
+2022-11-18 11:55:01 [35mSTATE:[39m test-backend-node-gpu.js event: detect
+2022-11-18 11:55:01 [35mSTATE:[39m test-backend-node-gpu.js passed: tensor shape: [1,1200,1200,3] dtype: float32
+2022-11-18 11:55:01 [35mSTATE:[39m test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1004796928}
+2022-11-18 11:55:01 [35mSTATE:[39m test-backend-node-gpu.js event: image
+2022-11-18 11:55:01 [35mSTATE:[39m test-backend-node-gpu.js event: detect
+2022-11-18 11:55:01 [35mSTATE:[39m test-backend-node-gpu.js passed: tensor shape: [1200,1200,3] dtype: float32
+2022-11-18 11:55:01 [35mSTATE:[39m test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871}
+2022-11-18 11:55:01 [35mSTATE:[39m test-backend-node-gpu.js event: image
+2022-11-18 11:55:01 [35mSTATE:[39m test-backend-node-gpu.js event: detect
+2022-11-18 11:55:01 [35mSTATE:[39m test-backend-node-gpu.js passed: tensor shape: [1,1200,1200,4] dtype: int32
+2022-11-18 11:55:01 [36mINFO: [39m test-backend-node-gpu.js test default
+2022-11-18 11:55:01 [35mSTATE:[39m test-backend-node-gpu.js start async
+2022-11-18 11:55:01 [35mSTATE:[39m test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928}
+2022-11-18 11:55:01 [35mSTATE:[39m test-backend-node-gpu.js event: image
+2022-11-18 11:55:02 [35mSTATE:[39m test-backend-node-gpu.js event: detect
+2022-11-18 11:55:02 [35mSTATE:[39m test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg async
+2022-11-18 11:55:02 [32mDATA: [39m 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-18 11:55:02 [32mDATA: [39m test-backend-node-gpu.js result: performance: load: null total: 144
+2022-11-18 11:55:02 [35mSTATE:[39m test-backend-node-gpu.js passed: default result face match 1 female 0.97
+2022-11-18 11:55:02 [36mINFO: [39m test-backend-node-gpu.js test sync
+2022-11-18 11:55:02 [35mSTATE:[39m test-backend-node-gpu.js start sync
+2022-11-18 11:55:02 [35mSTATE:[39m test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928}
+2022-11-18 11:55:02 [35mSTATE:[39m test-backend-node-gpu.js event: image
+2022-11-18 11:55:02 [35mSTATE:[39m test-backend-node-gpu.js event: detect
+2022-11-18 11:55:02 [35mSTATE:[39m test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg sync
+2022-11-18 11:55:02 [32mDATA: [39m 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-18 11:55:02 [32mDATA: [39m test-backend-node-gpu.js result: performance: load: null total: 140
+2022-11-18 11:55:02 [35mSTATE:[39m test-backend-node-gpu.js passed: default sync 1 female 0.97
+2022-11-18 11:55:02 [36mINFO: [39m test-backend-node-gpu.js test: image process
+2022-11-18 11:55:02 [35mSTATE:[39m test-backend-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120}
+2022-11-18 11:55:02 [35mSTATE:[39m test-backend-node-gpu.js passed: image input null [1,256,256,3]
+2022-11-18 11:55:02 [36mINFO: [39m test-backend-node-gpu.js test: image null
+2022-11-18 11:55:02 [35mSTATE:[39m test-backend-node-gpu.js passed: invalid input could not convert input to tensor
+2022-11-18 11:55:02 [36mINFO: [39m test-backend-node-gpu.js test face similarity
+2022-11-18 11:55:02 [35mSTATE:[39m test-backend-node-gpu.js start face similarity
+2022-11-18 11:55:02 [35mSTATE:[39m test-backend-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120}
+2022-11-18 11:55:02 [35mSTATE:[39m test-backend-node-gpu.js event: image
+2022-11-18 11:55:02 [35mSTATE:[39m test-backend-node-gpu.js event: detect
+2022-11-18 11:55:02 [35mSTATE:[39m test-backend-node-gpu.js passed: detect: samples/in/ai-face.jpg face similarity
+2022-11-18 11:55:02 [32mDATA: [39m 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-18 11:55:02 [32mDATA: [39m test-backend-node-gpu.js result: performance: load: null total: 133
+2022-11-18 11:55:02 [35mSTATE:[39m test-backend-node-gpu.js start face similarity
+2022-11-18 11:55:02 [35mSTATE:[39m test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928}
+2022-11-18 11:55:02 [35mSTATE:[39m test-backend-node-gpu.js event: image
+2022-11-18 11:55:02 [35mSTATE:[39m test-backend-node-gpu.js event: detect
+2022-11-18 11:55:02 [35mSTATE:[39m test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg face similarity
+2022-11-18 11:55:02 [32mDATA: [39m 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-18 11:55:02 [32mDATA: [39m test-backend-node-gpu.js result: performance: load: null total: 133
+2022-11-18 11:55:02 [35mSTATE:[39m test-backend-node-gpu.js start face similarity
+2022-11-18 11:55:02 [35mSTATE:[39m test-backend-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056}
+2022-11-18 11:55:02 [35mSTATE:[39m test-backend-node-gpu.js event: image
+2022-11-18 11:55:03 [35mSTATE:[39m test-backend-node-gpu.js event: detect
+2022-11-18 11:55:03 [35mSTATE:[39m test-backend-node-gpu.js passed: detect: samples/in/ai-upper.jpg face similarity
+2022-11-18 11:55:03 [32mDATA: [39m 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-18 11:55:03 [32mDATA: [39m test-backend-node-gpu.js result: performance: load: null total: 117
+2022-11-18 11:55:03 [35mSTATE:[39m test-backend-node-gpu.js passed: face descriptor
+2022-11-18 11:55:03 [35mSTATE:[39m test-backend-node-gpu.js passed: face similarity {"similarity":[1,0.4475002983522097,0.5570879556505012],"descriptors":[1024,1024,1024]}
+2022-11-18 11:55:03 [36mINFO: [39m test-backend-node-gpu.js test object
+2022-11-18 11:55:03 [35mSTATE:[39m test-backend-node-gpu.js start object
+2022-11-18 11:55:03 [35mSTATE:[39m test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928}
+2022-11-18 11:55:03 [35mSTATE:[39m test-backend-node-gpu.js event: image
+2022-11-18 11:55:03 [35mSTATE:[39m test-backend-node-gpu.js event: detect
+2022-11-18 11:55:03 [35mSTATE:[39m test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg object
+2022-11-18 11:55:03 [32mDATA: [39m 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-18 11:55:03 [32mDATA: [39m test-backend-node-gpu.js result: performance: load: null total: 130
+2022-11-18 11:55:03 [35mSTATE:[39m test-backend-node-gpu.js passed: centernet
+2022-11-18 11:55:03 [35mSTATE:[39m test-backend-node-gpu.js start object
+2022-11-18 11:55:04 [35mSTATE:[39m test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928}
+2022-11-18 11:55:04 [35mSTATE:[39m test-backend-node-gpu.js event: image
+2022-11-18 11:55:05 [35mSTATE:[39m test-backend-node-gpu.js event: detect
+2022-11-18 11:55:05 [35mSTATE:[39m test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg object
+2022-11-18 11:55:05 [32mDATA: [39m 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-18 11:55:05 [32mDATA: [39m test-backend-node-gpu.js result: performance: load: null total: 523
+2022-11-18 11:55:05 [35mSTATE:[39m test-backend-node-gpu.js passed: nanodet
+2022-11-18 11:55:05 [36mINFO: [39m test-backend-node-gpu.js test sensitive
+2022-11-18 11:55:05 [35mSTATE:[39m test-backend-node-gpu.js start sensitive
+2022-11-18 11:55:05 [35mSTATE:[39m test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928}
+2022-11-18 11:55:05 [35mSTATE:[39m test-backend-node-gpu.js event: image
+2022-11-18 11:55:05 [35mSTATE:[39m test-backend-node-gpu.js event: detect
+2022-11-18 11:55:05 [35mSTATE:[39m test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg sensitive
+2022-11-18 11:55:05 [32mDATA: [39m 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-18 11:55:05 [32mDATA: [39m test-backend-node-gpu.js result: performance: load: null total: 124
+2022-11-18 11:55:05 [35mSTATE:[39m test-backend-node-gpu.js passed: sensitive result match
+2022-11-18 11:55:05 [35mSTATE:[39m test-backend-node-gpu.js passed: sensitive face result match
+2022-11-18 11:55:05 [35mSTATE:[39m test-backend-node-gpu.js passed: sensitive face emotion result [{"score":0.59,"emotion":"angry"},{"score":0.29,"emotion":"fear"}]
+2022-11-18 11:55:05 [35mSTATE:[39m test-backend-node-gpu.js passed: sensitive body result match
+2022-11-18 11:55:05 [35mSTATE:[39m test-backend-node-gpu.js passed: sensitive hand result match
+2022-11-18 11:55:05 [36mINFO: [39m test-backend-node-gpu.js test body
+2022-11-18 11:55:05 [35mSTATE:[39m test-backend-node-gpu.js start blazepose
+2022-11-18 11:55:07 [35mSTATE:[39m test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928}
+2022-11-18 11:55:07 [35mSTATE:[39m test-backend-node-gpu.js event: image
+2022-11-18 11:55:07 [35mSTATE:[39m test-backend-node-gpu.js event: detect
+2022-11-18 11:55:07 [35mSTATE:[39m test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg blazepose
+2022-11-18 11:55:07 [32mDATA: [39m 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-18 11:55:07 [32mDATA: [39m test-backend-node-gpu.js result: performance: load: null total: 230
+2022-11-18 11:55:07 [35mSTATE:[39m test-backend-node-gpu.js passed: blazepose
+2022-11-18 11:55:07 [35mSTATE:[39m test-backend-node-gpu.js start efficientpose
+2022-11-18 11:55:07 [35mSTATE:[39m test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928}
+2022-11-18 11:55:07 [35mSTATE:[39m test-backend-node-gpu.js event: image
+2022-11-18 11:55:08 [35mSTATE:[39m test-backend-node-gpu.js event: detect
+2022-11-18 11:55:08 [35mSTATE:[39m test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg efficientpose
+2022-11-18 11:55:08 [32mDATA: [39m 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-18 11:55:08 [32mDATA: [39m test-backend-node-gpu.js result: performance: load: null total: 1013
+2022-11-18 11:55:08 [35mSTATE:[39m test-backend-node-gpu.js passed: efficientpose
+2022-11-18 11:55:08 [35mSTATE:[39m test-backend-node-gpu.js start posenet
+2022-11-18 11:55:09 [35mSTATE:[39m test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928}
+2022-11-18 11:55:09 [35mSTATE:[39m test-backend-node-gpu.js event: image
+2022-11-18 11:55:09 [35mSTATE:[39m test-backend-node-gpu.js event: detect
+2022-11-18 11:55:09 [35mSTATE:[39m test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg posenet
+2022-11-18 11:55:09 [32mDATA: [39m 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-18 11:55:09 [32mDATA: [39m test-backend-node-gpu.js result: performance: load: null total: 132
+2022-11-18 11:55:09 [35mSTATE:[39m test-backend-node-gpu.js passed: posenet
+2022-11-18 11:55:09 [35mSTATE:[39m test-backend-node-gpu.js start movenet
+2022-11-18 11:55:09 [35mSTATE:[39m test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928}
+2022-11-18 11:55:09 [35mSTATE:[39m test-backend-node-gpu.js event: image
+2022-11-18 11:55:09 [35mSTATE:[39m test-backend-node-gpu.js event: detect
+2022-11-18 11:55:09 [35mSTATE:[39m test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg movenet
+2022-11-18 11:55:09 [32mDATA: [39m 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-18 11:55:09 [32mDATA: [39m test-backend-node-gpu.js result: performance: load: null total: 93
+2022-11-18 11:55:09 [35mSTATE:[39m test-backend-node-gpu.js passed: movenet
+2022-11-18 11:55:09 [36mINFO: [39m test-backend-node-gpu.js test face matching
+2022-11-18 11:55:09 [35mSTATE:[39m test-backend-node-gpu.js passed: face database 40
+2022-11-18 11:55:09 [35mSTATE:[39m 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-18 11:55:09 [36mINFO: [39m test-backend-node-gpu.js test face similarity alternative
+2022-11-18 11:55:09 [35mSTATE:[39m test-backend-node-gpu.js start face embeddings
+2022-11-18 11:55:10 [35mSTATE:[39m test-backend-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120}
+2022-11-18 11:55:10 [35mSTATE:[39m test-backend-node-gpu.js event: image
+2022-11-18 11:55:10 [31mERROR:[39m test-backend-node-gpu.js failed: testDetect face embeddings
+2022-11-18 11:55:10 [31mERROR:[39m test-backend-node-gpu.js uncaughtException {"name":"TypeError","message":"Cannot read properties of undefined (reading 'img_inputs')","stack":["TypeError: Cannot read properties of undefined (reading 'img_inputs')"," at /home/vlado/dev/human/node_modules/.pnpm/@tensorflow+tfjs-converter@4.0.0_hdmpc5coifabqk2ogondqkcwg4/node_modules/@tensorflow/tfjs-converter/dist/tf-converter.node.js:30706:69"," at Array.reduce ()"," at GraphModel.normalizeInputs (/home/vlado/dev/human/node_modules/.pnpm/@tensorflow+tfjs-converter@4.0.0_hdmpc5coifabqk2ogondqkcwg4/node_modules/@tensorflow/tfjs-converter/dist/tf-converter.node.js:30705:32)"," at GraphModel.execute (/home/vlado/dev/human/node_modules/.pnpm/@tensorflow+tfjs-converter@4.0.0_hdmpc5coifabqk2ogondqkcwg4/node_modules/@tensorflow/tfjs-converter/dist/tf-converter.node.js:30777:23)"," at /home/vlado/dev/human/dist/human.node-gpu.js:121:37595"," at new Promise ()"," at B5 (/home/vlado/dev/human/dist/human.node-gpu.js:121:37364)"," at V5 (/home/vlado/dev/human/dist/human.node-gpu.js:121:43414)"," at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"," at async /home/vlado/dev/human/dist/human.node-gpu.js:840:8294"]}
+2022-11-18 11:55:10 [36mINFO: [39m
+2022-11-18 11:55:10 [36mINFO: [39m test-backend-node-wasm.js start
+2022-11-18 11:55:10 [32mDATA: [39m test-backend-node-wasm.js stdout: 2022-11-18 11:55:10 [36mINFO: [39m { supported: [33mtrue[39m, backend: [33mtrue[39m, simd: [90mundefined[39m, multithread: [90mundefined[39m } https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-backend-wasm@4.0.0/dist/
+2022-11-18 11:55:11 [35mSTATE:[39m test-backend-node-wasm.js passed: model server: https://vladmandic.github.io/human-models/models/
+2022-11-18 11:55:11 [36mINFO: [39m test-backend-node-wasm.js test: configuration validation
+2022-11-18 11:55:11 [35mSTATE:[39m test-backend-node-wasm.js passed: configuration default validation []
+2022-11-18 11:55:11 [35mSTATE:[39m test-backend-node-wasm.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}]
+2022-11-18 11:55:11 [36mINFO: [39m test-backend-node-wasm.js test: model load
+2022-11-18 11:55:13 [35mSTATE:[39m test-backend-node-wasm.js passed: models loaded 24 11 [{"name":"blazeface","loaded":true,"size":538928,"url":"https://vladmandic.github.io/human-models/models/blazeface.json"},{"name":"antispoof","loaded":true,"size":853098,"url":"https://vladmandic.github.io/human-models/models/antispoof.json"},{"name":"liveness","loaded":true,"size":592976,"url":"https://vladmandic.github.io/human-models/models/liveness.json"},{"name":"faceres","loaded":true,"size":6978814,"url":"https://vladmandic.github.io/human-models/models/faceres.json"},{"name":"emotion","loaded":true,"size":820516,"url":"https://vladmandic.github.io/human-models/models/emotion.json"},{"name":"iris","loaded":true,"size":2599092,"url":"https://vladmandic.github.io/human-models/models/iris.json"},{"name":"facemesh","loaded":true,"size":1477958,"url":"https://vladmandic.github.io/human-models/models/facemesh.json"},{"name":"gear","loaded":false,"size":0,"url":null},{"name":"ssrnetage","loaded":false,"size":0,"url":null},{"name":"ssrnetgender","loaded":false,"size":0,"url":null},{"name":"mobilefacenet","loaded":false,"size":0,"url":null},{"name":"insightface","loaded":false,"size":0,"url":null},{"name":"blazepose","loaded":false,"size":0,"url":null},{"name":"blazeposedetect","loaded":false,"size":0,"url":null},{"name":"efficientpose","loaded":false,"size":0,"url":null},{"name":"movenet","loaded":true,"size":4650216,"url":"https://vladmandic.github.io/human-models/models/movenet-lightning.json"},{"name":"posenet","loaded":false,"size":0,"url":null},{"name":"handtrack","loaded":true,"size":2964837,"url":"https://vladmandic.github.io/human-models/models/handtrack.json"},{"name":"handskeleton","loaded":true,"size":0},{"name":"centernet","loaded":true,"size":4030290,"url":"https://vladmandic.github.io/human-models/models/centernet.json"},{"name":"nanodet","loaded":false,"size":0,"url":null},{"name":"selfie","loaded":false,"size":0,"url":null},{"name":"meet","loaded":false,"size":0,"url":null},{"name":"rvm","loaded":false,"size":0,"url":null}]
+2022-11-18 11:55:13 [36mINFO: [39m test-backend-node-wasm.js memory: {"memory":{"unreliable":false,"numTensors":1785,"numDataBuffers":1785,"numBytes":63247332}}
+2022-11-18 11:55:13 [36mINFO: [39m test-backend-node-wasm.js state: {"state":{"registeredVariables":{},"nextTapeNodeId":0,"numBytes":63247332,"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-18 11:55:13 [36mINFO: [39m test-backend-node-wasm.js test: warmup
+2022-11-18 11:55:13 [35mSTATE:[39m test-backend-node-wasm.js passed: create human
+2022-11-18 11:55:13 [36mINFO: [39m test-backend-node-wasm.js human version: 3.0.0
+2022-11-18 11:55:13 [36mINFO: [39m test-backend-node-wasm.js platform: linux x64 agent: NodeJS v19.1.0
+2022-11-18 11:55:13 [36mINFO: [39m test-backend-node-wasm.js tfjs version: 4.0.0
+2022-11-18 11:55:13 [36mINFO: [39m 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.0.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":126}
+2022-11-18 11:55:13 [35mSTATE:[39m test-backend-node-wasm.js passed: set backend: wasm
+2022-11-18 11:55:13 [35mSTATE:[39m test-backend-node-wasm.js tensors 1785
+2022-11-18 11:55:13 [35mSTATE:[39m test-backend-node-wasm.js passed: load models
+2022-11-18 11:55:13 [35mSTATE:[39m test-backend-node-wasm.js result: defined models: 2 loaded models: 2
+2022-11-18 11:55:13 [35mSTATE:[39m test-backend-node-wasm.js passed: warmup: none default
+2022-11-18 11:55:13 [32mDATA: [39m test-backend-node-wasm.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {}
+2022-11-18 11:55:13 [32mDATA: [39m test-backend-node-wasm.js result: performance: load: null total: null
+2022-11-18 11:55:13 [35mSTATE:[39m test-backend-node-wasm.js passed: warmup none result match
+2022-11-18 11:55:13 [35mSTATE:[39m test-backend-node-wasm.js event: image
+2022-11-18 11:55:13 [35mSTATE:[39m test-backend-node-wasm.js event: detect
+2022-11-18 11:55:13 [35mSTATE:[39m test-backend-node-wasm.js event: warmup
+2022-11-18 11:55:13 [35mSTATE:[39m test-backend-node-wasm.js passed: warmup: face default
+2022-11-18 11:55:13 [32mDATA: [39m 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-18 11:55:13 [32mDATA: [39m test-backend-node-wasm.js result: performance: load: null total: 480
+2022-11-18 11:55:13 [35mSTATE:[39m test-backend-node-wasm.js passed: warmup face result match
+2022-11-18 11:55:13 [35mSTATE:[39m test-backend-node-wasm.js event: image
+2022-11-18 11:55:14 [35mSTATE:[39m test-backend-node-wasm.js event: detect
+2022-11-18 11:55:14 [35mSTATE:[39m test-backend-node-wasm.js event: warmup
+2022-11-18 11:55:14 [35mSTATE:[39m test-backend-node-wasm.js passed: warmup: body default
+2022-11-18 11:55:14 [32mDATA: [39m 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-18 11:55:14 [32mDATA: [39m test-backend-node-wasm.js result: performance: load: null total: 335
+2022-11-18 11:55:14 [35mSTATE:[39m test-backend-node-wasm.js passed: warmup body result match
+2022-11-18 11:55:14 [35mSTATE:[39m 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":"palm up"},{"hand":0,"gesture":"open palm"},{"iris":0,"gesture":"looking left"},{"iris":0,"gesture":"looking up"}]}
+2022-11-18 11:55:14 [36mINFO: [39m test-backend-node-wasm.js test: details verification
+2022-11-18 11:55:14 [35mSTATE:[39m test-backend-node-wasm.js start default
+2022-11-18 11:55:14 [35mSTATE:[39m test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856}
+2022-11-18 11:55:14 [35mSTATE:[39m test-backend-node-wasm.js event: image
+2022-11-18 11:55:14 [35mSTATE:[39m test-backend-node-wasm.js event: detect
+2022-11-18 11:55:14 [35mSTATE:[39m test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg default
+2022-11-18 11:55:14 [32mDATA: [39m 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-18 11:55:14 [32mDATA: [39m test-backend-node-wasm.js result: performance: load: null total: 320
+2022-11-18 11:55:14 [35mSTATE:[39m test-backend-node-wasm.js passed: details face length 1
+2022-11-18 11:55:14 [35mSTATE:[39m test-backend-node-wasm.js passed: details face score 1 0.93 1
+2022-11-18 11:55:14 [35mSTATE:[39m test-backend-node-wasm.js passed: details face age/gender 23.7 female 0.97 2.34
+2022-11-18 11:55:14 [35mSTATE:[39m test-backend-node-wasm.js passed: details face arrays 4 478 1024
+2022-11-18 11:55:14 [35mSTATE:[39m test-backend-node-wasm.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"}
+2022-11-18 11:55:14 [35mSTATE:[39m test-backend-node-wasm.js passed: details face anti-spoofing 0.79
+2022-11-18 11:55:14 [35mSTATE:[39m test-backend-node-wasm.js passed: details face liveness 0.83
+2022-11-18 11:55:14 [35mSTATE:[39m test-backend-node-wasm.js passed: details body length 1
+2022-11-18 11:55:14 [35mSTATE:[39m test-backend-node-wasm.js passed: details body 0.92 17 6
+2022-11-18 11:55:14 [35mSTATE:[39m test-backend-node-wasm.js passed: details hand length 1
+2022-11-18 11:55:14 [35mSTATE:[39m test-backend-node-wasm.js passed: details hand 0.51 0.73 point
+2022-11-18 11:55:14 [35mSTATE:[39m test-backend-node-wasm.js passed: details hand arrays 21 5 7
+2022-11-18 11:55:14 [35mSTATE:[39m test-backend-node-wasm.js passed: details gesture length 7
+2022-11-18 11:55:14 [35mSTATE:[39m test-backend-node-wasm.js passed: details gesture first {"face":0,"gesture":"facing right"}
+2022-11-18 11:55:14 [35mSTATE:[39m test-backend-node-wasm.js passed: details object length 1
+2022-11-18 11:55:14 [35mSTATE:[39m test-backend-node-wasm.js passed: details object 0.72 person
+2022-11-18 11:55:14 [35mSTATE:[39m test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1413675264}
+2022-11-18 11:55:14 [35mSTATE:[39m test-backend-node-wasm.js event: image
+2022-11-18 11:55:15 [35mSTATE:[39m test-backend-node-wasm.js event: detect
+2022-11-18 11:55:15 [35mSTATE:[39m test-backend-node-wasm.js passed: tensor shape: [1,1200,1200,4] dtype: float32
+2022-11-18 11:55:15 [35mSTATE:[39m test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1413675264}
+2022-11-18 11:55:15 [35mSTATE:[39m test-backend-node-wasm.js event: image
+2022-11-18 11:55:15 [35mSTATE:[39m test-backend-node-wasm.js event: detect
+2022-11-18 11:55:15 [35mSTATE:[39m test-backend-node-wasm.js passed: tensor shape: [1200,1200,4] dtype: float32
+2022-11-18 11:55:15 [35mSTATE:[39m test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856}
+2022-11-18 11:55:15 [35mSTATE:[39m test-backend-node-wasm.js event: image
+2022-11-18 11:55:16 [35mSTATE:[39m test-backend-node-wasm.js event: detect
+2022-11-18 11:55:16 [35mSTATE:[39m test-backend-node-wasm.js passed: tensor shape: [1,1200,1200,3] dtype: float32
+2022-11-18 11:55:16 [35mSTATE:[39m test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1038921856}
+2022-11-18 11:55:16 [35mSTATE:[39m test-backend-node-wasm.js event: image
+2022-11-18 11:55:16 [35mSTATE:[39m test-backend-node-wasm.js event: detect
+2022-11-18 11:55:16 [35mSTATE:[39m test-backend-node-wasm.js passed: tensor shape: [1200,1200,3] dtype: float32
+2022-11-18 11:55:16 [35mSTATE:[39m test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871}
+2022-11-18 11:55:16 [35mSTATE:[39m test-backend-node-wasm.js event: image
+2022-11-18 11:55:17 [35mSTATE:[39m test-backend-node-wasm.js event: detect
+2022-11-18 11:55:17 [35mSTATE:[39m test-backend-node-wasm.js passed: tensor shape: [1,1200,1200,4] dtype: int32
+2022-11-18 11:55:17 [36mINFO: [39m test-backend-node-wasm.js test default
+2022-11-18 11:55:17 [35mSTATE:[39m test-backend-node-wasm.js start async
+2022-11-18 11:55:17 [35mSTATE:[39m test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856}
+2022-11-18 11:55:17 [35mSTATE:[39m test-backend-node-wasm.js event: image
+2022-11-18 11:55:17 [35mSTATE:[39m test-backend-node-wasm.js event: detect
+2022-11-18 11:55:17 [35mSTATE:[39m test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg async
+2022-11-18 11:55:17 [32mDATA: [39m 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-18 11:55:17 [32mDATA: [39m test-backend-node-wasm.js result: performance: load: null total: 319
+2022-11-18 11:55:17 [35mSTATE:[39m test-backend-node-wasm.js passed: default result face match 1 female 0.97
+2022-11-18 11:55:17 [36mINFO: [39m test-backend-node-wasm.js test sync
+2022-11-18 11:55:17 [35mSTATE:[39m test-backend-node-wasm.js start sync
+2022-11-18 11:55:18 [35mSTATE:[39m test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856}
+2022-11-18 11:55:18 [35mSTATE:[39m test-backend-node-wasm.js event: image
+2022-11-18 11:55:18 [35mSTATE:[39m test-backend-node-wasm.js event: detect
+2022-11-18 11:55:18 [35mSTATE:[39m test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg sync
+2022-11-18 11:55:18 [32mDATA: [39m 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-18 11:55:18 [32mDATA: [39m test-backend-node-wasm.js result: performance: load: null total: 321
+2022-11-18 11:55:18 [35mSTATE:[39m test-backend-node-wasm.js passed: default sync 1 female 0.97
+2022-11-18 11:55:18 [36mINFO: [39m test-backend-node-wasm.js test: image process
+2022-11-18 11:55:18 [35mSTATE:[39m test-backend-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856}
+2022-11-18 11:55:18 [35mSTATE:[39m test-backend-node-wasm.js passed: image input null [1,256,256,3]
+2022-11-18 11:55:18 [36mINFO: [39m test-backend-node-wasm.js test: image null
+2022-11-18 11:55:18 [35mSTATE:[39m test-backend-node-wasm.js passed: invalid input could not convert input to tensor
+2022-11-18 11:55:18 [36mINFO: [39m test-backend-node-wasm.js test face similarity
+2022-11-18 11:55:18 [35mSTATE:[39m test-backend-node-wasm.js start face similarity
+2022-11-18 11:55:18 [35mSTATE:[39m test-backend-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856}
+2022-11-18 11:55:18 [35mSTATE:[39m test-backend-node-wasm.js event: image
+2022-11-18 11:55:18 [35mSTATE:[39m test-backend-node-wasm.js event: detect
+2022-11-18 11:55:18 [35mSTATE:[39m test-backend-node-wasm.js passed: detect: samples/in/ai-face.jpg face similarity
+2022-11-18 11:55:18 [32mDATA: [39m 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-18 11:55:18 [32mDATA: [39m test-backend-node-wasm.js result: performance: load: null total: 301
+2022-11-18 11:55:18 [35mSTATE:[39m test-backend-node-wasm.js start face similarity
+2022-11-18 11:55:18 [35mSTATE:[39m test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856}
+2022-11-18 11:55:18 [35mSTATE:[39m test-backend-node-wasm.js event: image
+2022-11-18 11:55:19 [35mSTATE:[39m test-backend-node-wasm.js event: detect
+2022-11-18 11:55:19 [35mSTATE:[39m test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg face similarity
+2022-11-18 11:55:19 [32mDATA: [39m 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-18 11:55:19 [32mDATA: [39m test-backend-node-wasm.js result: performance: load: null total: 308
+2022-11-18 11:55:19 [35mSTATE:[39m test-backend-node-wasm.js start face similarity
+2022-11-18 11:55:19 [35mSTATE:[39m test-backend-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104}
+2022-11-18 11:55:19 [35mSTATE:[39m test-backend-node-wasm.js event: image
+2022-11-18 11:55:19 [35mSTATE:[39m test-backend-node-wasm.js event: detect
+2022-11-18 11:55:19 [35mSTATE:[39m test-backend-node-wasm.js passed: detect: samples/in/ai-upper.jpg face similarity
+2022-11-18 11:55:19 [32mDATA: [39m 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-18 11:55:19 [32mDATA: [39m test-backend-node-wasm.js result: performance: load: null total: 288
+2022-11-18 11:55:19 [35mSTATE:[39m test-backend-node-wasm.js passed: face descriptor
+2022-11-18 11:55:19 [35mSTATE:[39m test-backend-node-wasm.js passed: face similarity {"similarity":[1,0.5266119940661309,0.4858842904087851],"descriptors":[1024,1024,1024]}
+2022-11-18 11:55:19 [36mINFO: [39m test-backend-node-wasm.js test object
+2022-11-18 11:55:19 [35mSTATE:[39m test-backend-node-wasm.js start object
+2022-11-18 11:55:19 [35mSTATE:[39m test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856}
+2022-11-18 11:55:19 [35mSTATE:[39m test-backend-node-wasm.js event: image
+2022-11-18 11:55:20 [35mSTATE:[39m test-backend-node-wasm.js event: detect
+2022-11-18 11:55:20 [35mSTATE:[39m test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg object
+2022-11-18 11:55:20 [32mDATA: [39m 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-18 11:55:20 [32mDATA: [39m test-backend-node-wasm.js result: performance: load: null total: 314
+2022-11-18 11:55:20 [35mSTATE:[39m test-backend-node-wasm.js passed: centernet
+2022-11-18 11:55:20 [35mSTATE:[39m test-backend-node-wasm.js start object
+2022-11-18 11:55:21 [35mSTATE:[39m test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856}
+2022-11-18 11:55:21 [35mSTATE:[39m test-backend-node-wasm.js event: image
+2022-11-18 11:55:21 [35mSTATE:[39m test-backend-node-wasm.js event: detect
+2022-11-18 11:55:21 [35mSTATE:[39m test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg object
+2022-11-18 11:55:21 [32mDATA: [39m 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-18 11:55:21 [32mDATA: [39m test-backend-node-wasm.js result: performance: load: null total: 208
+2022-11-18 11:55:21 [31mERROR:[39m test-backend-node-wasm.js failed: nanodet []
+2022-11-18 11:55:21 [36mINFO: [39m test-backend-node-wasm.js test sensitive
+2022-11-18 11:55:21 [35mSTATE:[39m test-backend-node-wasm.js start sensitive
+2022-11-18 11:55:21 [35mSTATE:[39m test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856}
+2022-11-18 11:55:21 [35mSTATE:[39m test-backend-node-wasm.js event: image
+2022-11-18 11:55:21 [35mSTATE:[39m test-backend-node-wasm.js event: detect
+2022-11-18 11:55:21 [35mSTATE:[39m test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg sensitive
+2022-11-18 11:55:21 [32mDATA: [39m 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-18 11:55:21 [32mDATA: [39m test-backend-node-wasm.js result: performance: load: null total: 245
+2022-11-18 11:55:21 [35mSTATE:[39m test-backend-node-wasm.js passed: sensitive result match
+2022-11-18 11:55:21 [35mSTATE:[39m test-backend-node-wasm.js passed: sensitive face result match
+2022-11-18 11:55:21 [35mSTATE:[39m 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-18 11:55:21 [35mSTATE:[39m test-backend-node-wasm.js passed: sensitive body result match
+2022-11-18 11:55:21 [35mSTATE:[39m test-backend-node-wasm.js passed: sensitive hand result match
+2022-11-18 11:55:21 [36mINFO: [39m test-backend-node-wasm.js test body
+2022-11-18 11:55:21 [35mSTATE:[39m test-backend-node-wasm.js start blazepose
+2022-11-18 11:55:23 [35mSTATE:[39m test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856}
+2022-11-18 11:55:23 [35mSTATE:[39m test-backend-node-wasm.js event: image
+2022-11-18 11:55:24 [35mSTATE:[39m test-backend-node-wasm.js event: detect
+2022-11-18 11:55:24 [35mSTATE:[39m test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg blazepose
+2022-11-18 11:55:24 [32mDATA: [39m 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-18 11:55:24 [32mDATA: [39m test-backend-node-wasm.js result: performance: load: null total: 393
+2022-11-18 11:55:24 [35mSTATE:[39m test-backend-node-wasm.js passed: blazepose
+2022-11-18 11:55:24 [35mSTATE:[39m test-backend-node-wasm.js start efficientpose
+2022-11-18 11:55:24 [35mSTATE:[39m test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856}
+2022-11-18 11:55:24 [35mSTATE:[39m test-backend-node-wasm.js event: image
+2022-11-18 11:55:25 [35mSTATE:[39m test-backend-node-wasm.js event: detect
+2022-11-18 11:55:25 [35mSTATE:[39m test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg efficientpose
+2022-11-18 11:55:25 [32mDATA: [39m 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-18 11:55:25 [32mDATA: [39m test-backend-node-wasm.js result: performance: load: null total: 658
+2022-11-18 11:55:25 [35mSTATE:[39m test-backend-node-wasm.js passed: efficientpose
+2022-11-18 11:55:25 [35mSTATE:[39m test-backend-node-wasm.js start posenet
+2022-11-18 11:55:26 [35mSTATE:[39m test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856}
+2022-11-18 11:55:26 [35mSTATE:[39m test-backend-node-wasm.js event: image
+2022-11-18 11:55:26 [35mSTATE:[39m test-backend-node-wasm.js event: detect
+2022-11-18 11:55:26 [35mSTATE:[39m test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg posenet
+2022-11-18 11:55:26 [32mDATA: [39m 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-18 11:55:26 [32mDATA: [39m test-backend-node-wasm.js result: performance: load: null total: 277
+2022-11-18 11:55:26 [35mSTATE:[39m test-backend-node-wasm.js passed: posenet
+2022-11-18 11:55:26 [35mSTATE:[39m test-backend-node-wasm.js start movenet
+2022-11-18 11:55:26 [35mSTATE:[39m test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856}
+2022-11-18 11:55:26 [35mSTATE:[39m test-backend-node-wasm.js event: image
+2022-11-18 11:55:26 [35mSTATE:[39m test-backend-node-wasm.js event: detect
+2022-11-18 11:55:26 [35mSTATE:[39m test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg movenet
+2022-11-18 11:55:26 [32mDATA: [39m 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-18 11:55:26 [32mDATA: [39m test-backend-node-wasm.js result: performance: load: null total: 237
+2022-11-18 11:55:26 [35mSTATE:[39m test-backend-node-wasm.js passed: movenet
+2022-11-18 11:55:26 [36mINFO: [39m test-backend-node-wasm.js test face matching
+2022-11-18 11:55:26 [35mSTATE:[39m test-backend-node-wasm.js passed: face database 40
+2022-11-18 11:55:26 [35mSTATE:[39m 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-18 11:55:26 [36mINFO: [39m test-backend-node-wasm.js test face similarity alternative
+2022-11-18 11:55:26 [35mSTATE:[39m test-backend-node-wasm.js start face embeddings
+2022-11-18 11:55:27 [35mSTATE:[39m test-backend-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856}
+2022-11-18 11:55:27 [35mSTATE:[39m test-backend-node-wasm.js event: image
+2022-11-18 11:55:27 [31mERROR:[39m test-backend-node-wasm.js failed: testDetect face embeddings
+2022-11-18 11:55:27 [31mERROR:[39m test-backend-node-wasm.js uncaughtException {"name":"TypeError","message":"Cannot read properties of undefined (reading 'img_inputs')","stack":["TypeError: Cannot read properties of undefined (reading 'img_inputs')"," at /home/vlado/dev/human/node_modules/.pnpm/@tensorflow+tfjs-converter@4.0.0_hdmpc5coifabqk2ogondqkcwg4/node_modules/@tensorflow/tfjs-converter/dist/tf-converter.node.js:30706:69"," at Array.reduce ()"," at GraphModel.normalizeInputs (/home/vlado/dev/human/node_modules/.pnpm/@tensorflow+tfjs-converter@4.0.0_hdmpc5coifabqk2ogondqkcwg4/node_modules/@tensorflow/tfjs-converter/dist/tf-converter.node.js:30705:32)"," at GraphModel.execute (/home/vlado/dev/human/node_modules/.pnpm/@tensorflow+tfjs-converter@4.0.0_hdmpc5coifabqk2ogondqkcwg4/node_modules/@tensorflow/tfjs-converter/dist/tf-converter.node.js:30777:23)"," at /home/vlado/dev/human/dist/human.node-wasm.js:121:37595"," at new Promise ()"," at H5 (/home/vlado/dev/human/dist/human.node-wasm.js:121:37364)"," at Z5 (/home/vlado/dev/human/dist/human.node-wasm.js:121:43414)"," at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"," at async /home/vlado/dev/human/dist/human.node-wasm.js:840:8294"]}
+2022-11-18 11:55:27 [35mSTATE:[39m all tests complete
+2022-11-18 11:55:27 [36mINFO: [39m status {"test":"../demo/nodejs/node.js","passed":1,"failed":0}
+2022-11-18 11:55:27 [36mINFO: [39m status {"test":"../demo/nodejs/node-simple.js","passed":1,"failed":0}
+2022-11-18 11:55:27 [36mINFO: [39m status {"test":"../demo/nodejs/node-event.js","passed":1,"failed":0}
+2022-11-18 11:55:27 [36mINFO: [39m status {"test":"../demo/nodejs/node-similarity.js","passed":1,"failed":0}
+2022-11-18 11:55:27 [36mINFO: [39m status {"test":"../demo/nodejs/node-canvas.js","passed":1,"failed":0}
+2022-11-18 11:55:27 [36mINFO: [39m status {"test":"../demo/nodejs/process-folder.js","passed":1,"failed":0}
+2022-11-18 11:55:27 [36mINFO: [39m status {"test":"../demo/multithread/node-multiprocess.js","passed":1,"failed":0}
+2022-11-18 11:55:27 [36mINFO: [39m status {"test":"../demo/facematch/node-match.js","passed":1,"failed":0}
+2022-11-18 11:55:27 [36mINFO: [39m status {"test":"test-node-load.js","passed":1,"failed":0}
+2022-11-18 11:55:27 [36mINFO: [39m status {"test":"test-node-gear.js","passed":3,"failed":0}
+2022-11-18 11:55:27 [36mINFO: [39m status {"test":"test-backend-node.js","passed":85,"failed":1}
+2022-11-18 11:55:27 [36mINFO: [39m status {"test":"test-backend-node-gpu.js","passed":85,"failed":1}
+2022-11-18 11:55:27 [36mINFO: [39m status {"test":"test-backend-node-wasm.js","passed":85,"failed":2}
+2022-11-18 11:55:27 [36mINFO: [39m failures {"count":4}
+2022-11-18 11:55:27 [33mWARN: [39m failed {"test":"test-backend-node.js","message":["error",["failed:","testDetect face embeddings"]]}
+2022-11-18 11:55:27 [33mWARN: [39m failed {"test":"test-backend-node-gpu.js","message":["error",["failed:","testDetect face embeddings"]]}
+2022-11-18 11:55:27 [33mWARN: [39m failed {"test":"test-backend-node-wasm.js","message":["error",["failed: nanodet",[]]]}
+2022-11-18 11:55:27 [33mWARN: [39m failed {"test":"test-backend-node-wasm.js","message":["error",["failed:","testDetect face embeddings"]]}