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) -![FaceMesh](assets/facemesh.png) +[](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/) + ![typedoc](assets/screenshot-typedoc.png)


@@ -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 DATA:  Build {"name":"@vladmandic/human","version":"3.0.0"} -2022-11-18 11:12:48 INFO:  Application: {"name":"@vladmandic/human","version":"3.0.0"} -2022-11-18 11:12:48 INFO:  Environment: {"profile":"production","config":".build.json","package":"package.json","tsconfig":true,"eslintrc":true,"git":true} -2022-11-18 11:12:48 INFO:  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 INFO:  Build: {"profile":"production","steps":["clean","compile","typings","typedoc","lint","changelog"]} -2022-11-18 11:12:48 STATE: Clean: {"locations":["dist/*","types/*","typedoc/*"]} -2022-11-18 11:12:48 STATE: Compile: {"name":"tfjs/browser/version","format":"esm","platform":"browser","input":"tfjs/tf-version.ts","output":"dist/tfjs.version.js","files":1,"inputBytes":1289,"outputBytes":361} -2022-11-18 11:12:48 STATE: Compile: {"name":"tfjs/nodejs/cpu","format":"cjs","platform":"node","input":"tfjs/tf-node.ts","output":"dist/tfjs.esm.js","files":2,"inputBytes":569,"outputBytes":924} -2022-11-18 11:12:48 STATE: 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 STATE: Compile: {"name":"tfjs/nodejs/gpu","format":"cjs","platform":"node","input":"tfjs/tf-node-gpu.ts","output":"dist/tfjs.esm.js","files":2,"inputBytes":577,"outputBytes":928} -2022-11-18 11:12:48 STATE: 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 STATE: Compile: {"name":"tfjs/nodejs/wasm","format":"cjs","platform":"node","input":"tfjs/tf-node-wasm.ts","output":"dist/tfjs.esm.js","files":2,"inputBytes":665,"outputBytes":1876} -2022-11-18 11:12:48 STATE: 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 STATE: Compile: {"name":"tfjs/browser/esm/nobundle","format":"esm","platform":"browser","input":"tfjs/tf-browser.ts","output":"dist/tfjs.esm.js","files":2,"inputBytes":1375,"outputBytes":670} -2022-11-18 11:12:48 STATE: 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 STATE: Compile: {"name":"tfjs/browser/esm/bundle","format":"esm","platform":"browser","input":"tfjs/tf-browser.ts","output":"dist/tfjs.esm.js","files":10,"inputBytes":1375,"outputBytes":1144900} -2022-11-18 11:12:49 STATE: 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 STATE: 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 STATE: Typings: {"input":"src/human.ts","output":"types/lib","files":15} -2022-11-18 11:12:54 STATE: TypeDoc: {"input":"src/human.ts","output":"typedoc","objects":77,"generated":true} -2022-11-18 11:12:54 STATE: 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 STATE: Compile: {"name":"demo/faceid","format":"esm","platform":"browser","input":"demo/faceid/index.ts","output":"demo/faceid/index.js","files":2,"inputBytes":17572,"outputBytes":9456} -2022-11-18 11:13:02 STATE: Lint: {"locations":["*.json","src/**/*.ts","test/**/*.js","demo/**/*.js"],"files":114,"errors":0,"warnings":0} -2022-11-18 11:13:02 STATE: ChangeLog: {"repository":"https://github.com/vladmandic/human","branch":"main","output":"CHANGELOG.md"} -2022-11-18 11:13:02 STATE: Copy: {"input":"node_modules/@vladmandic/tfjs/types/tfjs-core.d.ts","output":"types/tfjs-core.d.ts"} -2022-11-18 11:13:02 INFO:  Done... -2022-11-18 11:13:02 STATE: Copy: {"input":"node_modules/@vladmandic/tfjs/types/tfjs.d.ts","output":"types/tfjs.esm.d.ts"} -2022-11-18 11:13:02 STATE: Copy: {"input":"src/types/tsconfig.json","output":"types/tsconfig.json"} -2022-11-18 11:13:02 STATE: Copy: {"input":"src/types/eslint.json","output":"types/.eslintrc.json"} -2022-11-18 11:13:02 STATE: Copy: {"input":"src/types/tfjs.esm.d.ts","output":"dist/tfjs.esm.d.ts"} -2022-11-18 11:13:02 STATE: Filter: {"input":"types/tfjs-core.d.ts"} -2022-11-18 11:13:03 STATE: API-Extractor: {"succeeeded":true,"errors":0,"warnings":195} -2022-11-18 11:13:03 STATE: Filter: {"input":"types/human.d.ts"} -2022-11-18 11:13:03 STATE: Write: {"output":"dist/human.esm-nobundle.d.ts"} -2022-11-18 11:13:03 STATE: Write: {"output":"dist/human.esm.d.ts"} -2022-11-18 11:13:03 STATE: Write: {"output":"dist/human.d.ts"} -2022-11-18 11:13:03 STATE: Write: {"output":"dist/human.node-gpu.d.ts"} -2022-11-18 11:13:03 STATE: Write: {"output":"dist/human.node.d.ts"} -2022-11-18 11:13:03 STATE: Write: {"output":"dist/human.node-wasm.d.ts"} -2022-11-18 11:13:03 INFO:  Analyze models: {"folders":8,"result":"models/models.json"} -2022-11-18 11:13:03 STATE: Models {"folder":"./models","models":12} -2022-11-18 11:13:03 STATE: Models {"folder":"../human-models/models","models":43} -2022-11-18 11:13:03 STATE: Models {"folder":"../blazepose/model/","models":4} -2022-11-18 11:13:03 STATE: Models {"folder":"../anti-spoofing/model","models":1} -2022-11-18 11:13:03 STATE: Models {"folder":"../efficientpose/models","models":3} -2022-11-18 11:13:03 STATE: Models {"folder":"../insightface/models","models":5} -2022-11-18 11:13:03 STATE: Models {"folder":"../movenet/models","models":3} -2022-11-18 11:13:03 STATE: Models {"folder":"../nanodet/models","models":4} -2022-11-18 11:13:03 STATE: Models: {"count":58,"totalSize":386543911} -2022-11-18 11:13:03 INFO:  Human Build complete... {"logFile":"test/build.log"} +2022-11-18 11:52:39 DATA:  Build {"name":"@vladmandic/human","version":"3.0.0"} +2022-11-18 11:52:39 INFO:  Application: {"name":"@vladmandic/human","version":"3.0.0"} +2022-11-18 11:52:39 INFO:  Environment: {"profile":"production","config":".build.json","package":"package.json","tsconfig":true,"eslintrc":true,"git":true} +2022-11-18 11:52:39 INFO:  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 INFO:  Build: {"profile":"production","steps":["clean","compile","typings","typedoc","lint","changelog"]} +2022-11-18 11:52:39 STATE: Clean: {"locations":["dist/*","types/*","typedoc/*"]} +2022-11-18 11:52:39 STATE: Compile: {"name":"tfjs/browser/version","format":"esm","platform":"browser","input":"tfjs/tf-version.ts","output":"dist/tfjs.version.js","files":1,"inputBytes":1289,"outputBytes":361} +2022-11-18 11:52:39 STATE: Compile: {"name":"tfjs/nodejs/cpu","format":"cjs","platform":"node","input":"tfjs/tf-node.ts","output":"dist/tfjs.esm.js","files":2,"inputBytes":569,"outputBytes":924} +2022-11-18 11:52:39 STATE: 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 STATE: Compile: {"name":"tfjs/nodejs/gpu","format":"cjs","platform":"node","input":"tfjs/tf-node-gpu.ts","output":"dist/tfjs.esm.js","files":2,"inputBytes":577,"outputBytes":928} +2022-11-18 11:52:39 STATE: 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 STATE: Compile: {"name":"tfjs/nodejs/wasm","format":"cjs","platform":"node","input":"tfjs/tf-node-wasm.ts","output":"dist/tfjs.esm.js","files":2,"inputBytes":665,"outputBytes":1876} +2022-11-18 11:52:39 STATE: 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 STATE: Compile: {"name":"tfjs/browser/esm/nobundle","format":"esm","platform":"browser","input":"tfjs/tf-browser.ts","output":"dist/tfjs.esm.js","files":2,"inputBytes":1375,"outputBytes":670} +2022-11-18 11:52:39 STATE: 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 STATE: Compile: {"name":"tfjs/browser/esm/bundle","format":"esm","platform":"browser","input":"tfjs/tf-browser.ts","output":"dist/tfjs.esm.js","files":10,"inputBytes":1375,"outputBytes":1144900} +2022-11-18 11:52:39 STATE: 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 STATE: 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 STATE: Typings: {"input":"src/human.ts","output":"types/lib","files":15} +2022-11-18 11:52:45 STATE: TypeDoc: {"input":"src/human.ts","output":"typedoc","objects":77,"generated":true} +2022-11-18 11:52:45 STATE: 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 STATE: Compile: {"name":"demo/faceid","format":"esm","platform":"browser","input":"demo/faceid/index.ts","output":"demo/faceid/index.js","files":2,"inputBytes":17572,"outputBytes":9456} +2022-11-18 11:52:53 STATE: Lint: {"locations":["*.json","src/**/*.ts","test/**/*.js","demo/**/*.js"],"files":114,"errors":0,"warnings":0} +2022-11-18 11:52:53 STATE: ChangeLog: {"repository":"https://github.com/vladmandic/human","branch":"main","output":"CHANGELOG.md"} +2022-11-18 11:52:53 STATE: Copy: {"input":"node_modules/@vladmandic/tfjs/types/tfjs-core.d.ts","output":"types/tfjs-core.d.ts"} +2022-11-18 11:52:53 INFO:  Done... +2022-11-18 11:52:53 STATE: Copy: {"input":"node_modules/@vladmandic/tfjs/types/tfjs.d.ts","output":"types/tfjs.esm.d.ts"} +2022-11-18 11:52:53 STATE: Copy: {"input":"src/types/tsconfig.json","output":"types/tsconfig.json"} +2022-11-18 11:52:53 STATE: Copy: {"input":"src/types/eslint.json","output":"types/.eslintrc.json"} +2022-11-18 11:52:53 STATE: Copy: {"input":"src/types/tfjs.esm.d.ts","output":"dist/tfjs.esm.d.ts"} +2022-11-18 11:52:53 STATE: Filter: {"input":"types/tfjs-core.d.ts"} +2022-11-18 11:52:54 STATE: API-Extractor: {"succeeeded":true,"errors":0,"warnings":195} +2022-11-18 11:52:54 STATE: Filter: {"input":"types/human.d.ts"} +2022-11-18 11:52:54 STATE: Write: {"output":"dist/human.esm-nobundle.d.ts"} +2022-11-18 11:52:54 STATE: Write: {"output":"dist/human.esm.d.ts"} +2022-11-18 11:52:54 STATE: Write: {"output":"dist/human.d.ts"} +2022-11-18 11:52:54 STATE: Write: {"output":"dist/human.node-gpu.d.ts"} +2022-11-18 11:52:54 STATE: Write: {"output":"dist/human.node.d.ts"} +2022-11-18 11:52:54 STATE: Write: {"output":"dist/human.node-wasm.d.ts"} +2022-11-18 11:52:54 INFO:  Analyze models: {"folders":8,"result":"models/models.json"} +2022-11-18 11:52:54 STATE: Models {"folder":"./models","models":12} +2022-11-18 11:52:54 STATE: Models {"folder":"../human-models/models","models":43} +2022-11-18 11:52:54 STATE: Models {"folder":"../blazepose/model/","models":4} +2022-11-18 11:52:54 STATE: Models {"folder":"../anti-spoofing/model","models":1} +2022-11-18 11:52:54 STATE: Models {"folder":"../efficientpose/models","models":3} +2022-11-18 11:52:54 STATE: Models {"folder":"../insightface/models","models":5} +2022-11-18 11:52:54 STATE: Models {"folder":"../movenet/models","models":3} +2022-11-18 11:52:54 STATE: Models {"folder":"../nanodet/models","models":4} +2022-11-18 11:52:54 STATE: Models: {"count":58,"totalSize":386543911} +2022-11-18 11:52:54 INFO:  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 INFO:  @vladmandic/human version 3.0.0 -2022-11-17 14:20:18 INFO:  User: vlado Platform: linux Arch: x64 Node: v19.1.0 -2022-11-17 14:20:18 INFO:  demos: [{"cmd":"../demo/nodejs/node.js","args":[]},{"cmd":"../demo/nodejs/node-simple.js","args":[]},{"cmd":"../demo/nodejs/node-event.js","args":["samples/in/ai-body.jpg"]},{"cmd":"../demo/nodejs/node-similarity.js","args":["samples/in/ai-face.jpg","samples/in/ai-upper.jpg"]},{"cmd":"../demo/nodejs/node-canvas.js","args":["samples/in/ai-body.jpg","samples/out/ai-body.jpg"]},{"cmd":"../demo/nodejs/process-folder.js","args":["samples"]},{"cmd":"../demo/multithread/node-multiprocess.js","args":[]},{"cmd":"../demo/facematch/node-match.js","args":[]}] -2022-11-17 14:20:18 INFO:  {"cmd":"../demo/nodejs/node.js","args":[]} start -2022-11-17 14:20:19 INFO:  {"cmd":"../demo/nodejs/node-simple.js","args":[]} start -2022-11-17 14:20:20 INFO:  {"cmd":"../demo/nodejs/node-event.js","args":["samples/in/ai-body.jpg"]} start -2022-11-17 14:20:21 INFO:  {"cmd":"../demo/nodejs/node-similarity.js","args":["samples/in/ai-face.jpg","samples/in/ai-upper.jpg"]} start -2022-11-17 14:20:21 INFO:  {"cmd":"../demo/nodejs/node-canvas.js","args":["samples/in/ai-body.jpg","samples/out/ai-body.jpg"]} start -2022-11-17 14:20:22 INFO:  {"cmd":"../demo/nodejs/process-folder.js","args":["samples"]} start -2022-11-17 14:20:24 INFO:  {"cmd":"../demo/multithread/node-multiprocess.js","args":[]} start -2022-11-17 14:20:36 INFO:  {"cmd":"../demo/facematch/node-match.js","args":[]} start -2022-11-17 14:20:36 INFO:  tests: ["test-node-load.js","test-node-gear.js","test-backend-node.js","test-backend-node-gpu.js","test-backend-node-wasm.js"] -2022-11-17 14:20:36 INFO:  -2022-11-17 14:20:36 INFO:  test-node-load.js start -2022-11-17 14:20:37 INFO:  test-node-load.js load start {"human":"3.0.0","tf":"4.0.0","progress":0} -2022-11-17 14:20:37 DATA:  test-node-load.js load interval {"elapsed":0,"progress":0} -2022-11-17 14:20:37 DATA:  test-node-load.js load interval {"elapsed":10,"progress":0} -2022-11-17 14:20:37 DATA:  test-node-load.js load interval {"elapsed":26,"progress":0.11143791531203556} -2022-11-17 14:20:37 DATA:  test-node-load.js load interval {"elapsed":42,"progress":0.3961518088579138} -2022-11-17 14:20:37 DATA:  test-node-load.js load interval {"elapsed":64,"progress":0.5125946867158943} -2022-11-17 14:20:37 DATA:  test-node-load.js load interval {"elapsed":75,"progress":0.7259096583739463} -2022-11-17 14:20:37 STATE: test-node-load.js passed {"progress":1} -2022-11-17 14:20:37 INFO:  test-node-load.js load final {"progress":1} -2022-11-17 14:20:37 DATA:  test-node-load.js load interval {"elapsed":424,"progress":1} -2022-11-17 14:20:37 INFO:  -2022-11-17 14:20:37 INFO:  test-node-gear.js start -2022-11-17 14:20:37 DATA:  test-node-gear.js input: ["samples/in/ai-face.jpg"] -2022-11-17 14:20:38 STATE: test-node-gear.js passed: gear faceres samples/in/ai-face.jpg -2022-11-17 14:20:38 DATA:  test-node-gear.js results {"face":0,"model":"faceres","image":"samples/in/ai-face.jpg","age":23.5,"gender":"female","genderScore":0.92} -2022-11-17 14:20:39 STATE: test-node-gear.js passed: gear gear samples/in/ai-face.jpg -2022-11-17 14:20:39 DATA:  test-node-gear.js results {"face":0,"model":"gear","image":"samples/in/ai-face.jpg","age":23.3,"gender":"female","genderScore":0.51,"race":[{"score":0.93,"race":"white"}]} -2022-11-17 14:20:39 STATE: test-node-gear.js passed: gear ssrnet samples/in/ai-face.jpg -2022-11-17 14:20:39 DATA:  test-node-gear.js results {"face":0,"model":"ssrnet","image":"samples/in/ai-face.jpg","age":23.4,"gender":"female","genderScore":0.99} -2022-11-17 14:20:39 INFO:  -2022-11-17 14:20:39 INFO:  test-backend-node.js start -2022-11-17 14:20:39 INFO:  test-backend-node.js test: configuration validation -2022-11-17 14:20:39 STATE: test-backend-node.js passed: configuration default validation [] -2022-11-17 14:20:39 STATE: test-backend-node.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}] -2022-11-17 14:20:39 INFO:  test-backend-node.js test: model load -2022-11-17 14:20:39 STATE: 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 INFO:  test-backend-node.js memory: {"memory":{"unreliable":true,"numTensors":1785,"numDataBuffers":1785,"numBytes":63247332}} -2022-11-17 14:20:39 INFO:  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 INFO:  test-backend-node.js test: warmup -2022-11-17 14:20:39 STATE: test-backend-node.js passed: create human -2022-11-17 14:20:39 INFO:  test-backend-node.js human version: 3.0.0 -2022-11-17 14:20:39 INFO:  test-backend-node.js platform: linux x64 agent: NodeJS v19.1.0 -2022-11-17 14:20:39 INFO:  test-backend-node.js tfjs version: 4.0.0 -2022-11-17 14:20:39 INFO:  test-backend-node.js env: {"browser":false,"node":true,"platform":"linux x64","agent":"NodeJS v19.1.0","backends":["cpu","tensorflow"],"initial":false,"tfjs":{"version":"4.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 STATE: test-backend-node.js passed: set backend: tensorflow -2022-11-17 14:20:39 STATE: test-backend-node.js tensors 1785 -2022-11-17 14:20:39 STATE: test-backend-node.js passed: load models -2022-11-17 14:20:39 STATE: test-backend-node.js result: defined models: 2 loaded models: 2 -2022-11-17 14:20:39 STATE: test-backend-node.js passed: warmup: none default -2022-11-17 14:20:39 DATA:  test-backend-node.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {} -2022-11-17 14:20:39 DATA:  test-backend-node.js result: performance: load: null total: null -2022-11-17 14:20:39 STATE: test-backend-node.js passed: warmup none result match -2022-11-17 14:20:39 STATE: test-backend-node.js event: image -2022-11-17 14:20:39 STATE: test-backend-node.js event: detect -2022-11-17 14:20:39 STATE: test-backend-node.js event: warmup -2022-11-17 14:20:39 STATE: test-backend-node.js passed: warmup: face default -2022-11-17 14:20:39 DATA:  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 DATA:  test-backend-node.js result: performance: load: null total: 422 -2022-11-17 14:20:39 STATE: test-backend-node.js passed: warmup face result match -2022-11-17 14:20:39 STATE: test-backend-node.js event: image -2022-11-17 14:20:40 STATE: test-backend-node.js event: detect -2022-11-17 14:20:40 STATE: test-backend-node.js event: warmup -2022-11-17 14:20:40 STATE: test-backend-node.js passed: warmup: body default -2022-11-17 14:20:40 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-11-17 14:20:40 DATA:  test-backend-node.js result: performance: load: null total: 352 -2022-11-17 14:20:40 STATE: test-backend-node.js passed: warmup body result match -2022-11-17 14:20:40 STATE: test-backend-node.js details: {"face":{"boxScore":0.92,"faceScore":1,"age":23.7,"gender":"female","genderScore":0.97},"emotion":[{"score":0.63,"emotion":"angry"},{"score":0.22,"emotion":"fear"}],"body":{"score":0.92,"keypoints":17},"hand":{"boxScore":0.52,"fingerScore":0.73,"keypoints":21},"gestures":[{"face":0,"gesture":"facing right"},{"face":0,"gesture":"mouth 10% open"},{"hand":0,"gesture":"pinky forward"},{"hand":0,"gesture":"palm up"},{"hand":0,"gesture":"open palm"},{"iris":0,"gesture":"looking left"},{"iris":0,"gesture":"looking up"}]} -2022-11-17 14:20:40 INFO:  test-backend-node.js test: details verification -2022-11-17 14:20:40 STATE: test-backend-node.js start default -2022-11-17 14:20:40 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-11-17 14:20:40 STATE: test-backend-node.js event: image -2022-11-17 14:20:40 STATE: test-backend-node.js event: detect -2022-11-17 14:20:40 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg default -2022-11-17 14:20:40 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-11-17 14:20:40 DATA:  test-backend-node.js result: performance: load: null total: 319 -2022-11-17 14:20:40 STATE: test-backend-node.js passed: details face length 1 -2022-11-17 14:20:40 STATE: test-backend-node.js passed: details face score 1 0.93 1 -2022-11-17 14:20:40 STATE: test-backend-node.js passed: details face age/gender 23.7 female 0.97 2.34 -2022-11-17 14:20:40 STATE: test-backend-node.js passed: details face arrays 4 478 1024 -2022-11-17 14:20:40 STATE: test-backend-node.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"} -2022-11-17 14:20:40 STATE: test-backend-node.js passed: details face anti-spoofing 0.79 -2022-11-17 14:20:40 STATE: test-backend-node.js passed: details face liveness 0.83 -2022-11-17 14:20:40 STATE: test-backend-node.js passed: details body length 1 -2022-11-17 14:20:40 STATE: test-backend-node.js passed: details body 0.92 17 6 -2022-11-17 14:20:40 STATE: test-backend-node.js passed: details hand length 1 -2022-11-17 14:20:40 STATE: test-backend-node.js passed: details hand 0.51 0.73 point -2022-11-17 14:20:40 STATE: test-backend-node.js passed: details hand arrays 21 5 7 -2022-11-17 14:20:40 STATE: test-backend-node.js passed: details gesture length 7 -2022-11-17 14:20:40 STATE: test-backend-node.js passed: details gesture first {"face":0,"gesture":"facing right"} -2022-11-17 14:20:40 STATE: test-backend-node.js passed: details object length 1 -2022-11-17 14:20:40 STATE: test-backend-node.js passed: details object 0.72 person -2022-11-17 14:20:40 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996928} -2022-11-17 14:20:40 STATE: test-backend-node.js event: image -2022-11-17 14:20:41 STATE: test-backend-node.js event: detect -2022-11-17 14:20:41 STATE: test-backend-node.js passed: tensor shape: [1,1200,1200,4] dtype: float32 -2022-11-17 14:20:41 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1371996928} -2022-11-17 14:20:41 STATE: test-backend-node.js event: image -2022-11-17 14:20:41 STATE: test-backend-node.js event: detect -2022-11-17 14:20:41 STATE: test-backend-node.js passed: tensor shape: [1200,1200,4] dtype: float32 -2022-11-17 14:20:41 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-11-17 14:20:41 STATE: test-backend-node.js event: image -2022-11-17 14:20:42 STATE: test-backend-node.js event: detect -2022-11-17 14:20:42 STATE: test-backend-node.js passed: tensor shape: [1,1200,1200,3] dtype: float32 -2022-11-17 14:20:42 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1004796864} -2022-11-17 14:20:42 STATE: test-backend-node.js event: image -2022-11-17 14:20:42 STATE: test-backend-node.js event: detect -2022-11-17 14:20:42 STATE: test-backend-node.js passed: tensor shape: [1200,1200,3] dtype: float32 -2022-11-17 14:20:42 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871} -2022-11-17 14:20:42 STATE: test-backend-node.js event: image -2022-11-17 14:20:43 STATE: test-backend-node.js event: detect -2022-11-17 14:20:43 STATE: test-backend-node.js passed: tensor shape: [1,1200,1200,4] dtype: int32 -2022-11-17 14:20:43 INFO:  test-backend-node.js test default -2022-11-17 14:20:43 STATE: test-backend-node.js start async -2022-11-17 14:20:43 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-11-17 14:20:43 STATE: test-backend-node.js event: image -2022-11-17 14:20:43 STATE: test-backend-node.js event: detect -2022-11-17 14:20:43 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg async -2022-11-17 14:20:43 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-11-17 14:20:43 DATA:  test-backend-node.js result: performance: load: null total: 293 -2022-11-17 14:20:43 STATE: test-backend-node.js passed: default result face match 1 female 0.97 -2022-11-17 14:20:43 INFO:  test-backend-node.js test sync -2022-11-17 14:20:43 STATE: test-backend-node.js start sync -2022-11-17 14:20:43 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-11-17 14:20:43 STATE: test-backend-node.js event: image -2022-11-17 14:20:44 STATE: test-backend-node.js event: detect -2022-11-17 14:20:44 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg sync -2022-11-17 14:20:44 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-11-17 14:20:44 DATA:  test-backend-node.js result: performance: load: null total: 312 -2022-11-17 14:20:44 STATE: test-backend-node.js passed: default sync 1 female 0.97 -2022-11-17 14:20:44 INFO:  test-backend-node.js test: image process -2022-11-17 14:20:44 STATE: test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-11-17 14:20:44 STATE: test-backend-node.js passed: image input null [1,256,256,3] -2022-11-17 14:20:44 INFO:  test-backend-node.js test: image null -2022-11-17 14:20:44 STATE: test-backend-node.js passed: invalid input could not convert input to tensor -2022-11-17 14:20:44 INFO:  test-backend-node.js test face similarity -2022-11-17 14:20:44 STATE: test-backend-node.js start face similarity -2022-11-17 14:20:44 STATE: test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-11-17 14:20:44 STATE: test-backend-node.js event: image -2022-11-17 14:20:44 STATE: test-backend-node.js event: detect -2022-11-17 14:20:44 STATE: test-backend-node.js passed: detect: samples/in/ai-face.jpg face similarity -2022-11-17 14:20:44 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":3} -2022-11-17 14:20:44 DATA:  test-backend-node.js result: performance: load: null total: 294 -2022-11-17 14:20:44 STATE: test-backend-node.js start face similarity -2022-11-17 14:20:44 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-11-17 14:20:44 STATE: test-backend-node.js event: image -2022-11-17 14:20:45 STATE: test-backend-node.js event: detect -2022-11-17 14:20:45 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg face similarity -2022-11-17 14:20:45 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-11-17 14:20:45 DATA:  test-backend-node.js result: performance: load: null total: 290 -2022-11-17 14:20:45 STATE: test-backend-node.js start face similarity -2022-11-17 14:20:45 STATE: test-backend-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} -2022-11-17 14:20:45 STATE: test-backend-node.js event: image -2022-11-17 14:20:45 STATE: test-backend-node.js event: detect -2022-11-17 14:20:45 STATE: test-backend-node.js passed: detect: samples/in/ai-upper.jpg face similarity -2022-11-17 14:20:45 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 0 gesture: 4 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":7} -2022-11-17 14:20:45 DATA:  test-backend-node.js result: performance: load: null total: 269 -2022-11-17 14:20:45 STATE: test-backend-node.js passed: face descriptor -2022-11-17 14:20:45 STATE: test-backend-node.js passed: face similarity {"similarity":[1,0.44727441595492046,0.556793560189727],"descriptors":[1024,1024,1024]} -2022-11-17 14:20:45 INFO:  test-backend-node.js test object -2022-11-17 14:20:45 STATE: test-backend-node.js start object -2022-11-17 14:20:45 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-11-17 14:20:45 STATE: test-backend-node.js event: image -2022-11-17 14:20:45 STATE: test-backend-node.js event: detect -2022-11-17 14:20:45 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg object -2022-11-17 14:20:45 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-11-17 14:20:45 DATA:  test-backend-node.js result: performance: load: null total: 298 -2022-11-17 14:20:45 STATE: test-backend-node.js passed: centernet -2022-11-17 14:20:45 STATE: test-backend-node.js start object -2022-11-17 14:20:47 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-11-17 14:20:47 STATE: test-backend-node.js event: image -2022-11-17 14:20:47 STATE: test-backend-node.js event: detect -2022-11-17 14:20:47 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg object -2022-11-17 14:20:47 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 3 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.86,"class":"person"} {"score":0.92,"keypoints":17} -2022-11-17 14:20:47 DATA:  test-backend-node.js result: performance: load: null total: 297 -2022-11-17 14:20:47 STATE: test-backend-node.js passed: nanodet -2022-11-17 14:20:47 INFO:  test-backend-node.js test sensitive -2022-11-17 14:20:47 STATE: test-backend-node.js start sensitive -2022-11-17 14:20:47 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-11-17 14:20:47 STATE: test-backend-node.js event: image -2022-11-17 14:20:47 STATE: test-backend-node.js event: detect -2022-11-17 14:20:47 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg sensitive -2022-11-17 14:20:47 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.92,"keypoints":17} -2022-11-17 14:20:47 DATA:  test-backend-node.js result: performance: load: null total: 253 -2022-11-17 14:20:47 STATE: test-backend-node.js passed: sensitive result match -2022-11-17 14:20:47 STATE: test-backend-node.js passed: sensitive face result match -2022-11-17 14:20:47 STATE: 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 STATE: test-backend-node.js passed: sensitive body result match -2022-11-17 14:20:47 STATE: test-backend-node.js passed: sensitive hand result match -2022-11-17 14:20:47 INFO:  test-backend-node.js test body -2022-11-17 14:20:47 STATE: test-backend-node.js start blazepose -2022-11-17 14:20:50 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-11-17 14:20:50 STATE: test-backend-node.js event: image -2022-11-17 14:20:50 STATE: test-backend-node.js event: detect -2022-11-17 14:20:50 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg blazepose -2022-11-17 14:20:50 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.99,"keypoints":39} -2022-11-17 14:20:50 DATA:  test-backend-node.js result: performance: load: null total: 336 -2022-11-17 14:20:50 STATE: test-backend-node.js passed: blazepose -2022-11-17 14:20:50 STATE: test-backend-node.js start efficientpose -2022-11-17 14:20:51 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-11-17 14:20:51 STATE: test-backend-node.js event: image -2022-11-17 14:20:51 STATE: test-backend-node.js event: detect -2022-11-17 14:20:51 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg efficientpose -2022-11-17 14:20:51 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.75,"keypoints":13} -2022-11-17 14:20:51 DATA:  test-backend-node.js result: performance: load: null total: 306 -2022-11-17 14:20:51 STATE: test-backend-node.js passed: efficientpose -2022-11-17 14:20:51 STATE: test-backend-node.js start posenet -2022-11-17 14:20:52 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-11-17 14:20:52 STATE: test-backend-node.js event: image -2022-11-17 14:20:52 STATE: test-backend-node.js event: detect -2022-11-17 14:20:52 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg posenet -2022-11-17 14:20:52 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.96,"keypoints":16} -2022-11-17 14:20:52 DATA:  test-backend-node.js result: performance: load: null total: 255 -2022-11-17 14:20:52 STATE: test-backend-node.js passed: posenet -2022-11-17 14:20:52 STATE: test-backend-node.js start movenet -2022-11-17 14:20:52 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-11-17 14:20:52 STATE: test-backend-node.js event: image -2022-11-17 14:20:52 STATE: test-backend-node.js event: detect -2022-11-17 14:20:52 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg movenet -2022-11-17 14:20:52 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.92,"keypoints":17} -2022-11-17 14:20:52 DATA:  test-backend-node.js result: performance: load: null total: 249 -2022-11-17 14:20:52 STATE: test-backend-node.js passed: movenet -2022-11-17 14:20:52 INFO:  test-backend-node.js test face matching -2022-11-17 14:20:52 STATE: test-backend-node.js passed: face database 40 -2022-11-17 14:20:52 STATE: test-backend-node.js passed: face match {"first":{"index":4,"similarity":0.7827852251220577}} {"second":{"index":4,"similarity":0.5002052057057577}} {"third":{"index":4,"similarity":0.5401588464054732}} -2022-11-17 14:20:52 INFO:  test-backend-node.js test face similarity alternative -2022-11-17 14:20:52 STATE: test-backend-node.js start face embeddings -2022-11-17 14:20:53 STATE: test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-11-17 14:20:53 STATE: test-backend-node.js event: image -2022-11-17 14:20:53 ERROR: test-backend-node.js failed: testDetect face embeddings -2022-11-17 14:20:53 ERROR: 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 INFO:  -2022-11-17 14:20:53 INFO:  test-backend-node-gpu.js start -2022-11-17 14:20:54 INFO:  test-backend-node-gpu.js test: configuration validation -2022-11-17 14:20:54 STATE: test-backend-node-gpu.js passed: configuration default validation [] -2022-11-17 14:20:54 STATE: test-backend-node-gpu.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}] -2022-11-17 14:20:54 INFO:  test-backend-node-gpu.js test: model load -2022-11-17 14:20:54 STATE: 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 INFO:  test-backend-node-gpu.js memory: {"memory":{"unreliable":true,"numTensors":1785,"numDataBuffers":1785,"numBytes":63247332}} -2022-11-17 14:20:54 INFO:  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 INFO:  test-backend-node-gpu.js test: warmup -2022-11-17 14:20:54 STATE: test-backend-node-gpu.js passed: create human -2022-11-17 14:20:54 INFO:  test-backend-node-gpu.js human version: 3.0.0 -2022-11-17 14:20:54 INFO:  test-backend-node-gpu.js platform: linux x64 agent: NodeJS v19.1.0 -2022-11-17 14:20:54 INFO:  test-backend-node-gpu.js tfjs version: 4.0.0 -2022-11-17 14:20:54 INFO:  test-backend-node-gpu.js env: {"browser":false,"node":true,"platform":"linux x64","agent":"NodeJS v19.1.0","backends":["cpu","tensorflow"],"initial":false,"tfjs":{"version":"4.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 STATE: test-backend-node-gpu.js passed: set backend: tensorflow -2022-11-17 14:20:54 STATE: test-backend-node-gpu.js tensors 1785 -2022-11-17 14:20:54 STATE: test-backend-node-gpu.js passed: load models -2022-11-17 14:20:54 STATE: test-backend-node-gpu.js result: defined models: 2 loaded models: 2 -2022-11-17 14:20:54 STATE: test-backend-node-gpu.js passed: warmup: none default -2022-11-17 14:20:54 DATA:  test-backend-node-gpu.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {} -2022-11-17 14:20:54 DATA:  test-backend-node-gpu.js result: performance: load: null total: null -2022-11-17 14:20:54 STATE: test-backend-node-gpu.js passed: warmup none result match -2022-11-17 14:20:54 STATE: test-backend-node-gpu.js event: image -2022-11-17 14:20:57 STATE: test-backend-node-gpu.js event: detect -2022-11-17 14:20:57 STATE: test-backend-node-gpu.js event: warmup -2022-11-17 14:20:57 STATE: test-backend-node-gpu.js passed: warmup: face default -2022-11-17 14:20:57 DATA:  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 DATA:  test-backend-node-gpu.js result: performance: load: null total: 2683 -2022-11-17 14:20:57 STATE: test-backend-node-gpu.js passed: warmup face result match -2022-11-17 14:20:57 STATE: test-backend-node-gpu.js event: image -2022-11-17 14:20:57 STATE: test-backend-node-gpu.js event: detect -2022-11-17 14:20:57 STATE: test-backend-node-gpu.js event: warmup -2022-11-17 14:20:57 STATE: test-backend-node-gpu.js passed: warmup: body default -2022-11-17 14:20:57 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-11-17 14:20:57 DATA:  test-backend-node-gpu.js result: performance: load: null total: 144 -2022-11-17 14:20:57 STATE: test-backend-node-gpu.js passed: warmup body result match -2022-11-17 14:20:57 STATE: test-backend-node-gpu.js details: {"face":{"boxScore":0.92,"faceScore":1,"age":23.7,"gender":"female","genderScore":0.97},"emotion":[{"score":0.63,"emotion":"angry"},{"score":0.22,"emotion":"fear"}],"body":{"score":0.92,"keypoints":17},"hand":{"boxScore":0.52,"fingerScore":0.73,"keypoints":21},"gestures":[{"face":0,"gesture":"facing right"},{"face":0,"gesture":"mouth 10% open"},{"hand":0,"gesture":"pinky forward"},{"hand":0,"gesture":"palm up"},{"hand":0,"gesture":"open palm"},{"iris":0,"gesture":"looking left"},{"iris":0,"gesture":"looking up"}]} -2022-11-17 14:20:57 INFO:  test-backend-node-gpu.js test: details verification -2022-11-17 14:20:57 STATE: test-backend-node-gpu.js start default -2022-11-17 14:20:57 STATE: 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 STATE: test-backend-node-gpu.js event: image -2022-11-17 14:20:58 STATE: test-backend-node-gpu.js event: detect -2022-11-17 14:20:58 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg default -2022-11-17 14:20:58 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-11-17 14:20:58 DATA:  test-backend-node-gpu.js result: performance: load: null total: 144 -2022-11-17 14:20:58 STATE: test-backend-node-gpu.js passed: details face length 1 -2022-11-17 14:20:58 STATE: test-backend-node-gpu.js passed: details face score 1 0.93 1 -2022-11-17 14:20:58 STATE: test-backend-node-gpu.js passed: details face age/gender 23.7 female 0.97 2.34 -2022-11-17 14:20:58 STATE: test-backend-node-gpu.js passed: details face arrays 4 478 1024 -2022-11-17 14:20:58 STATE: test-backend-node-gpu.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"} -2022-11-17 14:20:58 STATE: test-backend-node-gpu.js passed: details face anti-spoofing 0.79 -2022-11-17 14:20:58 STATE: test-backend-node-gpu.js passed: details face liveness 0.83 -2022-11-17 14:20:58 STATE: test-backend-node-gpu.js passed: details body length 1 -2022-11-17 14:20:58 STATE: test-backend-node-gpu.js passed: details body 0.92 17 6 -2022-11-17 14:20:58 STATE: test-backend-node-gpu.js passed: details hand length 1 -2022-11-17 14:20:58 STATE: test-backend-node-gpu.js passed: details hand 0.51 0.73 point -2022-11-17 14:20:58 STATE: test-backend-node-gpu.js passed: details hand arrays 21 5 7 -2022-11-17 14:20:58 STATE: test-backend-node-gpu.js passed: details gesture length 7 -2022-11-17 14:20:58 STATE: test-backend-node-gpu.js passed: details gesture first {"face":0,"gesture":"facing right"} -2022-11-17 14:20:58 STATE: test-backend-node-gpu.js passed: details object length 1 -2022-11-17 14:20:58 STATE: test-backend-node-gpu.js passed: details object 0.72 person -2022-11-17 14:20:58 STATE: 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 STATE: test-backend-node-gpu.js event: image -2022-11-17 14:20:58 STATE: test-backend-node-gpu.js event: detect -2022-11-17 14:20:58 STATE: test-backend-node-gpu.js passed: tensor shape: [1,1200,1200,4] dtype: float32 -2022-11-17 14:20:58 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1371996928} -2022-11-17 14:20:58 STATE: test-backend-node-gpu.js event: image -2022-11-17 14:20:58 STATE: test-backend-node-gpu.js event: detect -2022-11-17 14:20:58 STATE: test-backend-node-gpu.js passed: tensor shape: [1200,1200,4] dtype: float32 -2022-11-17 14:20:58 STATE: 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 STATE: test-backend-node-gpu.js event: image -2022-11-17 14:20:59 STATE: test-backend-node-gpu.js event: detect -2022-11-17 14:20:59 STATE: test-backend-node-gpu.js passed: tensor shape: [1,1200,1200,3] dtype: float32 -2022-11-17 14:20:59 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1004796928} -2022-11-17 14:20:59 STATE: test-backend-node-gpu.js event: image -2022-11-17 14:20:59 STATE: test-backend-node-gpu.js event: detect -2022-11-17 14:20:59 STATE: test-backend-node-gpu.js passed: tensor shape: [1200,1200,3] dtype: float32 -2022-11-17 14:20:59 STATE: 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 STATE: test-backend-node-gpu.js event: image -2022-11-17 14:20:59 STATE: test-backend-node-gpu.js event: detect -2022-11-17 14:20:59 STATE: test-backend-node-gpu.js passed: tensor shape: [1,1200,1200,4] dtype: int32 -2022-11-17 14:20:59 INFO:  test-backend-node-gpu.js test default -2022-11-17 14:20:59 STATE: test-backend-node-gpu.js start async -2022-11-17 14:21:00 STATE: 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 STATE: test-backend-node-gpu.js event: image -2022-11-17 14:21:00 STATE: test-backend-node-gpu.js event: detect -2022-11-17 14:21:00 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg async -2022-11-17 14:21:00 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-11-17 14:21:00 DATA:  test-backend-node-gpu.js result: performance: load: null total: 113 -2022-11-17 14:21:00 STATE: test-backend-node-gpu.js passed: default result face match 1 female 0.97 -2022-11-17 14:21:00 INFO:  test-backend-node-gpu.js test sync -2022-11-17 14:21:00 STATE: test-backend-node-gpu.js start sync -2022-11-17 14:21:00 STATE: 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 STATE: test-backend-node-gpu.js event: image -2022-11-17 14:21:00 STATE: test-backend-node-gpu.js event: detect -2022-11-17 14:21:00 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg sync -2022-11-17 14:21:00 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-11-17 14:21:00 DATA:  test-backend-node-gpu.js result: performance: load: null total: 116 -2022-11-17 14:21:00 STATE: test-backend-node-gpu.js passed: default sync 1 female 0.97 -2022-11-17 14:21:00 INFO:  test-backend-node-gpu.js test: image process -2022-11-17 14:21:00 STATE: 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 STATE: test-backend-node-gpu.js passed: image input null [1,256,256,3] -2022-11-17 14:21:00 INFO:  test-backend-node-gpu.js test: image null -2022-11-17 14:21:00 STATE: test-backend-node-gpu.js passed: invalid input could not convert input to tensor -2022-11-17 14:21:00 INFO:  test-backend-node-gpu.js test face similarity -2022-11-17 14:21:00 STATE: test-backend-node-gpu.js start face similarity -2022-11-17 14:21:00 STATE: 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 STATE: test-backend-node-gpu.js event: image -2022-11-17 14:21:00 STATE: test-backend-node-gpu.js event: detect -2022-11-17 14:21:00 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-face.jpg face similarity -2022-11-17 14:21:00 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":3} -2022-11-17 14:21:00 DATA:  test-backend-node-gpu.js result: performance: load: null total: 122 -2022-11-17 14:21:00 STATE: test-backend-node-gpu.js start face similarity -2022-11-17 14:21:00 STATE: 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 STATE: test-backend-node-gpu.js event: image -2022-11-17 14:21:00 STATE: test-backend-node-gpu.js event: detect -2022-11-17 14:21:00 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg face similarity -2022-11-17 14:21:00 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-11-17 14:21:00 DATA:  test-backend-node-gpu.js result: performance: load: null total: 135 -2022-11-17 14:21:00 STATE: test-backend-node-gpu.js start face similarity -2022-11-17 14:21:01 STATE: 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 STATE: test-backend-node-gpu.js event: image -2022-11-17 14:21:01 STATE: test-backend-node-gpu.js event: detect -2022-11-17 14:21:01 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-upper.jpg face similarity -2022-11-17 14:21:01 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 4 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":7} -2022-11-17 14:21:01 DATA:  test-backend-node-gpu.js result: performance: load: null total: 119 -2022-11-17 14:21:01 STATE: test-backend-node-gpu.js passed: face descriptor -2022-11-17 14:21:01 STATE: test-backend-node-gpu.js passed: face similarity {"similarity":[1,0.4475002983522097,0.5570879556505012],"descriptors":[1024,1024,1024]} -2022-11-17 14:21:01 INFO:  test-backend-node-gpu.js test object -2022-11-17 14:21:01 STATE: test-backend-node-gpu.js start object -2022-11-17 14:21:01 STATE: 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 STATE: test-backend-node-gpu.js event: image -2022-11-17 14:21:01 STATE: test-backend-node-gpu.js event: detect -2022-11-17 14:21:01 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg object -2022-11-17 14:21:01 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-11-17 14:21:01 DATA:  test-backend-node-gpu.js result: performance: load: null total: 111 -2022-11-17 14:21:01 STATE: test-backend-node-gpu.js passed: centernet -2022-11-17 14:21:01 STATE: test-backend-node-gpu.js start object -2022-11-17 14:21:02 STATE: 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 STATE: test-backend-node-gpu.js event: image -2022-11-17 14:21:02 STATE: test-backend-node-gpu.js event: detect -2022-11-17 14:21:02 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg object -2022-11-17 14:21:02 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 3 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.86,"class":"person"} {"score":0.92,"keypoints":17} -2022-11-17 14:21:02 DATA:  test-backend-node-gpu.js result: performance: load: null total: 388 -2022-11-17 14:21:02 STATE: test-backend-node-gpu.js passed: nanodet -2022-11-17 14:21:02 INFO:  test-backend-node-gpu.js test sensitive -2022-11-17 14:21:02 STATE: test-backend-node-gpu.js start sensitive -2022-11-17 14:21:02 STATE: 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 STATE: test-backend-node-gpu.js event: image -2022-11-17 14:21:03 STATE: test-backend-node-gpu.js event: detect -2022-11-17 14:21:03 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg sensitive -2022-11-17 14:21:03 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.92,"keypoints":17} -2022-11-17 14:21:03 DATA:  test-backend-node-gpu.js result: performance: load: null total: 112 -2022-11-17 14:21:03 STATE: test-backend-node-gpu.js passed: sensitive result match -2022-11-17 14:21:03 STATE: test-backend-node-gpu.js passed: sensitive face result match -2022-11-17 14:21:03 STATE: 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 STATE: test-backend-node-gpu.js passed: sensitive body result match -2022-11-17 14:21:03 STATE: test-backend-node-gpu.js passed: sensitive hand result match -2022-11-17 14:21:03 INFO:  test-backend-node-gpu.js test body -2022-11-17 14:21:03 STATE: test-backend-node-gpu.js start blazepose -2022-11-17 14:21:05 STATE: 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 STATE: test-backend-node-gpu.js event: image -2022-11-17 14:21:05 STATE: test-backend-node-gpu.js event: detect -2022-11-17 14:21:05 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg blazepose -2022-11-17 14:21:05 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.99,"keypoints":39} -2022-11-17 14:21:05 DATA:  test-backend-node-gpu.js result: performance: load: null total: 269 -2022-11-17 14:21:05 STATE: test-backend-node-gpu.js passed: blazepose -2022-11-17 14:21:05 STATE: test-backend-node-gpu.js start efficientpose -2022-11-17 14:21:05 STATE: 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 STATE: test-backend-node-gpu.js event: image -2022-11-17 14:21:06 STATE: test-backend-node-gpu.js event: detect -2022-11-17 14:21:06 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg efficientpose -2022-11-17 14:21:06 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.75,"keypoints":13} -2022-11-17 14:21:06 DATA:  test-backend-node-gpu.js result: performance: load: null total: 972 -2022-11-17 14:21:06 STATE: test-backend-node-gpu.js passed: efficientpose -2022-11-17 14:21:06 STATE: test-backend-node-gpu.js start posenet -2022-11-17 14:21:07 STATE: 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 STATE: test-backend-node-gpu.js event: image -2022-11-17 14:21:07 STATE: test-backend-node-gpu.js event: detect -2022-11-17 14:21:07 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg posenet -2022-11-17 14:21:07 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.96,"keypoints":16} -2022-11-17 14:21:07 DATA:  test-backend-node-gpu.js result: performance: load: null total: 125 -2022-11-17 14:21:07 STATE: test-backend-node-gpu.js passed: posenet -2022-11-17 14:21:07 STATE: test-backend-node-gpu.js start movenet -2022-11-17 14:21:07 STATE: 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 STATE: test-backend-node-gpu.js event: image -2022-11-17 14:21:07 STATE: test-backend-node-gpu.js event: detect -2022-11-17 14:21:07 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg movenet -2022-11-17 14:21:07 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.92,"keypoints":17} -2022-11-17 14:21:07 DATA:  test-backend-node-gpu.js result: performance: load: null total: 99 -2022-11-17 14:21:07 STATE: test-backend-node-gpu.js passed: movenet -2022-11-17 14:21:07 INFO:  test-backend-node-gpu.js test face matching -2022-11-17 14:21:07 STATE: test-backend-node-gpu.js passed: face database 40 -2022-11-17 14:21:07 STATE: test-backend-node-gpu.js passed: face match {"first":{"index":4,"similarity":0.7829338043932047}} {"second":{"index":4,"similarity":0.5002928781584631}} {"third":{"index":4,"similarity":0.5402934771672516}} -2022-11-17 14:21:07 INFO:  test-backend-node-gpu.js test face similarity alternative -2022-11-17 14:21:07 STATE: test-backend-node-gpu.js start face embeddings -2022-11-17 14:21:08 STATE: 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 STATE: test-backend-node-gpu.js event: image -2022-11-17 14:21:08 ERROR: test-backend-node-gpu.js failed: testDetect face embeddings -2022-11-17 14:21:08 ERROR: 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 INFO:  -2022-11-17 14:21:08 INFO:  test-backend-node-wasm.js start -2022-11-17 14:21:08 DATA:  test-backend-node-wasm.js stdout: 2022-11-17 14:21:08 INFO:  { supported: true, backend: true, simd: undefined, multithread: undefined } https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-backend-wasm@4.0.0/dist/ -2022-11-17 14:21:09 STATE: test-backend-node-wasm.js passed: model server: https://vladmandic.github.io/human-models/models/ -2022-11-17 14:21:09 INFO:  test-backend-node-wasm.js test: configuration validation -2022-11-17 14:21:09 STATE: test-backend-node-wasm.js passed: configuration default validation [] -2022-11-17 14:21:09 STATE: test-backend-node-wasm.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}] -2022-11-17 14:21:09 INFO:  test-backend-node-wasm.js test: model load -2022-11-17 14:21:11 STATE: 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 INFO:  test-backend-node-wasm.js memory: {"memory":{"unreliable":false,"numTensors":1785,"numDataBuffers":1785,"numBytes":63247332}} -2022-11-17 14:21:11 INFO:  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 INFO:  test-backend-node-wasm.js test: warmup -2022-11-17 14:21:11 STATE: test-backend-node-wasm.js passed: create human -2022-11-17 14:21:11 INFO:  test-backend-node-wasm.js human version: 3.0.0 -2022-11-17 14:21:11 INFO:  test-backend-node-wasm.js platform: linux x64 agent: NodeJS v19.1.0 -2022-11-17 14:21:11 INFO:  test-backend-node-wasm.js tfjs version: 4.0.0 -2022-11-17 14:21:11 INFO:  test-backend-node-wasm.js env: {"browser":false,"node":true,"platform":"linux x64","agent":"NodeJS v19.1.0","backends":["wasm"],"initial":false,"tfjs":{"version":"4.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 STATE: test-backend-node-wasm.js passed: set backend: wasm -2022-11-17 14:21:11 STATE: test-backend-node-wasm.js tensors 1785 -2022-11-17 14:21:11 STATE: test-backend-node-wasm.js passed: load models -2022-11-17 14:21:11 STATE: test-backend-node-wasm.js result: defined models: 2 loaded models: 2 -2022-11-17 14:21:11 STATE: test-backend-node-wasm.js passed: warmup: none default -2022-11-17 14:21:11 DATA:  test-backend-node-wasm.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {} -2022-11-17 14:21:11 DATA:  test-backend-node-wasm.js result: performance: load: null total: null -2022-11-17 14:21:11 STATE: test-backend-node-wasm.js passed: warmup none result match -2022-11-17 14:21:11 STATE: test-backend-node-wasm.js event: image -2022-11-17 14:21:11 STATE: test-backend-node-wasm.js event: detect -2022-11-17 14:21:11 STATE: test-backend-node-wasm.js event: warmup -2022-11-17 14:21:11 STATE: test-backend-node-wasm.js passed: warmup: face default -2022-11-17 14:21:11 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":3} -2022-11-17 14:21:11 DATA:  test-backend-node-wasm.js result: performance: load: null total: 513 -2022-11-17 14:21:11 STATE: test-backend-node-wasm.js passed: warmup face result match -2022-11-17 14:21:11 STATE: test-backend-node-wasm.js event: image -2022-11-17 14:21:12 STATE: test-backend-node-wasm.js event: detect -2022-11-17 14:21:12 STATE: test-backend-node-wasm.js event: warmup -2022-11-17 14:21:12 STATE: test-backend-node-wasm.js passed: warmup: body default -2022-11-17 14:21:12 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-11-17 14:21:12 DATA:  test-backend-node-wasm.js result: performance: load: null total: 342 -2022-11-17 14:21:12 STATE: test-backend-node-wasm.js passed: warmup body result match -2022-11-17 14:21:12 STATE: test-backend-node-wasm.js details: {"face":{"boxScore":0.93,"faceScore":1,"age":23.7,"gender":"female","genderScore":0.97},"emotion":[{"score":0.59,"emotion":"angry"},{"score":0.29,"emotion":"fear"}],"body":{"score":0.92,"keypoints":17},"hand":{"boxScore":0.51,"fingerScore":0.73,"keypoints":21},"gestures":[{"face":0,"gesture":"facing right"},{"face":0,"gesture":"mouth 21% open"},{"hand":0,"gesture":"pinky forward"},{"hand":0,"gesture":"palm up"},{"hand":0,"gesture":"open palm"},{"iris":0,"gesture":"looking left"},{"iris":0,"gesture":"looking up"}]} -2022-11-17 14:21:12 INFO:  test-backend-node-wasm.js test: details verification -2022-11-17 14:21:12 STATE: test-backend-node-wasm.js start default -2022-11-17 14:21:12 STATE: 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 STATE: test-backend-node-wasm.js event: image -2022-11-17 14:21:12 STATE: test-backend-node-wasm.js event: detect -2022-11-17 14:21:12 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg default -2022-11-17 14:21:12 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-11-17 14:21:12 DATA:  test-backend-node-wasm.js result: performance: load: null total: 325 -2022-11-17 14:21:12 STATE: test-backend-node-wasm.js passed: details face length 1 -2022-11-17 14:21:12 STATE: test-backend-node-wasm.js passed: details face score 1 0.93 1 -2022-11-17 14:21:12 STATE: test-backend-node-wasm.js passed: details face age/gender 23.7 female 0.97 2.34 -2022-11-17 14:21:12 STATE: test-backend-node-wasm.js passed: details face arrays 4 478 1024 -2022-11-17 14:21:12 STATE: test-backend-node-wasm.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"} -2022-11-17 14:21:12 STATE: test-backend-node-wasm.js passed: details face anti-spoofing 0.79 -2022-11-17 14:21:12 STATE: test-backend-node-wasm.js passed: details face liveness 0.83 -2022-11-17 14:21:12 STATE: test-backend-node-wasm.js passed: details body length 1 -2022-11-17 14:21:12 STATE: test-backend-node-wasm.js passed: details body 0.92 17 6 -2022-11-17 14:21:12 STATE: test-backend-node-wasm.js passed: details hand length 1 -2022-11-17 14:21:12 STATE: test-backend-node-wasm.js passed: details hand 0.51 0.73 point -2022-11-17 14:21:12 STATE: test-backend-node-wasm.js passed: details hand arrays 21 5 7 -2022-11-17 14:21:12 STATE: test-backend-node-wasm.js passed: details gesture length 7 -2022-11-17 14:21:12 STATE: test-backend-node-wasm.js passed: details gesture first {"face":0,"gesture":"facing right"} -2022-11-17 14:21:12 STATE: test-backend-node-wasm.js passed: details object length 1 -2022-11-17 14:21:12 STATE: test-backend-node-wasm.js passed: details object 0.72 person -2022-11-17 14:21:12 STATE: 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 STATE: test-backend-node-wasm.js event: image -2022-11-17 14:21:13 STATE: test-backend-node-wasm.js event: detect -2022-11-17 14:21:13 STATE: test-backend-node-wasm.js passed: tensor shape: [1,1200,1200,4] dtype: float32 -2022-11-17 14:21:13 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1413675264} -2022-11-17 14:21:13 STATE: test-backend-node-wasm.js event: image -2022-11-17 14:21:13 STATE: test-backend-node-wasm.js event: detect -2022-11-17 14:21:13 STATE: test-backend-node-wasm.js passed: tensor shape: [1200,1200,4] dtype: float32 -2022-11-17 14:21:14 STATE: 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 STATE: test-backend-node-wasm.js event: image -2022-11-17 14:21:14 STATE: test-backend-node-wasm.js event: detect -2022-11-17 14:21:14 STATE: test-backend-node-wasm.js passed: tensor shape: [1,1200,1200,3] dtype: float32 -2022-11-17 14:21:14 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1038921856} -2022-11-17 14:21:14 STATE: test-backend-node-wasm.js event: image -2022-11-17 14:21:14 STATE: test-backend-node-wasm.js event: detect -2022-11-17 14:21:14 STATE: test-backend-node-wasm.js passed: tensor shape: [1200,1200,3] dtype: float32 -2022-11-17 14:21:15 STATE: 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 STATE: test-backend-node-wasm.js event: image -2022-11-17 14:21:15 STATE: test-backend-node-wasm.js event: detect -2022-11-17 14:21:15 STATE: test-backend-node-wasm.js passed: tensor shape: [1,1200,1200,4] dtype: int32 -2022-11-17 14:21:15 INFO:  test-backend-node-wasm.js test default -2022-11-17 14:21:15 STATE: test-backend-node-wasm.js start async -2022-11-17 14:21:15 STATE: 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 STATE: test-backend-node-wasm.js event: image -2022-11-17 14:21:16 STATE: test-backend-node-wasm.js event: detect -2022-11-17 14:21:16 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg async -2022-11-17 14:21:16 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-11-17 14:21:16 DATA:  test-backend-node-wasm.js result: performance: load: null total: 338 -2022-11-17 14:21:16 STATE: test-backend-node-wasm.js passed: default result face match 1 female 0.97 -2022-11-17 14:21:16 INFO:  test-backend-node-wasm.js test sync -2022-11-17 14:21:16 STATE: test-backend-node-wasm.js start sync -2022-11-17 14:21:16 STATE: 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 STATE: test-backend-node-wasm.js event: image -2022-11-17 14:21:16 STATE: test-backend-node-wasm.js event: detect -2022-11-17 14:21:16 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg sync -2022-11-17 14:21:16 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-11-17 14:21:16 DATA:  test-backend-node-wasm.js result: performance: load: null total: 334 -2022-11-17 14:21:16 STATE: test-backend-node-wasm.js passed: default sync 1 female 0.97 -2022-11-17 14:21:16 INFO:  test-backend-node-wasm.js test: image process -2022-11-17 14:21:16 STATE: 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 STATE: test-backend-node-wasm.js passed: image input null [1,256,256,3] -2022-11-17 14:21:16 INFO:  test-backend-node-wasm.js test: image null -2022-11-17 14:21:16 STATE: test-backend-node-wasm.js passed: invalid input could not convert input to tensor -2022-11-17 14:21:16 INFO:  test-backend-node-wasm.js test face similarity -2022-11-17 14:21:16 STATE: test-backend-node-wasm.js start face similarity -2022-11-17 14:21:16 STATE: 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 STATE: test-backend-node-wasm.js event: image -2022-11-17 14:21:17 STATE: test-backend-node-wasm.js event: detect -2022-11-17 14:21:17 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-face.jpg face similarity -2022-11-17 14:21:17 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":3} -2022-11-17 14:21:17 DATA:  test-backend-node-wasm.js result: performance: load: null total: 301 -2022-11-17 14:21:17 STATE: test-backend-node-wasm.js start face similarity -2022-11-17 14:21:17 STATE: 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 STATE: test-backend-node-wasm.js event: image -2022-11-17 14:21:17 STATE: test-backend-node-wasm.js event: detect -2022-11-17 14:21:17 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg face similarity -2022-11-17 14:21:17 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-11-17 14:21:17 DATA:  test-backend-node-wasm.js result: performance: load: null total: 326 -2022-11-17 14:21:17 STATE: test-backend-node-wasm.js start face similarity -2022-11-17 14:21:17 STATE: 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 STATE: test-backend-node-wasm.js event: image -2022-11-17 14:21:17 STATE: test-backend-node-wasm.js event: detect -2022-11-17 14:21:17 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-upper.jpg face similarity -2022-11-17 14:21:17 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 4 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":7} -2022-11-17 14:21:17 DATA:  test-backend-node-wasm.js result: performance: load: null total: 294 -2022-11-17 14:21:17 STATE: test-backend-node-wasm.js passed: face descriptor -2022-11-17 14:21:17 STATE: test-backend-node-wasm.js passed: face similarity {"similarity":[1,0.5266119940661309,0.4858842904087851],"descriptors":[1024,1024,1024]} -2022-11-17 14:21:17 INFO:  test-backend-node-wasm.js test object -2022-11-17 14:21:17 STATE: test-backend-node-wasm.js start object -2022-11-17 14:21:18 STATE: 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 STATE: test-backend-node-wasm.js event: image -2022-11-17 14:21:18 STATE: test-backend-node-wasm.js event: detect -2022-11-17 14:21:18 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg object -2022-11-17 14:21:18 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-11-17 14:21:18 DATA:  test-backend-node-wasm.js result: performance: load: null total: 370 -2022-11-17 14:21:18 STATE: test-backend-node-wasm.js passed: centernet -2022-11-17 14:21:18 STATE: test-backend-node-wasm.js start object -2022-11-17 14:21:19 STATE: 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 STATE: test-backend-node-wasm.js event: image -2022-11-17 14:21:19 STATE: test-backend-node-wasm.js event: detect -2022-11-17 14:21:19 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg object -2022-11-17 14:21:19 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 0 person: 1 {"score":1,"age":29.6,"gender":"female"} {} {"score":0.92,"keypoints":17} -2022-11-17 14:21:19 DATA:  test-backend-node-wasm.js result: performance: load: null total: 231 -2022-11-17 14:21:19 ERROR: test-backend-node-wasm.js failed: nanodet [] -2022-11-17 14:21:19 INFO:  test-backend-node-wasm.js test sensitive -2022-11-17 14:21:19 STATE: test-backend-node-wasm.js start sensitive -2022-11-17 14:21:20 STATE: 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 STATE: test-backend-node-wasm.js event: image -2022-11-17 14:21:20 STATE: test-backend-node-wasm.js event: detect -2022-11-17 14:21:20 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg sensitive -2022-11-17 14:21:20 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 10 object: 0 person: 1 {"score":1,"age":29.6,"gender":"female"} {} {"score":0.92,"keypoints":17} -2022-11-17 14:21:20 DATA:  test-backend-node-wasm.js result: performance: load: null total: 272 -2022-11-17 14:21:20 STATE: test-backend-node-wasm.js passed: sensitive result match -2022-11-17 14:21:20 STATE: test-backend-node-wasm.js passed: sensitive face result match -2022-11-17 14:21:20 STATE: test-backend-node-wasm.js passed: sensitive face emotion result [{"score":0.46,"emotion":"neutral"},{"score":0.24,"emotion":"fear"},{"score":0.17,"emotion":"sad"}] -2022-11-17 14:21:20 STATE: test-backend-node-wasm.js passed: sensitive body result match -2022-11-17 14:21:20 STATE: test-backend-node-wasm.js passed: sensitive hand result match -2022-11-17 14:21:20 INFO:  test-backend-node-wasm.js test body -2022-11-17 14:21:20 STATE: test-backend-node-wasm.js start blazepose -2022-11-17 14:21:23 STATE: 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 STATE: test-backend-node-wasm.js event: image -2022-11-17 14:21:23 STATE: test-backend-node-wasm.js event: detect -2022-11-17 14:21:23 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg blazepose -2022-11-17 14:21:23 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 10 object: 0 person: 1 {"score":1,"age":29.6,"gender":"female"} {} {"score":0.99,"keypoints":39} -2022-11-17 14:21:23 DATA:  test-backend-node-wasm.js result: performance: load: null total: 394 -2022-11-17 14:21:23 STATE: test-backend-node-wasm.js passed: blazepose -2022-11-17 14:21:23 STATE: test-backend-node-wasm.js start efficientpose -2022-11-17 14:21:24 STATE: 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 STATE: test-backend-node-wasm.js event: image -2022-11-17 14:21:25 STATE: test-backend-node-wasm.js event: detect -2022-11-17 14:21:25 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg efficientpose -2022-11-17 14:21:25 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 10 object: 0 person: 1 {"score":1,"age":29.6,"gender":"female"} {} {"score":0.75,"keypoints":13} -2022-11-17 14:21:25 DATA:  test-backend-node-wasm.js result: performance: load: null total: 667 -2022-11-17 14:21:25 STATE: test-backend-node-wasm.js passed: efficientpose -2022-11-17 14:21:25 STATE: test-backend-node-wasm.js start posenet -2022-11-17 14:21:26 STATE: 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 STATE: test-backend-node-wasm.js event: image -2022-11-17 14:21:26 STATE: test-backend-node-wasm.js event: detect -2022-11-17 14:21:26 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg posenet -2022-11-17 14:21:26 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 10 object: 0 person: 1 {"score":1,"age":29.6,"gender":"female"} {} {"score":0.96,"keypoints":16} -2022-11-17 14:21:26 DATA:  test-backend-node-wasm.js result: performance: load: null total: 297 -2022-11-17 14:21:26 STATE: test-backend-node-wasm.js passed: posenet -2022-11-17 14:21:26 STATE: test-backend-node-wasm.js start movenet -2022-11-17 14:21:26 STATE: 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 STATE: test-backend-node-wasm.js event: image -2022-11-17 14:21:26 STATE: test-backend-node-wasm.js event: detect -2022-11-17 14:21:26 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg movenet -2022-11-17 14:21:26 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 10 object: 0 person: 1 {"score":1,"age":29.6,"gender":"female"} {} {"score":0.92,"keypoints":17} -2022-11-17 14:21:26 DATA:  test-backend-node-wasm.js result: performance: load: null total: 232 -2022-11-17 14:21:26 STATE: test-backend-node-wasm.js passed: movenet -2022-11-17 14:21:26 INFO:  test-backend-node-wasm.js test face matching -2022-11-17 14:21:26 STATE: test-backend-node-wasm.js passed: face database 40 -2022-11-17 14:21:26 STATE: test-backend-node-wasm.js passed: face match {"first":{"index":4,"similarity":0.7827852754786533}} {"second":{"index":4,"similarity":0.5660821189104794}} {"third":{"index":4,"similarity":0.45074189882665594}} -2022-11-17 14:21:26 INFO:  test-backend-node-wasm.js test face similarity alternative -2022-11-17 14:21:26 STATE: test-backend-node-wasm.js start face embeddings -2022-11-17 14:21:27 STATE: 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 STATE: test-backend-node-wasm.js event: image -2022-11-17 14:21:27 ERROR: test-backend-node-wasm.js failed: testDetect face embeddings -2022-11-17 14:21:27 ERROR: 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 STATE: all tests complete -2022-11-17 14:21:27 INFO:  status {"test":"../demo/nodejs/node.js","passed":1,"failed":0} -2022-11-17 14:21:27 INFO:  status {"test":"../demo/nodejs/node-simple.js","passed":1,"failed":0} -2022-11-17 14:21:27 INFO:  status {"test":"../demo/nodejs/node-event.js","passed":1,"failed":0} -2022-11-17 14:21:27 INFO:  status {"test":"../demo/nodejs/node-similarity.js","passed":1,"failed":0} -2022-11-17 14:21:27 INFO:  status {"test":"../demo/nodejs/node-canvas.js","passed":1,"failed":0} -2022-11-17 14:21:27 INFO:  status {"test":"../demo/nodejs/process-folder.js","passed":1,"failed":0} -2022-11-17 14:21:27 INFO:  status {"test":"../demo/multithread/node-multiprocess.js","passed":1,"failed":0} -2022-11-17 14:21:27 INFO:  status {"test":"../demo/facematch/node-match.js","passed":1,"failed":0} -2022-11-17 14:21:27 INFO:  status {"test":"test-node-load.js","passed":1,"failed":0} -2022-11-17 14:21:27 INFO:  status {"test":"test-node-gear.js","passed":3,"failed":0} -2022-11-17 14:21:27 INFO:  status {"test":"test-backend-node.js","passed":85,"failed":1} -2022-11-17 14:21:27 INFO:  status {"test":"test-backend-node-gpu.js","passed":85,"failed":1} -2022-11-17 14:21:27 INFO:  status {"test":"test-backend-node-wasm.js","passed":85,"failed":2} -2022-11-17 14:21:27 INFO:  failures {"count":4} -2022-11-17 14:21:27 WARN:  failed {"test":"test-backend-node.js","message":["error",["failed:","testDetect face embeddings"]]} -2022-11-17 14:21:27 WARN:  failed {"test":"test-backend-node-gpu.js","message":["error",["failed:","testDetect face embeddings"]]} -2022-11-17 14:21:27 WARN:  failed {"test":"test-backend-node-wasm.js","message":["error",["failed: nanodet",[]]]} -2022-11-17 14:21:27 WARN:  failed {"test":"test-backend-node-wasm.js","message":["error",["failed:","testDetect face embeddings"]]} +2022-11-18 11:54:19 INFO:  @vladmandic/human version 3.0.0 +2022-11-18 11:54:19 INFO:  User: vlado Platform: linux Arch: x64 Node: v19.1.0 +2022-11-18 11:54:19 INFO:  demos: [{"cmd":"../demo/nodejs/node.js","args":[]},{"cmd":"../demo/nodejs/node-simple.js","args":[]},{"cmd":"../demo/nodejs/node-event.js","args":["samples/in/ai-body.jpg"]},{"cmd":"../demo/nodejs/node-similarity.js","args":["samples/in/ai-face.jpg","samples/in/ai-upper.jpg"]},{"cmd":"../demo/nodejs/node-canvas.js","args":["samples/in/ai-body.jpg","samples/out/ai-body.jpg"]},{"cmd":"../demo/nodejs/process-folder.js","args":["samples"]},{"cmd":"../demo/multithread/node-multiprocess.js","args":[]},{"cmd":"../demo/facematch/node-match.js","args":[]}] +2022-11-18 11:54:19 INFO:  {"cmd":"../demo/nodejs/node.js","args":[]} start +2022-11-18 11:54:20 INFO:  {"cmd":"../demo/nodejs/node-simple.js","args":[]} start +2022-11-18 11:54:21 INFO:  {"cmd":"../demo/nodejs/node-event.js","args":["samples/in/ai-body.jpg"]} start +2022-11-18 11:54:22 INFO:  {"cmd":"../demo/nodejs/node-similarity.js","args":["samples/in/ai-face.jpg","samples/in/ai-upper.jpg"]} start +2022-11-18 11:54:22 INFO:  {"cmd":"../demo/nodejs/node-canvas.js","args":["samples/in/ai-body.jpg","samples/out/ai-body.jpg"]} start +2022-11-18 11:54:23 INFO:  {"cmd":"../demo/nodejs/process-folder.js","args":["samples"]} start +2022-11-18 11:54:25 INFO:  {"cmd":"../demo/multithread/node-multiprocess.js","args":[]} start +2022-11-18 11:54:37 INFO:  {"cmd":"../demo/facematch/node-match.js","args":[]} start +2022-11-18 11:54:38 INFO:  tests: ["test-node-load.js","test-node-gear.js","test-backend-node.js","test-backend-node-gpu.js","test-backend-node-wasm.js"] +2022-11-18 11:54:38 INFO:  +2022-11-18 11:54:38 INFO:  test-node-load.js start +2022-11-18 11:54:38 INFO:  test-node-load.js load start {"human":"3.0.0","tf":"4.0.0","progress":0} +2022-11-18 11:54:38 DATA:  test-node-load.js load interval {"elapsed":1,"progress":0} +2022-11-18 11:54:38 DATA:  test-node-load.js load interval {"elapsed":10,"progress":0} +2022-11-18 11:54:38 DATA:  test-node-load.js load interval {"elapsed":22,"progress":0.05339166087267679} +2022-11-18 11:54:38 DATA:  test-node-load.js load interval {"elapsed":57,"progress":0.3299591712723044} +2022-11-18 11:54:38 DATA:  test-node-load.js load interval {"elapsed":79,"progress":0.7259096583739463} +2022-11-18 11:54:38 STATE: test-node-load.js passed {"progress":1} +2022-11-18 11:54:38 INFO:  test-node-load.js load final {"progress":1} +2022-11-18 11:54:38 DATA:  test-node-load.js load interval {"elapsed":434,"progress":1} +2022-11-18 11:54:38 INFO:  +2022-11-18 11:54:38 INFO:  test-node-gear.js start +2022-11-18 11:54:39 DATA:  test-node-gear.js input: ["samples/in/ai-face.jpg"] +2022-11-18 11:54:40 STATE: test-node-gear.js passed: gear faceres samples/in/ai-face.jpg +2022-11-18 11:54:40 DATA:  test-node-gear.js results {"face":0,"model":"faceres","image":"samples/in/ai-face.jpg","age":23.5,"gender":"female","genderScore":0.92} +2022-11-18 11:54:40 STATE: test-node-gear.js passed: gear gear samples/in/ai-face.jpg +2022-11-18 11:54:40 DATA:  test-node-gear.js results {"face":0,"model":"gear","image":"samples/in/ai-face.jpg","age":23.3,"gender":"female","genderScore":0.51,"race":[{"score":0.93,"race":"white"}]} +2022-11-18 11:54:40 STATE: test-node-gear.js passed: gear ssrnet samples/in/ai-face.jpg +2022-11-18 11:54:40 DATA:  test-node-gear.js results {"face":0,"model":"ssrnet","image":"samples/in/ai-face.jpg","age":23.4,"gender":"female","genderScore":0.99} +2022-11-18 11:54:40 INFO:  +2022-11-18 11:54:40 INFO:  test-backend-node.js start +2022-11-18 11:54:41 INFO:  test-backend-node.js test: configuration validation +2022-11-18 11:54:41 STATE: test-backend-node.js passed: configuration default validation [] +2022-11-18 11:54:41 STATE: test-backend-node.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}] +2022-11-18 11:54:41 INFO:  test-backend-node.js test: model load +2022-11-18 11:54:41 STATE: 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 INFO:  test-backend-node.js memory: {"memory":{"unreliable":true,"numTensors":1785,"numDataBuffers":1785,"numBytes":63247332}} +2022-11-18 11:54:41 INFO:  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 INFO:  test-backend-node.js test: warmup +2022-11-18 11:54:41 STATE: test-backend-node.js passed: create human +2022-11-18 11:54:41 INFO:  test-backend-node.js human version: 3.0.0 +2022-11-18 11:54:41 INFO:  test-backend-node.js platform: linux x64 agent: NodeJS v19.1.0 +2022-11-18 11:54:41 INFO:  test-backend-node.js tfjs version: 4.0.0 +2022-11-18 11:54:41 INFO:  test-backend-node.js env: {"browser":false,"node":true,"platform":"linux x64","agent":"NodeJS v19.1.0","backends":["cpu","tensorflow"],"initial":false,"tfjs":{"version":"4.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 STATE: test-backend-node.js passed: set backend: tensorflow +2022-11-18 11:54:41 STATE: test-backend-node.js tensors 1785 +2022-11-18 11:54:41 STATE: test-backend-node.js passed: load models +2022-11-18 11:54:41 STATE: test-backend-node.js result: defined models: 2 loaded models: 2 +2022-11-18 11:54:41 STATE: test-backend-node.js passed: warmup: none default +2022-11-18 11:54:41 DATA:  test-backend-node.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {} +2022-11-18 11:54:41 DATA:  test-backend-node.js result: performance: load: null total: null +2022-11-18 11:54:41 STATE: test-backend-node.js passed: warmup none result match +2022-11-18 11:54:41 STATE: test-backend-node.js event: image +2022-11-18 11:54:41 STATE: test-backend-node.js event: detect +2022-11-18 11:54:41 STATE: test-backend-node.js event: warmup +2022-11-18 11:54:41 STATE: test-backend-node.js passed: warmup: face default +2022-11-18 11:54:41 DATA:  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 DATA:  test-backend-node.js result: performance: load: null total: 403 +2022-11-18 11:54:41 STATE: test-backend-node.js passed: warmup face result match +2022-11-18 11:54:41 STATE: test-backend-node.js event: image +2022-11-18 11:54:41 STATE: test-backend-node.js event: detect +2022-11-18 11:54:41 STATE: test-backend-node.js event: warmup +2022-11-18 11:54:41 STATE: test-backend-node.js passed: warmup: body default +2022-11-18 11:54:41 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-11-18 11:54:41 DATA:  test-backend-node.js result: performance: load: null total: 326 +2022-11-18 11:54:41 STATE: test-backend-node.js passed: warmup body result match +2022-11-18 11:54:41 STATE: test-backend-node.js details: {"face":{"boxScore":0.92,"faceScore":1,"age":23.7,"gender":"female","genderScore":0.97},"emotion":[{"score":0.63,"emotion":"angry"},{"score":0.22,"emotion":"fear"}],"body":{"score":0.92,"keypoints":17},"hand":{"boxScore":0.52,"fingerScore":0.73,"keypoints":21},"gestures":[{"face":0,"gesture":"facing right"},{"face":0,"gesture":"mouth 10% open"},{"hand":0,"gesture":"pinky forward"},{"hand":0,"gesture":"palm up"},{"hand":0,"gesture":"open palm"},{"iris":0,"gesture":"looking left"},{"iris":0,"gesture":"looking up"}]} +2022-11-18 11:54:41 INFO:  test-backend-node.js test: details verification +2022-11-18 11:54:41 STATE: test-backend-node.js start default +2022-11-18 11:54:42 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-11-18 11:54:42 STATE: test-backend-node.js event: image +2022-11-18 11:54:42 STATE: test-backend-node.js event: detect +2022-11-18 11:54:42 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg default +2022-11-18 11:54:42 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-11-18 11:54:42 DATA:  test-backend-node.js result: performance: load: null total: 308 +2022-11-18 11:54:42 STATE: test-backend-node.js passed: details face length 1 +2022-11-18 11:54:42 STATE: test-backend-node.js passed: details face score 1 0.93 1 +2022-11-18 11:54:42 STATE: test-backend-node.js passed: details face age/gender 23.7 female 0.97 2.34 +2022-11-18 11:54:42 STATE: test-backend-node.js passed: details face arrays 4 478 1024 +2022-11-18 11:54:42 STATE: test-backend-node.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"} +2022-11-18 11:54:42 STATE: test-backend-node.js passed: details face anti-spoofing 0.79 +2022-11-18 11:54:42 STATE: test-backend-node.js passed: details face liveness 0.83 +2022-11-18 11:54:42 STATE: test-backend-node.js passed: details body length 1 +2022-11-18 11:54:42 STATE: test-backend-node.js passed: details body 0.92 17 6 +2022-11-18 11:54:42 STATE: test-backend-node.js passed: details hand length 1 +2022-11-18 11:54:42 STATE: test-backend-node.js passed: details hand 0.51 0.73 point +2022-11-18 11:54:42 STATE: test-backend-node.js passed: details hand arrays 21 5 7 +2022-11-18 11:54:42 STATE: test-backend-node.js passed: details gesture length 7 +2022-11-18 11:54:42 STATE: test-backend-node.js passed: details gesture first {"face":0,"gesture":"facing right"} +2022-11-18 11:54:42 STATE: test-backend-node.js passed: details object length 1 +2022-11-18 11:54:42 STATE: test-backend-node.js passed: details object 0.72 person +2022-11-18 11:54:42 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996928} +2022-11-18 11:54:42 STATE: test-backend-node.js event: image +2022-11-18 11:54:42 STATE: test-backend-node.js event: detect +2022-11-18 11:54:42 STATE: test-backend-node.js passed: tensor shape: [1,1200,1200,4] dtype: float32 +2022-11-18 11:54:43 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1371996928} +2022-11-18 11:54:43 STATE: test-backend-node.js event: image +2022-11-18 11:54:43 STATE: test-backend-node.js event: detect +2022-11-18 11:54:43 STATE: test-backend-node.js passed: tensor shape: [1200,1200,4] dtype: float32 +2022-11-18 11:54:43 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-11-18 11:54:43 STATE: test-backend-node.js event: image +2022-11-18 11:54:43 STATE: test-backend-node.js event: detect +2022-11-18 11:54:43 STATE: test-backend-node.js passed: tensor shape: [1,1200,1200,3] dtype: float32 +2022-11-18 11:54:44 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1004796864} +2022-11-18 11:54:44 STATE: test-backend-node.js event: image +2022-11-18 11:54:44 STATE: test-backend-node.js event: detect +2022-11-18 11:54:44 STATE: test-backend-node.js passed: tensor shape: [1200,1200,3] dtype: float32 +2022-11-18 11:54:44 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871} +2022-11-18 11:54:44 STATE: test-backend-node.js event: image +2022-11-18 11:54:44 STATE: test-backend-node.js event: detect +2022-11-18 11:54:44 STATE: test-backend-node.js passed: tensor shape: [1,1200,1200,4] dtype: int32 +2022-11-18 11:54:44 INFO:  test-backend-node.js test default +2022-11-18 11:54:44 STATE: test-backend-node.js start async +2022-11-18 11:54:45 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-11-18 11:54:45 STATE: test-backend-node.js event: image +2022-11-18 11:54:45 STATE: test-backend-node.js event: detect +2022-11-18 11:54:45 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg async +2022-11-18 11:54:45 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-11-18 11:54:45 DATA:  test-backend-node.js result: performance: load: null total: 294 +2022-11-18 11:54:45 STATE: test-backend-node.js passed: default result face match 1 female 0.97 +2022-11-18 11:54:45 INFO:  test-backend-node.js test sync +2022-11-18 11:54:45 STATE: test-backend-node.js start sync +2022-11-18 11:54:45 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-11-18 11:54:45 STATE: test-backend-node.js event: image +2022-11-18 11:54:45 STATE: test-backend-node.js event: detect +2022-11-18 11:54:45 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg sync +2022-11-18 11:54:45 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-11-18 11:54:45 DATA:  test-backend-node.js result: performance: load: null total: 288 +2022-11-18 11:54:45 STATE: test-backend-node.js passed: default sync 1 female 0.97 +2022-11-18 11:54:45 INFO:  test-backend-node.js test: image process +2022-11-18 11:54:45 STATE: test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-11-18 11:54:45 STATE: test-backend-node.js passed: image input null [1,256,256,3] +2022-11-18 11:54:45 INFO:  test-backend-node.js test: image null +2022-11-18 11:54:45 STATE: test-backend-node.js passed: invalid input could not convert input to tensor +2022-11-18 11:54:45 INFO:  test-backend-node.js test face similarity +2022-11-18 11:54:45 STATE: test-backend-node.js start face similarity +2022-11-18 11:54:45 STATE: test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-11-18 11:54:45 STATE: test-backend-node.js event: image +2022-11-18 11:54:46 STATE: test-backend-node.js event: detect +2022-11-18 11:54:46 STATE: test-backend-node.js passed: detect: samples/in/ai-face.jpg face similarity +2022-11-18 11:54:46 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":3} +2022-11-18 11:54:46 DATA:  test-backend-node.js result: performance: load: null total: 284 +2022-11-18 11:54:46 STATE: test-backend-node.js start face similarity +2022-11-18 11:54:46 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-11-18 11:54:46 STATE: test-backend-node.js event: image +2022-11-18 11:54:46 STATE: test-backend-node.js event: detect +2022-11-18 11:54:46 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg face similarity +2022-11-18 11:54:46 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-11-18 11:54:46 DATA:  test-backend-node.js result: performance: load: null total: 288 +2022-11-18 11:54:46 STATE: test-backend-node.js start face similarity +2022-11-18 11:54:46 STATE: test-backend-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} +2022-11-18 11:54:46 STATE: test-backend-node.js event: image +2022-11-18 11:54:46 STATE: test-backend-node.js event: detect +2022-11-18 11:54:46 STATE: test-backend-node.js passed: detect: samples/in/ai-upper.jpg face similarity +2022-11-18 11:54:46 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 0 gesture: 4 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":7} +2022-11-18 11:54:46 DATA:  test-backend-node.js result: performance: load: null total: 262 +2022-11-18 11:54:46 STATE: test-backend-node.js passed: face descriptor +2022-11-18 11:54:46 STATE: test-backend-node.js passed: face similarity {"similarity":[1,0.44727441595492046,0.556793560189727],"descriptors":[1024,1024,1024]} +2022-11-18 11:54:46 INFO:  test-backend-node.js test object +2022-11-18 11:54:46 STATE: test-backend-node.js start object +2022-11-18 11:54:47 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-11-18 11:54:47 STATE: test-backend-node.js event: image +2022-11-18 11:54:47 STATE: test-backend-node.js event: detect +2022-11-18 11:54:47 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg object +2022-11-18 11:54:47 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-11-18 11:54:47 DATA:  test-backend-node.js result: performance: load: null total: 298 +2022-11-18 11:54:47 STATE: test-backend-node.js passed: centernet +2022-11-18 11:54:47 STATE: test-backend-node.js start object +2022-11-18 11:54:48 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-11-18 11:54:48 STATE: test-backend-node.js event: image +2022-11-18 11:54:48 STATE: test-backend-node.js event: detect +2022-11-18 11:54:48 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg object +2022-11-18 11:54:48 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 3 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.86,"class":"person"} {"score":0.92,"keypoints":17} +2022-11-18 11:54:48 DATA:  test-backend-node.js result: performance: load: null total: 291 +2022-11-18 11:54:48 STATE: test-backend-node.js passed: nanodet +2022-11-18 11:54:48 INFO:  test-backend-node.js test sensitive +2022-11-18 11:54:48 STATE: test-backend-node.js start sensitive +2022-11-18 11:54:49 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-11-18 11:54:49 STATE: test-backend-node.js event: image +2022-11-18 11:54:49 STATE: test-backend-node.js event: detect +2022-11-18 11:54:49 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg sensitive +2022-11-18 11:54:49 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.92,"keypoints":17} +2022-11-18 11:54:49 DATA:  test-backend-node.js result: performance: load: null total: 261 +2022-11-18 11:54:49 STATE: test-backend-node.js passed: sensitive result match +2022-11-18 11:54:49 STATE: test-backend-node.js passed: sensitive face result match +2022-11-18 11:54:49 STATE: 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 STATE: test-backend-node.js passed: sensitive body result match +2022-11-18 11:54:49 STATE: test-backend-node.js passed: sensitive hand result match +2022-11-18 11:54:49 INFO:  test-backend-node.js test body +2022-11-18 11:54:49 STATE: test-backend-node.js start blazepose +2022-11-18 11:54:51 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-11-18 11:54:51 STATE: test-backend-node.js event: image +2022-11-18 11:54:51 STATE: test-backend-node.js event: detect +2022-11-18 11:54:51 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg blazepose +2022-11-18 11:54:51 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.99,"keypoints":39} +2022-11-18 11:54:51 DATA:  test-backend-node.js result: performance: load: null total: 333 +2022-11-18 11:54:51 STATE: test-backend-node.js passed: blazepose +2022-11-18 11:54:51 STATE: test-backend-node.js start efficientpose +2022-11-18 11:54:52 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-11-18 11:54:52 STATE: test-backend-node.js event: image +2022-11-18 11:54:52 STATE: test-backend-node.js event: detect +2022-11-18 11:54:52 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg efficientpose +2022-11-18 11:54:52 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.75,"keypoints":13} +2022-11-18 11:54:52 DATA:  test-backend-node.js result: performance: load: null total: 300 +2022-11-18 11:54:52 STATE: test-backend-node.js passed: efficientpose +2022-11-18 11:54:52 STATE: test-backend-node.js start posenet +2022-11-18 11:54:53 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-11-18 11:54:53 STATE: test-backend-node.js event: image +2022-11-18 11:54:53 STATE: test-backend-node.js event: detect +2022-11-18 11:54:53 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg posenet +2022-11-18 11:54:53 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.96,"keypoints":16} +2022-11-18 11:54:53 DATA:  test-backend-node.js result: performance: load: null total: 245 +2022-11-18 11:54:53 STATE: test-backend-node.js passed: posenet +2022-11-18 11:54:53 STATE: test-backend-node.js start movenet +2022-11-18 11:54:54 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-11-18 11:54:54 STATE: test-backend-node.js event: image +2022-11-18 11:54:54 STATE: test-backend-node.js event: detect +2022-11-18 11:54:54 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg movenet +2022-11-18 11:54:54 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.92,"keypoints":17} +2022-11-18 11:54:54 DATA:  test-backend-node.js result: performance: load: null total: 251 +2022-11-18 11:54:54 STATE: test-backend-node.js passed: movenet +2022-11-18 11:54:54 INFO:  test-backend-node.js test face matching +2022-11-18 11:54:54 STATE: test-backend-node.js passed: face database 40 +2022-11-18 11:54:54 STATE: test-backend-node.js passed: face match {"first":{"index":4,"similarity":0.7827852251220577}} {"second":{"index":4,"similarity":0.5002052057057577}} {"third":{"index":4,"similarity":0.5401588464054732}} +2022-11-18 11:54:54 INFO:  test-backend-node.js test face similarity alternative +2022-11-18 11:54:54 STATE: test-backend-node.js start face embeddings +2022-11-18 11:54:54 STATE: test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-11-18 11:54:54 STATE: test-backend-node.js event: image +2022-11-18 11:54:55 ERROR: test-backend-node.js failed: testDetect face embeddings +2022-11-18 11:54:55 ERROR: 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 INFO:  +2022-11-18 11:54:55 INFO:  test-backend-node-gpu.js start +2022-11-18 11:54:55 INFO:  test-backend-node-gpu.js test: configuration validation +2022-11-18 11:54:55 STATE: test-backend-node-gpu.js passed: configuration default validation [] +2022-11-18 11:54:55 STATE: test-backend-node-gpu.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}] +2022-11-18 11:54:55 INFO:  test-backend-node-gpu.js test: model load +2022-11-18 11:54:55 STATE: 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 INFO:  test-backend-node-gpu.js memory: {"memory":{"unreliable":true,"numTensors":1785,"numDataBuffers":1785,"numBytes":63247332}} +2022-11-18 11:54:55 INFO:  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 INFO:  test-backend-node-gpu.js test: warmup +2022-11-18 11:54:55 STATE: test-backend-node-gpu.js passed: create human +2022-11-18 11:54:55 INFO:  test-backend-node-gpu.js human version: 3.0.0 +2022-11-18 11:54:55 INFO:  test-backend-node-gpu.js platform: linux x64 agent: NodeJS v19.1.0 +2022-11-18 11:54:55 INFO:  test-backend-node-gpu.js tfjs version: 4.0.0 +2022-11-18 11:54:55 INFO:  test-backend-node-gpu.js env: {"browser":false,"node":true,"platform":"linux x64","agent":"NodeJS v19.1.0","backends":["cpu","tensorflow"],"initial":false,"tfjs":{"version":"4.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 STATE: test-backend-node-gpu.js passed: set backend: tensorflow +2022-11-18 11:54:55 STATE: test-backend-node-gpu.js tensors 1785 +2022-11-18 11:54:55 STATE: test-backend-node-gpu.js passed: load models +2022-11-18 11:54:55 STATE: test-backend-node-gpu.js result: defined models: 2 loaded models: 2 +2022-11-18 11:54:55 STATE: test-backend-node-gpu.js passed: warmup: none default +2022-11-18 11:54:55 DATA:  test-backend-node-gpu.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {} +2022-11-18 11:54:55 DATA:  test-backend-node-gpu.js result: performance: load: null total: null +2022-11-18 11:54:55 STATE: test-backend-node-gpu.js passed: warmup none result match +2022-11-18 11:54:56 STATE: test-backend-node-gpu.js event: image +2022-11-18 11:54:59 STATE: test-backend-node-gpu.js event: detect +2022-11-18 11:54:59 STATE: test-backend-node-gpu.js event: warmup +2022-11-18 11:54:59 STATE: test-backend-node-gpu.js passed: warmup: face default +2022-11-18 11:54:59 DATA:  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 DATA:  test-backend-node-gpu.js result: performance: load: null total: 3308 +2022-11-18 11:54:59 STATE: test-backend-node-gpu.js passed: warmup face result match +2022-11-18 11:54:59 STATE: test-backend-node-gpu.js event: image +2022-11-18 11:54:59 STATE: test-backend-node-gpu.js event: detect +2022-11-18 11:54:59 STATE: test-backend-node-gpu.js event: warmup +2022-11-18 11:54:59 STATE: test-backend-node-gpu.js passed: warmup: body default +2022-11-18 11:54:59 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-11-18 11:54:59 DATA:  test-backend-node-gpu.js result: performance: load: null total: 174 +2022-11-18 11:54:59 STATE: test-backend-node-gpu.js passed: warmup body result match +2022-11-18 11:54:59 STATE: test-backend-node-gpu.js details: {"face":{"boxScore":0.92,"faceScore":1,"age":23.7,"gender":"female","genderScore":0.97},"emotion":[{"score":0.63,"emotion":"angry"},{"score":0.22,"emotion":"fear"}],"body":{"score":0.92,"keypoints":17},"hand":{"boxScore":0.52,"fingerScore":0.73,"keypoints":21},"gestures":[{"face":0,"gesture":"facing right"},{"face":0,"gesture":"mouth 10% open"},{"hand":0,"gesture":"pinky forward"},{"hand":0,"gesture":"palm up"},{"hand":0,"gesture":"open palm"},{"iris":0,"gesture":"looking left"},{"iris":0,"gesture":"looking up"}]} +2022-11-18 11:54:59 INFO:  test-backend-node-gpu.js test: details verification +2022-11-18 11:54:59 STATE: test-backend-node-gpu.js start default +2022-11-18 11:54:59 STATE: 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 STATE: test-backend-node-gpu.js event: image +2022-11-18 11:55:00 STATE: test-backend-node-gpu.js event: detect +2022-11-18 11:55:00 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg default +2022-11-18 11:55:00 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-11-18 11:55:00 DATA:  test-backend-node-gpu.js result: performance: load: null total: 154 +2022-11-18 11:55:00 STATE: test-backend-node-gpu.js passed: details face length 1 +2022-11-18 11:55:00 STATE: test-backend-node-gpu.js passed: details face score 1 0.93 1 +2022-11-18 11:55:00 STATE: test-backend-node-gpu.js passed: details face age/gender 23.7 female 0.97 2.34 +2022-11-18 11:55:00 STATE: test-backend-node-gpu.js passed: details face arrays 4 478 1024 +2022-11-18 11:55:00 STATE: test-backend-node-gpu.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"} +2022-11-18 11:55:00 STATE: test-backend-node-gpu.js passed: details face anti-spoofing 0.79 +2022-11-18 11:55:00 STATE: test-backend-node-gpu.js passed: details face liveness 0.83 +2022-11-18 11:55:00 STATE: test-backend-node-gpu.js passed: details body length 1 +2022-11-18 11:55:00 STATE: test-backend-node-gpu.js passed: details body 0.92 17 6 +2022-11-18 11:55:00 STATE: test-backend-node-gpu.js passed: details hand length 1 +2022-11-18 11:55:00 STATE: test-backend-node-gpu.js passed: details hand 0.51 0.73 point +2022-11-18 11:55:00 STATE: test-backend-node-gpu.js passed: details hand arrays 21 5 7 +2022-11-18 11:55:00 STATE: test-backend-node-gpu.js passed: details gesture length 7 +2022-11-18 11:55:00 STATE: test-backend-node-gpu.js passed: details gesture first {"face":0,"gesture":"facing right"} +2022-11-18 11:55:00 STATE: test-backend-node-gpu.js passed: details object length 1 +2022-11-18 11:55:00 STATE: test-backend-node-gpu.js passed: details object 0.72 person +2022-11-18 11:55:00 STATE: 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 STATE: test-backend-node-gpu.js event: image +2022-11-18 11:55:00 STATE: test-backend-node-gpu.js event: detect +2022-11-18 11:55:00 STATE: test-backend-node-gpu.js passed: tensor shape: [1,1200,1200,4] dtype: float32 +2022-11-18 11:55:00 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1371996928} +2022-11-18 11:55:00 STATE: test-backend-node-gpu.js event: image +2022-11-18 11:55:00 STATE: test-backend-node-gpu.js event: detect +2022-11-18 11:55:00 STATE: test-backend-node-gpu.js passed: tensor shape: [1200,1200,4] dtype: float32 +2022-11-18 11:55:00 STATE: 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 STATE: test-backend-node-gpu.js event: image +2022-11-18 11:55:01 STATE: test-backend-node-gpu.js event: detect +2022-11-18 11:55:01 STATE: test-backend-node-gpu.js passed: tensor shape: [1,1200,1200,3] dtype: float32 +2022-11-18 11:55:01 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1004796928} +2022-11-18 11:55:01 STATE: test-backend-node-gpu.js event: image +2022-11-18 11:55:01 STATE: test-backend-node-gpu.js event: detect +2022-11-18 11:55:01 STATE: test-backend-node-gpu.js passed: tensor shape: [1200,1200,3] dtype: float32 +2022-11-18 11:55:01 STATE: 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 STATE: test-backend-node-gpu.js event: image +2022-11-18 11:55:01 STATE: test-backend-node-gpu.js event: detect +2022-11-18 11:55:01 STATE: test-backend-node-gpu.js passed: tensor shape: [1,1200,1200,4] dtype: int32 +2022-11-18 11:55:01 INFO:  test-backend-node-gpu.js test default +2022-11-18 11:55:01 STATE: test-backend-node-gpu.js start async +2022-11-18 11:55:01 STATE: 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 STATE: test-backend-node-gpu.js event: image +2022-11-18 11:55:02 STATE: test-backend-node-gpu.js event: detect +2022-11-18 11:55:02 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg async +2022-11-18 11:55:02 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-11-18 11:55:02 DATA:  test-backend-node-gpu.js result: performance: load: null total: 144 +2022-11-18 11:55:02 STATE: test-backend-node-gpu.js passed: default result face match 1 female 0.97 +2022-11-18 11:55:02 INFO:  test-backend-node-gpu.js test sync +2022-11-18 11:55:02 STATE: test-backend-node-gpu.js start sync +2022-11-18 11:55:02 STATE: 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 STATE: test-backend-node-gpu.js event: image +2022-11-18 11:55:02 STATE: test-backend-node-gpu.js event: detect +2022-11-18 11:55:02 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg sync +2022-11-18 11:55:02 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-11-18 11:55:02 DATA:  test-backend-node-gpu.js result: performance: load: null total: 140 +2022-11-18 11:55:02 STATE: test-backend-node-gpu.js passed: default sync 1 female 0.97 +2022-11-18 11:55:02 INFO:  test-backend-node-gpu.js test: image process +2022-11-18 11:55:02 STATE: 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 STATE: test-backend-node-gpu.js passed: image input null [1,256,256,3] +2022-11-18 11:55:02 INFO:  test-backend-node-gpu.js test: image null +2022-11-18 11:55:02 STATE: test-backend-node-gpu.js passed: invalid input could not convert input to tensor +2022-11-18 11:55:02 INFO:  test-backend-node-gpu.js test face similarity +2022-11-18 11:55:02 STATE: test-backend-node-gpu.js start face similarity +2022-11-18 11:55:02 STATE: 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 STATE: test-backend-node-gpu.js event: image +2022-11-18 11:55:02 STATE: test-backend-node-gpu.js event: detect +2022-11-18 11:55:02 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-face.jpg face similarity +2022-11-18 11:55:02 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":3} +2022-11-18 11:55:02 DATA:  test-backend-node-gpu.js result: performance: load: null total: 133 +2022-11-18 11:55:02 STATE: test-backend-node-gpu.js start face similarity +2022-11-18 11:55:02 STATE: 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 STATE: test-backend-node-gpu.js event: image +2022-11-18 11:55:02 STATE: test-backend-node-gpu.js event: detect +2022-11-18 11:55:02 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg face similarity +2022-11-18 11:55:02 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-11-18 11:55:02 DATA:  test-backend-node-gpu.js result: performance: load: null total: 133 +2022-11-18 11:55:02 STATE: test-backend-node-gpu.js start face similarity +2022-11-18 11:55:02 STATE: 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 STATE: test-backend-node-gpu.js event: image +2022-11-18 11:55:03 STATE: test-backend-node-gpu.js event: detect +2022-11-18 11:55:03 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-upper.jpg face similarity +2022-11-18 11:55:03 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 4 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":7} +2022-11-18 11:55:03 DATA:  test-backend-node-gpu.js result: performance: load: null total: 117 +2022-11-18 11:55:03 STATE: test-backend-node-gpu.js passed: face descriptor +2022-11-18 11:55:03 STATE: test-backend-node-gpu.js passed: face similarity {"similarity":[1,0.4475002983522097,0.5570879556505012],"descriptors":[1024,1024,1024]} +2022-11-18 11:55:03 INFO:  test-backend-node-gpu.js test object +2022-11-18 11:55:03 STATE: test-backend-node-gpu.js start object +2022-11-18 11:55:03 STATE: 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 STATE: test-backend-node-gpu.js event: image +2022-11-18 11:55:03 STATE: test-backend-node-gpu.js event: detect +2022-11-18 11:55:03 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg object +2022-11-18 11:55:03 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-11-18 11:55:03 DATA:  test-backend-node-gpu.js result: performance: load: null total: 130 +2022-11-18 11:55:03 STATE: test-backend-node-gpu.js passed: centernet +2022-11-18 11:55:03 STATE: test-backend-node-gpu.js start object +2022-11-18 11:55:04 STATE: 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 STATE: test-backend-node-gpu.js event: image +2022-11-18 11:55:05 STATE: test-backend-node-gpu.js event: detect +2022-11-18 11:55:05 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg object +2022-11-18 11:55:05 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 3 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.86,"class":"person"} {"score":0.92,"keypoints":17} +2022-11-18 11:55:05 DATA:  test-backend-node-gpu.js result: performance: load: null total: 523 +2022-11-18 11:55:05 STATE: test-backend-node-gpu.js passed: nanodet +2022-11-18 11:55:05 INFO:  test-backend-node-gpu.js test sensitive +2022-11-18 11:55:05 STATE: test-backend-node-gpu.js start sensitive +2022-11-18 11:55:05 STATE: 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 STATE: test-backend-node-gpu.js event: image +2022-11-18 11:55:05 STATE: test-backend-node-gpu.js event: detect +2022-11-18 11:55:05 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg sensitive +2022-11-18 11:55:05 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.92,"keypoints":17} +2022-11-18 11:55:05 DATA:  test-backend-node-gpu.js result: performance: load: null total: 124 +2022-11-18 11:55:05 STATE: test-backend-node-gpu.js passed: sensitive result match +2022-11-18 11:55:05 STATE: test-backend-node-gpu.js passed: sensitive face result match +2022-11-18 11:55:05 STATE: 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 STATE: test-backend-node-gpu.js passed: sensitive body result match +2022-11-18 11:55:05 STATE: test-backend-node-gpu.js passed: sensitive hand result match +2022-11-18 11:55:05 INFO:  test-backend-node-gpu.js test body +2022-11-18 11:55:05 STATE: test-backend-node-gpu.js start blazepose +2022-11-18 11:55:07 STATE: 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 STATE: test-backend-node-gpu.js event: image +2022-11-18 11:55:07 STATE: test-backend-node-gpu.js event: detect +2022-11-18 11:55:07 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg blazepose +2022-11-18 11:55:07 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.99,"keypoints":39} +2022-11-18 11:55:07 DATA:  test-backend-node-gpu.js result: performance: load: null total: 230 +2022-11-18 11:55:07 STATE: test-backend-node-gpu.js passed: blazepose +2022-11-18 11:55:07 STATE: test-backend-node-gpu.js start efficientpose +2022-11-18 11:55:07 STATE: 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 STATE: test-backend-node-gpu.js event: image +2022-11-18 11:55:08 STATE: test-backend-node-gpu.js event: detect +2022-11-18 11:55:08 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg efficientpose +2022-11-18 11:55:08 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.75,"keypoints":13} +2022-11-18 11:55:08 DATA:  test-backend-node-gpu.js result: performance: load: null total: 1013 +2022-11-18 11:55:08 STATE: test-backend-node-gpu.js passed: efficientpose +2022-11-18 11:55:08 STATE: test-backend-node-gpu.js start posenet +2022-11-18 11:55:09 STATE: 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 STATE: test-backend-node-gpu.js event: image +2022-11-18 11:55:09 STATE: test-backend-node-gpu.js event: detect +2022-11-18 11:55:09 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg posenet +2022-11-18 11:55:09 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.96,"keypoints":16} +2022-11-18 11:55:09 DATA:  test-backend-node-gpu.js result: performance: load: null total: 132 +2022-11-18 11:55:09 STATE: test-backend-node-gpu.js passed: posenet +2022-11-18 11:55:09 STATE: test-backend-node-gpu.js start movenet +2022-11-18 11:55:09 STATE: 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 STATE: test-backend-node-gpu.js event: image +2022-11-18 11:55:09 STATE: test-backend-node-gpu.js event: detect +2022-11-18 11:55:09 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg movenet +2022-11-18 11:55:09 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.92,"keypoints":17} +2022-11-18 11:55:09 DATA:  test-backend-node-gpu.js result: performance: load: null total: 93 +2022-11-18 11:55:09 STATE: test-backend-node-gpu.js passed: movenet +2022-11-18 11:55:09 INFO:  test-backend-node-gpu.js test face matching +2022-11-18 11:55:09 STATE: test-backend-node-gpu.js passed: face database 40 +2022-11-18 11:55:09 STATE: test-backend-node-gpu.js passed: face match {"first":{"index":4,"similarity":0.7829338043932047}} {"second":{"index":4,"similarity":0.5002928781584631}} {"third":{"index":4,"similarity":0.5402934771672516}} +2022-11-18 11:55:09 INFO:  test-backend-node-gpu.js test face similarity alternative +2022-11-18 11:55:09 STATE: test-backend-node-gpu.js start face embeddings +2022-11-18 11:55:10 STATE: 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 STATE: test-backend-node-gpu.js event: image +2022-11-18 11:55:10 ERROR: test-backend-node-gpu.js failed: testDetect face embeddings +2022-11-18 11:55:10 ERROR: 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 INFO:  +2022-11-18 11:55:10 INFO:  test-backend-node-wasm.js start +2022-11-18 11:55:10 DATA:  test-backend-node-wasm.js stdout: 2022-11-18 11:55:10 INFO:  { supported: true, backend: true, simd: undefined, multithread: undefined } https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-backend-wasm@4.0.0/dist/ +2022-11-18 11:55:11 STATE: test-backend-node-wasm.js passed: model server: https://vladmandic.github.io/human-models/models/ +2022-11-18 11:55:11 INFO:  test-backend-node-wasm.js test: configuration validation +2022-11-18 11:55:11 STATE: test-backend-node-wasm.js passed: configuration default validation [] +2022-11-18 11:55:11 STATE: test-backend-node-wasm.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}] +2022-11-18 11:55:11 INFO:  test-backend-node-wasm.js test: model load +2022-11-18 11:55:13 STATE: 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 INFO:  test-backend-node-wasm.js memory: {"memory":{"unreliable":false,"numTensors":1785,"numDataBuffers":1785,"numBytes":63247332}} +2022-11-18 11:55:13 INFO:  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 INFO:  test-backend-node-wasm.js test: warmup +2022-11-18 11:55:13 STATE: test-backend-node-wasm.js passed: create human +2022-11-18 11:55:13 INFO:  test-backend-node-wasm.js human version: 3.0.0 +2022-11-18 11:55:13 INFO:  test-backend-node-wasm.js platform: linux x64 agent: NodeJS v19.1.0 +2022-11-18 11:55:13 INFO:  test-backend-node-wasm.js tfjs version: 4.0.0 +2022-11-18 11:55:13 INFO:  test-backend-node-wasm.js env: {"browser":false,"node":true,"platform":"linux x64","agent":"NodeJS v19.1.0","backends":["wasm"],"initial":false,"tfjs":{"version":"4.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 STATE: test-backend-node-wasm.js passed: set backend: wasm +2022-11-18 11:55:13 STATE: test-backend-node-wasm.js tensors 1785 +2022-11-18 11:55:13 STATE: test-backend-node-wasm.js passed: load models +2022-11-18 11:55:13 STATE: test-backend-node-wasm.js result: defined models: 2 loaded models: 2 +2022-11-18 11:55:13 STATE: test-backend-node-wasm.js passed: warmup: none default +2022-11-18 11:55:13 DATA:  test-backend-node-wasm.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {} +2022-11-18 11:55:13 DATA:  test-backend-node-wasm.js result: performance: load: null total: null +2022-11-18 11:55:13 STATE: test-backend-node-wasm.js passed: warmup none result match +2022-11-18 11:55:13 STATE: test-backend-node-wasm.js event: image +2022-11-18 11:55:13 STATE: test-backend-node-wasm.js event: detect +2022-11-18 11:55:13 STATE: test-backend-node-wasm.js event: warmup +2022-11-18 11:55:13 STATE: test-backend-node-wasm.js passed: warmup: face default +2022-11-18 11:55:13 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":3} +2022-11-18 11:55:13 DATA:  test-backend-node-wasm.js result: performance: load: null total: 480 +2022-11-18 11:55:13 STATE: test-backend-node-wasm.js passed: warmup face result match +2022-11-18 11:55:13 STATE: test-backend-node-wasm.js event: image +2022-11-18 11:55:14 STATE: test-backend-node-wasm.js event: detect +2022-11-18 11:55:14 STATE: test-backend-node-wasm.js event: warmup +2022-11-18 11:55:14 STATE: test-backend-node-wasm.js passed: warmup: body default +2022-11-18 11:55:14 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-11-18 11:55:14 DATA:  test-backend-node-wasm.js result: performance: load: null total: 335 +2022-11-18 11:55:14 STATE: test-backend-node-wasm.js passed: warmup body result match +2022-11-18 11:55:14 STATE: test-backend-node-wasm.js details: {"face":{"boxScore":0.93,"faceScore":1,"age":23.7,"gender":"female","genderScore":0.97},"emotion":[{"score":0.59,"emotion":"angry"},{"score":0.29,"emotion":"fear"}],"body":{"score":0.92,"keypoints":17},"hand":{"boxScore":0.51,"fingerScore":0.73,"keypoints":21},"gestures":[{"face":0,"gesture":"facing right"},{"face":0,"gesture":"mouth 21% open"},{"hand":0,"gesture":"pinky forward"},{"hand":0,"gesture":"palm up"},{"hand":0,"gesture":"open palm"},{"iris":0,"gesture":"looking left"},{"iris":0,"gesture":"looking up"}]} +2022-11-18 11:55:14 INFO:  test-backend-node-wasm.js test: details verification +2022-11-18 11:55:14 STATE: test-backend-node-wasm.js start default +2022-11-18 11:55:14 STATE: 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 STATE: test-backend-node-wasm.js event: image +2022-11-18 11:55:14 STATE: test-backend-node-wasm.js event: detect +2022-11-18 11:55:14 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg default +2022-11-18 11:55:14 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-11-18 11:55:14 DATA:  test-backend-node-wasm.js result: performance: load: null total: 320 +2022-11-18 11:55:14 STATE: test-backend-node-wasm.js passed: details face length 1 +2022-11-18 11:55:14 STATE: test-backend-node-wasm.js passed: details face score 1 0.93 1 +2022-11-18 11:55:14 STATE: test-backend-node-wasm.js passed: details face age/gender 23.7 female 0.97 2.34 +2022-11-18 11:55:14 STATE: test-backend-node-wasm.js passed: details face arrays 4 478 1024 +2022-11-18 11:55:14 STATE: test-backend-node-wasm.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"} +2022-11-18 11:55:14 STATE: test-backend-node-wasm.js passed: details face anti-spoofing 0.79 +2022-11-18 11:55:14 STATE: test-backend-node-wasm.js passed: details face liveness 0.83 +2022-11-18 11:55:14 STATE: test-backend-node-wasm.js passed: details body length 1 +2022-11-18 11:55:14 STATE: test-backend-node-wasm.js passed: details body 0.92 17 6 +2022-11-18 11:55:14 STATE: test-backend-node-wasm.js passed: details hand length 1 +2022-11-18 11:55:14 STATE: test-backend-node-wasm.js passed: details hand 0.51 0.73 point +2022-11-18 11:55:14 STATE: test-backend-node-wasm.js passed: details hand arrays 21 5 7 +2022-11-18 11:55:14 STATE: test-backend-node-wasm.js passed: details gesture length 7 +2022-11-18 11:55:14 STATE: test-backend-node-wasm.js passed: details gesture first {"face":0,"gesture":"facing right"} +2022-11-18 11:55:14 STATE: test-backend-node-wasm.js passed: details object length 1 +2022-11-18 11:55:14 STATE: test-backend-node-wasm.js passed: details object 0.72 person +2022-11-18 11:55:14 STATE: 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 STATE: test-backend-node-wasm.js event: image +2022-11-18 11:55:15 STATE: test-backend-node-wasm.js event: detect +2022-11-18 11:55:15 STATE: test-backend-node-wasm.js passed: tensor shape: [1,1200,1200,4] dtype: float32 +2022-11-18 11:55:15 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1413675264} +2022-11-18 11:55:15 STATE: test-backend-node-wasm.js event: image +2022-11-18 11:55:15 STATE: test-backend-node-wasm.js event: detect +2022-11-18 11:55:15 STATE: test-backend-node-wasm.js passed: tensor shape: [1200,1200,4] dtype: float32 +2022-11-18 11:55:15 STATE: 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 STATE: test-backend-node-wasm.js event: image +2022-11-18 11:55:16 STATE: test-backend-node-wasm.js event: detect +2022-11-18 11:55:16 STATE: test-backend-node-wasm.js passed: tensor shape: [1,1200,1200,3] dtype: float32 +2022-11-18 11:55:16 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1038921856} +2022-11-18 11:55:16 STATE: test-backend-node-wasm.js event: image +2022-11-18 11:55:16 STATE: test-backend-node-wasm.js event: detect +2022-11-18 11:55:16 STATE: test-backend-node-wasm.js passed: tensor shape: [1200,1200,3] dtype: float32 +2022-11-18 11:55:16 STATE: 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 STATE: test-backend-node-wasm.js event: image +2022-11-18 11:55:17 STATE: test-backend-node-wasm.js event: detect +2022-11-18 11:55:17 STATE: test-backend-node-wasm.js passed: tensor shape: [1,1200,1200,4] dtype: int32 +2022-11-18 11:55:17 INFO:  test-backend-node-wasm.js test default +2022-11-18 11:55:17 STATE: test-backend-node-wasm.js start async +2022-11-18 11:55:17 STATE: 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 STATE: test-backend-node-wasm.js event: image +2022-11-18 11:55:17 STATE: test-backend-node-wasm.js event: detect +2022-11-18 11:55:17 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg async +2022-11-18 11:55:17 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-11-18 11:55:17 DATA:  test-backend-node-wasm.js result: performance: load: null total: 319 +2022-11-18 11:55:17 STATE: test-backend-node-wasm.js passed: default result face match 1 female 0.97 +2022-11-18 11:55:17 INFO:  test-backend-node-wasm.js test sync +2022-11-18 11:55:17 STATE: test-backend-node-wasm.js start sync +2022-11-18 11:55:18 STATE: 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 STATE: test-backend-node-wasm.js event: image +2022-11-18 11:55:18 STATE: test-backend-node-wasm.js event: detect +2022-11-18 11:55:18 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg sync +2022-11-18 11:55:18 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-11-18 11:55:18 DATA:  test-backend-node-wasm.js result: performance: load: null total: 321 +2022-11-18 11:55:18 STATE: test-backend-node-wasm.js passed: default sync 1 female 0.97 +2022-11-18 11:55:18 INFO:  test-backend-node-wasm.js test: image process +2022-11-18 11:55:18 STATE: 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 STATE: test-backend-node-wasm.js passed: image input null [1,256,256,3] +2022-11-18 11:55:18 INFO:  test-backend-node-wasm.js test: image null +2022-11-18 11:55:18 STATE: test-backend-node-wasm.js passed: invalid input could not convert input to tensor +2022-11-18 11:55:18 INFO:  test-backend-node-wasm.js test face similarity +2022-11-18 11:55:18 STATE: test-backend-node-wasm.js start face similarity +2022-11-18 11:55:18 STATE: 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 STATE: test-backend-node-wasm.js event: image +2022-11-18 11:55:18 STATE: test-backend-node-wasm.js event: detect +2022-11-18 11:55:18 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-face.jpg face similarity +2022-11-18 11:55:18 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":3} +2022-11-18 11:55:18 DATA:  test-backend-node-wasm.js result: performance: load: null total: 301 +2022-11-18 11:55:18 STATE: test-backend-node-wasm.js start face similarity +2022-11-18 11:55:18 STATE: 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 STATE: test-backend-node-wasm.js event: image +2022-11-18 11:55:19 STATE: test-backend-node-wasm.js event: detect +2022-11-18 11:55:19 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg face similarity +2022-11-18 11:55:19 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-11-18 11:55:19 DATA:  test-backend-node-wasm.js result: performance: load: null total: 308 +2022-11-18 11:55:19 STATE: test-backend-node-wasm.js start face similarity +2022-11-18 11:55:19 STATE: 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 STATE: test-backend-node-wasm.js event: image +2022-11-18 11:55:19 STATE: test-backend-node-wasm.js event: detect +2022-11-18 11:55:19 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-upper.jpg face similarity +2022-11-18 11:55:19 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 4 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":7} +2022-11-18 11:55:19 DATA:  test-backend-node-wasm.js result: performance: load: null total: 288 +2022-11-18 11:55:19 STATE: test-backend-node-wasm.js passed: face descriptor +2022-11-18 11:55:19 STATE: test-backend-node-wasm.js passed: face similarity {"similarity":[1,0.5266119940661309,0.4858842904087851],"descriptors":[1024,1024,1024]} +2022-11-18 11:55:19 INFO:  test-backend-node-wasm.js test object +2022-11-18 11:55:19 STATE: test-backend-node-wasm.js start object +2022-11-18 11:55:19 STATE: 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 STATE: test-backend-node-wasm.js event: image +2022-11-18 11:55:20 STATE: test-backend-node-wasm.js event: detect +2022-11-18 11:55:20 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg object +2022-11-18 11:55:20 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-11-18 11:55:20 DATA:  test-backend-node-wasm.js result: performance: load: null total: 314 +2022-11-18 11:55:20 STATE: test-backend-node-wasm.js passed: centernet +2022-11-18 11:55:20 STATE: test-backend-node-wasm.js start object +2022-11-18 11:55:21 STATE: 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 STATE: test-backend-node-wasm.js event: image +2022-11-18 11:55:21 STATE: test-backend-node-wasm.js event: detect +2022-11-18 11:55:21 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg object +2022-11-18 11:55:21 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 0 person: 1 {"score":1,"age":29.6,"gender":"female"} {} {"score":0.92,"keypoints":17} +2022-11-18 11:55:21 DATA:  test-backend-node-wasm.js result: performance: load: null total: 208 +2022-11-18 11:55:21 ERROR: test-backend-node-wasm.js failed: nanodet [] +2022-11-18 11:55:21 INFO:  test-backend-node-wasm.js test sensitive +2022-11-18 11:55:21 STATE: test-backend-node-wasm.js start sensitive +2022-11-18 11:55:21 STATE: 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 STATE: test-backend-node-wasm.js event: image +2022-11-18 11:55:21 STATE: test-backend-node-wasm.js event: detect +2022-11-18 11:55:21 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg sensitive +2022-11-18 11:55:21 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 10 object: 0 person: 1 {"score":1,"age":29.6,"gender":"female"} {} {"score":0.92,"keypoints":17} +2022-11-18 11:55:21 DATA:  test-backend-node-wasm.js result: performance: load: null total: 245 +2022-11-18 11:55:21 STATE: test-backend-node-wasm.js passed: sensitive result match +2022-11-18 11:55:21 STATE: test-backend-node-wasm.js passed: sensitive face result match +2022-11-18 11:55:21 STATE: test-backend-node-wasm.js passed: sensitive face emotion result [{"score":0.46,"emotion":"neutral"},{"score":0.24,"emotion":"fear"},{"score":0.17,"emotion":"sad"}] +2022-11-18 11:55:21 STATE: test-backend-node-wasm.js passed: sensitive body result match +2022-11-18 11:55:21 STATE: test-backend-node-wasm.js passed: sensitive hand result match +2022-11-18 11:55:21 INFO:  test-backend-node-wasm.js test body +2022-11-18 11:55:21 STATE: test-backend-node-wasm.js start blazepose +2022-11-18 11:55:23 STATE: 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 STATE: test-backend-node-wasm.js event: image +2022-11-18 11:55:24 STATE: test-backend-node-wasm.js event: detect +2022-11-18 11:55:24 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg blazepose +2022-11-18 11:55:24 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 10 object: 0 person: 1 {"score":1,"age":29.6,"gender":"female"} {} {"score":0.99,"keypoints":39} +2022-11-18 11:55:24 DATA:  test-backend-node-wasm.js result: performance: load: null total: 393 +2022-11-18 11:55:24 STATE: test-backend-node-wasm.js passed: blazepose +2022-11-18 11:55:24 STATE: test-backend-node-wasm.js start efficientpose +2022-11-18 11:55:24 STATE: 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 STATE: test-backend-node-wasm.js event: image +2022-11-18 11:55:25 STATE: test-backend-node-wasm.js event: detect +2022-11-18 11:55:25 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg efficientpose +2022-11-18 11:55:25 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 10 object: 0 person: 1 {"score":1,"age":29.6,"gender":"female"} {} {"score":0.75,"keypoints":13} +2022-11-18 11:55:25 DATA:  test-backend-node-wasm.js result: performance: load: null total: 658 +2022-11-18 11:55:25 STATE: test-backend-node-wasm.js passed: efficientpose +2022-11-18 11:55:25 STATE: test-backend-node-wasm.js start posenet +2022-11-18 11:55:26 STATE: 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 STATE: test-backend-node-wasm.js event: image +2022-11-18 11:55:26 STATE: test-backend-node-wasm.js event: detect +2022-11-18 11:55:26 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg posenet +2022-11-18 11:55:26 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 10 object: 0 person: 1 {"score":1,"age":29.6,"gender":"female"} {} {"score":0.96,"keypoints":16} +2022-11-18 11:55:26 DATA:  test-backend-node-wasm.js result: performance: load: null total: 277 +2022-11-18 11:55:26 STATE: test-backend-node-wasm.js passed: posenet +2022-11-18 11:55:26 STATE: test-backend-node-wasm.js start movenet +2022-11-18 11:55:26 STATE: 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 STATE: test-backend-node-wasm.js event: image +2022-11-18 11:55:26 STATE: test-backend-node-wasm.js event: detect +2022-11-18 11:55:26 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg movenet +2022-11-18 11:55:26 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 10 object: 0 person: 1 {"score":1,"age":29.6,"gender":"female"} {} {"score":0.92,"keypoints":17} +2022-11-18 11:55:26 DATA:  test-backend-node-wasm.js result: performance: load: null total: 237 +2022-11-18 11:55:26 STATE: test-backend-node-wasm.js passed: movenet +2022-11-18 11:55:26 INFO:  test-backend-node-wasm.js test face matching +2022-11-18 11:55:26 STATE: test-backend-node-wasm.js passed: face database 40 +2022-11-18 11:55:26 STATE: test-backend-node-wasm.js passed: face match {"first":{"index":4,"similarity":0.7827852754786533}} {"second":{"index":4,"similarity":0.5660821189104794}} {"third":{"index":4,"similarity":0.45074189882665594}} +2022-11-18 11:55:26 INFO:  test-backend-node-wasm.js test face similarity alternative +2022-11-18 11:55:26 STATE: test-backend-node-wasm.js start face embeddings +2022-11-18 11:55:27 STATE: 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 STATE: test-backend-node-wasm.js event: image +2022-11-18 11:55:27 ERROR: test-backend-node-wasm.js failed: testDetect face embeddings +2022-11-18 11:55:27 ERROR: 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 STATE: all tests complete +2022-11-18 11:55:27 INFO:  status {"test":"../demo/nodejs/node.js","passed":1,"failed":0} +2022-11-18 11:55:27 INFO:  status {"test":"../demo/nodejs/node-simple.js","passed":1,"failed":0} +2022-11-18 11:55:27 INFO:  status {"test":"../demo/nodejs/node-event.js","passed":1,"failed":0} +2022-11-18 11:55:27 INFO:  status {"test":"../demo/nodejs/node-similarity.js","passed":1,"failed":0} +2022-11-18 11:55:27 INFO:  status {"test":"../demo/nodejs/node-canvas.js","passed":1,"failed":0} +2022-11-18 11:55:27 INFO:  status {"test":"../demo/nodejs/process-folder.js","passed":1,"failed":0} +2022-11-18 11:55:27 INFO:  status {"test":"../demo/multithread/node-multiprocess.js","passed":1,"failed":0} +2022-11-18 11:55:27 INFO:  status {"test":"../demo/facematch/node-match.js","passed":1,"failed":0} +2022-11-18 11:55:27 INFO:  status {"test":"test-node-load.js","passed":1,"failed":0} +2022-11-18 11:55:27 INFO:  status {"test":"test-node-gear.js","passed":3,"failed":0} +2022-11-18 11:55:27 INFO:  status {"test":"test-backend-node.js","passed":85,"failed":1} +2022-11-18 11:55:27 INFO:  status {"test":"test-backend-node-gpu.js","passed":85,"failed":1} +2022-11-18 11:55:27 INFO:  status {"test":"test-backend-node-wasm.js","passed":85,"failed":2} +2022-11-18 11:55:27 INFO:  failures {"count":4} +2022-11-18 11:55:27 WARN:  failed {"test":"test-backend-node.js","message":["error",["failed:","testDetect face embeddings"]]} +2022-11-18 11:55:27 WARN:  failed {"test":"test-backend-node-gpu.js","message":["error",["failed:","testDetect face embeddings"]]} +2022-11-18 11:55:27 WARN:  failed {"test":"test-backend-node-wasm.js","message":["error",["failed: nanodet",[]]]} +2022-11-18 11:55:27 WARN:  failed {"test":"test-backend-node-wasm.js","message":["error",["failed:","testDetect face embeddings"]]}