From c10c919f1a3c03a4b13154f84f60cd1309ff55a4 Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Sat, 20 Aug 2022 09:38:08 -0400 Subject: [PATCH] update demo notes --- CHANGELOG.md | 7 +- README.md | 6 +- demo/facematch/node-match-worker.js | 5 + demo/facematch/node-match.js | 6 + demo/nodejs/node-canvas.js | 8 +- demo/nodejs/node-event.js | 4 +- demo/nodejs/node-fetch.js | 12 +- demo/nodejs/node-simple.js | 12 +- demo/nodejs/node-video.js | 10 +- demo/nodejs/node-webcam.js | 11 +- demo/nodejs/node.js | 8 +- demo/nodejs/process-folder.js | 15 +- test/build.log | 78 +- test/node.js | 3 +- test/test-main.js | 4 +- test/test-node-wasm.js | 2 +- test/test.log | 1945 +++++++++++++-------------- 17 files changed, 1083 insertions(+), 1053 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 17191ac5..1845cacc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # @vladmandic/human - Version: **2.9.3** + Version: **2.9.4** Description: **Human: AI-powered 3D Face Detection & Rotation Tracking, Face Description & Recognition, Body Pose Tracking, 3D Hand & Finger Tracking, Iris Analysis, Age & Gender & Emotion Prediction, Gesture Recognition** Author: **Vladimir Mandic ** @@ -9,7 +9,10 @@ ## Changelog -### **HEAD -> main** 2022/08/15 mandic00@live.com +### **2.9.4** 2022/08/20 mandic00@live.com + + +### **origin/main** 2022/08/19 mandic00@live.com - add tensorflow library detection - fix wasm detection diff --git a/README.md b/README.md index d5af0c0e..e0b0362d 100644 --- a/README.md +++ b/README.md @@ -47,6 +47,8 @@ JavaScript module using TensorFlow/JS Machine Learning library ### Browser Demos +*All browser demos are self-contained without any external dependencies* + - **Full** [[*Live*]](https://vladmandic.github.io/human/demo/index.html) [[*Details*]](https://github.com/vladmandic/human/tree/main/demo): Main browser demo app that showcases all Human capabilities - **Simple** [[*Live*]](https://vladmandic.github.io/human/demo/typescript/index.html) [[*Details*]](https://github.com/vladmandic/human/tree/main/demo/typescript): Simple demo in WebCam processing demo in TypeScript - **Face Match** [[*Live*]](https://vladmandic.github.io/human/demo/facematch/index.html) [[*Details*]](https://github.com/vladmandic/human/tree/main/demo/facematch): Extract faces from images, calculates face descriptors and simmilarities and matches them to known database @@ -60,6 +62,9 @@ JavaScript module using TensorFlow/JS Machine Learning library ### NodeJS Demos +*NodeJS demos may require extra dependencies which are used to decode inputs* +*See header of each demo to see its dependencies as they are not automatically installed with `Human`* + - **Main** [[*Details*]](https://github.com/vladmandic/human/tree/main/demo/nodejs): Process images from files, folders or URLs using native methods - **Canvas** [[*Details*]](https://github.com/vladmandic/human/tree/main/demo/nodejs): Process image from file or URL and draw results to a new image file using `node-canvas` - **Video** [[*Details*]](https://github.com/vladmandic/human/tree/main/demo/nodejs): Processing of video input using `ffmpeg` @@ -69,7 +74,6 @@ JavaScript module using TensorFlow/JS Machine Learning library - **Face Match** [[*Details*]](https://github.com/vladmandic/human/tree/main/demo/facematch): Parallel processing of face **match** in multiple child worker threads - **Multiple Workers** [[*Details*]](https://github.com/vladmandic/human/tree/main/demo/nodejs): Runs multiple parallel `human` by dispaching them to pool of pre-created worker processes - ## Project pages - [**Code Repository**](https://github.com/vladmandic/human) diff --git a/demo/facematch/node-match-worker.js b/demo/facematch/node-match-worker.js index 35cdbc7d..e8556db5 100644 --- a/demo/facematch/node-match-worker.js +++ b/demo/facematch/node-match-worker.js @@ -1,3 +1,8 @@ +/** + * Runs in a worker thread started by `node-match` demo app + * + */ + const threads = require('worker_threads'); let debug = false; diff --git a/demo/facematch/node-match.js b/demo/facematch/node-match.js index 95e5b96a..16e7a5cd 100644 --- a/demo/facematch/node-match.js +++ b/demo/facematch/node-match.js @@ -1,3 +1,9 @@ +/** + * Human demo app for NodeJS that generates random facial descriptors + * and uses NodeJS multi-threading to start multiple threads for face matching + * uses `node-match-worker.js` to perform actual face matching analysis + */ + const fs = require('fs'); const path = require('path'); const log = require('@vladmandic/pilogger'); diff --git a/demo/nodejs/node-canvas.js b/demo/nodejs/node-canvas.js index 184ffe0d..832a7fc9 100644 --- a/demo/nodejs/node-canvas.js +++ b/demo/nodejs/node-canvas.js @@ -1,13 +1,13 @@ /** * Human demo for NodeJS using Canvas library + * + * Requires [canvas](https://www.npmjs.com/package/canvas) to provide Canvas functionality in NodeJS environment */ const fs = require('fs'); const process = require('process'); const log = require('@vladmandic/pilogger'); -const canvas = require('canvas'); - -// eslint-disable-next-line import/no-extraneous-dependencies, no-unused-vars, @typescript-eslint/no-unused-vars +const canvas = require('canvas'); // eslint-disable-line node/no-extraneous-require, node/no-missing-require const tf = require('@tensorflow/tfjs-node'); // in nodejs environments tfjs-node is required to be loaded before human // const human = require('@vladmandic/human'); // use this when human is installed as module (majority of use cases) const Human = require('../../dist/human.node.js'); // use this when using human in dev mode @@ -31,7 +31,7 @@ async function main() { // init const human = new Human.Human(config); // create instance of human - log.info('Human:', human.version); + log.info('Human:', human.version, 'TF:', tf.version_core); await human.load(); // pre-load models log.info('Loaded models:', Object.keys(human.models).filter((a) => human.models[a])); diff --git a/demo/nodejs/node-event.js b/demo/nodejs/node-event.js index 90cd823d..a5912849 100644 --- a/demo/nodejs/node-event.js +++ b/demo/nodejs/node-event.js @@ -8,7 +8,6 @@ const process = require('process'); let fetch; // fetch is dynamically imported later -// eslint-disable-next-line import/no-extraneous-dependencies, no-unused-vars, @typescript-eslint/no-unused-vars const tf = require('@tensorflow/tfjs-node'); // in nodejs environments tfjs-node is required to be loaded before human // const human = require('@vladmandic/human'); // use this when human is installed as module (majority of use cases) const Human = require('../../dist/human.node.js'); // use this when using human in dev mode @@ -38,7 +37,7 @@ async function detect(input) { let buffer; log.info('Loading image:', input); if (input.startsWith('http:') || input.startsWith('https:')) { - fetch = (await import('node-fetch')).default; + fetch = (await import('node-fetch')).default; // eslint-disable-line node/no-extraneous-require, node/no-missing-import const res = await fetch(input); if (res && res.ok) buffer = await res.buffer(); else log.error('Invalid image URL:', input, res.status, res.statusText, res.headers.get('content-type')); @@ -59,6 +58,7 @@ async function main() { log.header(); human = new Human.Human(myConfig); + log.info('Human:', human.version, 'TF:', tf.version_core); if (human.events) { human.events.addEventListener('warmup', () => { diff --git a/demo/nodejs/node-fetch.js b/demo/nodejs/node-fetch.js index ab642fb5..aefe04c0 100644 --- a/demo/nodejs/node-fetch.js +++ b/demo/nodejs/node-fetch.js @@ -1,4 +1,10 @@ +/** + * Human demo for NodeJS using http fetch to get image file + * + * Requires [node-fetch](https://www.npmjs.com/package/node-fetch) to provide `fetch` functionality in NodeJS environment + */ const fs = require('fs'); +const log = require('@vladmandic/pilogger'); // eslint-disable-next-line import/no-extraneous-dependencies, no-unused-vars, @typescript-eslint/no-unused-vars const tf = require('@tensorflow/tfjs-node'); // in nodejs environments tfjs-node is required to be loaded before human @@ -11,15 +17,15 @@ const humanConfig = { async function main(inputFile) { // @ts-ignore - global.fetch = (await import('node-fetch')).default; + global.fetch = (await import('node-fetch')).default; // eslint-disable-line node/no-extraneous-require, node/no-missing-import const human = new Human.Human(humanConfig); // create instance of human using default configuration + log.info('Human:', human.version, 'TF:', tf.version_core); await human.load(); // optional as models would be loaded on-demand first time they are required await human.warmup(); // optional as model warmup is performed on-demand first time its executed const buffer = fs.readFileSync(inputFile); // read file data into buffer const tensor = human.tf.node.decodeImage(buffer); // decode jpg data const result = await human.detect(tensor); // run detection; will initialize backend and on-demand load models - // eslint-disable-next-line no-console - console.log(result.gesture); + log.data(result.gesture); } main('samples/in/ai-body.jpg'); diff --git a/demo/nodejs/node-simple.js b/demo/nodejs/node-simple.js index 0bd893ff..57447726 100644 --- a/demo/nodejs/node-simple.js +++ b/demo/nodejs/node-simple.js @@ -1,7 +1,10 @@ +/** + * Human simple demo for NodeJS + */ + const fs = require('fs'); const process = require('process'); -// eslint-disable-next-line import/no-extraneous-dependencies, no-unused-vars, @typescript-eslint/no-unused-vars const tf = require('@tensorflow/tfjs-node'); // in nodejs environments tfjs-node is required to be loaded before human // const human = require('@vladmandic/human'); // use this when human is installed as module (majority of use cases) const Human = require('../../dist/human.node.js'); // use this when using human in dev mode @@ -12,15 +15,14 @@ const humanConfig = { async function detect(inputFile) { const human = new Human.Human(humanConfig); // create instance of human using default configuration + console.log('Human:', human.version, 'TF:', tf.version_core); // eslint-disable-line no-console await human.load(); // optional as models would be loaded on-demand first time they are required await human.warmup(); // optional as model warmup is performed on-demand first time its executed const buffer = fs.readFileSync(inputFile); // read file data into buffer const tensor = human.tf.node.decodeImage(buffer); // decode jpg data - // eslint-disable-next-line no-console - console.log('loaded input file:', inputFile, 'resolution:', tensor.shape); + console.log('loaded input file:', inputFile, 'resolution:', tensor.shape); // eslint-disable-line no-console const result = await human.detect(tensor); // run detection; will initialize backend and on-demand load models - // eslint-disable-next-line no-console - console.log(result); + console.log(result); // eslint-disable-line no-console } if (process.argv.length === 3) detect(process.argv[2]); // if input file is provided as cmdline parameter use it diff --git a/demo/nodejs/node-video.js b/demo/nodejs/node-video.js index be890880..e9fbf830 100644 --- a/demo/nodejs/node-video.js +++ b/demo/nodejs/node-video.js @@ -7,17 +7,15 @@ * If you want process at specific intervals, set output fps to some value * If you want to process an input stream, set real-time flag and set input as required * - * Note that pipe2jpeg is not part of Human dependencies and should be installed manually - * Working version of ffmpeg must be present on the system + * Note that [pipe2jpeg](https://www.npmjs.com/package/pipe2jpeg) is not part of Human dependencies and should be installed manually + * Working version of `ffmpeg` must be present on the system */ const spawn = require('child_process').spawn; const log = require('@vladmandic/pilogger'); // @ts-ignore pipe2jpeg is not installed by default -// eslint-disable-next-line node/no-missing-require -const Pipe2Jpeg = require('pipe2jpeg'); +const Pipe2Jpeg = require('pipe2jpeg'); // eslint-disable-line node/no-missing-require -// eslint-disable-next-line import/no-extraneous-dependencies, no-unused-vars, @typescript-eslint/no-unused-vars const tf = require('@tensorflow/tfjs-node'); // in nodejs environments tfjs-node is required to be loaded before human // const human = require('@vladmandic/human'); // use this when human is installed as module (majority of use cases) const Human = require('../../dist/human.node.js'); // use this when using human in dev mode @@ -77,7 +75,7 @@ async function main() { log.header(); await human.tf.ready(); // pre-load models - log.info('human:', human.version); + log.info('human:', human.version, 'tf:', tf.version_core); pipe2jpeg.on('jpeg', (jpegBuffer) => process(jpegBuffer)); const ffmpeg = spawn('ffmpeg', ffmpegParams, { stdio: ['ignore', 'pipe', 'ignore'] }); diff --git a/demo/nodejs/node-webcam.js b/demo/nodejs/node-webcam.js index 2e17f778..22bed4ba 100644 --- a/demo/nodejs/node-webcam.js +++ b/demo/nodejs/node-webcam.js @@ -2,17 +2,14 @@ * Human demo for NodeJS * Unsupported sample of using external utility fswebcam to capture screenshot from attached webcam in regular intervals and process it using Human * - * Note that node-webcam is not part of Human dependencies and should be installed manually - * Working version of fswebcam must be present on the system + * Note that [node-webcam](https://www.npmjs.com/package/node-webcam) is not part of Human dependencies and should be installed manually + * Working version of `fswebcam` must be present on the system */ let initial = true; // remember if this is the first run to print additional details const log = require('@vladmandic/pilogger'); -// @ts-ignore node-webcam is not installed by default -// eslint-disable-next-line node/no-missing-require -const nodeWebCam = require('node-webcam'); +const nodeWebCam = require('node-webcam'); // eslint-disable-line node/no-missing-require, node/no-extraneous-require -// eslint-disable-next-line import/no-extraneous-dependencies, no-unused-vars, @typescript-eslint/no-unused-vars const tf = require('@tensorflow/tfjs-node'); // in nodejs environments tfjs-node is required to be loaded before human // const human = require('@vladmandic/human'); // use this when human is installed as module (majority of use cases) const Human = require('../../dist/human.node.js'); // use this when using human in dev mode @@ -29,6 +26,7 @@ const camera = nodeWebCam.create(optionsCamera); const optionsHuman = { modelBasePath: 'file://models/', }; + const human = new Human.Human(optionsHuman); function buffer2tensor(buffer) { @@ -81,6 +79,7 @@ async function detect() { } async function main() { + log.info('human:', human.version, 'tf:', tf.version_core); camera.list((list) => { log.data('detected camera:', list); }); diff --git a/demo/nodejs/node.js b/demo/nodejs/node.js index 27f8909f..4a699152 100644 --- a/demo/nodejs/node.js +++ b/demo/nodejs/node.js @@ -1,6 +1,8 @@ /** * Human demo for NodeJS - */ + * + * Requires [node-fetch](https://www.npmjs.com/package/node-fetch) to provide `fetch` functionality in NodeJS environment +*/ const log = require('@vladmandic/pilogger'); const fs = require('fs'); @@ -9,7 +11,6 @@ const process = require('process'); let fetch; // fetch is dynamically imported later -// eslint-disable-next-line import/no-extraneous-dependencies, no-unused-vars, @typescript-eslint/no-unused-vars const tf = require('@tensorflow/tfjs-node'); // in nodejs environments tfjs-node is required to be loaded before human // const human = require('@vladmandic/human'); // use this when human is installed as module (majority of use cases) const Human = require('../../dist/human.node.js'); // use this when using human in dev mode @@ -46,6 +47,7 @@ async function init() { human = new Human.Human(myConfig); // wait until tf is ready await human.tf.ready(); + log.info('human:', human.version, 'tf:', tf.version_core); // pre-load models log.info('Human:', human.version); // log.info('Active Configuration', human.config); @@ -189,7 +191,7 @@ async function main() { log.configure({ inspect: { breakLength: 265 } }); log.header(); log.info('Current folder:', process.env.PWD); - fetch = (await import('node-fetch')).default; + fetch = (await import('node-fetch')).default; // eslint-disable-line node/no-extraneous-require, node/no-missing-import await init(); const f = process.argv[2]; if (process.argv.length !== 3) { diff --git a/demo/nodejs/process-folder.js b/demo/nodejs/process-folder.js index 61dd171b..05c26457 100644 --- a/demo/nodejs/process-folder.js +++ b/demo/nodejs/process-folder.js @@ -1,9 +1,18 @@ +/** + * Human demo for NodeJS + * + * Takes input and output folder names parameters and processes all images + * found in input folder and creates annotated images in output folder + * + * Requires [canvas](https://www.npmjs.com/package/canvas) to provide Canvas functionality in NodeJS environment + */ + const fs = require('fs'); const path = require('path'); const process = require('process'); const log = require('@vladmandic/pilogger'); -const canvas = require('canvas'); -// const tf = require('@tensorflow/tfjs-node-gpu'); // for nodejs, `tfjs-node` or `tfjs-node-gpu` should be loaded before using Human +const canvas = require('canvas'); // eslint-disable-line node/no-extraneous-require, node/no-missing-require +const tf = require('@tensorflow/tfjs-node-gpu'); // for nodejs, `tfjs-node` or `tfjs-node-gpu` should be loaded before using Human const Human = require('../../dist/human.node-gpu.js'); // this is 'const Human = require('../dist/human.node-gpu.js').default;' const config = { // just enable all and leave default settings @@ -24,7 +33,7 @@ async function main() { globalThis.ImageData = canvas.ImageData; // patch global namespace with canvas library const human = new Human.Human(config); // create instance of human - log.info('Human:', human.version); + log.info('Human:', human.version, 'TF:', tf.version_core); const configErrors = await human.validate(); if (configErrors.length > 0) log.error('Configuration errors:', configErrors); await human.load(); // pre-load models diff --git a/test/build.log b/test/build.log index 86090847..93a90119 100644 --- a/test/build.log +++ b/test/build.log @@ -1,39 +1,39 @@ -2022-08-19 09:12:22 DATA:  Build {"name":"@vladmandic/human","version":"2.9.3"} -2022-08-19 09:12:22 INFO:  Application: {"name":"@vladmandic/human","version":"2.9.3"} -2022-08-19 09:12:22 INFO:  Environment: {"profile":"production","config":".build.json","package":"package.json","tsconfig":true,"eslintrc":true,"git":true} -2022-08-19 09:12:22 INFO:  Toolchain: {"build":"0.7.10","esbuild":"0.15.5","typescript":"4.7.4","typedoc":"0.23.10","eslint":"8.22.0"} -2022-08-19 09:12:22 INFO:  Build: {"profile":"production","steps":["clean","compile","typings","typedoc","lint","changelog"]} -2022-08-19 09:12:22 STATE: Clean: {"locations":["dist/*","types/lib/*","typedoc/*"]} -2022-08-19 09:12:22 STATE: Compile: {"name":"tfjs/nodejs/cpu","format":"cjs","platform":"node","input":"tfjs/tf-node.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":102,"outputBytes":608} -2022-08-19 09:12:22 STATE: Compile: {"name":"human/nodejs/cpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node.js","files":75,"inputBytes":655452,"outputBytes":307474} -2022-08-19 09:12:22 STATE: Compile: {"name":"tfjs/nodejs/gpu","format":"cjs","platform":"node","input":"tfjs/tf-node-gpu.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":110,"outputBytes":612} -2022-08-19 09:12:22 STATE: Compile: {"name":"human/nodejs/gpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-gpu.js","files":75,"inputBytes":655456,"outputBytes":307478} -2022-08-19 09:12:22 STATE: Compile: {"name":"tfjs/nodejs/wasm","format":"cjs","platform":"node","input":"tfjs/tf-node-wasm.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":149,"outputBytes":664} -2022-08-19 09:12:22 STATE: Compile: {"name":"human/nodejs/wasm","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-wasm.js","files":75,"inputBytes":655508,"outputBytes":307528} -2022-08-19 09:12:22 STATE: Compile: {"name":"tfjs/browser/version","format":"esm","platform":"browser","input":"tfjs/tf-version.ts","output":"dist/tfjs.version.js","files":1,"inputBytes":1069,"outputBytes":358} -2022-08-19 09:12:22 STATE: Compile: {"name":"tfjs/browser/esm/nobundle","format":"esm","platform":"browser","input":"tfjs/tf-browser.ts","output":"dist/tfjs.esm.js","files":2,"inputBytes":1032,"outputBytes":583} -2022-08-19 09:12:22 STATE: Compile: {"name":"human/browser/esm/nobundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm-nobundle.js","files":75,"inputBytes":655427,"outputBytes":306323} -2022-08-19 09:12:22 STATE: Compile: {"name":"tfjs/browser/esm/custom","format":"esm","platform":"browser","input":"tfjs/tf-custom.ts","output":"dist/tfjs.esm.js","files":11,"inputBytes":1271,"outputBytes":2787569} -2022-08-19 09:12:22 STATE: Compile: {"name":"human/browser/iife/bundle","format":"iife","platform":"browser","input":"src/human.ts","output":"dist/human.js","files":75,"inputBytes":3442413,"outputBytes":1669183} -2022-08-19 09:12:22 STATE: Compile: {"name":"human/browser/esm/bundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm.js","files":75,"inputBytes":3442413,"outputBytes":3073108} -2022-08-19 09:12:27 STATE: Typings: {"input":"src/human.ts","output":"types/lib","files":30} -2022-08-19 09:12:29 STATE: TypeDoc: {"input":"src/human.ts","output":"typedoc","objects":77,"generated":true} -2022-08-19 09:12:29 STATE: Compile: {"name":"demo/typescript","format":"esm","platform":"browser","input":"demo/typescript/index.ts","output":"demo/typescript/index.js","files":1,"inputBytes":6716,"outputBytes":3141} -2022-08-19 09:12:29 STATE: Compile: {"name":"demo/faceid","format":"esm","platform":"browser","input":"demo/faceid/index.ts","output":"demo/faceid/index.js","files":2,"inputBytes":15629,"outputBytes":7798} -2022-08-19 09:12:37 STATE: Lint: {"locations":["*.json","src/**/*.ts","test/**/*.js","demo/**/*.js"],"files":109,"errors":0,"warnings":0} -2022-08-19 09:12:37 STATE: ChangeLog: {"repository":"https://github.com/vladmandic/human","branch":"main","output":"CHANGELOG.md"} -2022-08-19 09:12:37 STATE: Copy: {"input":"tfjs/tfjs.esm.d.ts"} -2022-08-19 09:12:37 INFO:  Done... -2022-08-19 09:12:37 STATE: API-Extractor: {"succeeeded":true,"errors":0,"warnings":198} -2022-08-19 09:12:37 STATE: Copy: {"input":"types/human.d.ts"} -2022-08-19 09:12:37 INFO:  Analyze models: {"folders":8,"result":"models/models.json"} -2022-08-19 09:12:37 STATE: Models {"folder":"./models","models":13} -2022-08-19 09:12:37 STATE: Models {"folder":"../human-models/models","models":42} -2022-08-19 09:12:37 STATE: Models {"folder":"../blazepose/model/","models":4} -2022-08-19 09:12:37 STATE: Models {"folder":"../anti-spoofing/model","models":1} -2022-08-19 09:12:37 STATE: Models {"folder":"../efficientpose/models","models":3} -2022-08-19 09:12:37 STATE: Models {"folder":"../insightface/models","models":5} -2022-08-19 09:12:37 STATE: Models {"folder":"../movenet/models","models":3} -2022-08-19 09:12:37 STATE: Models {"folder":"../nanodet/models","models":4} -2022-08-19 09:12:38 STATE: Models: {"count":57,"totalSize":383017442} -2022-08-19 09:12:38 INFO:  Human Build complete... {"logFile":"test/build.log"} +2022-08-20 09:29:24 DATA:  Build {"name":"@vladmandic/human","version":"2.9.4"} +2022-08-20 09:29:24 INFO:  Application: {"name":"@vladmandic/human","version":"2.9.4"} +2022-08-20 09:29:24 INFO:  Environment: {"profile":"production","config":".build.json","package":"package.json","tsconfig":true,"eslintrc":true,"git":true} +2022-08-20 09:29:24 INFO:  Toolchain: {"build":"0.7.10","esbuild":"0.15.5","typescript":"4.7.4","typedoc":"0.23.10","eslint":"8.22.0"} +2022-08-20 09:29:24 INFO:  Build: {"profile":"production","steps":["clean","compile","typings","typedoc","lint","changelog"]} +2022-08-20 09:29:24 STATE: Clean: {"locations":["dist/*","types/lib/*","typedoc/*"]} +2022-08-20 09:29:24 STATE: Compile: {"name":"tfjs/nodejs/cpu","format":"cjs","platform":"node","input":"tfjs/tf-node.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":102,"outputBytes":608} +2022-08-20 09:29:24 STATE: Compile: {"name":"human/nodejs/cpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node.js","files":75,"inputBytes":655391,"outputBytes":307474} +2022-08-20 09:29:24 STATE: Compile: {"name":"tfjs/nodejs/gpu","format":"cjs","platform":"node","input":"tfjs/tf-node-gpu.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":110,"outputBytes":612} +2022-08-20 09:29:24 STATE: Compile: {"name":"human/nodejs/gpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-gpu.js","files":75,"inputBytes":655395,"outputBytes":307478} +2022-08-20 09:29:24 STATE: Compile: {"name":"tfjs/nodejs/wasm","format":"cjs","platform":"node","input":"tfjs/tf-node-wasm.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":149,"outputBytes":664} +2022-08-20 09:29:24 STATE: Compile: {"name":"human/nodejs/wasm","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-wasm.js","files":75,"inputBytes":655447,"outputBytes":307528} +2022-08-20 09:29:24 STATE: Compile: {"name":"tfjs/browser/version","format":"esm","platform":"browser","input":"tfjs/tf-version.ts","output":"dist/tfjs.version.js","files":1,"inputBytes":1069,"outputBytes":358} +2022-08-20 09:29:24 STATE: Compile: {"name":"tfjs/browser/esm/nobundle","format":"esm","platform":"browser","input":"tfjs/tf-browser.ts","output":"dist/tfjs.esm.js","files":2,"inputBytes":1032,"outputBytes":583} +2022-08-20 09:29:24 STATE: Compile: {"name":"human/browser/esm/nobundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm-nobundle.js","files":75,"inputBytes":655366,"outputBytes":306323} +2022-08-20 09:29:25 STATE: Compile: {"name":"tfjs/browser/esm/custom","format":"esm","platform":"browser","input":"tfjs/tf-custom.ts","output":"dist/tfjs.esm.js","files":11,"inputBytes":1271,"outputBytes":2787569} +2022-08-20 09:29:25 STATE: Compile: {"name":"human/browser/iife/bundle","format":"iife","platform":"browser","input":"src/human.ts","output":"dist/human.js","files":75,"inputBytes":3442352,"outputBytes":1669183} +2022-08-20 09:29:25 STATE: Compile: {"name":"human/browser/esm/bundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm.js","files":75,"inputBytes":3442352,"outputBytes":3073108} +2022-08-20 09:29:29 STATE: Typings: {"input":"src/human.ts","output":"types/lib","files":30} +2022-08-20 09:29:31 STATE: TypeDoc: {"input":"src/human.ts","output":"typedoc","objects":77,"generated":true} +2022-08-20 09:29:31 STATE: Compile: {"name":"demo/typescript","format":"esm","platform":"browser","input":"demo/typescript/index.ts","output":"demo/typescript/index.js","files":1,"inputBytes":6716,"outputBytes":3141} +2022-08-20 09:29:31 STATE: Compile: {"name":"demo/faceid","format":"esm","platform":"browser","input":"demo/faceid/index.ts","output":"demo/faceid/index.js","files":2,"inputBytes":15629,"outputBytes":7798} +2022-08-20 09:29:39 STATE: Lint: {"locations":["*.json","src/**/*.ts","test/**/*.js","demo/**/*.js"],"files":109,"errors":0,"warnings":0} +2022-08-20 09:29:39 STATE: ChangeLog: {"repository":"https://github.com/vladmandic/human","branch":"main","output":"CHANGELOG.md"} +2022-08-20 09:29:39 STATE: Copy: {"input":"tfjs/tfjs.esm.d.ts"} +2022-08-20 09:29:39 INFO:  Done... +2022-08-20 09:29:39 STATE: API-Extractor: {"succeeeded":true,"errors":0,"warnings":198} +2022-08-20 09:29:39 STATE: Copy: {"input":"types/human.d.ts"} +2022-08-20 09:29:39 INFO:  Analyze models: {"folders":8,"result":"models/models.json"} +2022-08-20 09:29:39 STATE: Models {"folder":"./models","models":13} +2022-08-20 09:29:39 STATE: Models {"folder":"../human-models/models","models":42} +2022-08-20 09:29:39 STATE: Models {"folder":"../blazepose/model/","models":4} +2022-08-20 09:29:39 STATE: Models {"folder":"../anti-spoofing/model","models":1} +2022-08-20 09:29:39 STATE: Models {"folder":"../efficientpose/models","models":3} +2022-08-20 09:29:39 STATE: Models {"folder":"../insightface/models","models":5} +2022-08-20 09:29:39 STATE: Models {"folder":"../movenet/models","models":3} +2022-08-20 09:29:39 STATE: Models {"folder":"../nanodet/models","models":4} +2022-08-20 09:29:40 STATE: Models: {"count":57,"totalSize":383017442} +2022-08-20 09:29:40 INFO:  Human Build complete... {"logFile":"test/build.log"} diff --git a/test/node.js b/test/node.js index afe1f11e..a5613454 100644 --- a/test/node.js +++ b/test/node.js @@ -22,6 +22,7 @@ const demos = [ { 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/multithread/node-multiprocess.js', args: [] }, + { cmd: '../demo/facematch/node-match.js', args: [] }, // { cmd: '../demo/nodejs/node-video.js', args: [] }, // { cmd: '../demo/nodejs/node-webcam.js', args: [] }, ]; @@ -91,7 +92,7 @@ async function runTest(test) { // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars async function runDemo(demo) { - log.info(); + // log.info(); log.info(demo, 'start'); status[demo.cmd] = { passed: 0, failed: 0 }; return new Promise((resolve) => { diff --git a/test/test-main.js b/test/test-main.js index 3de97404..32d066f8 100644 --- a/test/test-main.js +++ b/test/test-main.js @@ -1,6 +1,6 @@ const fs = require('fs'); const process = require('process'); -const canvasJS = require('canvas'); +const canvasJS = require('canvas'); // eslint-disable-line node/no-extraneous-require, node/no-missing-require let fetch; // fetch is dynamically imported later let config; @@ -262,7 +262,7 @@ async function verifyCompare(human) { async function test(Human, inputConfig) { lastOp = `test ${inputConfig}`; config = inputConfig; - fetch = (await import('node-fetch')).default; + fetch = (await import('node-fetch')).default; // eslint-disable-line node/no-extraneous-require, node/no-missing-import const ok = await testHTTP(); if (!ok) { log('error', 'aborting test'); diff --git a/test/test-node-wasm.js b/test/test-node-wasm.js index ed491d9d..9a8596fc 100644 --- a/test/test-node-wasm.js +++ b/test/test-node-wasm.js @@ -1,7 +1,7 @@ const log = require('@vladmandic/pilogger'); const tf = require('@tensorflow/tfjs'); // wasm backend requires tfjs to be loaded first const wasm = require('@tensorflow/tfjs-backend-wasm'); // wasm backend does not get auto-loaded in nodejs -const { Canvas, Image } = require('canvas'); +const { Canvas, Image } = require('canvas'); // eslint-disable-line node/no-extraneous-require, node/no-missing-require const H = require('../dist/human.node-wasm.js'); const test = require('./test-main.js').test; diff --git a/test/test.log b/test/test.log index fc1e3ca8..48c8e65e 100644 --- a/test/test.log +++ b/test/test.log @@ -1,975 +1,970 @@ -2022-08-19 09:13:23 INFO:  @vladmandic/human version 2.9.3 -2022-08-19 09:13:23 INFO:  User: vlado Platform: linux Arch: x64 Node: v18.1.0 -2022-08-19 09:13:23 INFO:  demos: [{"cmd":"../demo/nodejs/node.js","args":[]},{"cmd":"../demo/nodejs/node-simple.js","args":[]},{"cmd":"../demo/nodejs/node-fetch.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/multithread/node-multiprocess.js","args":[]}] -2022-08-19 09:13:23 INFO:  -2022-08-19 09:13:23 INFO:  {"cmd":"../demo/nodejs/node.js","args":[]} start -2022-08-19 09:13:24 INFO:  -2022-08-19 09:13:24 INFO:  {"cmd":"../demo/nodejs/node-simple.js","args":[]} start -2022-08-19 09:13:25 INFO:  -2022-08-19 09:13:25 INFO:  {"cmd":"../demo/nodejs/node-fetch.js","args":[]} start -2022-08-19 09:13:27 INFO:  -2022-08-19 09:13:27 INFO:  {"cmd":"../demo/nodejs/node-event.js","args":["samples/in/ai-body.jpg"]} start -2022-08-19 09:13:28 INFO:  -2022-08-19 09:13:28 INFO:  {"cmd":"../demo/nodejs/node-similarity.js","args":["samples/in/ai-face.jpg","samples/in/ai-upper.jpg"]} start -2022-08-19 09:13:28 INFO:  -2022-08-19 09:13:28 INFO:  {"cmd":"../demo/nodejs/node-canvas.js","args":["samples/in/ai-body.jpg","samples/out/ai-body.jpg"]} start -2022-08-19 09:13:29 INFO:  -2022-08-19 09:13:29 INFO:  {"cmd":"../demo/multithread/node-multiprocess.js","args":[]} start -2022-08-19 09:13:30 INFO:  tests: ["test-node.js","test-node-gpu.js","test-node-wasm.js"] -2022-08-19 09:13:30 INFO:  -2022-08-19 09:13:30 INFO:  test-node.js start -2022-08-19 09:13:30 INFO:  test-node.js test: configuration validation -2022-08-19 09:13:30 STATE: test-node.js passed: configuration default validation [] -2022-08-19 09:13:30 STATE: test-node.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}] -2022-08-19 09:13:30 INFO:  test-node.js test: model load -2022-08-19 09:13:30 STATE: test-node.js passed: models loaded 23 12 [{"name":"ssrnetage","loaded":false,"url":null},{"name":"gear","loaded":false,"url":null},{"name":"blazeposedetect","loaded":false,"url":null},{"name":"blazepose","loaded":false,"url":null},{"name":"centernet","loaded":true,"url":"file://models/mb3-centernet.json"},{"name":"efficientpose","loaded":false,"url":null},{"name":"mobilefacenet","loaded":false,"url":null},{"name":"insightface","loaded":false,"url":null},{"name":"emotion","loaded":true,"url":"file://models/emotion.json"},{"name":"facedetect","loaded":true,"url":"file://models/blazeface.json"},{"name":"faceiris","loaded":true,"url":"file://models/iris.json"},{"name":"facemesh","loaded":true,"url":"file://models/facemesh.json"},{"name":"faceres","loaded":true,"url":"file://models/faceres.json"},{"name":"ssrnetgender","loaded":false,"url":null},{"name":"handpose","loaded":false,"url":null},{"name":"handskeleton","loaded":true,"url":"file://models/handlandmark-full.json"},{"name":"handtrack","loaded":true,"url":"file://models/handtrack.json"},{"name":"liveness","loaded":true,"url":"file://models/liveness.json"},{"name":"movenet","loaded":true,"url":"file://models/movenet-lightning.json"},{"name":"nanodet","loaded":false,"url":null},{"name":"posenet","loaded":false,"url":null},{"name":"segmentation","loaded":true,"url":"file://models/selfie.json"},{"name":"antispoof","loaded":true,"url":"file://models/antispoof.json"}] -2022-08-19 09:13:30 INFO:  test-node.js test: warmup -2022-08-19 09:13:30 STATE: test-node.js passed: create human -2022-08-19 09:13:30 INFO:  test-node.js human version: 2.9.3 -2022-08-19 09:13:30 INFO:  test-node.js platform: linux x64 agent: NodeJS v18.1.0 -2022-08-19 09:13:30 INFO:  test-node.js tfjs version: 3.19.0 -2022-08-19 09:13:30 INFO:  test-node.js env: {"browser":false,"node":true,"platform":"linux x64","agent":"NodeJS v18.1.0","backends":["cpu","tensorflow"],"initial":false,"tfjs":{"version":"3.19.0"},"offscreen":false,"perfadd":false,"tensorflow":{"version":"2.7.3-dev20220521","gpu":false},"wasm":{"supported":true,"backend":false},"webgl":{"supported":false,"backend":false},"webgpu":{"supported":false,"backend":false},"cpu":{"flags":[]},"kernels":169} -2022-08-19 09:13:30 STATE: test-node.js passed: set backend: tensorflow -2022-08-19 09:13:30 STATE: test-node.js tensors 1921 -2022-08-19 09:13:30 STATE: test-node.js passed: load models -2022-08-19 09:13:30 STATE: test-node.js result: defined models: 23 loaded models: 12 -2022-08-19 09:13:30 STATE: test-node.js passed: warmup: none default -2022-08-19 09:13:30 DATA:  test-node.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {} -2022-08-19 09:13:30 DATA:  test-node.js result: performance: load: null total: null -2022-08-19 09:13:30 STATE: test-node.js passed: warmup none result match -2022-08-19 09:13:30 STATE: test-node.js event: image -2022-08-19 09:13:31 STATE: test-node.js event: detect -2022-08-19 09:13:31 STATE: test-node.js event: warmup -2022-08-19 09:13:31 STATE: test-node.js passed: warmup: face default -2022-08-19 09:13:31 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.42,"keypoints":4} -2022-08-19 09:13:31 DATA:  test-node.js result: performance: load: null total: 410 -2022-08-19 09:13:31 STATE: test-node.js passed: warmup face result match -2022-08-19 09:13:31 STATE: test-node.js event: image -2022-08-19 09:13:31 STATE: test-node.js event: detect -2022-08-19 09:13:31 STATE: test-node.js event: warmup -2022-08-19 09:13:31 STATE: test-node.js passed: warmup: body default -2022-08-19 09:13:31 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-08-19 09:13:31 DATA:  test-node.js result: performance: load: null total: 305 -2022-08-19 09:13:31 STATE: test-node.js passed: warmup body result match -2022-08-19 09:13:31 STATE: test-node.js details: {"face":{"boxScore":0.92,"faceScore":1,"age":23.7,"gender":"female","genderScore":0.97},"emotion":[{"score":0.63,"emotion":"angry"},{"score":0.22,"emotion":"fear"}],"body":{"score":0.92,"keypoints":17},"hand":{"boxScore":0.52,"fingerScore":0.73,"keypoints":21},"gestures":[{"face":0,"gesture":"facing right"},{"face":0,"gesture":"mouth 10% open"},{"hand":0,"gesture":"pinky forward"},{"hand":0,"gesture":"palm up"},{"hand":0,"gesture":"open palm"},{"iris":0,"gesture":"looking left"},{"iris":0,"gesture":"looking up"}]} -2022-08-19 09:13:31 INFO:  test-node.js test: details verification -2022-08-19 09:13:31 STATE: test-node.js start default -2022-08-19 09:13:31 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-08-19 09:13:31 STATE: test-node.js event: image -2022-08-19 09:13:31 STATE: test-node.js event: detect -2022-08-19 09:13:31 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default -2022-08-19 09:13:31 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-08-19 09:13:31 DATA:  test-node.js result: performance: load: null total: 245 -2022-08-19 09:13:31 STATE: test-node.js passed: details face length 1 -2022-08-19 09:13:31 STATE: test-node.js passed: details face score 1 0.93 1 -2022-08-19 09:13:31 STATE: test-node.js passed: details face age/gender 23.7 female 0.97 85.47 -2022-08-19 09:13:31 STATE: test-node.js passed: details face arrays 4 478 1024 -2022-08-19 09:13:31 STATE: test-node.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"} -2022-08-19 09:13:31 STATE: test-node.js passed: details face anti-spoofing 0.79 -2022-08-19 09:13:31 STATE: test-node.js passed: details face liveness 0.83 -2022-08-19 09:13:31 STATE: test-node.js passed: details body length 1 -2022-08-19 09:13:31 STATE: test-node.js passed: details body 0.92 17 6 -2022-08-19 09:13:31 STATE: test-node.js passed: details hand length 1 -2022-08-19 09:13:31 STATE: test-node.js passed: details hand 0.51 0.73 point -2022-08-19 09:13:31 STATE: test-node.js passed: details hand arrays 21 5 7 -2022-08-19 09:13:31 STATE: test-node.js passed: details gesture length 7 -2022-08-19 09:13:31 STATE: test-node.js passed: details gesture first {"face":0,"gesture":"facing right"} -2022-08-19 09:13:31 STATE: test-node.js passed: details object length 1 -2022-08-19 09:13:31 STATE: test-node.js passed: details object 0.72 person -2022-08-19 09:13:32 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996928} -2022-08-19 09:13:32 STATE: test-node.js event: image -2022-08-19 09:13:32 STATE: test-node.js event: detect -2022-08-19 09:13:32 STATE: test-node.js passed: tensor shape: [1,1200,1200,4] dtype: float32 -2022-08-19 09:13:32 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1371996928} -2022-08-19 09:13:32 STATE: test-node.js event: image -2022-08-19 09:13:32 STATE: test-node.js event: detect -2022-08-19 09:13:32 STATE: test-node.js passed: tensor shape: [1200,1200,4] dtype: float32 -2022-08-19 09:13:33 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-08-19 09:13:33 STATE: test-node.js event: image -2022-08-19 09:13:33 STATE: test-node.js event: detect -2022-08-19 09:13:33 STATE: test-node.js passed: tensor shape: [1,1200,1200,3] dtype: float32 -2022-08-19 09:13:33 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1004796864} -2022-08-19 09:13:33 STATE: test-node.js event: image -2022-08-19 09:13:33 STATE: test-node.js event: detect -2022-08-19 09:13:33 STATE: test-node.js passed: tensor shape: [1200,1200,3] dtype: float32 -2022-08-19 09:13:33 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871} -2022-08-19 09:13:33 STATE: test-node.js event: image -2022-08-19 09:13:34 STATE: test-node.js event: detect -2022-08-19 09:13:34 STATE: test-node.js passed: tensor shape: [1,1200,1200,4] dtype: int32 -2022-08-19 09:13:34 INFO:  test-node.js test default -2022-08-19 09:13:34 STATE: test-node.js start async -2022-08-19 09:13:34 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-08-19 09:13:34 STATE: test-node.js event: image -2022-08-19 09:13:34 STATE: test-node.js event: detect -2022-08-19 09:13:34 STATE: test-node.js passed: detect: samples/in/ai-body.jpg async -2022-08-19 09:13:34 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-08-19 09:13:34 DATA:  test-node.js result: performance: load: null total: 212 -2022-08-19 09:13:34 STATE: test-node.js passed: default result face match 1 female 0.97 -2022-08-19 09:13:34 INFO:  test-node.js test sync -2022-08-19 09:13:34 STATE: test-node.js start sync -2022-08-19 09:13:34 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-08-19 09:13:34 STATE: test-node.js event: image -2022-08-19 09:13:34 STATE: test-node.js event: detect -2022-08-19 09:13:34 STATE: test-node.js passed: detect: samples/in/ai-body.jpg sync -2022-08-19 09:13:34 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-08-19 09:13:34 DATA:  test-node.js result: performance: load: null total: 217 -2022-08-19 09:13:34 STATE: test-node.js passed: default sync 1 female 0.97 -2022-08-19 09:13:34 INFO:  test-node.js test: image process -2022-08-19 09:13:34 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-08-19 09:13:34 STATE: test-node.js passed: image input null [1,256,256,3] -2022-08-19 09:13:34 INFO:  test-node.js test: image null -2022-08-19 09:13:34 STATE: test-node.js passed: invalid input could not convert input to tensor -2022-08-19 09:13:34 INFO:  test-node.js test face similarity -2022-08-19 09:13:34 STATE: test-node.js start face similarity -2022-08-19 09:13:34 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-08-19 09:13:34 STATE: test-node.js event: image -2022-08-19 09:13:35 STATE: test-node.js event: detect -2022-08-19 09:13:35 STATE: test-node.js passed: detect: samples/in/ai-face.jpg face similarity -2022-08-19 09:13:35 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":3} -2022-08-19 09:13:35 DATA:  test-node.js result: performance: load: null total: 214 -2022-08-19 09:13:35 STATE: test-node.js start face similarity -2022-08-19 09:13:35 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-08-19 09:13:35 STATE: test-node.js event: image -2022-08-19 09:13:35 STATE: test-node.js event: detect -2022-08-19 09:13:35 STATE: test-node.js passed: detect: samples/in/ai-body.jpg face similarity -2022-08-19 09:13:35 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-08-19 09:13:35 DATA:  test-node.js result: performance: load: null total: 229 -2022-08-19 09:13:35 STATE: test-node.js start face similarity -2022-08-19 09:13:35 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} -2022-08-19 09:13:35 STATE: test-node.js event: image -2022-08-19 09:13:35 STATE: test-node.js event: detect -2022-08-19 09:13:35 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg face similarity -2022-08-19 09:13:35 DATA:  test-node.js result: face: 1 body: 1 hand: 0 gesture: 4 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":7} -2022-08-19 09:13:35 DATA:  test-node.js result: performance: load: null total: 191 -2022-08-19 09:13:35 STATE: test-node.js passed: face descriptor -2022-08-19 09:13:35 STATE: test-node.js passed: face similarity {"similarity":[1,0.44727452329649126,0.5567935850640406],"descriptors":[1024,1024,1024]} -2022-08-19 09:13:35 INFO:  test-node.js test object -2022-08-19 09:13:35 STATE: test-node.js start object -2022-08-19 09:13:35 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-08-19 09:13:35 STATE: test-node.js event: image -2022-08-19 09:13:36 STATE: test-node.js event: detect -2022-08-19 09:13:36 STATE: test-node.js passed: detect: samples/in/ai-body.jpg object -2022-08-19 09:13:36 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-08-19 09:13:36 DATA:  test-node.js result: performance: load: null total: 205 -2022-08-19 09:13:36 STATE: test-node.js passed: centernet -2022-08-19 09:13:36 STATE: test-node.js start object -2022-08-19 09:13:37 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-08-19 09:13:37 STATE: test-node.js event: image -2022-08-19 09:13:37 STATE: test-node.js event: detect -2022-08-19 09:13:37 STATE: test-node.js passed: detect: samples/in/ai-body.jpg object -2022-08-19 09:13:37 DATA:  test-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-08-19 09:13:37 DATA:  test-node.js result: performance: load: null total: 223 -2022-08-19 09:13:37 STATE: test-node.js passed: nanodet -2022-08-19 09:13:37 INFO:  test-node.js test sensitive -2022-08-19 09:13:37 STATE: test-node.js start sensitive -2022-08-19 09:13:37 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-08-19 09:13:37 STATE: test-node.js event: image -2022-08-19 09:13:37 STATE: test-node.js event: detect -2022-08-19 09:13:37 STATE: test-node.js passed: detect: samples/in/ai-body.jpg sensitive -2022-08-19 09:13:37 DATA:  test-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-08-19 09:13:37 DATA:  test-node.js result: performance: load: null total: 171 -2022-08-19 09:13:37 STATE: test-node.js passed: sensitive result match -2022-08-19 09:13:37 STATE: test-node.js passed: sensitive face result match -2022-08-19 09:13:37 STATE: test-node.js passed: sensitive face emotion result [{"score":0.59,"emotion":"angry"},{"score":0.29,"emotion":"fear"}] -2022-08-19 09:13:37 STATE: test-node.js passed: sensitive body result match -2022-08-19 09:13:37 STATE: test-node.js passed: sensitive hand result match -2022-08-19 09:13:37 INFO:  test-node.js test body -2022-08-19 09:13:37 STATE: test-node.js start blazepose -2022-08-19 09:13:39 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-08-19 09:13:39 STATE: test-node.js event: image -2022-08-19 09:13:39 STATE: test-node.js event: detect -2022-08-19 09:13:39 STATE: test-node.js passed: detect: samples/in/ai-body.jpg blazepose -2022-08-19 09:13:39 DATA:  test-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-08-19 09:13:39 DATA:  test-node.js result: performance: load: null total: 268 -2022-08-19 09:13:39 STATE: test-node.js passed: blazepose -2022-08-19 09:13:39 STATE: test-node.js start efficientpose -2022-08-19 09:13:40 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-08-19 09:13:40 STATE: test-node.js event: image -2022-08-19 09:13:41 STATE: test-node.js event: detect -2022-08-19 09:13:41 STATE: test-node.js passed: detect: samples/in/ai-body.jpg efficientpose -2022-08-19 09:13:41 DATA:  test-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-08-19 09:13:41 DATA:  test-node.js result: performance: load: null total: 274 -2022-08-19 09:13:41 STATE: test-node.js passed: efficientpose -2022-08-19 09:13:41 STATE: test-node.js start posenet -2022-08-19 09:13:41 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-08-19 09:13:41 STATE: test-node.js event: image -2022-08-19 09:13:42 STATE: test-node.js event: detect -2022-08-19 09:13:42 STATE: test-node.js passed: detect: samples/in/ai-body.jpg posenet -2022-08-19 09:13:42 DATA:  test-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-08-19 09:13:42 DATA:  test-node.js result: performance: load: null total: 194 -2022-08-19 09:13:42 STATE: test-node.js passed: posenet -2022-08-19 09:13:42 STATE: test-node.js start movenet -2022-08-19 09:13:42 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-08-19 09:13:42 STATE: test-node.js event: image -2022-08-19 09:13:42 STATE: test-node.js event: detect -2022-08-19 09:13:42 STATE: test-node.js passed: detect: samples/in/ai-body.jpg movenet -2022-08-19 09:13:42 DATA:  test-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-08-19 09:13:42 DATA:  test-node.js result: performance: load: null total: 188 -2022-08-19 09:13:42 STATE: test-node.js passed: movenet -2022-08-19 09:13:42 INFO:  test-node.js test face matching -2022-08-19 09:13:42 STATE: test-node.js passed: face database 40 -2022-08-19 09:13:42 STATE: test-node.js passed: face match {"first":{"index":4,"similarity":0.7827852615252829}} {"second":{"index":4,"similarity":0.5002052633015844}} {"third":{"index":4,"similarity":0.5401587887998899}} -2022-08-19 09:13:42 INFO:  test-node.js test face similarity alternative -2022-08-19 09:13:42 STATE: test-node.js start face embeddings -2022-08-19 09:13:42 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-08-19 09:13:42 STATE: test-node.js event: image -2022-08-19 09:13:43 STATE: test-node.js event: detect -2022-08-19 09:13:43 STATE: test-node.js passed: detect: samples/in/ai-face.jpg face embeddings -2022-08-19 09:13:43 DATA:  test-node.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} -2022-08-19 09:13:43 DATA:  test-node.js result: performance: load: null total: 188 -2022-08-19 09:13:43 STATE: test-node.js passed: mobilefacenet {"embedding":192} -2022-08-19 09:13:43 STATE: test-node.js start face embeddings -2022-08-19 09:13:43 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-08-19 09:13:43 STATE: test-node.js event: image -2022-08-19 09:13:43 STATE: test-node.js event: detect -2022-08-19 09:13:43 STATE: test-node.js passed: detect: samples/in/ai-face.jpg face embeddings -2022-08-19 09:13:43 DATA:  test-node.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} -2022-08-19 09:13:43 DATA:  test-node.js result: performance: load: null total: 213 -2022-08-19 09:13:43 STATE: test-node.js passed: insightface {"embedding":512} -2022-08-19 09:13:43 INFO:  test-node.js test face attention -2022-08-19 09:13:43 STATE: test-node.js start face attention -2022-08-19 09:13:44 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-08-19 09:13:44 STATE: test-node.js event: image -2022-08-19 09:13:44 STATE: test-node.js event: detect -2022-08-19 09:13:44 STATE: test-node.js passed: detect: samples/in/ai-face.jpg face attention -2022-08-19 09:13:44 DATA:  test-node.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} -2022-08-19 09:13:44 DATA:  test-node.js result: performance: load: null total: 180 -2022-08-19 09:13:44 STATE: test-node.js passed: face attention -2022-08-19 09:13:44 INFO:  test-node.js test detectors -2022-08-19 09:13:44 STATE: test-node.js start detectors -2022-08-19 09:13:44 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-08-19 09:13:44 STATE: test-node.js event: image -2022-08-19 09:13:44 STATE: test-node.js event: detect -2022-08-19 09:13:44 STATE: test-node.js passed: detect: samples/in/ai-body.jpg detectors -2022-08-19 09:13:44 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} -2022-08-19 09:13:44 DATA:  test-node.js result: performance: load: null total: 89 -2022-08-19 09:13:44 STATE: test-node.js passed: detector result face match -2022-08-19 09:13:44 STATE: test-node.js passed: detector result hand match -2022-08-19 09:13:44 INFO:  test-node.js test: multi-instance -2022-08-19 09:13:44 STATE: test-node.js start multi instance -2022-08-19 09:13:44 STATE: test-node.js event: image -2022-08-19 09:13:44 STATE: test-node.js event: detect -2022-08-19 09:13:44 STATE: test-node.js passed: detect: random multi instance -2022-08-19 09:13:44 DATA:  test-node.js result: face: 0 body: 1 hand: 0 gesture: 0 object: 0 person: 0 {} {} {"score":0,"keypoints":0} -2022-08-19 09:13:44 DATA:  test-node.js result: performance: load: null total: 85 -2022-08-19 09:13:44 INFO:  test-node.js test: first instance -2022-08-19 09:13:44 STATE: test-node.js start multi instance -2022-08-19 09:13:44 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} -2022-08-19 09:13:44 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg multi instance -2022-08-19 09:13:44 DATA:  test-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-08-19 09:13:44 DATA:  test-node.js result: performance: load: null total: 89 -2022-08-19 09:13:44 INFO:  test-node.js test: second instance -2022-08-19 09:13:44 STATE: test-node.js start multi instance -2022-08-19 09:13:44 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} -2022-08-19 09:13:45 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg multi instance -2022-08-19 09:13:45 DATA:  test-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-08-19 09:13:45 DATA:  test-node.js result: performance: load: null total: 82 -2022-08-19 09:13:45 INFO:  test-node.js test: concurrent -2022-08-19 09:13:45 STATE: test-node.js start concurrent -2022-08-19 09:13:45 STATE: test-node.js start concurrent -2022-08-19 09:13:45 STATE: test-node.js start concurrent -2022-08-19 09:13:45 STATE: test-node.js start concurrent -2022-08-19 09:13:45 STATE: test-node.js start concurrent -2022-08-19 09:13:45 STATE: test-node.js start concurrent -2022-08-19 09:13:45 STATE: test-node.js start concurrent -2022-08-19 09:13:45 STATE: test-node.js start concurrent -2022-08-19 09:13:45 STATE: test-node.js start concurrent -2022-08-19 09:13:45 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-08-19 09:13:45 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-08-19 09:13:45 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-08-19 09:13:45 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-08-19 09:13:45 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} -2022-08-19 09:13:45 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} -2022-08-19 09:13:45 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-08-19 09:13:45 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-08-19 09:13:45 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} -2022-08-19 09:13:45 STATE: test-node.js event: image -2022-08-19 09:13:45 STATE: test-node.js event: image -2022-08-19 09:13:45 STATE: test-node.js event: image -2022-08-19 09:13:46 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg concurrent -2022-08-19 09:13:46 DATA:  test-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-08-19 09:13:46 DATA:  test-node.js result: performance: load: null total: 992 -2022-08-19 09:13:46 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg concurrent -2022-08-19 09:13:46 DATA:  test-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-08-19 09:13:46 DATA:  test-node.js result: performance: load: null total: 992 -2022-08-19 09:13:46 STATE: test-node.js passed: detect: samples/in/ai-face.jpg concurrent -2022-08-19 09:13:46 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} -2022-08-19 09:13:46 DATA:  test-node.js result: performance: load: null total: 993 -2022-08-19 09:13:46 STATE: test-node.js passed: detect: samples/in/ai-face.jpg concurrent -2022-08-19 09:13:46 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} -2022-08-19 09:13:46 DATA:  test-node.js result: performance: load: null total: 993 -2022-08-19 09:13:46 STATE: test-node.js passed: detect: samples/in/ai-body.jpg concurrent -2022-08-19 09:13:46 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} -2022-08-19 09:13:46 DATA:  test-node.js result: performance: load: null total: 993 -2022-08-19 09:13:46 STATE: test-node.js passed: detect: samples/in/ai-body.jpg concurrent -2022-08-19 09:13:46 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} -2022-08-19 09:13:46 DATA:  test-node.js result: performance: load: null total: 993 -2022-08-19 09:13:46 STATE: test-node.js event: detect -2022-08-19 09:13:46 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg concurrent -2022-08-19 09:13:46 DATA:  test-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-08-19 09:13:46 DATA:  test-node.js result: performance: load: null total: 719 -2022-08-19 09:13:46 STATE: test-node.js event: detect -2022-08-19 09:13:46 STATE: test-node.js event: detect -2022-08-19 09:13:46 STATE: test-node.js passed: detect: samples/in/ai-face.jpg concurrent -2022-08-19 09:13:46 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} -2022-08-19 09:13:46 DATA:  test-node.js result: performance: load: null total: 719 -2022-08-19 09:13:46 STATE: test-node.js passed: detect: samples/in/ai-body.jpg concurrent -2022-08-19 09:13:46 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} -2022-08-19 09:13:46 DATA:  test-node.js result: performance: load: null total: 719 -2022-08-19 09:13:46 INFO:  test-node.js test: monkey-patch -2022-08-19 09:13:46 STATE: test-node.js event: image -2022-08-19 09:13:46 STATE: test-node.js event: detect -2022-08-19 09:13:46 STATE: test-node.js passed: monkey patch -2022-08-19 09:13:46 STATE: test-node.js passed: segmentation [65536] -2022-08-19 09:13:46 STATE: test-node.js passeed: equal usage -2022-08-19 09:13:46 INFO:  test-node.js test: input compare -2022-08-19 09:13:46 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-08-19 09:13:46 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-08-19 09:13:46 STATE: test-node.js passed: image compare 0 23.275441687091504 -2022-08-19 09:13:46 INFO:  test-node.js events: {"image":29,"detect":29,"warmup":2} -2022-08-19 09:13:46 INFO:  test-node.js tensors 4105 -2022-08-19 09:13:46 INFO:  test-node.js test complete: 16274 ms -2022-08-19 09:13:46 INFO:  -2022-08-19 09:13:46 INFO:  test-node-gpu.js start -2022-08-19 09:13:48 INFO:  test-node-gpu.js test: configuration validation -2022-08-19 09:13:48 STATE: test-node-gpu.js passed: configuration default validation [] -2022-08-19 09:13:48 STATE: test-node-gpu.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}] -2022-08-19 09:13:48 INFO:  test-node-gpu.js test: model load -2022-08-19 09:13:48 STATE: test-node-gpu.js passed: models loaded 23 12 [{"name":"ssrnetage","loaded":false,"url":null},{"name":"gear","loaded":false,"url":null},{"name":"blazeposedetect","loaded":false,"url":null},{"name":"blazepose","loaded":false,"url":null},{"name":"centernet","loaded":true,"url":"file://models/mb3-centernet.json"},{"name":"efficientpose","loaded":false,"url":null},{"name":"mobilefacenet","loaded":false,"url":null},{"name":"insightface","loaded":false,"url":null},{"name":"emotion","loaded":true,"url":"file://models/emotion.json"},{"name":"facedetect","loaded":true,"url":"file://models/blazeface.json"},{"name":"faceiris","loaded":true,"url":"file://models/iris.json"},{"name":"facemesh","loaded":true,"url":"file://models/facemesh.json"},{"name":"faceres","loaded":true,"url":"file://models/faceres.json"},{"name":"ssrnetgender","loaded":false,"url":null},{"name":"handpose","loaded":false,"url":null},{"name":"handskeleton","loaded":true,"url":"file://models/handlandmark-full.json"},{"name":"handtrack","loaded":true,"url":"file://models/handtrack.json"},{"name":"liveness","loaded":true,"url":"file://models/liveness.json"},{"name":"movenet","loaded":true,"url":"file://models/movenet-lightning.json"},{"name":"nanodet","loaded":false,"url":null},{"name":"posenet","loaded":false,"url":null},{"name":"segmentation","loaded":true,"url":"file://models/selfie.json"},{"name":"antispoof","loaded":true,"url":"file://models/antispoof.json"}] -2022-08-19 09:13:48 INFO:  test-node-gpu.js test: warmup -2022-08-19 09:13:48 STATE: test-node-gpu.js passed: create human -2022-08-19 09:13:48 INFO:  test-node-gpu.js human version: 2.9.3 -2022-08-19 09:13:48 INFO:  test-node-gpu.js platform: linux x64 agent: NodeJS v18.1.0 -2022-08-19 09:13:48 INFO:  test-node-gpu.js tfjs version: 3.19.0 -2022-08-19 09:13:48 INFO:  test-node-gpu.js env: {"browser":false,"node":true,"platform":"linux x64","agent":"NodeJS v18.1.0","backends":["cpu","tensorflow"],"initial":false,"tfjs":{"version":"3.19.0"},"offscreen":false,"perfadd":false,"tensorflow":{"version":"2.7.3-dev20220521","gpu":true},"wasm":{"supported":true,"backend":false},"webgl":{"supported":false,"backend":false},"webgpu":{"supported":false,"backend":false},"cpu":{"flags":[]},"kernels":169} -2022-08-19 09:13:48 STATE: test-node-gpu.js passed: set backend: tensorflow -2022-08-19 09:13:48 STATE: test-node-gpu.js tensors 1921 -2022-08-19 09:13:48 STATE: test-node-gpu.js passed: load models -2022-08-19 09:13:48 STATE: test-node-gpu.js result: defined models: 23 loaded models: 12 -2022-08-19 09:13:48 STATE: test-node-gpu.js passed: warmup: none default -2022-08-19 09:13:48 DATA:  test-node-gpu.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {} -2022-08-19 09:13:48 DATA:  test-node-gpu.js result: performance: load: null total: null -2022-08-19 09:13:48 STATE: test-node-gpu.js passed: warmup none result match -2022-08-19 09:13:49 STATE: test-node-gpu.js event: image -2022-08-19 09:13:54 STATE: test-node-gpu.js event: detect -2022-08-19 09:13:54 STATE: test-node-gpu.js event: warmup -2022-08-19 09:13:54 STATE: test-node-gpu.js passed: warmup: face default -2022-08-19 09:13:54 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.42,"keypoints":4} -2022-08-19 09:13:54 DATA:  test-node-gpu.js result: performance: load: null total: 5301 -2022-08-19 09:13:54 STATE: test-node-gpu.js passed: warmup face result match -2022-08-19 09:13:54 STATE: test-node-gpu.js event: image -2022-08-19 09:13:54 STATE: test-node-gpu.js event: detect -2022-08-19 09:13:54 STATE: test-node-gpu.js event: warmup -2022-08-19 09:13:54 STATE: test-node-gpu.js passed: warmup: body default -2022-08-19 09:13:54 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-08-19 09:13:54 DATA:  test-node-gpu.js result: performance: load: null total: 150 -2022-08-19 09:13:54 STATE: test-node-gpu.js passed: warmup body result match -2022-08-19 09:13:54 STATE: test-node-gpu.js details: {"face":{"boxScore":0.92,"faceScore":1,"age":23.7,"gender":"female","genderScore":0.97},"emotion":[{"score":0.63,"emotion":"angry"},{"score":0.22,"emotion":"fear"}],"body":{"score":0.92,"keypoints":17},"hand":{"boxScore":0.52,"fingerScore":0.73,"keypoints":21},"gestures":[{"face":0,"gesture":"facing right"},{"face":0,"gesture":"mouth 10% open"},{"hand":0,"gesture":"pinky forward"},{"hand":0,"gesture":"palm up"},{"hand":0,"gesture":"open palm"},{"iris":0,"gesture":"looking left"},{"iris":0,"gesture":"looking up"}]} -2022-08-19 09:13:54 INFO:  test-node-gpu.js test: details verification -2022-08-19 09:13:54 STATE: test-node-gpu.js start default -2022-08-19 09:13:55 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-08-19 09:13:55 STATE: test-node-gpu.js event: image -2022-08-19 09:13:55 STATE: test-node-gpu.js event: detect -2022-08-19 09:13:55 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default -2022-08-19 09:13:55 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-08-19 09:13:55 DATA:  test-node-gpu.js result: performance: load: null total: 134 -2022-08-19 09:13:55 STATE: test-node-gpu.js passed: details face length 1 -2022-08-19 09:13:55 STATE: test-node-gpu.js passed: details face score 1 0.93 1 -2022-08-19 09:13:55 STATE: test-node-gpu.js passed: details face age/gender 23.7 female 0.97 85.47 -2022-08-19 09:13:55 STATE: test-node-gpu.js passed: details face arrays 4 478 1024 -2022-08-19 09:13:55 STATE: test-node-gpu.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"} -2022-08-19 09:13:55 STATE: test-node-gpu.js passed: details face anti-spoofing 0.79 -2022-08-19 09:13:55 STATE: test-node-gpu.js passed: details face liveness 0.83 -2022-08-19 09:13:55 STATE: test-node-gpu.js passed: details body length 1 -2022-08-19 09:13:55 STATE: test-node-gpu.js passed: details body 0.92 17 6 -2022-08-19 09:13:55 STATE: test-node-gpu.js passed: details hand length 1 -2022-08-19 09:13:55 STATE: test-node-gpu.js passed: details hand 0.51 0.73 point -2022-08-19 09:13:55 STATE: test-node-gpu.js passed: details hand arrays 21 5 7 -2022-08-19 09:13:55 STATE: test-node-gpu.js passed: details gesture length 7 -2022-08-19 09:13:55 STATE: test-node-gpu.js passed: details gesture first {"face":0,"gesture":"facing right"} -2022-08-19 09:13:55 STATE: test-node-gpu.js passed: details object length 1 -2022-08-19 09:13:55 STATE: test-node-gpu.js passed: details object 0.72 person -2022-08-19 09:13:55 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996928} -2022-08-19 09:13:55 STATE: test-node-gpu.js event: image -2022-08-19 09:13:55 STATE: test-node-gpu.js event: detect -2022-08-19 09:13:55 STATE: test-node-gpu.js passed: tensor shape: [1,1200,1200,4] dtype: float32 -2022-08-19 09:13:55 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1371996928} -2022-08-19 09:13:55 STATE: test-node-gpu.js event: image -2022-08-19 09:13:55 STATE: test-node-gpu.js event: detect -2022-08-19 09:13:55 STATE: test-node-gpu.js passed: tensor shape: [1200,1200,4] dtype: float32 -2022-08-19 09:13:56 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-08-19 09:13:56 STATE: test-node-gpu.js event: image -2022-08-19 09:13:56 STATE: test-node-gpu.js event: detect -2022-08-19 09:13:56 STATE: test-node-gpu.js passed: tensor shape: [1,1200,1200,3] dtype: float32 -2022-08-19 09:13:56 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1004796928} -2022-08-19 09:13:56 STATE: test-node-gpu.js event: image -2022-08-19 09:13:56 STATE: test-node-gpu.js event: detect -2022-08-19 09:13:56 STATE: test-node-gpu.js passed: tensor shape: [1200,1200,3] dtype: float32 -2022-08-19 09:13:56 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871} -2022-08-19 09:13:56 STATE: test-node-gpu.js event: image -2022-08-19 09:13:56 STATE: test-node-gpu.js event: detect -2022-08-19 09:13:56 STATE: test-node-gpu.js passed: tensor shape: [1,1200,1200,4] dtype: int32 -2022-08-19 09:13:56 INFO:  test-node-gpu.js test default -2022-08-19 09:13:56 STATE: test-node-gpu.js start async -2022-08-19 09:13:57 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-08-19 09:13:57 STATE: test-node-gpu.js event: image -2022-08-19 09:13:57 STATE: test-node-gpu.js event: detect -2022-08-19 09:13:57 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg async -2022-08-19 09:13:57 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-08-19 09:13:57 DATA:  test-node-gpu.js result: performance: load: null total: 148 -2022-08-19 09:13:57 STATE: test-node-gpu.js passed: default result face match 1 female 0.97 -2022-08-19 09:13:57 INFO:  test-node-gpu.js test sync -2022-08-19 09:13:57 STATE: test-node-gpu.js start sync -2022-08-19 09:13:57 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-08-19 09:13:57 STATE: test-node-gpu.js event: image -2022-08-19 09:13:57 STATE: test-node-gpu.js event: detect -2022-08-19 09:13:57 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg sync -2022-08-19 09:13:57 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-08-19 09:13:57 DATA:  test-node-gpu.js result: performance: load: null total: 142 -2022-08-19 09:13:57 STATE: test-node-gpu.js passed: default sync 1 female 0.97 -2022-08-19 09:13:57 INFO:  test-node-gpu.js test: image process -2022-08-19 09:13:57 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-08-19 09:13:57 STATE: test-node-gpu.js passed: image input null [1,256,256,3] -2022-08-19 09:13:57 INFO:  test-node-gpu.js test: image null -2022-08-19 09:13:57 STATE: test-node-gpu.js passed: invalid input could not convert input to tensor -2022-08-19 09:13:57 INFO:  test-node-gpu.js test face similarity -2022-08-19 09:13:57 STATE: test-node-gpu.js start face similarity -2022-08-19 09:13:57 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-08-19 09:13:57 STATE: test-node-gpu.js event: image -2022-08-19 09:13:57 STATE: test-node-gpu.js event: detect -2022-08-19 09:13:57 STATE: test-node-gpu.js passed: detect: samples/in/ai-face.jpg face similarity -2022-08-19 09:13:57 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":3} -2022-08-19 09:13:57 DATA:  test-node-gpu.js result: performance: load: null total: 163 -2022-08-19 09:13:57 STATE: test-node-gpu.js start face similarity -2022-08-19 09:13:57 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-08-19 09:13:57 STATE: test-node-gpu.js event: image -2022-08-19 09:13:58 STATE: test-node-gpu.js event: detect -2022-08-19 09:13:58 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg face similarity -2022-08-19 09:13:58 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-08-19 09:13:58 DATA:  test-node-gpu.js result: performance: load: null total: 171 -2022-08-19 09:13:58 STATE: test-node-gpu.js start face similarity -2022-08-19 09:13:58 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} -2022-08-19 09:13:58 STATE: test-node-gpu.js event: image -2022-08-19 09:13:58 STATE: test-node-gpu.js event: detect -2022-08-19 09:13:58 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg face similarity -2022-08-19 09:13:58 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 4 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":7} -2022-08-19 09:13:58 DATA:  test-node-gpu.js result: performance: load: null total: 168 -2022-08-19 09:13:58 STATE: test-node-gpu.js passed: face descriptor -2022-08-19 09:13:58 STATE: test-node-gpu.js passed: face similarity {"similarity":[1,0.447238756461232,0.556914029877052],"descriptors":[1024,1024,1024]} -2022-08-19 09:13:58 INFO:  test-node-gpu.js test object -2022-08-19 09:13:58 STATE: test-node-gpu.js start object -2022-08-19 09:13:58 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-08-19 09:13:58 STATE: test-node-gpu.js event: image -2022-08-19 09:13:58 STATE: test-node-gpu.js event: detect -2022-08-19 09:13:58 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg object -2022-08-19 09:13:58 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-08-19 09:13:58 DATA:  test-node-gpu.js result: performance: load: null total: 187 -2022-08-19 09:13:58 STATE: test-node-gpu.js passed: centernet -2022-08-19 09:13:58 STATE: test-node-gpu.js start object -2022-08-19 09:13:59 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-08-19 09:13:59 STATE: test-node-gpu.js event: image -2022-08-19 09:14:00 STATE: test-node-gpu.js event: detect -2022-08-19 09:14:00 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg object -2022-08-19 09:14:00 DATA:  test-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-08-19 09:14:00 DATA:  test-node-gpu.js result: performance: load: null total: 469 -2022-08-19 09:14:00 STATE: test-node-gpu.js passed: nanodet -2022-08-19 09:14:00 INFO:  test-node-gpu.js test sensitive -2022-08-19 09:14:00 STATE: test-node-gpu.js start sensitive -2022-08-19 09:14:00 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-08-19 09:14:00 STATE: test-node-gpu.js event: image -2022-08-19 09:14:00 STATE: test-node-gpu.js event: detect -2022-08-19 09:14:00 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg sensitive -2022-08-19 09:14:00 DATA:  test-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-08-19 09:14:00 DATA:  test-node-gpu.js result: performance: load: null total: 125 -2022-08-19 09:14:00 STATE: test-node-gpu.js passed: sensitive result match -2022-08-19 09:14:00 STATE: test-node-gpu.js passed: sensitive face result match -2022-08-19 09:14:00 STATE: test-node-gpu.js passed: sensitive face emotion result [{"score":0.59,"emotion":"angry"},{"score":0.29,"emotion":"fear"}] -2022-08-19 09:14:00 STATE: test-node-gpu.js passed: sensitive body result match -2022-08-19 09:14:00 STATE: test-node-gpu.js passed: sensitive hand result match -2022-08-19 09:14:00 INFO:  test-node-gpu.js test body -2022-08-19 09:14:00 STATE: test-node-gpu.js start blazepose -2022-08-19 09:14:01 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-08-19 09:14:01 STATE: test-node-gpu.js event: image -2022-08-19 09:14:02 STATE: test-node-gpu.js event: detect -2022-08-19 09:14:02 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg blazepose -2022-08-19 09:14:02 DATA:  test-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-08-19 09:14:02 DATA:  test-node-gpu.js result: performance: load: null total: 253 -2022-08-19 09:14:02 STATE: test-node-gpu.js passed: blazepose -2022-08-19 09:14:02 STATE: test-node-gpu.js start efficientpose -2022-08-19 09:14:02 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-08-19 09:14:02 STATE: test-node-gpu.js event: image -2022-08-19 09:14:03 STATE: test-node-gpu.js event: detect -2022-08-19 09:14:03 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg efficientpose -2022-08-19 09:14:03 DATA:  test-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-08-19 09:14:03 DATA:  test-node-gpu.js result: performance: load: null total: 841 -2022-08-19 09:14:03 STATE: test-node-gpu.js passed: efficientpose -2022-08-19 09:14:03 STATE: test-node-gpu.js start posenet -2022-08-19 09:14:04 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-08-19 09:14:04 STATE: test-node-gpu.js event: image -2022-08-19 09:14:04 STATE: test-node-gpu.js event: detect -2022-08-19 09:14:04 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg posenet -2022-08-19 09:14:04 DATA:  test-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-08-19 09:14:04 DATA:  test-node-gpu.js result: performance: load: null total: 134 -2022-08-19 09:14:04 STATE: test-node-gpu.js passed: posenet -2022-08-19 09:14:04 STATE: test-node-gpu.js start movenet -2022-08-19 09:14:04 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-08-19 09:14:04 STATE: test-node-gpu.js event: image -2022-08-19 09:14:04 STATE: test-node-gpu.js event: detect -2022-08-19 09:14:04 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg movenet -2022-08-19 09:14:04 DATA:  test-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-08-19 09:14:04 DATA:  test-node-gpu.js result: performance: load: null total: 107 -2022-08-19 09:14:04 STATE: test-node-gpu.js passed: movenet -2022-08-19 09:14:04 INFO:  test-node-gpu.js test face matching -2022-08-19 09:14:04 STATE: test-node-gpu.js passed: face database 40 -2022-08-19 09:14:04 STATE: test-node-gpu.js passed: face match {"first":{"index":4,"similarity":0.7828184453007331}} {"second":{"index":4,"similarity":0.5001334216773398}} {"third":{"index":4,"similarity":0.5403054967489764}} -2022-08-19 09:14:04 INFO:  test-node-gpu.js test face similarity alternative -2022-08-19 09:14:04 STATE: test-node-gpu.js start face embeddings -2022-08-19 09:14:04 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-08-19 09:14:04 STATE: test-node-gpu.js event: image -2022-08-19 09:14:04 STATE: test-node-gpu.js event: detect -2022-08-19 09:14:04 STATE: test-node-gpu.js passed: detect: samples/in/ai-face.jpg face embeddings -2022-08-19 09:14:04 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} -2022-08-19 09:14:04 DATA:  test-node-gpu.js result: performance: load: null total: 155 -2022-08-19 09:14:04 STATE: test-node-gpu.js passed: mobilefacenet {"embedding":192} -2022-08-19 09:14:04 STATE: test-node-gpu.js start face embeddings -2022-08-19 09:14:05 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-08-19 09:14:05 STATE: test-node-gpu.js event: image -2022-08-19 09:14:05 STATE: test-node-gpu.js event: detect -2022-08-19 09:14:05 STATE: test-node-gpu.js passed: detect: samples/in/ai-face.jpg face embeddings -2022-08-19 09:14:05 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} -2022-08-19 09:14:05 DATA:  test-node-gpu.js result: performance: load: null total: 181 -2022-08-19 09:14:05 STATE: test-node-gpu.js passed: insightface {"embedding":512} -2022-08-19 09:14:05 INFO:  test-node-gpu.js test face attention -2022-08-19 09:14:05 STATE: test-node-gpu.js start face attention -2022-08-19 09:14:05 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-08-19 09:14:05 STATE: test-node-gpu.js event: image -2022-08-19 09:14:06 STATE: test-node-gpu.js event: detect -2022-08-19 09:14:06 STATE: test-node-gpu.js passed: detect: samples/in/ai-face.jpg face attention -2022-08-19 09:14:06 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} -2022-08-19 09:14:06 DATA:  test-node-gpu.js result: performance: load: null total: 224 -2022-08-19 09:14:06 STATE: test-node-gpu.js passed: face attention -2022-08-19 09:14:06 INFO:  test-node-gpu.js test detectors -2022-08-19 09:14:06 STATE: test-node-gpu.js start detectors -2022-08-19 09:14:06 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-08-19 09:14:06 STATE: test-node-gpu.js event: image -2022-08-19 09:14:06 STATE: test-node-gpu.js event: detect -2022-08-19 09:14:06 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg detectors -2022-08-19 09:14:06 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} -2022-08-19 09:14:06 DATA:  test-node-gpu.js result: performance: load: null total: 59 -2022-08-19 09:14:06 STATE: test-node-gpu.js passed: detector result face match -2022-08-19 09:14:06 STATE: test-node-gpu.js passed: detector result hand match -2022-08-19 09:14:06 INFO:  test-node-gpu.js test: multi-instance -2022-08-19 09:14:06 STATE: test-node-gpu.js start multi instance -2022-08-19 09:14:06 STATE: test-node-gpu.js event: image -2022-08-19 09:14:06 STATE: test-node-gpu.js event: detect -2022-08-19 09:14:06 STATE: test-node-gpu.js passed: detect: random multi instance -2022-08-19 09:14:06 DATA:  test-node-gpu.js result: face: 0 body: 1 hand: 0 gesture: 0 object: 0 person: 0 {} {} {"score":0,"keypoints":0} -2022-08-19 09:14:06 DATA:  test-node-gpu.js result: performance: load: null total: 53 -2022-08-19 09:14:06 INFO:  test-node-gpu.js test: first instance -2022-08-19 09:14:06 STATE: test-node-gpu.js start multi instance -2022-08-19 09:14:06 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} -2022-08-19 09:14:06 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg multi instance -2022-08-19 09:14:06 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-08-19 09:14:06 DATA:  test-node-gpu.js result: performance: load: null total: 45 -2022-08-19 09:14:06 INFO:  test-node-gpu.js test: second instance -2022-08-19 09:14:06 STATE: test-node-gpu.js start multi instance -2022-08-19 09:14:06 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} -2022-08-19 09:14:06 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg multi instance -2022-08-19 09:14:06 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-08-19 09:14:06 DATA:  test-node-gpu.js result: performance: load: null total: 49 -2022-08-19 09:14:06 INFO:  test-node-gpu.js test: concurrent -2022-08-19 09:14:06 STATE: test-node-gpu.js start concurrent -2022-08-19 09:14:06 STATE: test-node-gpu.js start concurrent -2022-08-19 09:14:06 STATE: test-node-gpu.js start concurrent -2022-08-19 09:14:06 STATE: test-node-gpu.js start concurrent -2022-08-19 09:14:06 STATE: test-node-gpu.js start concurrent -2022-08-19 09:14:06 STATE: test-node-gpu.js start concurrent -2022-08-19 09:14:06 STATE: test-node-gpu.js start concurrent -2022-08-19 09:14:06 STATE: test-node-gpu.js start concurrent -2022-08-19 09:14:06 STATE: test-node-gpu.js start concurrent -2022-08-19 09:14:06 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-08-19 09:14:06 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-08-19 09:14:06 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-08-19 09:14:07 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-08-19 09:14:07 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} -2022-08-19 09:14:07 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} -2022-08-19 09:14:07 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-08-19 09:14:07 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-08-19 09:14:07 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} -2022-08-19 09:14:07 STATE: test-node-gpu.js event: image -2022-08-19 09:14:07 STATE: test-node-gpu.js event: image -2022-08-19 09:14:07 STATE: test-node-gpu.js event: image -2022-08-19 09:14:07 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg concurrent -2022-08-19 09:14:07 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-08-19 09:14:07 DATA:  test-node-gpu.js result: performance: load: null total: 699 -2022-08-19 09:14:07 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg concurrent -2022-08-19 09:14:07 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-08-19 09:14:07 DATA:  test-node-gpu.js result: performance: load: null total: 699 -2022-08-19 09:14:07 STATE: test-node-gpu.js passed: detect: samples/in/ai-face.jpg concurrent -2022-08-19 09:14:07 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} -2022-08-19 09:14:07 DATA:  test-node-gpu.js result: performance: load: null total: 699 -2022-08-19 09:14:07 STATE: test-node-gpu.js passed: detect: samples/in/ai-face.jpg concurrent -2022-08-19 09:14:07 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} -2022-08-19 09:14:07 DATA:  test-node-gpu.js result: performance: load: null total: 699 -2022-08-19 09:14:07 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg concurrent -2022-08-19 09:14:07 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} -2022-08-19 09:14:07 DATA:  test-node-gpu.js result: performance: load: null total: 699 -2022-08-19 09:14:07 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg concurrent -2022-08-19 09:14:07 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} -2022-08-19 09:14:07 DATA:  test-node-gpu.js result: performance: load: null total: 699 -2022-08-19 09:14:07 STATE: test-node-gpu.js event: detect -2022-08-19 09:14:07 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg concurrent -2022-08-19 09:14:07 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-08-19 09:14:07 DATA:  test-node-gpu.js result: performance: load: null total: 427 -2022-08-19 09:14:07 STATE: test-node-gpu.js event: detect -2022-08-19 09:14:07 STATE: test-node-gpu.js event: detect -2022-08-19 09:14:07 STATE: test-node-gpu.js passed: detect: samples/in/ai-face.jpg concurrent -2022-08-19 09:14:07 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} -2022-08-19 09:14:07 DATA:  test-node-gpu.js result: performance: load: null total: 427 -2022-08-19 09:14:07 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg concurrent -2022-08-19 09:14:07 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} -2022-08-19 09:14:07 DATA:  test-node-gpu.js result: performance: load: null total: 427 -2022-08-19 09:14:07 INFO:  test-node-gpu.js test: monkey-patch -2022-08-19 09:14:07 STATE: test-node-gpu.js event: image -2022-08-19 09:14:08 STATE: test-node-gpu.js event: detect -2022-08-19 09:14:08 STATE: test-node-gpu.js passed: monkey patch -2022-08-19 09:14:08 STATE: test-node-gpu.js passed: segmentation [65536] -2022-08-19 09:14:08 STATE: test-node-gpu.js passeed: equal usage -2022-08-19 09:14:08 INFO:  test-node-gpu.js test: input compare -2022-08-19 09:14:08 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-08-19 09:14:08 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-08-19 09:14:08 STATE: test-node-gpu.js passed: image compare 0 23.275441687091504 -2022-08-19 09:14:08 INFO:  test-node-gpu.js events: {"image":29,"detect":29,"warmup":2} -2022-08-19 09:14:08 INFO:  test-node-gpu.js tensors 4105 -2022-08-19 09:14:08 INFO:  test-node-gpu.js test complete: 19548 ms -2022-08-19 09:14:09 INFO:  -2022-08-19 09:14:09 INFO:  test-node-wasm.js start -2022-08-19 09:14:11 DATA:  test-node-wasm.js stdout: 2022-08-19 09:14:11 INFO:  { supported: true, backend: true, simd: true, multithread: false } -2022-08-19 09:14:11 STATE: test-node-wasm.js passed: model server: https://vladmandic.github.io/human/models/ -2022-08-19 09:14:11 INFO:  test-node-wasm.js test: configuration validation -2022-08-19 09:14:11 STATE: test-node-wasm.js passed: configuration default validation [] -2022-08-19 09:14:11 STATE: test-node-wasm.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}] -2022-08-19 09:14:11 INFO:  test-node-wasm.js test: model load -2022-08-19 09:14:12 STATE: test-node-wasm.js passed: models loaded 23 12 [{"name":"ssrnetage","loaded":false,"url":null},{"name":"gear","loaded":false,"url":null},{"name":"blazeposedetect","loaded":false,"url":null},{"name":"blazepose","loaded":false,"url":null},{"name":"centernet","loaded":true,"url":"https://vladmandic.github.io/human/models/mb3-centernet.json"},{"name":"efficientpose","loaded":false,"url":null},{"name":"mobilefacenet","loaded":false,"url":null},{"name":"insightface","loaded":false,"url":null},{"name":"emotion","loaded":true,"url":"https://vladmandic.github.io/human/models/emotion.json"},{"name":"facedetect","loaded":true,"url":"https://vladmandic.github.io/human/models/blazeface.json"},{"name":"faceiris","loaded":true,"url":"https://vladmandic.github.io/human/models/iris.json"},{"name":"facemesh","loaded":true,"url":"https://vladmandic.github.io/human/models/facemesh.json"},{"name":"faceres","loaded":true,"url":"https://vladmandic.github.io/human/models/faceres.json"},{"name":"ssrnetgender","loaded":false,"url":null},{"name":"handpose","loaded":false,"url":null},{"name":"handskeleton","loaded":true,"url":"https://vladmandic.github.io/human/models/handlandmark-full.json"},{"name":"handtrack","loaded":true,"url":"https://vladmandic.github.io/human/models/handtrack.json"},{"name":"liveness","loaded":true,"url":"https://vladmandic.github.io/human/models/liveness.json"},{"name":"movenet","loaded":true,"url":"https://vladmandic.github.io/human/models/movenet-lightning.json"},{"name":"nanodet","loaded":false,"url":null},{"name":"posenet","loaded":false,"url":null},{"name":"segmentation","loaded":true,"url":"https://vladmandic.github.io/human/models/selfie.json"},{"name":"antispoof","loaded":true,"url":"https://vladmandic.github.io/human/models/antispoof.json"}] -2022-08-19 09:14:12 INFO:  test-node-wasm.js test: warmup -2022-08-19 09:14:12 STATE: test-node-wasm.js passed: create human -2022-08-19 09:14:12 INFO:  test-node-wasm.js human version: 2.9.3 -2022-08-19 09:14:12 INFO:  test-node-wasm.js platform: linux x64 agent: NodeJS v18.1.0 -2022-08-19 09:14:12 INFO:  test-node-wasm.js tfjs version: 3.19.0 -2022-08-19 09:14:12 INFO:  test-node-wasm.js env: {"browser":false,"node":true,"platform":"linux x64","agent":"NodeJS v18.1.0","backends":["cpu","wasm"],"initial":false,"tfjs":{"version":"3.19.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-08-19 09:14:12 STATE: test-node-wasm.js passed: set backend: wasm -2022-08-19 09:14:12 STATE: test-node-wasm.js tensors 1921 -2022-08-19 09:14:12 STATE: test-node-wasm.js passed: load models -2022-08-19 09:14:12 STATE: test-node-wasm.js result: defined models: 23 loaded models: 12 -2022-08-19 09:14:12 STATE: test-node-wasm.js passed: warmup: none default -2022-08-19 09:14:12 DATA:  test-node-wasm.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {} -2022-08-19 09:14:12 DATA:  test-node-wasm.js result: performance: load: null total: null -2022-08-19 09:14:12 STATE: test-node-wasm.js passed: warmup none result match -2022-08-19 09:14:12 STATE: test-node-wasm.js event: image -2022-08-19 09:14:13 STATE: test-node-wasm.js event: detect -2022-08-19 09:14:13 STATE: test-node-wasm.js event: warmup -2022-08-19 09:14:13 STATE: test-node-wasm.js passed: warmup: face default -2022-08-19 09:14:13 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":3} -2022-08-19 09:14:13 DATA:  test-node-wasm.js result: performance: load: null total: 502 -2022-08-19 09:14:13 STATE: test-node-wasm.js passed: warmup face result match -2022-08-19 09:14:13 STATE: test-node-wasm.js event: image -2022-08-19 09:14:13 STATE: test-node-wasm.js event: detect -2022-08-19 09:14:13 STATE: test-node-wasm.js event: warmup -2022-08-19 09:14:13 STATE: test-node-wasm.js passed: warmup: body default -2022-08-19 09:14:13 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-08-19 09:14:13 DATA:  test-node-wasm.js result: performance: load: null total: 357 -2022-08-19 09:14:13 STATE: test-node-wasm.js passed: warmup body result match -2022-08-19 09:14:13 STATE: test-node-wasm.js details: {"face":{"boxScore":0.93,"faceScore":1,"age":23.7,"gender":"female","genderScore":0.97},"emotion":[{"score":0.59,"emotion":"angry"},{"score":0.29,"emotion":"fear"}],"body":{"score":0.92,"keypoints":17},"hand":{"boxScore":0.51,"fingerScore":0.73,"keypoints":21},"gestures":[{"face":0,"gesture":"facing right"},{"face":0,"gesture":"mouth 21% open"},{"hand":0,"gesture":"pinky forward"},{"hand":0,"gesture":"palm up"},{"hand":0,"gesture":"open palm"},{"iris":0,"gesture":"looking left"},{"iris":0,"gesture":"looking up"}]} -2022-08-19 09:14:13 INFO:  test-node-wasm.js test: details verification -2022-08-19 09:14:13 STATE: test-node-wasm.js start default -2022-08-19 09:14:14 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-08-19 09:14:14 STATE: test-node-wasm.js event: image -2022-08-19 09:14:14 STATE: test-node-wasm.js event: detect -2022-08-19 09:14:14 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default -2022-08-19 09:14:14 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-08-19 09:14:14 DATA:  test-node-wasm.js result: performance: load: null total: 336 -2022-08-19 09:14:14 STATE: test-node-wasm.js passed: details face length 1 -2022-08-19 09:14:14 STATE: test-node-wasm.js passed: details face score 1 0.93 1 -2022-08-19 09:14:14 STATE: test-node-wasm.js passed: details face age/gender 23.7 female 0.97 85.47 -2022-08-19 09:14:14 STATE: test-node-wasm.js passed: details face arrays 4 478 1024 -2022-08-19 09:14:14 STATE: test-node-wasm.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"} -2022-08-19 09:14:14 STATE: test-node-wasm.js passed: details face anti-spoofing 0.79 -2022-08-19 09:14:14 STATE: test-node-wasm.js passed: details face liveness 0.83 -2022-08-19 09:14:14 STATE: test-node-wasm.js passed: details body length 1 -2022-08-19 09:14:14 STATE: test-node-wasm.js passed: details body 0.92 17 6 -2022-08-19 09:14:14 STATE: test-node-wasm.js passed: details hand length 1 -2022-08-19 09:14:14 STATE: test-node-wasm.js passed: details hand 0.51 0.73 point -2022-08-19 09:14:14 STATE: test-node-wasm.js passed: details hand arrays 21 5 7 -2022-08-19 09:14:14 STATE: test-node-wasm.js passed: details gesture length 7 -2022-08-19 09:14:14 STATE: test-node-wasm.js passed: details gesture first {"face":0,"gesture":"facing right"} -2022-08-19 09:14:14 STATE: test-node-wasm.js passed: details object length 1 -2022-08-19 09:14:14 STATE: test-node-wasm.js passed: details object 0.72 person -2022-08-19 09:14:14 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1413675264} -2022-08-19 09:14:14 STATE: test-node-wasm.js event: image -2022-08-19 09:14:14 STATE: test-node-wasm.js event: detect -2022-08-19 09:14:14 STATE: test-node-wasm.js passed: tensor shape: [1,1200,1200,4] dtype: float32 -2022-08-19 09:14:15 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1413675264} -2022-08-19 09:14:15 STATE: test-node-wasm.js event: image -2022-08-19 09:14:15 STATE: test-node-wasm.js event: detect -2022-08-19 09:14:15 STATE: test-node-wasm.js passed: tensor shape: [1200,1200,4] dtype: float32 -2022-08-19 09:14:15 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-08-19 09:14:15 STATE: test-node-wasm.js event: image -2022-08-19 09:14:16 STATE: test-node-wasm.js event: detect -2022-08-19 09:14:16 STATE: test-node-wasm.js passed: tensor shape: [1,1200,1200,3] dtype: float32 -2022-08-19 09:14:16 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1038921856} -2022-08-19 09:14:16 STATE: test-node-wasm.js event: image -2022-08-19 09:14:16 STATE: test-node-wasm.js event: detect -2022-08-19 09:14:16 STATE: test-node-wasm.js passed: tensor shape: [1200,1200,3] dtype: float32 -2022-08-19 09:14:16 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871} -2022-08-19 09:14:16 STATE: test-node-wasm.js event: image -2022-08-19 09:14:17 STATE: test-node-wasm.js event: detect -2022-08-19 09:14:17 STATE: test-node-wasm.js passed: tensor shape: [1,1200,1200,4] dtype: int32 -2022-08-19 09:14:17 INFO:  test-node-wasm.js test default -2022-08-19 09:14:17 STATE: test-node-wasm.js start async -2022-08-19 09:14:17 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-08-19 09:14:17 STATE: test-node-wasm.js event: image -2022-08-19 09:14:17 STATE: test-node-wasm.js event: detect -2022-08-19 09:14:17 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg async -2022-08-19 09:14:17 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-08-19 09:14:17 DATA:  test-node-wasm.js result: performance: load: null total: 356 -2022-08-19 09:14:17 STATE: test-node-wasm.js passed: default result face match 1 female 0.97 -2022-08-19 09:14:17 INFO:  test-node-wasm.js test sync -2022-08-19 09:14:17 STATE: test-node-wasm.js start sync -2022-08-19 09:14:18 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-08-19 09:14:18 STATE: test-node-wasm.js event: image -2022-08-19 09:14:18 STATE: test-node-wasm.js event: detect -2022-08-19 09:14:18 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg sync -2022-08-19 09:14:18 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-08-19 09:14:18 DATA:  test-node-wasm.js result: performance: load: null total: 323 -2022-08-19 09:14:18 STATE: test-node-wasm.js passed: default sync 1 female 0.97 -2022-08-19 09:14:18 INFO:  test-node-wasm.js test: image process -2022-08-19 09:14:18 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-08-19 09:14:18 STATE: test-node-wasm.js passed: image input null [1,256,256,3] -2022-08-19 09:14:18 INFO:  test-node-wasm.js test: image null -2022-08-19 09:14:18 STATE: test-node-wasm.js passed: invalid input could not convert input to tensor -2022-08-19 09:14:18 INFO:  test-node-wasm.js test face similarity -2022-08-19 09:14:18 STATE: test-node-wasm.js start face similarity -2022-08-19 09:14:18 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-08-19 09:14:18 STATE: test-node-wasm.js event: image -2022-08-19 09:14:18 STATE: test-node-wasm.js event: detect -2022-08-19 09:14:18 STATE: test-node-wasm.js passed: detect: samples/in/ai-face.jpg face similarity -2022-08-19 09:14:18 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":3} -2022-08-19 09:14:18 DATA:  test-node-wasm.js result: performance: load: null total: 310 -2022-08-19 09:14:18 STATE: test-node-wasm.js start face similarity -2022-08-19 09:14:18 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-08-19 09:14:18 STATE: test-node-wasm.js event: image -2022-08-19 09:14:19 STATE: test-node-wasm.js event: detect -2022-08-19 09:14:19 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg face similarity -2022-08-19 09:14:19 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-08-19 09:14:19 DATA:  test-node-wasm.js result: performance: load: null total: 360 -2022-08-19 09:14:19 STATE: test-node-wasm.js start face similarity -2022-08-19 09:14:19 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} -2022-08-19 09:14:19 STATE: test-node-wasm.js event: image -2022-08-19 09:14:19 STATE: test-node-wasm.js event: detect -2022-08-19 09:14:19 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg face similarity -2022-08-19 09:14:19 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 4 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":7} -2022-08-19 09:14:19 DATA:  test-node-wasm.js result: performance: load: null total: 337 -2022-08-19 09:14:19 STATE: test-node-wasm.js passed: face descriptor -2022-08-19 09:14:19 STATE: test-node-wasm.js passed: face similarity {"similarity":[1,0.5266119940661309,0.4858842904087851],"descriptors":[1024,1024,1024]} -2022-08-19 09:14:19 INFO:  test-node-wasm.js test object -2022-08-19 09:14:19 STATE: test-node-wasm.js start object -2022-08-19 09:14:19 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-08-19 09:14:19 STATE: test-node-wasm.js event: image -2022-08-19 09:14:20 STATE: test-node-wasm.js event: detect -2022-08-19 09:14:20 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg object -2022-08-19 09:14:20 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-08-19 09:14:20 DATA:  test-node-wasm.js result: performance: load: null total: 371 -2022-08-19 09:14:20 STATE: test-node-wasm.js passed: centernet -2022-08-19 09:14:20 STATE: test-node-wasm.js start object -2022-08-19 09:14:20 WARN:  test-node-wasm.js missing kernel ops {"title":"object","model":"nanodet","url":"https://vladmandic.github.io/human-models/models/nanodet.json","missing":["sparsetodense"],"backkend":"wasm"} -2022-08-19 09:14:21 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-08-19 09:14:21 STATE: test-node-wasm.js event: image -2022-08-19 09:14:21 STATE: test-node-wasm.js event: detect -2022-08-19 09:14:21 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg object -2022-08-19 09:14:21 DATA:  test-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-08-19 09:14:21 DATA:  test-node-wasm.js result: performance: load: null total: 266 -2022-08-19 09:14:21 ERROR: test-node-wasm.js failed: nanodet [] -2022-08-19 09:14:21 INFO:  test-node-wasm.js test sensitive -2022-08-19 09:14:21 STATE: test-node-wasm.js start sensitive -2022-08-19 09:14:21 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-08-19 09:14:21 STATE: test-node-wasm.js event: image -2022-08-19 09:14:21 STATE: test-node-wasm.js event: detect -2022-08-19 09:14:21 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg sensitive -2022-08-19 09:14:21 DATA:  test-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-08-19 09:14:21 DATA:  test-node-wasm.js result: performance: load: null total: 288 -2022-08-19 09:14:21 STATE: test-node-wasm.js passed: sensitive result match -2022-08-19 09:14:21 STATE: test-node-wasm.js passed: sensitive face result match -2022-08-19 09:14:21 STATE: test-node-wasm.js passed: sensitive face emotion result [{"score":0.46,"emotion":"neutral"},{"score":0.24,"emotion":"fear"},{"score":0.17,"emotion":"sad"}] -2022-08-19 09:14:21 STATE: test-node-wasm.js passed: sensitive body result match -2022-08-19 09:14:21 STATE: test-node-wasm.js passed: sensitive hand result match -2022-08-19 09:14:21 INFO:  test-node-wasm.js test body -2022-08-19 09:14:21 STATE: test-node-wasm.js start blazepose -2022-08-19 09:14:23 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-08-19 09:14:23 STATE: test-node-wasm.js event: image -2022-08-19 09:14:23 STATE: test-node-wasm.js event: detect -2022-08-19 09:14:23 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg blazepose -2022-08-19 09:14:23 DATA:  test-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-08-19 09:14:23 DATA:  test-node-wasm.js result: performance: load: null total: 410 -2022-08-19 09:14:23 STATE: test-node-wasm.js passed: blazepose -2022-08-19 09:14:23 STATE: test-node-wasm.js start efficientpose -2022-08-19 09:14:24 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-08-19 09:14:24 STATE: test-node-wasm.js event: image -2022-08-19 09:14:25 STATE: test-node-wasm.js event: detect -2022-08-19 09:14:25 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg efficientpose -2022-08-19 09:14:25 DATA:  test-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-08-19 09:14:25 DATA:  test-node-wasm.js result: performance: load: null total: 643 -2022-08-19 09:14:25 STATE: test-node-wasm.js passed: efficientpose -2022-08-19 09:14:25 STATE: test-node-wasm.js start posenet -2022-08-19 09:14:25 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-08-19 09:14:25 STATE: test-node-wasm.js event: image -2022-08-19 09:14:25 STATE: test-node-wasm.js event: detect -2022-08-19 09:14:25 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg posenet -2022-08-19 09:14:25 DATA:  test-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-08-19 09:14:25 DATA:  test-node-wasm.js result: performance: load: null total: 291 -2022-08-19 09:14:25 STATE: test-node-wasm.js passed: posenet -2022-08-19 09:14:25 STATE: test-node-wasm.js start movenet -2022-08-19 09:14:26 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-08-19 09:14:26 STATE: test-node-wasm.js event: image -2022-08-19 09:14:26 STATE: test-node-wasm.js event: detect -2022-08-19 09:14:26 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg movenet -2022-08-19 09:14:26 DATA:  test-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-08-19 09:14:26 DATA:  test-node-wasm.js result: performance: load: null total: 236 -2022-08-19 09:14:26 STATE: test-node-wasm.js passed: movenet -2022-08-19 09:14:26 INFO:  test-node-wasm.js test face matching -2022-08-19 09:14:26 STATE: test-node-wasm.js passed: face database 40 -2022-08-19 09:14:26 STATE: test-node-wasm.js passed: face match {"first":{"index":4,"similarity":0.7827852754786533}} {"second":{"index":4,"similarity":0.5660821189104794}} {"third":{"index":4,"similarity":0.45074189882665594}} -2022-08-19 09:14:26 INFO:  test-node-wasm.js test face similarity alternative -2022-08-19 09:14:26 STATE: test-node-wasm.js start face embeddings -2022-08-19 09:14:26 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-08-19 09:14:26 STATE: test-node-wasm.js event: image -2022-08-19 09:14:27 STATE: test-node-wasm.js event: detect -2022-08-19 09:14:27 STATE: test-node-wasm.js passed: detect: samples/in/ai-face.jpg face embeddings -2022-08-19 09:14:27 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} -2022-08-19 09:14:27 DATA:  test-node-wasm.js result: performance: load: null total: 245 -2022-08-19 09:14:27 STATE: test-node-wasm.js passed: mobilefacenet {"embedding":192} -2022-08-19 09:14:27 STATE: test-node-wasm.js start face embeddings -2022-08-19 09:14:27 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-08-19 09:14:27 STATE: test-node-wasm.js event: image -2022-08-19 09:14:28 STATE: test-node-wasm.js event: detect -2022-08-19 09:14:28 STATE: test-node-wasm.js passed: detect: samples/in/ai-face.jpg face embeddings -2022-08-19 09:14:28 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} -2022-08-19 09:14:28 DATA:  test-node-wasm.js result: performance: load: null total: 291 -2022-08-19 09:14:28 STATE: test-node-wasm.js passed: insightface {"embedding":512} -2022-08-19 09:14:28 INFO:  test-node-wasm.js test face attention -2022-08-19 09:14:28 STATE: test-node-wasm.js start face attention -2022-08-19 09:14:28 WARN:  test-node-wasm.js missing kernel ops {"title":"face attention","model":"facemesh","url":"https://vladmandic.github.io/human-models/models/facemesh-attention.json","missing":["atan2"],"backkend":"wasm"} -2022-08-19 09:14:28 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-08-19 09:14:28 STATE: test-node-wasm.js event: image -2022-08-19 09:14:28 STATE: test-node-wasm.js event: detect -2022-08-19 09:14:28 STATE: test-node-wasm.js passed: detect: samples/in/ai-face.jpg face attention -2022-08-19 09:14:28 DATA:  test-node-wasm.js result: face: 0 body: 1 hand: 1 gesture: 2 object: 0 person: 0 {} {} {"score":0.47,"keypoints":3} -2022-08-19 09:14:28 DATA:  test-node-wasm.js result: performance: load: null total: 124 -2022-08-19 09:14:28 ERROR: test-node-wasm.js failed: face attention {"annotations":0} -2022-08-19 09:14:28 INFO:  test-node-wasm.js test detectors -2022-08-19 09:14:28 STATE: test-node-wasm.js start detectors -2022-08-19 09:14:28 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-08-19 09:14:28 STATE: test-node-wasm.js event: image -2022-08-19 09:14:28 STATE: test-node-wasm.js event: detect -2022-08-19 09:14:28 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg detectors -2022-08-19 09:14:28 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} -2022-08-19 09:14:28 DATA:  test-node-wasm.js result: performance: load: null total: 130 -2022-08-19 09:14:28 STATE: test-node-wasm.js passed: detector result face match -2022-08-19 09:14:28 STATE: test-node-wasm.js passed: detector result hand match -2022-08-19 09:14:28 INFO:  test-node-wasm.js test: multi-instance -2022-08-19 09:14:28 STATE: test-node-wasm.js start multi instance -2022-08-19 09:14:28 STATE: test-node-wasm.js event: image -2022-08-19 09:14:28 STATE: test-node-wasm.js event: detect -2022-08-19 09:14:28 STATE: test-node-wasm.js passed: detect: random multi instance -2022-08-19 09:14:28 DATA:  test-node-wasm.js result: face: 0 body: 1 hand: 0 gesture: 0 object: 0 person: 0 {} {} {"score":0,"keypoints":0} -2022-08-19 09:14:28 DATA:  test-node-wasm.js result: performance: load: null total: 109 -2022-08-19 09:14:28 INFO:  test-node-wasm.js test: first instance -2022-08-19 09:14:28 STATE: test-node-wasm.js start multi instance -2022-08-19 09:14:29 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} -2022-08-19 09:14:29 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg multi instance -2022-08-19 09:14:29 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-08-19 09:14:29 DATA:  test-node-wasm.js result: performance: load: null total: 112 -2022-08-19 09:14:29 INFO:  test-node-wasm.js test: second instance -2022-08-19 09:14:29 STATE: test-node-wasm.js start multi instance -2022-08-19 09:14:29 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} -2022-08-19 09:14:29 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg multi instance -2022-08-19 09:14:29 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-08-19 09:14:29 DATA:  test-node-wasm.js result: performance: load: null total: 113 -2022-08-19 09:14:29 INFO:  test-node-wasm.js test: concurrent -2022-08-19 09:14:29 STATE: test-node-wasm.js start concurrent -2022-08-19 09:14:29 STATE: test-node-wasm.js start concurrent -2022-08-19 09:14:29 STATE: test-node-wasm.js start concurrent -2022-08-19 09:14:29 STATE: test-node-wasm.js start concurrent -2022-08-19 09:14:29 STATE: test-node-wasm.js start concurrent -2022-08-19 09:14:29 STATE: test-node-wasm.js start concurrent -2022-08-19 09:14:29 STATE: test-node-wasm.js start concurrent -2022-08-19 09:14:29 STATE: test-node-wasm.js start concurrent -2022-08-19 09:14:29 STATE: test-node-wasm.js start concurrent -2022-08-19 09:14:29 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-08-19 09:14:29 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-08-19 09:14:29 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-08-19 09:14:29 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-08-19 09:14:29 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} -2022-08-19 09:14:30 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} -2022-08-19 09:14:30 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-08-19 09:14:30 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-08-19 09:14:30 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} -2022-08-19 09:14:30 STATE: test-node-wasm.js event: image -2022-08-19 09:14:30 STATE: test-node-wasm.js event: image -2022-08-19 09:14:30 STATE: test-node-wasm.js event: image -2022-08-19 09:14:31 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg concurrent -2022-08-19 09:14:31 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-08-19 09:14:31 DATA:  test-node-wasm.js result: performance: load: null total: 1334 -2022-08-19 09:14:31 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg concurrent -2022-08-19 09:14:31 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-08-19 09:14:31 DATA:  test-node-wasm.js result: performance: load: null total: 1334 -2022-08-19 09:14:31 STATE: test-node-wasm.js passed: detect: samples/in/ai-face.jpg concurrent -2022-08-19 09:14:31 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} -2022-08-19 09:14:31 DATA:  test-node-wasm.js result: performance: load: null total: 1335 -2022-08-19 09:14:31 STATE: test-node-wasm.js passed: detect: samples/in/ai-face.jpg concurrent -2022-08-19 09:14:31 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} -2022-08-19 09:14:31 DATA:  test-node-wasm.js result: performance: load: null total: 1335 -2022-08-19 09:14:31 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg concurrent -2022-08-19 09:14:31 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} -2022-08-19 09:14:31 DATA:  test-node-wasm.js result: performance: load: null total: 1335 -2022-08-19 09:14:31 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg concurrent -2022-08-19 09:14:31 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} -2022-08-19 09:14:31 DATA:  test-node-wasm.js result: performance: load: null total: 1335 -2022-08-19 09:14:31 STATE: test-node-wasm.js event: detect -2022-08-19 09:14:31 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg concurrent -2022-08-19 09:14:31 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-08-19 09:14:31 DATA:  test-node-wasm.js result: performance: load: null total: 1014 -2022-08-19 09:14:31 STATE: test-node-wasm.js event: detect -2022-08-19 09:14:31 STATE: test-node-wasm.js event: detect -2022-08-19 09:14:31 STATE: test-node-wasm.js passed: detect: samples/in/ai-face.jpg concurrent -2022-08-19 09:14:31 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} -2022-08-19 09:14:31 DATA:  test-node-wasm.js result: performance: load: null total: 1014 -2022-08-19 09:14:31 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg concurrent -2022-08-19 09:14:31 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} -2022-08-19 09:14:31 DATA:  test-node-wasm.js result: performance: load: null total: 1014 -2022-08-19 09:14:31 INFO:  test-node-wasm.js test: monkey-patch -2022-08-19 09:14:31 STATE: test-node-wasm.js event: image -2022-08-19 09:14:31 STATE: test-node-wasm.js event: detect -2022-08-19 09:14:31 STATE: test-node-wasm.js passed: monkey patch -2022-08-19 09:14:31 STATE: test-node-wasm.js passed: segmentation [65536] -2022-08-19 09:14:31 STATE: test-node-wasm.js passeed: equal usage -2022-08-19 09:14:31 INFO:  test-node-wasm.js test: input compare -2022-08-19 09:14:31 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-08-19 09:14:31 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-08-19 09:14:31 STATE: test-node-wasm.js passed: image compare 0 23.280073018790848 -2022-08-19 09:14:31 INFO:  test-node-wasm.js events: {"image":29,"detect":29,"warmup":2} -2022-08-19 09:14:31 INFO:  test-node-wasm.js tensors 4107 -2022-08-19 09:14:31 INFO:  test-node-wasm.js test complete: 20364 ms -2022-08-19 09:14:31 STATE: all tests complete -2022-08-19 09:14:31 INFO:  status {"test":"../demo/nodejs/node.js","passed":1,"failed":0} -2022-08-19 09:14:31 INFO:  status {"test":"../demo/nodejs/node-simple.js","passed":1,"failed":0} -2022-08-19 09:14:31 INFO:  status {"test":"../demo/nodejs/node-fetch.js","passed":1,"failed":0} -2022-08-19 09:14:31 INFO:  status {"test":"../demo/nodejs/node-event.js","passed":1,"failed":0} -2022-08-19 09:14:31 INFO:  status {"test":"../demo/nodejs/node-similarity.js","passed":1,"failed":0} -2022-08-19 09:14:31 INFO:  status {"test":"../demo/nodejs/node-canvas.js","passed":1,"failed":0} -2022-08-19 09:14:31 INFO:  status {"test":"../demo/multithread/node-multiprocess.js","passed":1,"failed":0} -2022-08-19 09:14:31 INFO:  status {"test":"test-node.js","passed":125,"failed":0} -2022-08-19 09:14:31 INFO:  status {"test":"test-node-gpu.js","passed":125,"failed":0} -2022-08-19 09:14:31 INFO:  status {"test":"test-node-wasm.js","passed":124,"failed":2} -2022-08-19 09:14:31 INFO:  failures {"count":2} -2022-08-19 09:14:31 WARN:  failed {"test":"test-node-wasm.js","message":["error",["failed: nanodet",[]]]} -2022-08-19 09:14:31 WARN:  failed {"test":"test-node-wasm.js","message":["error",["failed: face attention",{"annotations":0}]]} +2022-08-20 09:36:24 INFO:  @vladmandic/human version 2.9.4 +2022-08-20 09:36:24 INFO:  User: vlado Platform: linux Arch: x64 Node: v18.1.0 +2022-08-20 09:36:24 INFO:  demos: [{"cmd":"../demo/nodejs/node.js","args":[]},{"cmd":"../demo/nodejs/node-simple.js","args":[]},{"cmd":"../demo/nodejs/node-fetch.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/multithread/node-multiprocess.js","args":[]},{"cmd":"../demo/facematch/node-match.js","args":[]}] +2022-08-20 09:36:24 INFO:  {"cmd":"../demo/nodejs/node.js","args":[]} start +2022-08-20 09:36:25 INFO:  {"cmd":"../demo/nodejs/node-simple.js","args":[]} start +2022-08-20 09:36:26 INFO:  {"cmd":"../demo/nodejs/node-fetch.js","args":[]} start +2022-08-20 09:36:30 INFO:  {"cmd":"../demo/nodejs/node-event.js","args":["samples/in/ai-body.jpg"]} start +2022-08-20 09:36:31 INFO:  {"cmd":"../demo/nodejs/node-similarity.js","args":["samples/in/ai-face.jpg","samples/in/ai-upper.jpg"]} start +2022-08-20 09:36:31 INFO:  {"cmd":"../demo/nodejs/node-canvas.js","args":["samples/in/ai-body.jpg","samples/out/ai-body.jpg"]} start +2022-08-20 09:36:32 INFO:  {"cmd":"../demo/multithread/node-multiprocess.js","args":[]} start +2022-08-20 09:36:33 INFO:  {"cmd":"../demo/facematch/node-match.js","args":[]} start +2022-08-20 09:36:35 INFO:  tests: ["test-node.js","test-node-gpu.js","test-node-wasm.js"] +2022-08-20 09:36:35 INFO:  +2022-08-20 09:36:35 INFO:  test-node.js start +2022-08-20 09:36:35 INFO:  test-node.js test: configuration validation +2022-08-20 09:36:35 STATE: test-node.js passed: configuration default validation [] +2022-08-20 09:36:35 STATE: test-node.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}] +2022-08-20 09:36:35 INFO:  test-node.js test: model load +2022-08-20 09:36:35 STATE: test-node.js passed: models loaded 23 12 [{"name":"ssrnetage","loaded":false,"url":null},{"name":"gear","loaded":false,"url":null},{"name":"blazeposedetect","loaded":false,"url":null},{"name":"blazepose","loaded":false,"url":null},{"name":"centernet","loaded":true,"url":"file://models/mb3-centernet.json"},{"name":"efficientpose","loaded":false,"url":null},{"name":"mobilefacenet","loaded":false,"url":null},{"name":"insightface","loaded":false,"url":null},{"name":"emotion","loaded":true,"url":"file://models/emotion.json"},{"name":"facedetect","loaded":true,"url":"file://models/blazeface.json"},{"name":"faceiris","loaded":true,"url":"file://models/iris.json"},{"name":"facemesh","loaded":true,"url":"file://models/facemesh.json"},{"name":"faceres","loaded":true,"url":"file://models/faceres.json"},{"name":"ssrnetgender","loaded":false,"url":null},{"name":"handpose","loaded":false,"url":null},{"name":"handskeleton","loaded":true,"url":"file://models/handlandmark-full.json"},{"name":"handtrack","loaded":true,"url":"file://models/handtrack.json"},{"name":"liveness","loaded":true,"url":"file://models/liveness.json"},{"name":"movenet","loaded":true,"url":"file://models/movenet-lightning.json"},{"name":"nanodet","loaded":false,"url":null},{"name":"posenet","loaded":false,"url":null},{"name":"segmentation","loaded":true,"url":"file://models/selfie.json"},{"name":"antispoof","loaded":true,"url":"file://models/antispoof.json"}] +2022-08-20 09:36:35 INFO:  test-node.js test: warmup +2022-08-20 09:36:35 STATE: test-node.js passed: create human +2022-08-20 09:36:35 INFO:  test-node.js human version: 2.9.4 +2022-08-20 09:36:35 INFO:  test-node.js platform: linux x64 agent: NodeJS v18.1.0 +2022-08-20 09:36:35 INFO:  test-node.js tfjs version: 3.19.0 +2022-08-20 09:36:35 INFO:  test-node.js env: {"browser":false,"node":true,"platform":"linux x64","agent":"NodeJS v18.1.0","backends":["cpu","tensorflow"],"initial":false,"tfjs":{"version":"3.19.0"},"offscreen":false,"perfadd":false,"tensorflow":{"version":"2.7.3-dev20220521","gpu":false},"wasm":{"supported":true,"backend":false},"webgl":{"supported":false,"backend":false},"webgpu":{"supported":false,"backend":false},"cpu":{"flags":[]},"kernels":169} +2022-08-20 09:36:35 STATE: test-node.js passed: set backend: tensorflow +2022-08-20 09:36:35 STATE: test-node.js tensors 1921 +2022-08-20 09:36:35 STATE: test-node.js passed: load models +2022-08-20 09:36:35 STATE: test-node.js result: defined models: 23 loaded models: 12 +2022-08-20 09:36:35 STATE: test-node.js passed: warmup: none default +2022-08-20 09:36:35 DATA:  test-node.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {} +2022-08-20 09:36:35 DATA:  test-node.js result: performance: load: null total: null +2022-08-20 09:36:35 STATE: test-node.js passed: warmup none result match +2022-08-20 09:36:35 STATE: test-node.js event: image +2022-08-20 09:36:35 STATE: test-node.js event: detect +2022-08-20 09:36:35 STATE: test-node.js event: warmup +2022-08-20 09:36:35 STATE: test-node.js passed: warmup: face default +2022-08-20 09:36:35 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.42,"keypoints":4} +2022-08-20 09:36:35 DATA:  test-node.js result: performance: load: null total: 329 +2022-08-20 09:36:35 STATE: test-node.js passed: warmup face result match +2022-08-20 09:36:35 STATE: test-node.js event: image +2022-08-20 09:36:36 STATE: test-node.js event: detect +2022-08-20 09:36:36 STATE: test-node.js event: warmup +2022-08-20 09:36:36 STATE: test-node.js passed: warmup: body default +2022-08-20 09:36:36 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-08-20 09:36:36 DATA:  test-node.js result: performance: load: null total: 241 +2022-08-20 09:36:36 STATE: test-node.js passed: warmup body result match +2022-08-20 09:36:36 STATE: test-node.js details: {"face":{"boxScore":0.92,"faceScore":1,"age":23.7,"gender":"female","genderScore":0.97},"emotion":[{"score":0.63,"emotion":"angry"},{"score":0.22,"emotion":"fear"}],"body":{"score":0.92,"keypoints":17},"hand":{"boxScore":0.52,"fingerScore":0.73,"keypoints":21},"gestures":[{"face":0,"gesture":"facing right"},{"face":0,"gesture":"mouth 10% open"},{"hand":0,"gesture":"pinky forward"},{"hand":0,"gesture":"palm up"},{"hand":0,"gesture":"open palm"},{"iris":0,"gesture":"looking left"},{"iris":0,"gesture":"looking up"}]} +2022-08-20 09:36:36 INFO:  test-node.js test: details verification +2022-08-20 09:36:36 STATE: test-node.js start default +2022-08-20 09:36:36 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-08-20 09:36:36 STATE: test-node.js event: image +2022-08-20 09:36:36 STATE: test-node.js event: detect +2022-08-20 09:36:36 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default +2022-08-20 09:36:36 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-08-20 09:36:36 DATA:  test-node.js result: performance: load: null total: 222 +2022-08-20 09:36:36 STATE: test-node.js passed: details face length 1 +2022-08-20 09:36:36 STATE: test-node.js passed: details face score 1 0.93 1 +2022-08-20 09:36:36 STATE: test-node.js passed: details face age/gender 23.7 female 0.97 85.47 +2022-08-20 09:36:36 STATE: test-node.js passed: details face arrays 4 478 1024 +2022-08-20 09:36:36 STATE: test-node.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"} +2022-08-20 09:36:36 STATE: test-node.js passed: details face anti-spoofing 0.79 +2022-08-20 09:36:36 STATE: test-node.js passed: details face liveness 0.83 +2022-08-20 09:36:36 STATE: test-node.js passed: details body length 1 +2022-08-20 09:36:36 STATE: test-node.js passed: details body 0.92 17 6 +2022-08-20 09:36:36 STATE: test-node.js passed: details hand length 1 +2022-08-20 09:36:36 STATE: test-node.js passed: details hand 0.51 0.73 point +2022-08-20 09:36:36 STATE: test-node.js passed: details hand arrays 21 5 7 +2022-08-20 09:36:36 STATE: test-node.js passed: details gesture length 7 +2022-08-20 09:36:36 STATE: test-node.js passed: details gesture first {"face":0,"gesture":"facing right"} +2022-08-20 09:36:36 STATE: test-node.js passed: details object length 1 +2022-08-20 09:36:36 STATE: test-node.js passed: details object 0.72 person +2022-08-20 09:36:36 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996928} +2022-08-20 09:36:36 STATE: test-node.js event: image +2022-08-20 09:36:36 STATE: test-node.js event: detect +2022-08-20 09:36:36 STATE: test-node.js passed: tensor shape: [1,1200,1200,4] dtype: float32 +2022-08-20 09:36:37 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1371996928} +2022-08-20 09:36:37 STATE: test-node.js event: image +2022-08-20 09:36:37 STATE: test-node.js event: detect +2022-08-20 09:36:37 STATE: test-node.js passed: tensor shape: [1200,1200,4] dtype: float32 +2022-08-20 09:36:37 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-08-20 09:36:37 STATE: test-node.js event: image +2022-08-20 09:36:37 STATE: test-node.js event: detect +2022-08-20 09:36:37 STATE: test-node.js passed: tensor shape: [1,1200,1200,3] dtype: float32 +2022-08-20 09:36:37 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1004796864} +2022-08-20 09:36:37 STATE: test-node.js event: image +2022-08-20 09:36:38 STATE: test-node.js event: detect +2022-08-20 09:36:38 STATE: test-node.js passed: tensor shape: [1200,1200,3] dtype: float32 +2022-08-20 09:36:38 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871} +2022-08-20 09:36:38 STATE: test-node.js event: image +2022-08-20 09:36:38 STATE: test-node.js event: detect +2022-08-20 09:36:38 STATE: test-node.js passed: tensor shape: [1,1200,1200,4] dtype: int32 +2022-08-20 09:36:38 INFO:  test-node.js test default +2022-08-20 09:36:38 STATE: test-node.js start async +2022-08-20 09:36:38 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-08-20 09:36:38 STATE: test-node.js event: image +2022-08-20 09:36:38 STATE: test-node.js event: detect +2022-08-20 09:36:38 STATE: test-node.js passed: detect: samples/in/ai-body.jpg async +2022-08-20 09:36:38 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-08-20 09:36:38 DATA:  test-node.js result: performance: load: null total: 212 +2022-08-20 09:36:38 STATE: test-node.js passed: default result face match 1 female 0.97 +2022-08-20 09:36:38 INFO:  test-node.js test sync +2022-08-20 09:36:38 STATE: test-node.js start sync +2022-08-20 09:36:39 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-08-20 09:36:39 STATE: test-node.js event: image +2022-08-20 09:36:39 STATE: test-node.js event: detect +2022-08-20 09:36:39 STATE: test-node.js passed: detect: samples/in/ai-body.jpg sync +2022-08-20 09:36:39 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-08-20 09:36:39 DATA:  test-node.js result: performance: load: null total: 207 +2022-08-20 09:36:39 STATE: test-node.js passed: default sync 1 female 0.97 +2022-08-20 09:36:39 INFO:  test-node.js test: image process +2022-08-20 09:36:39 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-08-20 09:36:39 STATE: test-node.js passed: image input null [1,256,256,3] +2022-08-20 09:36:39 INFO:  test-node.js test: image null +2022-08-20 09:36:39 STATE: test-node.js passed: invalid input could not convert input to tensor +2022-08-20 09:36:39 INFO:  test-node.js test face similarity +2022-08-20 09:36:39 STATE: test-node.js start face similarity +2022-08-20 09:36:39 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-08-20 09:36:39 STATE: test-node.js event: image +2022-08-20 09:36:39 STATE: test-node.js event: detect +2022-08-20 09:36:39 STATE: test-node.js passed: detect: samples/in/ai-face.jpg face similarity +2022-08-20 09:36:39 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":3} +2022-08-20 09:36:39 DATA:  test-node.js result: performance: load: null total: 202 +2022-08-20 09:36:39 STATE: test-node.js start face similarity +2022-08-20 09:36:39 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-08-20 09:36:39 STATE: test-node.js event: image +2022-08-20 09:36:39 STATE: test-node.js event: detect +2022-08-20 09:36:39 STATE: test-node.js passed: detect: samples/in/ai-body.jpg face similarity +2022-08-20 09:36:39 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-08-20 09:36:39 DATA:  test-node.js result: performance: load: null total: 205 +2022-08-20 09:36:39 STATE: test-node.js start face similarity +2022-08-20 09:36:39 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} +2022-08-20 09:36:39 STATE: test-node.js event: image +2022-08-20 09:36:40 STATE: test-node.js event: detect +2022-08-20 09:36:40 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg face similarity +2022-08-20 09:36:40 DATA:  test-node.js result: face: 1 body: 1 hand: 0 gesture: 4 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":7} +2022-08-20 09:36:40 DATA:  test-node.js result: performance: load: null total: 186 +2022-08-20 09:36:40 STATE: test-node.js passed: face descriptor +2022-08-20 09:36:40 STATE: test-node.js passed: face similarity {"similarity":[1,0.44727452329649126,0.5567935850640406],"descriptors":[1024,1024,1024]} +2022-08-20 09:36:40 INFO:  test-node.js test object +2022-08-20 09:36:40 STATE: test-node.js start object +2022-08-20 09:36:40 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-08-20 09:36:40 STATE: test-node.js event: image +2022-08-20 09:36:40 STATE: test-node.js event: detect +2022-08-20 09:36:40 STATE: test-node.js passed: detect: samples/in/ai-body.jpg object +2022-08-20 09:36:40 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-08-20 09:36:40 DATA:  test-node.js result: performance: load: null total: 215 +2022-08-20 09:36:40 STATE: test-node.js passed: centernet +2022-08-20 09:36:40 STATE: test-node.js start object +2022-08-20 09:36:41 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-08-20 09:36:41 STATE: test-node.js event: image +2022-08-20 09:36:41 STATE: test-node.js event: detect +2022-08-20 09:36:41 STATE: test-node.js passed: detect: samples/in/ai-body.jpg object +2022-08-20 09:36:41 DATA:  test-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-08-20 09:36:41 DATA:  test-node.js result: performance: load: null total: 218 +2022-08-20 09:36:41 STATE: test-node.js passed: nanodet +2022-08-20 09:36:41 INFO:  test-node.js test sensitive +2022-08-20 09:36:41 STATE: test-node.js start sensitive +2022-08-20 09:36:41 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-08-20 09:36:41 STATE: test-node.js event: image +2022-08-20 09:36:41 STATE: test-node.js event: detect +2022-08-20 09:36:41 STATE: test-node.js passed: detect: samples/in/ai-body.jpg sensitive +2022-08-20 09:36:41 DATA:  test-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-08-20 09:36:41 DATA:  test-node.js result: performance: load: null total: 167 +2022-08-20 09:36:41 STATE: test-node.js passed: sensitive result match +2022-08-20 09:36:41 STATE: test-node.js passed: sensitive face result match +2022-08-20 09:36:41 STATE: test-node.js passed: sensitive face emotion result [{"score":0.59,"emotion":"angry"},{"score":0.29,"emotion":"fear"}] +2022-08-20 09:36:41 STATE: test-node.js passed: sensitive body result match +2022-08-20 09:36:41 STATE: test-node.js passed: sensitive hand result match +2022-08-20 09:36:41 INFO:  test-node.js test body +2022-08-20 09:36:41 STATE: test-node.js start blazepose +2022-08-20 09:36:43 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-08-20 09:36:43 STATE: test-node.js event: image +2022-08-20 09:36:43 STATE: test-node.js event: detect +2022-08-20 09:36:43 STATE: test-node.js passed: detect: samples/in/ai-body.jpg blazepose +2022-08-20 09:36:43 DATA:  test-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-08-20 09:36:43 DATA:  test-node.js result: performance: load: null total: 227 +2022-08-20 09:36:43 STATE: test-node.js passed: blazepose +2022-08-20 09:36:43 STATE: test-node.js start efficientpose +2022-08-20 09:36:44 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-08-20 09:36:44 STATE: test-node.js event: image +2022-08-20 09:36:44 STATE: test-node.js event: detect +2022-08-20 09:36:44 STATE: test-node.js passed: detect: samples/in/ai-body.jpg efficientpose +2022-08-20 09:36:44 DATA:  test-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-08-20 09:36:44 DATA:  test-node.js result: performance: load: null total: 246 +2022-08-20 09:36:44 STATE: test-node.js passed: efficientpose +2022-08-20 09:36:44 STATE: test-node.js start posenet +2022-08-20 09:36:45 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-08-20 09:36:45 STATE: test-node.js event: image +2022-08-20 09:36:45 STATE: test-node.js event: detect +2022-08-20 09:36:45 STATE: test-node.js passed: detect: samples/in/ai-body.jpg posenet +2022-08-20 09:36:45 DATA:  test-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-08-20 09:36:45 DATA:  test-node.js result: performance: load: null total: 187 +2022-08-20 09:36:45 STATE: test-node.js passed: posenet +2022-08-20 09:36:45 STATE: test-node.js start movenet +2022-08-20 09:36:46 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-08-20 09:36:46 STATE: test-node.js event: image +2022-08-20 09:36:46 STATE: test-node.js event: detect +2022-08-20 09:36:46 STATE: test-node.js passed: detect: samples/in/ai-body.jpg movenet +2022-08-20 09:36:46 DATA:  test-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-08-20 09:36:46 DATA:  test-node.js result: performance: load: null total: 179 +2022-08-20 09:36:46 STATE: test-node.js passed: movenet +2022-08-20 09:36:46 INFO:  test-node.js test face matching +2022-08-20 09:36:46 STATE: test-node.js passed: face database 40 +2022-08-20 09:36:46 STATE: test-node.js passed: face match {"first":{"index":4,"similarity":0.7827852615252829}} {"second":{"index":4,"similarity":0.5002052633015844}} {"third":{"index":4,"similarity":0.5401587887998899}} +2022-08-20 09:36:46 INFO:  test-node.js test face similarity alternative +2022-08-20 09:36:46 STATE: test-node.js start face embeddings +2022-08-20 09:36:46 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-08-20 09:36:46 STATE: test-node.js event: image +2022-08-20 09:36:46 STATE: test-node.js event: detect +2022-08-20 09:36:46 STATE: test-node.js passed: detect: samples/in/ai-face.jpg face embeddings +2022-08-20 09:36:46 DATA:  test-node.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} +2022-08-20 09:36:46 DATA:  test-node.js result: performance: load: null total: 189 +2022-08-20 09:36:46 STATE: test-node.js passed: mobilefacenet {"embedding":192} +2022-08-20 09:36:46 STATE: test-node.js start face embeddings +2022-08-20 09:36:47 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-08-20 09:36:47 STATE: test-node.js event: image +2022-08-20 09:36:47 STATE: test-node.js event: detect +2022-08-20 09:36:47 STATE: test-node.js passed: detect: samples/in/ai-face.jpg face embeddings +2022-08-20 09:36:47 DATA:  test-node.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} +2022-08-20 09:36:47 DATA:  test-node.js result: performance: load: null total: 189 +2022-08-20 09:36:47 STATE: test-node.js passed: insightface {"embedding":512} +2022-08-20 09:36:47 INFO:  test-node.js test face attention +2022-08-20 09:36:47 STATE: test-node.js start face attention +2022-08-20 09:36:48 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-08-20 09:36:48 STATE: test-node.js event: image +2022-08-20 09:36:48 STATE: test-node.js event: detect +2022-08-20 09:36:48 STATE: test-node.js passed: detect: samples/in/ai-face.jpg face attention +2022-08-20 09:36:48 DATA:  test-node.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} +2022-08-20 09:36:48 DATA:  test-node.js result: performance: load: null total: 175 +2022-08-20 09:36:48 STATE: test-node.js passed: face attention +2022-08-20 09:36:48 INFO:  test-node.js test detectors +2022-08-20 09:36:48 STATE: test-node.js start detectors +2022-08-20 09:36:48 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-08-20 09:36:48 STATE: test-node.js event: image +2022-08-20 09:36:48 STATE: test-node.js event: detect +2022-08-20 09:36:48 STATE: test-node.js passed: detect: samples/in/ai-body.jpg detectors +2022-08-20 09:36:48 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} +2022-08-20 09:36:48 DATA:  test-node.js result: performance: load: null total: 82 +2022-08-20 09:36:48 STATE: test-node.js passed: detector result face match +2022-08-20 09:36:48 STATE: test-node.js passed: detector result hand match +2022-08-20 09:36:48 INFO:  test-node.js test: multi-instance +2022-08-20 09:36:48 STATE: test-node.js start multi instance +2022-08-20 09:36:48 STATE: test-node.js event: image +2022-08-20 09:36:48 STATE: test-node.js event: detect +2022-08-20 09:36:48 STATE: test-node.js passed: detect: random multi instance +2022-08-20 09:36:48 DATA:  test-node.js result: face: 0 body: 1 hand: 0 gesture: 0 object: 0 person: 0 {} {} {"score":0,"keypoints":0} +2022-08-20 09:36:48 DATA:  test-node.js result: performance: load: null total: 83 +2022-08-20 09:36:48 INFO:  test-node.js test: first instance +2022-08-20 09:36:48 STATE: test-node.js start multi instance +2022-08-20 09:36:48 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} +2022-08-20 09:36:48 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg multi instance +2022-08-20 09:36:48 DATA:  test-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-08-20 09:36:48 DATA:  test-node.js result: performance: load: null total: 79 +2022-08-20 09:36:48 INFO:  test-node.js test: second instance +2022-08-20 09:36:48 STATE: test-node.js start multi instance +2022-08-20 09:36:48 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} +2022-08-20 09:36:49 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg multi instance +2022-08-20 09:36:49 DATA:  test-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-08-20 09:36:49 DATA:  test-node.js result: performance: load: null total: 85 +2022-08-20 09:36:49 INFO:  test-node.js test: concurrent +2022-08-20 09:36:49 STATE: test-node.js start concurrent +2022-08-20 09:36:49 STATE: test-node.js start concurrent +2022-08-20 09:36:49 STATE: test-node.js start concurrent +2022-08-20 09:36:49 STATE: test-node.js start concurrent +2022-08-20 09:36:49 STATE: test-node.js start concurrent +2022-08-20 09:36:49 STATE: test-node.js start concurrent +2022-08-20 09:36:49 STATE: test-node.js start concurrent +2022-08-20 09:36:49 STATE: test-node.js start concurrent +2022-08-20 09:36:49 STATE: test-node.js start concurrent +2022-08-20 09:36:49 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-08-20 09:36:49 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-08-20 09:36:49 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-08-20 09:36:49 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-08-20 09:36:49 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} +2022-08-20 09:36:49 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} +2022-08-20 09:36:49 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-08-20 09:36:49 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-08-20 09:36:49 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} +2022-08-20 09:36:49 STATE: test-node.js event: image +2022-08-20 09:36:49 STATE: test-node.js event: image +2022-08-20 09:36:49 STATE: test-node.js event: image +2022-08-20 09:36:50 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg concurrent +2022-08-20 09:36:50 DATA:  test-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-08-20 09:36:50 DATA:  test-node.js result: performance: load: null total: 947 +2022-08-20 09:36:50 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg concurrent +2022-08-20 09:36:50 DATA:  test-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-08-20 09:36:50 DATA:  test-node.js result: performance: load: null total: 947 +2022-08-20 09:36:50 STATE: test-node.js passed: detect: samples/in/ai-face.jpg concurrent +2022-08-20 09:36:50 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} +2022-08-20 09:36:50 DATA:  test-node.js result: performance: load: null total: 947 +2022-08-20 09:36:50 STATE: test-node.js passed: detect: samples/in/ai-face.jpg concurrent +2022-08-20 09:36:50 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} +2022-08-20 09:36:50 DATA:  test-node.js result: performance: load: null total: 947 +2022-08-20 09:36:50 STATE: test-node.js passed: detect: samples/in/ai-body.jpg concurrent +2022-08-20 09:36:50 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} +2022-08-20 09:36:50 DATA:  test-node.js result: performance: load: null total: 947 +2022-08-20 09:36:50 STATE: test-node.js passed: detect: samples/in/ai-body.jpg concurrent +2022-08-20 09:36:50 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} +2022-08-20 09:36:50 DATA:  test-node.js result: performance: load: null total: 947 +2022-08-20 09:36:50 STATE: test-node.js event: detect +2022-08-20 09:36:50 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg concurrent +2022-08-20 09:36:50 DATA:  test-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-08-20 09:36:50 DATA:  test-node.js result: performance: load: null total: 693 +2022-08-20 09:36:50 STATE: test-node.js event: detect +2022-08-20 09:36:50 STATE: test-node.js event: detect +2022-08-20 09:36:50 STATE: test-node.js passed: detect: samples/in/ai-face.jpg concurrent +2022-08-20 09:36:50 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} +2022-08-20 09:36:50 DATA:  test-node.js result: performance: load: null total: 694 +2022-08-20 09:36:50 STATE: test-node.js passed: detect: samples/in/ai-body.jpg concurrent +2022-08-20 09:36:50 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} +2022-08-20 09:36:50 DATA:  test-node.js result: performance: load: null total: 694 +2022-08-20 09:36:50 INFO:  test-node.js test: monkey-patch +2022-08-20 09:36:50 STATE: test-node.js event: image +2022-08-20 09:36:50 STATE: test-node.js event: detect +2022-08-20 09:36:50 STATE: test-node.js passed: monkey patch +2022-08-20 09:36:50 STATE: test-node.js passed: segmentation [65536] +2022-08-20 09:36:50 STATE: test-node.js passeed: equal usage +2022-08-20 09:36:50 INFO:  test-node.js test: input compare +2022-08-20 09:36:50 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-08-20 09:36:50 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-08-20 09:36:50 STATE: test-node.js passed: image compare 0 23.275441687091504 +2022-08-20 09:36:50 INFO:  test-node.js events: {"image":29,"detect":29,"warmup":2} +2022-08-20 09:36:50 INFO:  test-node.js tensors 4105 +2022-08-20 09:36:50 INFO:  test-node.js test complete: 15407 ms +2022-08-20 09:36:50 INFO:  +2022-08-20 09:36:50 INFO:  test-node-gpu.js start +2022-08-20 09:36:51 INFO:  test-node-gpu.js test: configuration validation +2022-08-20 09:36:51 STATE: test-node-gpu.js passed: configuration default validation [] +2022-08-20 09:36:51 STATE: test-node-gpu.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}] +2022-08-20 09:36:51 INFO:  test-node-gpu.js test: model load +2022-08-20 09:36:51 STATE: test-node-gpu.js passed: models loaded 23 12 [{"name":"ssrnetage","loaded":false,"url":null},{"name":"gear","loaded":false,"url":null},{"name":"blazeposedetect","loaded":false,"url":null},{"name":"blazepose","loaded":false,"url":null},{"name":"centernet","loaded":true,"url":"file://models/mb3-centernet.json"},{"name":"efficientpose","loaded":false,"url":null},{"name":"mobilefacenet","loaded":false,"url":null},{"name":"insightface","loaded":false,"url":null},{"name":"emotion","loaded":true,"url":"file://models/emotion.json"},{"name":"facedetect","loaded":true,"url":"file://models/blazeface.json"},{"name":"faceiris","loaded":true,"url":"file://models/iris.json"},{"name":"facemesh","loaded":true,"url":"file://models/facemesh.json"},{"name":"faceres","loaded":true,"url":"file://models/faceres.json"},{"name":"ssrnetgender","loaded":false,"url":null},{"name":"handpose","loaded":false,"url":null},{"name":"handskeleton","loaded":true,"url":"file://models/handlandmark-full.json"},{"name":"handtrack","loaded":true,"url":"file://models/handtrack.json"},{"name":"liveness","loaded":true,"url":"file://models/liveness.json"},{"name":"movenet","loaded":true,"url":"file://models/movenet-lightning.json"},{"name":"nanodet","loaded":false,"url":null},{"name":"posenet","loaded":false,"url":null},{"name":"segmentation","loaded":true,"url":"file://models/selfie.json"},{"name":"antispoof","loaded":true,"url":"file://models/antispoof.json"}] +2022-08-20 09:36:51 INFO:  test-node-gpu.js test: warmup +2022-08-20 09:36:51 STATE: test-node-gpu.js passed: create human +2022-08-20 09:36:51 INFO:  test-node-gpu.js human version: 2.9.4 +2022-08-20 09:36:51 INFO:  test-node-gpu.js platform: linux x64 agent: NodeJS v18.1.0 +2022-08-20 09:36:51 INFO:  test-node-gpu.js tfjs version: 3.19.0 +2022-08-20 09:36:51 INFO:  test-node-gpu.js env: {"browser":false,"node":true,"platform":"linux x64","agent":"NodeJS v18.1.0","backends":["cpu","tensorflow"],"initial":false,"tfjs":{"version":"3.19.0"},"offscreen":false,"perfadd":false,"tensorflow":{"version":"2.7.3-dev20220521","gpu":true},"wasm":{"supported":true,"backend":false},"webgl":{"supported":false,"backend":false},"webgpu":{"supported":false,"backend":false},"cpu":{"flags":[]},"kernels":169} +2022-08-20 09:36:51 STATE: test-node-gpu.js passed: set backend: tensorflow +2022-08-20 09:36:51 STATE: test-node-gpu.js tensors 1921 +2022-08-20 09:36:51 STATE: test-node-gpu.js passed: load models +2022-08-20 09:36:51 STATE: test-node-gpu.js result: defined models: 23 loaded models: 12 +2022-08-20 09:36:51 STATE: test-node-gpu.js passed: warmup: none default +2022-08-20 09:36:51 DATA:  test-node-gpu.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {} +2022-08-20 09:36:51 DATA:  test-node-gpu.js result: performance: load: null total: null +2022-08-20 09:36:51 STATE: test-node-gpu.js passed: warmup none result match +2022-08-20 09:36:52 STATE: test-node-gpu.js event: image +2022-08-20 09:36:56 STATE: test-node-gpu.js event: detect +2022-08-20 09:36:56 STATE: test-node-gpu.js event: warmup +2022-08-20 09:36:56 STATE: test-node-gpu.js passed: warmup: face default +2022-08-20 09:36:56 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.42,"keypoints":4} +2022-08-20 09:36:56 DATA:  test-node-gpu.js result: performance: load: null total: 4057 +2022-08-20 09:36:56 STATE: test-node-gpu.js passed: warmup face result match +2022-08-20 09:36:56 STATE: test-node-gpu.js event: image +2022-08-20 09:36:56 STATE: test-node-gpu.js event: detect +2022-08-20 09:36:56 STATE: test-node-gpu.js event: warmup +2022-08-20 09:36:56 STATE: test-node-gpu.js passed: warmup: body default +2022-08-20 09:36:56 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-08-20 09:36:56 DATA:  test-node-gpu.js result: performance: load: null total: 151 +2022-08-20 09:36:56 STATE: test-node-gpu.js passed: warmup body result match +2022-08-20 09:36:56 STATE: test-node-gpu.js details: {"face":{"boxScore":0.92,"faceScore":1,"age":23.7,"gender":"female","genderScore":0.97},"emotion":[{"score":0.63,"emotion":"angry"},{"score":0.22,"emotion":"fear"}],"body":{"score":0.92,"keypoints":17},"hand":{"boxScore":0.52,"fingerScore":0.73,"keypoints":21},"gestures":[{"face":0,"gesture":"facing right"},{"face":0,"gesture":"mouth 10% open"},{"hand":0,"gesture":"pinky forward"},{"hand":0,"gesture":"palm up"},{"hand":0,"gesture":"open palm"},{"iris":0,"gesture":"looking left"},{"iris":0,"gesture":"looking up"}]} +2022-08-20 09:36:56 INFO:  test-node-gpu.js test: details verification +2022-08-20 09:36:56 STATE: test-node-gpu.js start default +2022-08-20 09:36:56 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-08-20 09:36:56 STATE: test-node-gpu.js event: image +2022-08-20 09:36:56 STATE: test-node-gpu.js event: detect +2022-08-20 09:36:56 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default +2022-08-20 09:36:56 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-08-20 09:36:56 DATA:  test-node-gpu.js result: performance: load: null total: 151 +2022-08-20 09:36:56 STATE: test-node-gpu.js passed: details face length 1 +2022-08-20 09:36:56 STATE: test-node-gpu.js passed: details face score 1 0.93 1 +2022-08-20 09:36:56 STATE: test-node-gpu.js passed: details face age/gender 23.7 female 0.97 85.47 +2022-08-20 09:36:56 STATE: test-node-gpu.js passed: details face arrays 4 478 1024 +2022-08-20 09:36:56 STATE: test-node-gpu.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"} +2022-08-20 09:36:56 STATE: test-node-gpu.js passed: details face anti-spoofing 0.79 +2022-08-20 09:36:56 STATE: test-node-gpu.js passed: details face liveness 0.83 +2022-08-20 09:36:56 STATE: test-node-gpu.js passed: details body length 1 +2022-08-20 09:36:56 STATE: test-node-gpu.js passed: details body 0.92 17 6 +2022-08-20 09:36:56 STATE: test-node-gpu.js passed: details hand length 1 +2022-08-20 09:36:56 STATE: test-node-gpu.js passed: details hand 0.51 0.73 point +2022-08-20 09:36:56 STATE: test-node-gpu.js passed: details hand arrays 21 5 7 +2022-08-20 09:36:56 STATE: test-node-gpu.js passed: details gesture length 7 +2022-08-20 09:36:56 STATE: test-node-gpu.js passed: details gesture first {"face":0,"gesture":"facing right"} +2022-08-20 09:36:56 STATE: test-node-gpu.js passed: details object length 1 +2022-08-20 09:36:56 STATE: test-node-gpu.js passed: details object 0.72 person +2022-08-20 09:36:56 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996928} +2022-08-20 09:36:56 STATE: test-node-gpu.js event: image +2022-08-20 09:36:57 STATE: test-node-gpu.js event: detect +2022-08-20 09:36:57 STATE: test-node-gpu.js passed: tensor shape: [1,1200,1200,4] dtype: float32 +2022-08-20 09:36:57 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1371996928} +2022-08-20 09:36:57 STATE: test-node-gpu.js event: image +2022-08-20 09:36:57 STATE: test-node-gpu.js event: detect +2022-08-20 09:36:57 STATE: test-node-gpu.js passed: tensor shape: [1200,1200,4] dtype: float32 +2022-08-20 09:36:57 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-08-20 09:36:57 STATE: test-node-gpu.js event: image +2022-08-20 09:36:57 STATE: test-node-gpu.js event: detect +2022-08-20 09:36:57 STATE: test-node-gpu.js passed: tensor shape: [1,1200,1200,3] dtype: float32 +2022-08-20 09:36:57 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1004796928} +2022-08-20 09:36:57 STATE: test-node-gpu.js event: image +2022-08-20 09:36:58 STATE: test-node-gpu.js event: detect +2022-08-20 09:36:58 STATE: test-node-gpu.js passed: tensor shape: [1200,1200,3] dtype: float32 +2022-08-20 09:36:58 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871} +2022-08-20 09:36:58 STATE: test-node-gpu.js event: image +2022-08-20 09:36:58 STATE: test-node-gpu.js event: detect +2022-08-20 09:36:58 STATE: test-node-gpu.js passed: tensor shape: [1,1200,1200,4] dtype: int32 +2022-08-20 09:36:58 INFO:  test-node-gpu.js test default +2022-08-20 09:36:58 STATE: test-node-gpu.js start async +2022-08-20 09:36:58 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-08-20 09:36:58 STATE: test-node-gpu.js event: image +2022-08-20 09:36:58 STATE: test-node-gpu.js event: detect +2022-08-20 09:36:58 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg async +2022-08-20 09:36:58 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-08-20 09:36:58 DATA:  test-node-gpu.js result: performance: load: null total: 146 +2022-08-20 09:36:58 STATE: test-node-gpu.js passed: default result face match 1 female 0.97 +2022-08-20 09:36:58 INFO:  test-node-gpu.js test sync +2022-08-20 09:36:58 STATE: test-node-gpu.js start sync +2022-08-20 09:36:58 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-08-20 09:36:58 STATE: test-node-gpu.js event: image +2022-08-20 09:36:59 STATE: test-node-gpu.js event: detect +2022-08-20 09:36:59 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg sync +2022-08-20 09:36:59 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-08-20 09:36:59 DATA:  test-node-gpu.js result: performance: load: null total: 136 +2022-08-20 09:36:59 STATE: test-node-gpu.js passed: default sync 1 female 0.97 +2022-08-20 09:36:59 INFO:  test-node-gpu.js test: image process +2022-08-20 09:36:59 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-08-20 09:36:59 STATE: test-node-gpu.js passed: image input null [1,256,256,3] +2022-08-20 09:36:59 INFO:  test-node-gpu.js test: image null +2022-08-20 09:36:59 STATE: test-node-gpu.js passed: invalid input could not convert input to tensor +2022-08-20 09:36:59 INFO:  test-node-gpu.js test face similarity +2022-08-20 09:36:59 STATE: test-node-gpu.js start face similarity +2022-08-20 09:36:59 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-08-20 09:36:59 STATE: test-node-gpu.js event: image +2022-08-20 09:36:59 STATE: test-node-gpu.js event: detect +2022-08-20 09:36:59 STATE: test-node-gpu.js passed: detect: samples/in/ai-face.jpg face similarity +2022-08-20 09:36:59 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":3} +2022-08-20 09:36:59 DATA:  test-node-gpu.js result: performance: load: null total: 127 +2022-08-20 09:36:59 STATE: test-node-gpu.js start face similarity +2022-08-20 09:36:59 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-08-20 09:36:59 STATE: test-node-gpu.js event: image +2022-08-20 09:36:59 STATE: test-node-gpu.js event: detect +2022-08-20 09:36:59 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg face similarity +2022-08-20 09:36:59 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-08-20 09:36:59 DATA:  test-node-gpu.js result: performance: load: null total: 144 +2022-08-20 09:36:59 STATE: test-node-gpu.js start face similarity +2022-08-20 09:36:59 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} +2022-08-20 09:36:59 STATE: test-node-gpu.js event: image +2022-08-20 09:36:59 STATE: test-node-gpu.js event: detect +2022-08-20 09:36:59 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg face similarity +2022-08-20 09:36:59 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 4 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":7} +2022-08-20 09:36:59 DATA:  test-node-gpu.js result: performance: load: null total: 131 +2022-08-20 09:36:59 STATE: test-node-gpu.js passed: face descriptor +2022-08-20 09:36:59 STATE: test-node-gpu.js passed: face similarity {"similarity":[1,0.447238756461232,0.556914029877052],"descriptors":[1024,1024,1024]} +2022-08-20 09:36:59 INFO:  test-node-gpu.js test object +2022-08-20 09:36:59 STATE: test-node-gpu.js start object +2022-08-20 09:36:59 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-08-20 09:36:59 STATE: test-node-gpu.js event: image +2022-08-20 09:37:00 STATE: test-node-gpu.js event: detect +2022-08-20 09:37:00 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg object +2022-08-20 09:37:00 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-08-20 09:37:00 DATA:  test-node-gpu.js result: performance: load: null total: 149 +2022-08-20 09:37:00 STATE: test-node-gpu.js passed: centernet +2022-08-20 09:37:00 STATE: test-node-gpu.js start object +2022-08-20 09:37:00 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-08-20 09:37:00 STATE: test-node-gpu.js event: image +2022-08-20 09:37:01 STATE: test-node-gpu.js event: detect +2022-08-20 09:37:01 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg object +2022-08-20 09:37:01 DATA:  test-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-08-20 09:37:01 DATA:  test-node-gpu.js result: performance: load: null total: 543 +2022-08-20 09:37:01 STATE: test-node-gpu.js passed: nanodet +2022-08-20 09:37:01 INFO:  test-node-gpu.js test sensitive +2022-08-20 09:37:01 STATE: test-node-gpu.js start sensitive +2022-08-20 09:37:01 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-08-20 09:37:01 STATE: test-node-gpu.js event: image +2022-08-20 09:37:01 STATE: test-node-gpu.js event: detect +2022-08-20 09:37:01 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg sensitive +2022-08-20 09:37:01 DATA:  test-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-08-20 09:37:01 DATA:  test-node-gpu.js result: performance: load: null total: 135 +2022-08-20 09:37:01 STATE: test-node-gpu.js passed: sensitive result match +2022-08-20 09:37:01 STATE: test-node-gpu.js passed: sensitive face result match +2022-08-20 09:37:01 STATE: test-node-gpu.js passed: sensitive face emotion result [{"score":0.59,"emotion":"angry"},{"score":0.29,"emotion":"fear"}] +2022-08-20 09:37:01 STATE: test-node-gpu.js passed: sensitive body result match +2022-08-20 09:37:01 STATE: test-node-gpu.js passed: sensitive hand result match +2022-08-20 09:37:01 INFO:  test-node-gpu.js test body +2022-08-20 09:37:01 STATE: test-node-gpu.js start blazepose +2022-08-20 09:37:03 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-08-20 09:37:03 STATE: test-node-gpu.js event: image +2022-08-20 09:37:03 STATE: test-node-gpu.js event: detect +2022-08-20 09:37:03 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg blazepose +2022-08-20 09:37:03 DATA:  test-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-08-20 09:37:03 DATA:  test-node-gpu.js result: performance: load: null total: 270 +2022-08-20 09:37:03 STATE: test-node-gpu.js passed: blazepose +2022-08-20 09:37:03 STATE: test-node-gpu.js start efficientpose +2022-08-20 09:37:04 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-08-20 09:37:04 STATE: test-node-gpu.js event: image +2022-08-20 09:37:04 STATE: test-node-gpu.js event: detect +2022-08-20 09:37:04 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg efficientpose +2022-08-20 09:37:04 DATA:  test-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-08-20 09:37:04 DATA:  test-node-gpu.js result: performance: load: null total: 880 +2022-08-20 09:37:04 STATE: test-node-gpu.js passed: efficientpose +2022-08-20 09:37:04 STATE: test-node-gpu.js start posenet +2022-08-20 09:37:05 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-08-20 09:37:05 STATE: test-node-gpu.js event: image +2022-08-20 09:37:05 STATE: test-node-gpu.js event: detect +2022-08-20 09:37:05 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg posenet +2022-08-20 09:37:05 DATA:  test-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-08-20 09:37:05 DATA:  test-node-gpu.js result: performance: load: null total: 132 +2022-08-20 09:37:05 STATE: test-node-gpu.js passed: posenet +2022-08-20 09:37:05 STATE: test-node-gpu.js start movenet +2022-08-20 09:37:05 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-08-20 09:37:05 STATE: test-node-gpu.js event: image +2022-08-20 09:37:05 STATE: test-node-gpu.js event: detect +2022-08-20 09:37:05 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg movenet +2022-08-20 09:37:05 DATA:  test-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-08-20 09:37:05 DATA:  test-node-gpu.js result: performance: load: null total: 122 +2022-08-20 09:37:05 STATE: test-node-gpu.js passed: movenet +2022-08-20 09:37:05 INFO:  test-node-gpu.js test face matching +2022-08-20 09:37:05 STATE: test-node-gpu.js passed: face database 40 +2022-08-20 09:37:05 STATE: test-node-gpu.js passed: face match {"first":{"index":4,"similarity":0.7828184453007331}} {"second":{"index":4,"similarity":0.5001334216773398}} {"third":{"index":4,"similarity":0.5403054967489764}} +2022-08-20 09:37:05 INFO:  test-node-gpu.js test face similarity alternative +2022-08-20 09:37:05 STATE: test-node-gpu.js start face embeddings +2022-08-20 09:37:06 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-08-20 09:37:06 STATE: test-node-gpu.js event: image +2022-08-20 09:37:06 STATE: test-node-gpu.js event: detect +2022-08-20 09:37:06 STATE: test-node-gpu.js passed: detect: samples/in/ai-face.jpg face embeddings +2022-08-20 09:37:06 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} +2022-08-20 09:37:06 DATA:  test-node-gpu.js result: performance: load: null total: 151 +2022-08-20 09:37:06 STATE: test-node-gpu.js passed: mobilefacenet {"embedding":192} +2022-08-20 09:37:06 STATE: test-node-gpu.js start face embeddings +2022-08-20 09:37:07 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-08-20 09:37:07 STATE: test-node-gpu.js event: image +2022-08-20 09:37:07 STATE: test-node-gpu.js event: detect +2022-08-20 09:37:07 STATE: test-node-gpu.js passed: detect: samples/in/ai-face.jpg face embeddings +2022-08-20 09:37:07 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} +2022-08-20 09:37:07 DATA:  test-node-gpu.js result: performance: load: null total: 169 +2022-08-20 09:37:07 STATE: test-node-gpu.js passed: insightface {"embedding":512} +2022-08-20 09:37:07 INFO:  test-node-gpu.js test face attention +2022-08-20 09:37:07 STATE: test-node-gpu.js start face attention +2022-08-20 09:37:07 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-08-20 09:37:07 STATE: test-node-gpu.js event: image +2022-08-20 09:37:07 STATE: test-node-gpu.js event: detect +2022-08-20 09:37:07 STATE: test-node-gpu.js passed: detect: samples/in/ai-face.jpg face attention +2022-08-20 09:37:07 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} +2022-08-20 09:37:07 DATA:  test-node-gpu.js result: performance: load: null total: 227 +2022-08-20 09:37:07 STATE: test-node-gpu.js passed: face attention +2022-08-20 09:37:07 INFO:  test-node-gpu.js test detectors +2022-08-20 09:37:07 STATE: test-node-gpu.js start detectors +2022-08-20 09:37:07 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-08-20 09:37:07 STATE: test-node-gpu.js event: image +2022-08-20 09:37:08 STATE: test-node-gpu.js event: detect +2022-08-20 09:37:08 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg detectors +2022-08-20 09:37:08 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} +2022-08-20 09:37:08 DATA:  test-node-gpu.js result: performance: load: null total: 197 +2022-08-20 09:37:08 STATE: test-node-gpu.js passed: detector result face match +2022-08-20 09:37:08 STATE: test-node-gpu.js passed: detector result hand match +2022-08-20 09:37:08 INFO:  test-node-gpu.js test: multi-instance +2022-08-20 09:37:08 STATE: test-node-gpu.js start multi instance +2022-08-20 09:37:08 STATE: test-node-gpu.js event: image +2022-08-20 09:37:08 STATE: test-node-gpu.js event: detect +2022-08-20 09:37:08 STATE: test-node-gpu.js passed: detect: random multi instance +2022-08-20 09:37:08 DATA:  test-node-gpu.js result: face: 0 body: 1 hand: 0 gesture: 0 object: 0 person: 0 {} {} {"score":0,"keypoints":0} +2022-08-20 09:37:08 DATA:  test-node-gpu.js result: performance: load: null total: 38 +2022-08-20 09:37:08 INFO:  test-node-gpu.js test: first instance +2022-08-20 09:37:08 STATE: test-node-gpu.js start multi instance +2022-08-20 09:37:08 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} +2022-08-20 09:37:08 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg multi instance +2022-08-20 09:37:08 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-08-20 09:37:08 DATA:  test-node-gpu.js result: performance: load: null total: 35 +2022-08-20 09:37:08 INFO:  test-node-gpu.js test: second instance +2022-08-20 09:37:08 STATE: test-node-gpu.js start multi instance +2022-08-20 09:37:08 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} +2022-08-20 09:37:08 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg multi instance +2022-08-20 09:37:08 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-08-20 09:37:08 DATA:  test-node-gpu.js result: performance: load: null total: 39 +2022-08-20 09:37:08 INFO:  test-node-gpu.js test: concurrent +2022-08-20 09:37:08 STATE: test-node-gpu.js start concurrent +2022-08-20 09:37:08 STATE: test-node-gpu.js start concurrent +2022-08-20 09:37:08 STATE: test-node-gpu.js start concurrent +2022-08-20 09:37:08 STATE: test-node-gpu.js start concurrent +2022-08-20 09:37:08 STATE: test-node-gpu.js start concurrent +2022-08-20 09:37:08 STATE: test-node-gpu.js start concurrent +2022-08-20 09:37:08 STATE: test-node-gpu.js start concurrent +2022-08-20 09:37:08 STATE: test-node-gpu.js start concurrent +2022-08-20 09:37:08 STATE: test-node-gpu.js start concurrent +2022-08-20 09:37:08 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-08-20 09:37:08 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-08-20 09:37:08 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-08-20 09:37:08 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-08-20 09:37:08 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} +2022-08-20 09:37:08 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} +2022-08-20 09:37:08 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-08-20 09:37:09 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-08-20 09:37:09 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} +2022-08-20 09:37:09 STATE: test-node-gpu.js event: image +2022-08-20 09:37:09 STATE: test-node-gpu.js event: image +2022-08-20 09:37:09 STATE: test-node-gpu.js event: image +2022-08-20 09:37:09 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg concurrent +2022-08-20 09:37:09 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-08-20 09:37:09 DATA:  test-node-gpu.js result: performance: load: null total: 579 +2022-08-20 09:37:09 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg concurrent +2022-08-20 09:37:09 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-08-20 09:37:09 DATA:  test-node-gpu.js result: performance: load: null total: 579 +2022-08-20 09:37:09 STATE: test-node-gpu.js passed: detect: samples/in/ai-face.jpg concurrent +2022-08-20 09:37:09 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} +2022-08-20 09:37:09 DATA:  test-node-gpu.js result: performance: load: null total: 579 +2022-08-20 09:37:09 STATE: test-node-gpu.js passed: detect: samples/in/ai-face.jpg concurrent +2022-08-20 09:37:09 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} +2022-08-20 09:37:09 DATA:  test-node-gpu.js result: performance: load: null total: 580 +2022-08-20 09:37:09 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg concurrent +2022-08-20 09:37:09 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} +2022-08-20 09:37:09 DATA:  test-node-gpu.js result: performance: load: null total: 579 +2022-08-20 09:37:09 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg concurrent +2022-08-20 09:37:09 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} +2022-08-20 09:37:09 DATA:  test-node-gpu.js result: performance: load: null total: 580 +2022-08-20 09:37:09 STATE: test-node-gpu.js event: detect +2022-08-20 09:37:09 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg concurrent +2022-08-20 09:37:09 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-08-20 09:37:09 DATA:  test-node-gpu.js result: performance: load: null total: 315 +2022-08-20 09:37:09 STATE: test-node-gpu.js event: detect +2022-08-20 09:37:09 STATE: test-node-gpu.js event: detect +2022-08-20 09:37:09 STATE: test-node-gpu.js passed: detect: samples/in/ai-face.jpg concurrent +2022-08-20 09:37:09 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} +2022-08-20 09:37:09 DATA:  test-node-gpu.js result: performance: load: null total: 315 +2022-08-20 09:37:09 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg concurrent +2022-08-20 09:37:09 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} +2022-08-20 09:37:09 DATA:  test-node-gpu.js result: performance: load: null total: 315 +2022-08-20 09:37:09 INFO:  test-node-gpu.js test: monkey-patch +2022-08-20 09:37:09 STATE: test-node-gpu.js event: image +2022-08-20 09:37:09 STATE: test-node-gpu.js event: detect +2022-08-20 09:37:09 STATE: test-node-gpu.js passed: monkey patch +2022-08-20 09:37:09 STATE: test-node-gpu.js passed: segmentation [65536] +2022-08-20 09:37:09 STATE: test-node-gpu.js passeed: equal usage +2022-08-20 09:37:09 INFO:  test-node-gpu.js test: input compare +2022-08-20 09:37:09 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-08-20 09:37:09 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-08-20 09:37:09 STATE: test-node-gpu.js passed: image compare 0 23.275441687091504 +2022-08-20 09:37:09 INFO:  test-node-gpu.js events: {"image":29,"detect":29,"warmup":2} +2022-08-20 09:37:09 INFO:  test-node-gpu.js tensors 4105 +2022-08-20 09:37:09 INFO:  test-node-gpu.js test complete: 17997 ms +2022-08-20 09:37:10 INFO:  +2022-08-20 09:37:10 INFO:  test-node-wasm.js start +2022-08-20 09:37:11 DATA:  test-node-wasm.js stdout: 2022-08-20 09:37:11 INFO:  { supported: true, backend: true, simd: true, multithread: false } +2022-08-20 09:37:11 STATE: test-node-wasm.js passed: model server: https://vladmandic.github.io/human/models/ +2022-08-20 09:37:11 INFO:  test-node-wasm.js test: configuration validation +2022-08-20 09:37:11 STATE: test-node-wasm.js passed: configuration default validation [] +2022-08-20 09:37:11 STATE: test-node-wasm.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}] +2022-08-20 09:37:11 INFO:  test-node-wasm.js test: model load +2022-08-20 09:37:13 STATE: test-node-wasm.js passed: models loaded 23 12 [{"name":"ssrnetage","loaded":false,"url":null},{"name":"gear","loaded":false,"url":null},{"name":"blazeposedetect","loaded":false,"url":null},{"name":"blazepose","loaded":false,"url":null},{"name":"centernet","loaded":true,"url":"https://vladmandic.github.io/human/models/mb3-centernet.json"},{"name":"efficientpose","loaded":false,"url":null},{"name":"mobilefacenet","loaded":false,"url":null},{"name":"insightface","loaded":false,"url":null},{"name":"emotion","loaded":true,"url":"https://vladmandic.github.io/human/models/emotion.json"},{"name":"facedetect","loaded":true,"url":"https://vladmandic.github.io/human/models/blazeface.json"},{"name":"faceiris","loaded":true,"url":"https://vladmandic.github.io/human/models/iris.json"},{"name":"facemesh","loaded":true,"url":"https://vladmandic.github.io/human/models/facemesh.json"},{"name":"faceres","loaded":true,"url":"https://vladmandic.github.io/human/models/faceres.json"},{"name":"ssrnetgender","loaded":false,"url":null},{"name":"handpose","loaded":false,"url":null},{"name":"handskeleton","loaded":true,"url":"https://vladmandic.github.io/human/models/handlandmark-full.json"},{"name":"handtrack","loaded":true,"url":"https://vladmandic.github.io/human/models/handtrack.json"},{"name":"liveness","loaded":true,"url":"https://vladmandic.github.io/human/models/liveness.json"},{"name":"movenet","loaded":true,"url":"https://vladmandic.github.io/human/models/movenet-lightning.json"},{"name":"nanodet","loaded":false,"url":null},{"name":"posenet","loaded":false,"url":null},{"name":"segmentation","loaded":true,"url":"https://vladmandic.github.io/human/models/selfie.json"},{"name":"antispoof","loaded":true,"url":"https://vladmandic.github.io/human/models/antispoof.json"}] +2022-08-20 09:37:13 INFO:  test-node-wasm.js test: warmup +2022-08-20 09:37:13 STATE: test-node-wasm.js passed: create human +2022-08-20 09:37:13 INFO:  test-node-wasm.js human version: 2.9.4 +2022-08-20 09:37:13 INFO:  test-node-wasm.js platform: linux x64 agent: NodeJS v18.1.0 +2022-08-20 09:37:13 INFO:  test-node-wasm.js tfjs version: 3.19.0 +2022-08-20 09:37:13 INFO:  test-node-wasm.js env: {"browser":false,"node":true,"platform":"linux x64","agent":"NodeJS v18.1.0","backends":["cpu","wasm"],"initial":false,"tfjs":{"version":"3.19.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-08-20 09:37:13 STATE: test-node-wasm.js passed: set backend: wasm +2022-08-20 09:37:13 STATE: test-node-wasm.js tensors 1921 +2022-08-20 09:37:13 STATE: test-node-wasm.js passed: load models +2022-08-20 09:37:13 STATE: test-node-wasm.js result: defined models: 23 loaded models: 12 +2022-08-20 09:37:13 STATE: test-node-wasm.js passed: warmup: none default +2022-08-20 09:37:13 DATA:  test-node-wasm.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {} +2022-08-20 09:37:13 DATA:  test-node-wasm.js result: performance: load: null total: null +2022-08-20 09:37:13 STATE: test-node-wasm.js passed: warmup none result match +2022-08-20 09:37:13 STATE: test-node-wasm.js event: image +2022-08-20 09:37:13 STATE: test-node-wasm.js event: detect +2022-08-20 09:37:13 STATE: test-node-wasm.js event: warmup +2022-08-20 09:37:13 STATE: test-node-wasm.js passed: warmup: face default +2022-08-20 09:37:13 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":3} +2022-08-20 09:37:13 DATA:  test-node-wasm.js result: performance: load: null total: 561 +2022-08-20 09:37:13 STATE: test-node-wasm.js passed: warmup face result match +2022-08-20 09:37:13 STATE: test-node-wasm.js event: image +2022-08-20 09:37:14 STATE: test-node-wasm.js event: detect +2022-08-20 09:37:14 STATE: test-node-wasm.js event: warmup +2022-08-20 09:37:14 STATE: test-node-wasm.js passed: warmup: body default +2022-08-20 09:37:14 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-08-20 09:37:14 DATA:  test-node-wasm.js result: performance: load: null total: 396 +2022-08-20 09:37:14 STATE: test-node-wasm.js passed: warmup body result match +2022-08-20 09:37:14 STATE: test-node-wasm.js details: {"face":{"boxScore":0.93,"faceScore":1,"age":23.7,"gender":"female","genderScore":0.97},"emotion":[{"score":0.59,"emotion":"angry"},{"score":0.29,"emotion":"fear"}],"body":{"score":0.92,"keypoints":17},"hand":{"boxScore":0.51,"fingerScore":0.73,"keypoints":21},"gestures":[{"face":0,"gesture":"facing right"},{"face":0,"gesture":"mouth 21% open"},{"hand":0,"gesture":"pinky forward"},{"hand":0,"gesture":"palm up"},{"hand":0,"gesture":"open palm"},{"iris":0,"gesture":"looking left"},{"iris":0,"gesture":"looking up"}]} +2022-08-20 09:37:14 INFO:  test-node-wasm.js test: details verification +2022-08-20 09:37:14 STATE: test-node-wasm.js start default +2022-08-20 09:37:14 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-08-20 09:37:14 STATE: test-node-wasm.js event: image +2022-08-20 09:37:14 STATE: test-node-wasm.js event: detect +2022-08-20 09:37:14 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default +2022-08-20 09:37:14 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-08-20 09:37:14 DATA:  test-node-wasm.js result: performance: load: null total: 342 +2022-08-20 09:37:14 STATE: test-node-wasm.js passed: details face length 1 +2022-08-20 09:37:14 STATE: test-node-wasm.js passed: details face score 1 0.93 1 +2022-08-20 09:37:14 STATE: test-node-wasm.js passed: details face age/gender 23.7 female 0.97 85.47 +2022-08-20 09:37:14 STATE: test-node-wasm.js passed: details face arrays 4 478 1024 +2022-08-20 09:37:14 STATE: test-node-wasm.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"} +2022-08-20 09:37:14 STATE: test-node-wasm.js passed: details face anti-spoofing 0.79 +2022-08-20 09:37:14 STATE: test-node-wasm.js passed: details face liveness 0.83 +2022-08-20 09:37:14 STATE: test-node-wasm.js passed: details body length 1 +2022-08-20 09:37:14 STATE: test-node-wasm.js passed: details body 0.92 17 6 +2022-08-20 09:37:14 STATE: test-node-wasm.js passed: details hand length 1 +2022-08-20 09:37:14 STATE: test-node-wasm.js passed: details hand 0.51 0.73 point +2022-08-20 09:37:14 STATE: test-node-wasm.js passed: details hand arrays 21 5 7 +2022-08-20 09:37:14 STATE: test-node-wasm.js passed: details gesture length 7 +2022-08-20 09:37:14 STATE: test-node-wasm.js passed: details gesture first {"face":0,"gesture":"facing right"} +2022-08-20 09:37:14 STATE: test-node-wasm.js passed: details object length 1 +2022-08-20 09:37:14 STATE: test-node-wasm.js passed: details object 0.72 person +2022-08-20 09:37:15 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1413675264} +2022-08-20 09:37:15 STATE: test-node-wasm.js event: image +2022-08-20 09:37:15 STATE: test-node-wasm.js event: detect +2022-08-20 09:37:15 STATE: test-node-wasm.js passed: tensor shape: [1,1200,1200,4] dtype: float32 +2022-08-20 09:37:15 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1413675264} +2022-08-20 09:37:15 STATE: test-node-wasm.js event: image +2022-08-20 09:37:15 STATE: test-node-wasm.js event: detect +2022-08-20 09:37:15 STATE: test-node-wasm.js passed: tensor shape: [1200,1200,4] dtype: float32 +2022-08-20 09:37:16 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-08-20 09:37:16 STATE: test-node-wasm.js event: image +2022-08-20 09:37:16 STATE: test-node-wasm.js event: detect +2022-08-20 09:37:16 STATE: test-node-wasm.js passed: tensor shape: [1,1200,1200,3] dtype: float32 +2022-08-20 09:37:16 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1038921856} +2022-08-20 09:37:16 STATE: test-node-wasm.js event: image +2022-08-20 09:37:17 STATE: test-node-wasm.js event: detect +2022-08-20 09:37:17 STATE: test-node-wasm.js passed: tensor shape: [1200,1200,3] dtype: float32 +2022-08-20 09:37:17 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871} +2022-08-20 09:37:17 STATE: test-node-wasm.js event: image +2022-08-20 09:37:17 STATE: test-node-wasm.js event: detect +2022-08-20 09:37:17 STATE: test-node-wasm.js passed: tensor shape: [1,1200,1200,4] dtype: int32 +2022-08-20 09:37:17 INFO:  test-node-wasm.js test default +2022-08-20 09:37:17 STATE: test-node-wasm.js start async +2022-08-20 09:37:17 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-08-20 09:37:17 STATE: test-node-wasm.js event: image +2022-08-20 09:37:18 STATE: test-node-wasm.js event: detect +2022-08-20 09:37:18 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg async +2022-08-20 09:37:18 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-08-20 09:37:18 DATA:  test-node-wasm.js result: performance: load: null total: 334 +2022-08-20 09:37:18 STATE: test-node-wasm.js passed: default result face match 1 female 0.97 +2022-08-20 09:37:18 INFO:  test-node-wasm.js test sync +2022-08-20 09:37:18 STATE: test-node-wasm.js start sync +2022-08-20 09:37:18 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-08-20 09:37:18 STATE: test-node-wasm.js event: image +2022-08-20 09:37:18 STATE: test-node-wasm.js event: detect +2022-08-20 09:37:18 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg sync +2022-08-20 09:37:18 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-08-20 09:37:18 DATA:  test-node-wasm.js result: performance: load: null total: 327 +2022-08-20 09:37:18 STATE: test-node-wasm.js passed: default sync 1 female 0.97 +2022-08-20 09:37:18 INFO:  test-node-wasm.js test: image process +2022-08-20 09:37:18 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-08-20 09:37:18 STATE: test-node-wasm.js passed: image input null [1,256,256,3] +2022-08-20 09:37:18 INFO:  test-node-wasm.js test: image null +2022-08-20 09:37:18 STATE: test-node-wasm.js passed: invalid input could not convert input to tensor +2022-08-20 09:37:18 INFO:  test-node-wasm.js test face similarity +2022-08-20 09:37:18 STATE: test-node-wasm.js start face similarity +2022-08-20 09:37:18 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-08-20 09:37:18 STATE: test-node-wasm.js event: image +2022-08-20 09:37:19 STATE: test-node-wasm.js event: detect +2022-08-20 09:37:19 STATE: test-node-wasm.js passed: detect: samples/in/ai-face.jpg face similarity +2022-08-20 09:37:19 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":3} +2022-08-20 09:37:19 DATA:  test-node-wasm.js result: performance: load: null total: 304 +2022-08-20 09:37:19 STATE: test-node-wasm.js start face similarity +2022-08-20 09:37:19 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-08-20 09:37:19 STATE: test-node-wasm.js event: image +2022-08-20 09:37:19 STATE: test-node-wasm.js event: detect +2022-08-20 09:37:19 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg face similarity +2022-08-20 09:37:19 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-08-20 09:37:19 DATA:  test-node-wasm.js result: performance: load: null total: 325 +2022-08-20 09:37:19 STATE: test-node-wasm.js start face similarity +2022-08-20 09:37:19 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} +2022-08-20 09:37:19 STATE: test-node-wasm.js event: image +2022-08-20 09:37:19 STATE: test-node-wasm.js event: detect +2022-08-20 09:37:19 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg face similarity +2022-08-20 09:37:19 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 4 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":7} +2022-08-20 09:37:19 DATA:  test-node-wasm.js result: performance: load: null total: 293 +2022-08-20 09:37:19 STATE: test-node-wasm.js passed: face descriptor +2022-08-20 09:37:19 STATE: test-node-wasm.js passed: face similarity {"similarity":[1,0.5266119940661309,0.4858842904087851],"descriptors":[1024,1024,1024]} +2022-08-20 09:37:19 INFO:  test-node-wasm.js test object +2022-08-20 09:37:19 STATE: test-node-wasm.js start object +2022-08-20 09:37:20 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-08-20 09:37:20 STATE: test-node-wasm.js event: image +2022-08-20 09:37:20 STATE: test-node-wasm.js event: detect +2022-08-20 09:37:20 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg object +2022-08-20 09:37:20 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-08-20 09:37:20 DATA:  test-node-wasm.js result: performance: load: null total: 321 +2022-08-20 09:37:20 STATE: test-node-wasm.js passed: centernet +2022-08-20 09:37:20 STATE: test-node-wasm.js start object +2022-08-20 09:37:21 WARN:  test-node-wasm.js missing kernel ops {"title":"object","model":"nanodet","url":"https://vladmandic.github.io/human-models/models/nanodet.json","missing":["sparsetodense"],"backkend":"wasm"} +2022-08-20 09:37:21 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-08-20 09:37:21 STATE: test-node-wasm.js event: image +2022-08-20 09:37:21 STATE: test-node-wasm.js event: detect +2022-08-20 09:37:21 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg object +2022-08-20 09:37:21 DATA:  test-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-08-20 09:37:21 DATA:  test-node-wasm.js result: performance: load: null total: 213 +2022-08-20 09:37:21 ERROR: test-node-wasm.js failed: nanodet [] +2022-08-20 09:37:21 INFO:  test-node-wasm.js test sensitive +2022-08-20 09:37:21 STATE: test-node-wasm.js start sensitive +2022-08-20 09:37:21 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-08-20 09:37:21 STATE: test-node-wasm.js event: image +2022-08-20 09:37:22 STATE: test-node-wasm.js event: detect +2022-08-20 09:37:22 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg sensitive +2022-08-20 09:37:22 DATA:  test-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-08-20 09:37:22 DATA:  test-node-wasm.js result: performance: load: null total: 235 +2022-08-20 09:37:22 STATE: test-node-wasm.js passed: sensitive result match +2022-08-20 09:37:22 STATE: test-node-wasm.js passed: sensitive face result match +2022-08-20 09:37:22 STATE: test-node-wasm.js passed: sensitive face emotion result [{"score":0.46,"emotion":"neutral"},{"score":0.24,"emotion":"fear"},{"score":0.17,"emotion":"sad"}] +2022-08-20 09:37:22 STATE: test-node-wasm.js passed: sensitive body result match +2022-08-20 09:37:22 STATE: test-node-wasm.js passed: sensitive hand result match +2022-08-20 09:37:22 INFO:  test-node-wasm.js test body +2022-08-20 09:37:22 STATE: test-node-wasm.js start blazepose +2022-08-20 09:37:23 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-08-20 09:37:23 STATE: test-node-wasm.js event: image +2022-08-20 09:37:24 STATE: test-node-wasm.js event: detect +2022-08-20 09:37:24 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg blazepose +2022-08-20 09:37:24 DATA:  test-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-08-20 09:37:24 DATA:  test-node-wasm.js result: performance: load: null total: 389 +2022-08-20 09:37:24 STATE: test-node-wasm.js passed: blazepose +2022-08-20 09:37:24 STATE: test-node-wasm.js start efficientpose +2022-08-20 09:37:24 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-08-20 09:37:24 STATE: test-node-wasm.js event: image +2022-08-20 09:37:25 STATE: test-node-wasm.js event: detect +2022-08-20 09:37:25 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg efficientpose +2022-08-20 09:37:25 DATA:  test-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-08-20 09:37:25 DATA:  test-node-wasm.js result: performance: load: null total: 636 +2022-08-20 09:37:25 STATE: test-node-wasm.js passed: efficientpose +2022-08-20 09:37:25 STATE: test-node-wasm.js start posenet +2022-08-20 09:37:25 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-08-20 09:37:25 STATE: test-node-wasm.js event: image +2022-08-20 09:37:26 STATE: test-node-wasm.js event: detect +2022-08-20 09:37:26 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg posenet +2022-08-20 09:37:26 DATA:  test-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-08-20 09:37:26 DATA:  test-node-wasm.js result: performance: load: null total: 281 +2022-08-20 09:37:26 STATE: test-node-wasm.js passed: posenet +2022-08-20 09:37:26 STATE: test-node-wasm.js start movenet +2022-08-20 09:37:26 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-08-20 09:37:26 STATE: test-node-wasm.js event: image +2022-08-20 09:37:26 STATE: test-node-wasm.js event: detect +2022-08-20 09:37:26 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg movenet +2022-08-20 09:37:26 DATA:  test-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-08-20 09:37:26 DATA:  test-node-wasm.js result: performance: load: null total: 235 +2022-08-20 09:37:26 STATE: test-node-wasm.js passed: movenet +2022-08-20 09:37:26 INFO:  test-node-wasm.js test face matching +2022-08-20 09:37:26 STATE: test-node-wasm.js passed: face database 40 +2022-08-20 09:37:26 STATE: test-node-wasm.js passed: face match {"first":{"index":4,"similarity":0.7827852754786533}} {"second":{"index":4,"similarity":0.5660821189104794}} {"third":{"index":4,"similarity":0.45074189882665594}} +2022-08-20 09:37:26 INFO:  test-node-wasm.js test face similarity alternative +2022-08-20 09:37:26 STATE: test-node-wasm.js start face embeddings +2022-08-20 09:37:26 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-08-20 09:37:26 STATE: test-node-wasm.js event: image +2022-08-20 09:37:27 STATE: test-node-wasm.js event: detect +2022-08-20 09:37:27 STATE: test-node-wasm.js passed: detect: samples/in/ai-face.jpg face embeddings +2022-08-20 09:37:27 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} +2022-08-20 09:37:27 DATA:  test-node-wasm.js result: performance: load: null total: 235 +2022-08-20 09:37:27 STATE: test-node-wasm.js passed: mobilefacenet {"embedding":192} +2022-08-20 09:37:27 STATE: test-node-wasm.js start face embeddings +2022-08-20 09:37:27 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-08-20 09:37:27 STATE: test-node-wasm.js event: image +2022-08-20 09:37:27 STATE: test-node-wasm.js event: detect +2022-08-20 09:37:27 STATE: test-node-wasm.js passed: detect: samples/in/ai-face.jpg face embeddings +2022-08-20 09:37:27 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} +2022-08-20 09:37:27 DATA:  test-node-wasm.js result: performance: load: null total: 278 +2022-08-20 09:37:27 STATE: test-node-wasm.js passed: insightface {"embedding":512} +2022-08-20 09:37:27 INFO:  test-node-wasm.js test face attention +2022-08-20 09:37:27 STATE: test-node-wasm.js start face attention +2022-08-20 09:37:28 WARN:  test-node-wasm.js missing kernel ops {"title":"face attention","model":"facemesh","url":"https://vladmandic.github.io/human-models/models/facemesh-attention.json","missing":["atan2"],"backkend":"wasm"} +2022-08-20 09:37:28 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-08-20 09:37:28 STATE: test-node-wasm.js event: image +2022-08-20 09:37:28 STATE: test-node-wasm.js event: detect +2022-08-20 09:37:28 STATE: test-node-wasm.js passed: detect: samples/in/ai-face.jpg face attention +2022-08-20 09:37:28 DATA:  test-node-wasm.js result: face: 0 body: 1 hand: 1 gesture: 2 object: 0 person: 0 {} {} {"score":0.47,"keypoints":3} +2022-08-20 09:37:28 DATA:  test-node-wasm.js result: performance: load: null total: 119 +2022-08-20 09:37:28 ERROR: test-node-wasm.js failed: face attention {"annotations":0} +2022-08-20 09:37:28 INFO:  test-node-wasm.js test detectors +2022-08-20 09:37:28 STATE: test-node-wasm.js start detectors +2022-08-20 09:37:28 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-08-20 09:37:28 STATE: test-node-wasm.js event: image +2022-08-20 09:37:28 STATE: test-node-wasm.js event: detect +2022-08-20 09:37:28 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg detectors +2022-08-20 09:37:28 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} +2022-08-20 09:37:28 DATA:  test-node-wasm.js result: performance: load: null total: 114 +2022-08-20 09:37:28 STATE: test-node-wasm.js passed: detector result face match +2022-08-20 09:37:28 STATE: test-node-wasm.js passed: detector result hand match +2022-08-20 09:37:28 INFO:  test-node-wasm.js test: multi-instance +2022-08-20 09:37:28 STATE: test-node-wasm.js start multi instance +2022-08-20 09:37:28 STATE: test-node-wasm.js event: image +2022-08-20 09:37:28 STATE: test-node-wasm.js event: detect +2022-08-20 09:37:28 STATE: test-node-wasm.js passed: detect: random multi instance +2022-08-20 09:37:28 DATA:  test-node-wasm.js result: face: 0 body: 1 hand: 0 gesture: 0 object: 0 person: 0 {} {} {"score":0,"keypoints":0} +2022-08-20 09:37:28 DATA:  test-node-wasm.js result: performance: load: null total: 97 +2022-08-20 09:37:28 INFO:  test-node-wasm.js test: first instance +2022-08-20 09:37:28 STATE: test-node-wasm.js start multi instance +2022-08-20 09:37:28 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} +2022-08-20 09:37:29 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg multi instance +2022-08-20 09:37:29 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-08-20 09:37:29 DATA:  test-node-wasm.js result: performance: load: null total: 110 +2022-08-20 09:37:29 INFO:  test-node-wasm.js test: second instance +2022-08-20 09:37:29 STATE: test-node-wasm.js start multi instance +2022-08-20 09:37:29 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} +2022-08-20 09:37:29 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg multi instance +2022-08-20 09:37:29 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-08-20 09:37:29 DATA:  test-node-wasm.js result: performance: load: null total: 106 +2022-08-20 09:37:29 INFO:  test-node-wasm.js test: concurrent +2022-08-20 09:37:29 STATE: test-node-wasm.js start concurrent +2022-08-20 09:37:29 STATE: test-node-wasm.js start concurrent +2022-08-20 09:37:29 STATE: test-node-wasm.js start concurrent +2022-08-20 09:37:29 STATE: test-node-wasm.js start concurrent +2022-08-20 09:37:29 STATE: test-node-wasm.js start concurrent +2022-08-20 09:37:29 STATE: test-node-wasm.js start concurrent +2022-08-20 09:37:29 STATE: test-node-wasm.js start concurrent +2022-08-20 09:37:29 STATE: test-node-wasm.js start concurrent +2022-08-20 09:37:29 STATE: test-node-wasm.js start concurrent +2022-08-20 09:37:29 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-08-20 09:37:29 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-08-20 09:37:29 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-08-20 09:37:29 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-08-20 09:37:29 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} +2022-08-20 09:37:29 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} +2022-08-20 09:37:29 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-08-20 09:37:30 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-08-20 09:37:30 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} +2022-08-20 09:37:30 STATE: test-node-wasm.js event: image +2022-08-20 09:37:30 STATE: test-node-wasm.js event: image +2022-08-20 09:37:30 STATE: test-node-wasm.js event: image +2022-08-20 09:37:31 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg concurrent +2022-08-20 09:37:31 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-08-20 09:37:31 DATA:  test-node-wasm.js result: performance: load: null total: 1283 +2022-08-20 09:37:31 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg concurrent +2022-08-20 09:37:31 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-08-20 09:37:31 DATA:  test-node-wasm.js result: performance: load: null total: 1283 +2022-08-20 09:37:31 STATE: test-node-wasm.js passed: detect: samples/in/ai-face.jpg concurrent +2022-08-20 09:37:31 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} +2022-08-20 09:37:31 DATA:  test-node-wasm.js result: performance: load: null total: 1284 +2022-08-20 09:37:31 STATE: test-node-wasm.js passed: detect: samples/in/ai-face.jpg concurrent +2022-08-20 09:37:31 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} +2022-08-20 09:37:31 DATA:  test-node-wasm.js result: performance: load: null total: 1284 +2022-08-20 09:37:31 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg concurrent +2022-08-20 09:37:31 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} +2022-08-20 09:37:31 DATA:  test-node-wasm.js result: performance: load: null total: 1284 +2022-08-20 09:37:31 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg concurrent +2022-08-20 09:37:31 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} +2022-08-20 09:37:31 DATA:  test-node-wasm.js result: performance: load: null total: 1284 +2022-08-20 09:37:31 STATE: test-node-wasm.js event: detect +2022-08-20 09:37:31 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg concurrent +2022-08-20 09:37:31 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-08-20 09:37:31 DATA:  test-node-wasm.js result: performance: load: null total: 972 +2022-08-20 09:37:31 STATE: test-node-wasm.js event: detect +2022-08-20 09:37:31 STATE: test-node-wasm.js event: detect +2022-08-20 09:37:31 STATE: test-node-wasm.js passed: detect: samples/in/ai-face.jpg concurrent +2022-08-20 09:37:31 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} +2022-08-20 09:37:31 DATA:  test-node-wasm.js result: performance: load: null total: 972 +2022-08-20 09:37:31 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg concurrent +2022-08-20 09:37:31 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} +2022-08-20 09:37:31 DATA:  test-node-wasm.js result: performance: load: null total: 972 +2022-08-20 09:37:31 INFO:  test-node-wasm.js test: monkey-patch +2022-08-20 09:37:31 STATE: test-node-wasm.js event: image +2022-08-20 09:37:31 STATE: test-node-wasm.js event: detect +2022-08-20 09:37:31 STATE: test-node-wasm.js passed: monkey patch +2022-08-20 09:37:31 STATE: test-node-wasm.js passed: segmentation [65536] +2022-08-20 09:37:31 STATE: test-node-wasm.js passeed: equal usage +2022-08-20 09:37:31 INFO:  test-node-wasm.js test: input compare +2022-08-20 09:37:31 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-08-20 09:37:31 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-08-20 09:37:31 STATE: test-node-wasm.js passed: image compare 0 23.280073018790848 +2022-08-20 09:37:31 INFO:  test-node-wasm.js events: {"image":29,"detect":29,"warmup":2} +2022-08-20 09:37:31 INFO:  test-node-wasm.js tensors 4107 +2022-08-20 09:37:31 INFO:  test-node-wasm.js test complete: 19995 ms +2022-08-20 09:37:31 STATE: all tests complete +2022-08-20 09:37:31 INFO:  status {"test":"../demo/nodejs/node.js","passed":1,"failed":0} +2022-08-20 09:37:31 INFO:  status {"test":"../demo/nodejs/node-simple.js","passed":1,"failed":0} +2022-08-20 09:37:31 INFO:  status {"test":"../demo/nodejs/node-fetch.js","passed":1,"failed":0} +2022-08-20 09:37:31 INFO:  status {"test":"../demo/nodejs/node-event.js","passed":1,"failed":0} +2022-08-20 09:37:31 INFO:  status {"test":"../demo/nodejs/node-similarity.js","passed":1,"failed":0} +2022-08-20 09:37:31 INFO:  status {"test":"../demo/nodejs/node-canvas.js","passed":1,"failed":0} +2022-08-20 09:37:31 INFO:  status {"test":"../demo/multithread/node-multiprocess.js","passed":1,"failed":0} +2022-08-20 09:37:31 INFO:  status {"test":"../demo/facematch/node-match.js","passed":1,"failed":0} +2022-08-20 09:37:31 INFO:  status {"test":"test-node.js","passed":125,"failed":0} +2022-08-20 09:37:31 INFO:  status {"test":"test-node-gpu.js","passed":125,"failed":0} +2022-08-20 09:37:31 INFO:  status {"test":"test-node-wasm.js","passed":124,"failed":2} +2022-08-20 09:37:31 INFO:  failures {"count":2} +2022-08-20 09:37:31 WARN:  failed {"test":"test-node-wasm.js","message":["error",["failed: nanodet",[]]]} +2022-08-20 09:37:31 WARN:  failed {"test":"test-node-wasm.js","message":["error",["failed: face attention",{"annotations":0}]]}