diff --git a/CHANGELOG.md b/CHANGELOG.md index acfcca8a..1be2a0cb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,7 @@ ## Changelog -### **HEAD -> main** 2022/09/14 mandic00@live.com +### **HEAD -> main** 2022/09/17 mandic00@live.com ### **2.10.2** 2022/09/11 mandic00@live.com diff --git a/TODO.md b/TODO.md index 226cffd3..bccda86c 100644 --- a/TODO.md +++ b/TODO.md @@ -48,3 +48,5 @@ Enable via `about:config` -> `gfx.offscreencanvas.enabled` - New simple demo [*Live*](https://vladmandic.github.io/human/demo/video/index.html) - Enable model cache when using web workers - Improve NodeJS resolver when using ESM +- Update demo `demo/nodejs/process-folder.js` + and re-process `/samples` diff --git a/demo/multithread/node-multiprocess.js b/demo/multithread/node-multiprocess.js index 89096fb7..71729105 100644 --- a/demo/multithread/node-multiprocess.js +++ b/demo/multithread/node-multiprocess.js @@ -13,7 +13,7 @@ const childProcess = require('child_process'); // eslint-disable-line camelcase // note that main process does not import human or tfjs at all, it's all done from worker process const workerFile = 'demo/multithread/node-multiprocess-worker.js'; -const imgPathRoot = './assets'; // modify to include your sample images +const imgPathRoot = './samples/in'; // modify to include your sample images const numWorkers = 4; // how many workers will be started const workers = []; // this holds worker processes const images = []; // this holds queue of enumerated images @@ -22,7 +22,7 @@ let numImages; // trigered by main when worker sends ready message // if image pool is empty, signal worker to exit otherwise dispatch image to worker and remove image from queue -async function detect(worker) { +async function submitDetect(worker) { if (!t[2]) t[2] = process.hrtime.bigint(); // first time do a timestamp so we can measure initial latency if (images.length === numImages) worker.send({ test: true }); // for first image in queue just measure latency if (images.length === 0) worker.send({ exit: true }); // nothing left in queue @@ -79,7 +79,7 @@ async function main() { // if message is processing result, just print how many faces were detected // otherwise it's an unknown message workers[i].on('message', (msg) => { - if (msg.ready) detect(workers[i]); + if (msg.ready) submitDetect(workers[i]); else if (msg.image) log.data('Main: worker finished:', workers[i].pid, 'detected faces:', msg.detected.face?.length, 'bodies:', msg.detected.body?.length, 'hands:', msg.detected.hand?.length, 'objects:', msg.detected.object?.length); else if (msg.test) measureLatency(); else log.data('Main: worker message:', workers[i].pid, msg); diff --git a/demo/nodejs/node-canvas.js b/demo/nodejs/node-canvas.js index bda13173..71bcb26c 100644 --- a/demo/nodejs/node-canvas.js +++ b/demo/nodejs/node-canvas.js @@ -15,8 +15,8 @@ const Human = require('../../dist/human.node.js'); // use this when using human const config = { // just enable all and leave default settings debug: false, - face: { enabled: true }, // includes mesh, iris, emotion, descriptor - hand: { enabled: true, maxDetected: 2, minConfidence: 0.5, detector: { modelPath: 'handtrack.json' } }, // use alternative hand model + face: { enabled: true, detector: { maxDetected: 10 } }, // includes mesh, iris, emotion, descriptor + hand: { enabled: true, maxDetected: 20, minConfidence: 0.5, detector: { modelPath: 'handtrack.json' } }, // use alternative hand model body: { enabled: true }, object: { enabled: true }, gestures: { enabled: true }, diff --git a/demo/nodejs/node-simple.js b/demo/nodejs/node-simple.js index e0ae5bc4..2fa5a1de 100644 --- a/demo/nodejs/node-simple.js +++ b/demo/nodejs/node-simple.js @@ -12,6 +12,7 @@ const Human = require('../../dist/human.node.js'); // use this when using human const humanConfig = { // add any custom config here + debug: true, }; async function detect(inputFile) { diff --git a/demo/nodejs/process-folder.js b/demo/nodejs/process-folder.js index 51bcf1f9..fc2500b6 100644 --- a/demo/nodejs/process-folder.js +++ b/demo/nodejs/process-folder.js @@ -13,27 +13,69 @@ const process = require('process'); const log = require('@vladmandic/pilogger'); // eslint-disable-line node/no-unpublished-require const canvas = require('canvas'); // eslint-disable-line node/no-unpublished-require // for nodejs, `tfjs-node` or `tfjs-node-gpu` should be loaded before using Human -const tf = require('@tensorflow/tfjs-node'); // eslint-disable-line node/no-unpublished-require +const tf = require('@tensorflow/tfjs-node-gpu'); // eslint-disable-line node/no-unpublished-require 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 + modelBasePath: 'file://models', debug: true, - async: false, + softwareKernels: true, // slower but enhanced precision since face rotation can work in software mode in nodejs environments cacheSensitivity: 0, - face: { enabled: true, detector: { maxDetected: 20 } }, - object: { enabled: true }, + face: { enabled: true, detector: { maxDetected: 100, minConfidence: 0.1 } }, + object: { enabled: true, maxDetected: 100, minConfidence: 0.1 }, gesture: { enabled: true }, - hand: { enabled: true }, - body: { enabled: true, modelPath: 'https://vladmandic.github.io/human-models/models/movenet-multipose.json' }, + hand: { enabled: true, maxDetected: 100, minConfidence: 0.2 }, + body: { enabled: true, maxDetected: 100, minConfidence: 0.1, modelPath: 'https://vladmandic.github.io/human-models/models/movenet-multipose.json' }, }; +const poolSize = 4; + +const human = new Human.Human(config); // create instance of human + +async function saveFile(shape, buffer, result, outFile) { + return new Promise(async (resolve, reject) => { // eslint-disable-line no-async-promise-executor + const outputCanvas = new canvas.Canvas(shape[2], shape[1]); // create canvas + const outputCtx = outputCanvas.getContext('2d'); + const inputImage = await canvas.loadImage(buffer); // load image using canvas library + outputCtx.drawImage(inputImage, 0, 0); // draw input image onto canvas + human.draw.all(outputCanvas, result); // use human build-in method to draw results as overlays on canvas + const outStream = fs.createWriteStream(outFile); // write canvas to new image file + outStream.on('finish', () => { + log.data('Output image:', outFile, outputCanvas.width, outputCanvas.height); + resolve(); + }); + outStream.on('error', (err) => { + log.error('Output error:', outFile, err); + reject(); + }); + const stream = outputCanvas.createJPEGStream({ quality: 0.5, progressive: true, chromaSubsampling: true }); + stream.pipe(outStream); + }); +} + +async function processFile(image, inFile, outFile) { + const buffer = fs.readFileSync(inFile); + const tensor = tf.tidy(() => { + const decode = tf.node.decodeImage(buffer, 3); + const expand = tf.expandDims(decode, 0); + const cast = tf.cast(expand, 'float32'); + return cast; + }); + log.state('Loaded image:', inFile, tensor.shape); + + const result = await human.detect(tensor); + human.tf.dispose(tensor); + log.data(`Detected: ${image}:`, 'Face:', result.face.length, 'Body:', result.body.length, 'Hand:', result.hand.length, 'Objects:', result.object.length, 'Gestures:', result.gesture.length); + + if (outFile) await saveFile(tensor.shape, buffer, result, outFile); +} + async function main() { log.header(); globalThis.Canvas = canvas.Canvas; // patch global namespace with canvas library 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, 'TF:', tf.version_core); const configErrors = await human.validate(); if (configErrors.length > 0) log.error('Configuration errors:', configErrors); @@ -42,45 +84,36 @@ async function main() { const inDir = process.argv[2]; const outDir = process.argv[3]; - if (process.argv.length !== 4) { - log.error('Parameters: missing'); + if (!inDir) { + log.error('Parameters: missing'); return; } - if (!fs.existsSync(inDir) || !fs.statSync(inDir).isDirectory() || !fs.existsSync(outDir) || !fs.statSync(outDir).isDirectory()) { - log.error('Invalid directory specified:', 'input:', fs.existsSync(inDir) ?? fs.statSync(inDir).isDirectory(), 'output:', fs.existsSync(outDir) ?? fs.statSync(outDir).isDirectory()); + if (inDir && (!fs.existsSync(inDir) || !fs.statSync(inDir).isDirectory())) { + log.error('Invalid input directory:', fs.existsSync(inDir) ?? fs.statSync(inDir).isDirectory()); + return; + } + if (!outDir) { + log.info('Parameters: missing, images will not be saved'); + } + if (outDir && (!fs.existsSync(outDir) || !fs.statSync(outDir).isDirectory())) { + log.error('Invalid output directory:', fs.existsSync(outDir) ?? fs.statSync(outDir).isDirectory()); return; } const dir = fs.readdirSync(inDir); const images = dir.filter((f) => fs.statSync(path.join(inDir, f)).isFile() && (f.toLocaleLowerCase().endsWith('.jpg') || f.toLocaleLowerCase().endsWith('.jpeg'))); log.info(`Processing folder: ${inDir} entries:`, dir.length, 'images', images.length); - for (const image of images) { - const inFile = path.join(inDir, image); - const buffer = fs.readFileSync(inFile); - const tensor = human.tf.tidy(() => { - const decode = human.tf.node.decodeImage(buffer, 3); - const expand = human.tf.expandDims(decode, 0); - const cast = human.tf.cast(expand, 'float32'); - return cast; - }); - log.state('Loaded image:', inFile, tensor.shape); - - const result = await human.detect(tensor); - human.tf.dispose(tensor); - log.data(`Detected: ${image}:`, 'Face:', result.face.length, 'Body:', result.body.length, 'Hand:', result.hand.length, 'Objects:', result.object.length, 'Gestures:', result.gesture.length); - - const outputCanvas = new canvas.Canvas(tensor.shape[2], tensor.shape[1]); // create canvas - const outputCtx = outputCanvas.getContext('2d'); - const inputImage = await canvas.loadImage(buffer); // load image using canvas library - outputCtx.drawImage(inputImage, 0, 0); // draw input image onto canvas - human.draw.all(outputCanvas, result); // use human build-in method to draw results as overlays on canvas - const outFile = path.join(outDir, image); - const outStream = fs.createWriteStream(outFile); // write canvas to new image file - outStream.on('finish', () => log.state('Output image:', outFile, outputCanvas.width, outputCanvas.height)); - outStream.on('error', (err) => log.error('Output error:', outFile, err)); - const stream = outputCanvas.createJPEGStream({ quality: 0.5, progressive: true, chromaSubsampling: true }); - stream.pipe(outStream); + const t0 = performance.now(); + const promises = []; + for (let i = 0; i < images.length; i++) { + const inFile = path.join(inDir, images[i]); + const outFile = outDir ? path.join(outDir, images[i]) : null; + promises.push(processFile(images[i], inFile, outFile)); + if (i % poolSize === 0) await Promise.all(promises); } + await Promise.all(promises); + const t1 = performance.now(); + log.info(`Processed ${images.length} images in ${Math.round(t1 - t0)} ms`); } main(); diff --git a/package.json b/package.json index a97f338d..3cab11a4 100644 --- a/package.json +++ b/package.json @@ -90,7 +90,7 @@ "@vladmandic/tfjs": "github:vladmandic/tfjs", "@webgpu/types": "^0.1.21", "canvas": "^2.10.1", - "esbuild": "^0.15.7", + "esbuild": "^0.15.8", "eslint": "8.23.1", "eslint-config-airbnb-base": "^15.0.0", "eslint-plugin-html": "^7.1.0", @@ -102,7 +102,7 @@ "rimraf": "^3.0.2", "seedrandom": "^3.0.5", "tslib": "^2.4.0", - "typedoc": "0.23.14", + "typedoc": "0.23.15", "typescript": "4.8.3" } } diff --git a/samples/out/ai-face.jpg b/samples/out/ai-face.jpg index c3232db7..02616296 100644 Binary files a/samples/out/ai-face.jpg and b/samples/out/ai-face.jpg differ diff --git a/samples/out/ai-upper.jpg b/samples/out/ai-upper.jpg index 217124bd..482a8637 100644 Binary files a/samples/out/ai-upper.jpg and b/samples/out/ai-upper.jpg differ diff --git a/samples/out/cgi-model-1.jpg b/samples/out/cgi-model-1.jpg index b5dd7782..7fa2614d 100644 Binary files a/samples/out/cgi-model-1.jpg and b/samples/out/cgi-model-1.jpg differ diff --git a/samples/out/cgi-model-10.jpg b/samples/out/cgi-model-10.jpg index 91f41ffb..6e1f4753 100644 Binary files a/samples/out/cgi-model-10.jpg and b/samples/out/cgi-model-10.jpg differ diff --git a/samples/out/cgi-model-11.jpg b/samples/out/cgi-model-11.jpg index 1018ed03..ba6b1c08 100644 Binary files a/samples/out/cgi-model-11.jpg and b/samples/out/cgi-model-11.jpg differ diff --git a/samples/out/cgi-model-12.jpg b/samples/out/cgi-model-12.jpg index 6424ff47..0dda6747 100644 Binary files a/samples/out/cgi-model-12.jpg and b/samples/out/cgi-model-12.jpg differ diff --git a/samples/out/cgi-model-13.jpg b/samples/out/cgi-model-13.jpg index a6a92586..5dc47f0d 100644 Binary files a/samples/out/cgi-model-13.jpg and b/samples/out/cgi-model-13.jpg differ diff --git a/samples/out/cgi-model-14.jpg b/samples/out/cgi-model-14.jpg index 206bf4d8..d98917ef 100644 Binary files a/samples/out/cgi-model-14.jpg and b/samples/out/cgi-model-14.jpg differ diff --git a/samples/out/cgi-model-15.jpg b/samples/out/cgi-model-15.jpg index 70a6ae5c..70b96df6 100644 Binary files a/samples/out/cgi-model-15.jpg and b/samples/out/cgi-model-15.jpg differ diff --git a/samples/out/cgi-model-18.jpg b/samples/out/cgi-model-18.jpg index 693d486d..33b58515 100644 Binary files a/samples/out/cgi-model-18.jpg and b/samples/out/cgi-model-18.jpg differ diff --git a/samples/out/cgi-model-19.jpg b/samples/out/cgi-model-19.jpg index 567c8104..16cdf176 100644 Binary files a/samples/out/cgi-model-19.jpg and b/samples/out/cgi-model-19.jpg differ diff --git a/samples/out/cgi-model-2.jpg b/samples/out/cgi-model-2.jpg index 8fbc1259..1da557bd 100644 Binary files a/samples/out/cgi-model-2.jpg and b/samples/out/cgi-model-2.jpg differ diff --git a/samples/out/cgi-model-20.jpg b/samples/out/cgi-model-20.jpg index 6b89ad48..15ef8c57 100644 Binary files a/samples/out/cgi-model-20.jpg and b/samples/out/cgi-model-20.jpg differ diff --git a/samples/out/cgi-model-21.jpg b/samples/out/cgi-model-21.jpg index d9ef7dcc..f9f1d6f1 100644 Binary files a/samples/out/cgi-model-21.jpg and b/samples/out/cgi-model-21.jpg differ diff --git a/samples/out/cgi-model-22.jpg b/samples/out/cgi-model-22.jpg index d8bb359b..dd44b118 100644 Binary files a/samples/out/cgi-model-22.jpg and b/samples/out/cgi-model-22.jpg differ diff --git a/samples/out/cgi-model-23.jpg b/samples/out/cgi-model-23.jpg index 88933e00..d101bb70 100644 Binary files a/samples/out/cgi-model-23.jpg and b/samples/out/cgi-model-23.jpg differ diff --git a/samples/out/cgi-model-24.jpg b/samples/out/cgi-model-24.jpg index 0135415e..a1c4e849 100644 Binary files a/samples/out/cgi-model-24.jpg and b/samples/out/cgi-model-24.jpg differ diff --git a/samples/out/cgi-model-25.jpg b/samples/out/cgi-model-25.jpg index 7a487810..113a2f13 100644 Binary files a/samples/out/cgi-model-25.jpg and b/samples/out/cgi-model-25.jpg differ diff --git a/samples/out/cgi-model-26.jpg b/samples/out/cgi-model-26.jpg index 230af769..daee5af5 100644 Binary files a/samples/out/cgi-model-26.jpg and b/samples/out/cgi-model-26.jpg differ diff --git a/samples/out/cgi-model-27.jpg b/samples/out/cgi-model-27.jpg index 627df0a7..ce38e12c 100644 Binary files a/samples/out/cgi-model-27.jpg and b/samples/out/cgi-model-27.jpg differ diff --git a/samples/out/cgi-model-28.jpg b/samples/out/cgi-model-28.jpg index 436ffe46..a855429f 100644 Binary files a/samples/out/cgi-model-28.jpg and b/samples/out/cgi-model-28.jpg differ diff --git a/samples/out/cgi-model-29.jpg b/samples/out/cgi-model-29.jpg index b7e35b33..8afd7525 100644 Binary files a/samples/out/cgi-model-29.jpg and b/samples/out/cgi-model-29.jpg differ diff --git a/samples/out/cgi-model-3.jpg b/samples/out/cgi-model-3.jpg index 48628678..f99f5bab 100644 Binary files a/samples/out/cgi-model-3.jpg and b/samples/out/cgi-model-3.jpg differ diff --git a/samples/out/cgi-model-30.jpg b/samples/out/cgi-model-30.jpg index 024f051f..f5ee0f32 100644 Binary files a/samples/out/cgi-model-30.jpg and b/samples/out/cgi-model-30.jpg differ diff --git a/samples/out/cgi-model-31.jpg b/samples/out/cgi-model-31.jpg index 1b04dc2a..3abb1851 100644 Binary files a/samples/out/cgi-model-31.jpg and b/samples/out/cgi-model-31.jpg differ diff --git a/samples/out/cgi-model-33.jpg b/samples/out/cgi-model-33.jpg index 3a1ca8a9..c3a62ff6 100644 Binary files a/samples/out/cgi-model-33.jpg and b/samples/out/cgi-model-33.jpg differ diff --git a/samples/out/cgi-model-34.jpg b/samples/out/cgi-model-34.jpg index 0582065b..0ae7b2ba 100644 Binary files a/samples/out/cgi-model-34.jpg and b/samples/out/cgi-model-34.jpg differ diff --git a/samples/out/cgi-model-4.jpg b/samples/out/cgi-model-4.jpg index 03500274..72d8a1d8 100644 Binary files a/samples/out/cgi-model-4.jpg and b/samples/out/cgi-model-4.jpg differ diff --git a/samples/out/cgi-model-5.jpg b/samples/out/cgi-model-5.jpg index b05ba15e..0df146b5 100644 Binary files a/samples/out/cgi-model-5.jpg and b/samples/out/cgi-model-5.jpg differ diff --git a/samples/out/cgi-model-6.jpg b/samples/out/cgi-model-6.jpg index 692c838d..70b132f8 100644 Binary files a/samples/out/cgi-model-6.jpg and b/samples/out/cgi-model-6.jpg differ diff --git a/samples/out/cgi-model-7.jpg b/samples/out/cgi-model-7.jpg index 76da8bb5..d1376bd5 100644 Binary files a/samples/out/cgi-model-7.jpg and b/samples/out/cgi-model-7.jpg differ diff --git a/samples/out/cgi-model-8.jpg b/samples/out/cgi-model-8.jpg index 893d82ed..1155274f 100644 Binary files a/samples/out/cgi-model-8.jpg and b/samples/out/cgi-model-8.jpg differ diff --git a/samples/out/cgi-model-9.jpg b/samples/out/cgi-model-9.jpg index 1f86bc02..bf989021 100644 Binary files a/samples/out/cgi-model-9.jpg and b/samples/out/cgi-model-9.jpg differ diff --git a/samples/out/cgi-multiangle-1.jpg b/samples/out/cgi-multiangle-1.jpg index 0aff45bf..25faf23c 100644 Binary files a/samples/out/cgi-multiangle-1.jpg and b/samples/out/cgi-multiangle-1.jpg differ diff --git a/samples/out/cgi-multiangle-10.jpg b/samples/out/cgi-multiangle-10.jpg index abd9456b..91a79ed6 100644 Binary files a/samples/out/cgi-multiangle-10.jpg and b/samples/out/cgi-multiangle-10.jpg differ diff --git a/samples/out/cgi-multiangle-11.jpg b/samples/out/cgi-multiangle-11.jpg index f7dd3f2b..aba867d8 100644 Binary files a/samples/out/cgi-multiangle-11.jpg and b/samples/out/cgi-multiangle-11.jpg differ diff --git a/samples/out/cgi-multiangle-2.jpg b/samples/out/cgi-multiangle-2.jpg index ba93d52a..6232f5c4 100644 Binary files a/samples/out/cgi-multiangle-2.jpg and b/samples/out/cgi-multiangle-2.jpg differ diff --git a/samples/out/cgi-multiangle-3.jpg b/samples/out/cgi-multiangle-3.jpg index abaefdfe..c307847d 100644 Binary files a/samples/out/cgi-multiangle-3.jpg and b/samples/out/cgi-multiangle-3.jpg differ diff --git a/samples/out/cgi-multiangle-4.jpg b/samples/out/cgi-multiangle-4.jpg index be05e975..431213f3 100644 Binary files a/samples/out/cgi-multiangle-4.jpg and b/samples/out/cgi-multiangle-4.jpg differ diff --git a/samples/out/cgi-multiangle-6.jpg b/samples/out/cgi-multiangle-6.jpg index 343f5655..afe0dc52 100644 Binary files a/samples/out/cgi-multiangle-6.jpg and b/samples/out/cgi-multiangle-6.jpg differ diff --git a/samples/out/cgi-multiangle-7.jpg b/samples/out/cgi-multiangle-7.jpg index e9dcf0e1..e917bc3e 100644 Binary files a/samples/out/cgi-multiangle-7.jpg and b/samples/out/cgi-multiangle-7.jpg differ diff --git a/samples/out/cgi-multiangle-8.jpg b/samples/out/cgi-multiangle-8.jpg index e6113e4b..49955eb7 100644 Binary files a/samples/out/cgi-multiangle-8.jpg and b/samples/out/cgi-multiangle-8.jpg differ diff --git a/samples/out/cgi-multiangle-9.jpg b/samples/out/cgi-multiangle-9.jpg index 672096e0..70f12aea 100644 Binary files a/samples/out/cgi-multiangle-9.jpg and b/samples/out/cgi-multiangle-9.jpg differ diff --git a/samples/out/group-1.jpg b/samples/out/group-1.jpg index ffe82c20..5113630e 100644 Binary files a/samples/out/group-1.jpg and b/samples/out/group-1.jpg differ diff --git a/samples/out/group-2.jpg b/samples/out/group-2.jpg index 811569ec..83f5e0a4 100644 Binary files a/samples/out/group-2.jpg and b/samples/out/group-2.jpg differ diff --git a/samples/out/group-3.jpg b/samples/out/group-3.jpg index 527e738f..3745ad5c 100644 Binary files a/samples/out/group-3.jpg and b/samples/out/group-3.jpg differ diff --git a/samples/out/group-4.jpg b/samples/out/group-4.jpg index 0d25e762..d204d706 100644 Binary files a/samples/out/group-4.jpg and b/samples/out/group-4.jpg differ diff --git a/samples/out/group-5.jpg b/samples/out/group-5.jpg index c97b62fd..e6ae03a2 100644 Binary files a/samples/out/group-5.jpg and b/samples/out/group-5.jpg differ diff --git a/samples/out/group-6.jpg b/samples/out/group-6.jpg index dd58efd6..3334196e 100644 Binary files a/samples/out/group-6.jpg and b/samples/out/group-6.jpg differ diff --git a/samples/out/group-7.jpg b/samples/out/group-7.jpg index 063df7d4..b10e70a2 100644 Binary files a/samples/out/group-7.jpg and b/samples/out/group-7.jpg differ diff --git a/samples/out/person-celeste.jpg b/samples/out/person-celeste.jpg index 3958c6da..8bc4df9d 100644 Binary files a/samples/out/person-celeste.jpg and b/samples/out/person-celeste.jpg differ diff --git a/samples/out/person-christina.jpg b/samples/out/person-christina.jpg index 929b4d19..0aa34441 100644 Binary files a/samples/out/person-christina.jpg and b/samples/out/person-christina.jpg differ diff --git a/samples/out/person-lauren.jpg b/samples/out/person-lauren.jpg index 36b2a632..343915a4 100644 Binary files a/samples/out/person-lauren.jpg and b/samples/out/person-lauren.jpg differ diff --git a/samples/out/person-lexi.jpg b/samples/out/person-lexi.jpg index 5abf1cdb..6c6c9a6e 100644 Binary files a/samples/out/person-lexi.jpg and b/samples/out/person-lexi.jpg differ diff --git a/samples/out/person-linda.jpg b/samples/out/person-linda.jpg index 43534a3a..1baaabcf 100644 Binary files a/samples/out/person-linda.jpg and b/samples/out/person-linda.jpg differ diff --git a/samples/out/person-nicole.jpg b/samples/out/person-nicole.jpg index b9bed59f..dce1e442 100644 Binary files a/samples/out/person-nicole.jpg and b/samples/out/person-nicole.jpg differ diff --git a/samples/out/person-tasia.jpg b/samples/out/person-tasia.jpg index 42d0976b..0703b086 100644 Binary files a/samples/out/person-tasia.jpg and b/samples/out/person-tasia.jpg differ diff --git a/samples/out/person-tetiana.jpg b/samples/out/person-tetiana.jpg index 93efefe5..7e44d65d 100644 Binary files a/samples/out/person-tetiana.jpg and b/samples/out/person-tetiana.jpg differ diff --git a/samples/out/person-vlado.jpg b/samples/out/person-vlado.jpg index 254c76f7..572adb03 100644 Binary files a/samples/out/person-vlado.jpg and b/samples/out/person-vlado.jpg differ diff --git a/samples/out/person-vlado1.jpg b/samples/out/person-vlado1.jpg index c5f104ff..5a983cff 100644 Binary files a/samples/out/person-vlado1.jpg and b/samples/out/person-vlado1.jpg differ diff --git a/samples/out/person-vlado5.jpg b/samples/out/person-vlado5.jpg index 3ea2a8ca..12746d00 100644 Binary files a/samples/out/person-vlado5.jpg and b/samples/out/person-vlado5.jpg differ diff --git a/samples/out/solvay1927.jpg b/samples/out/solvay1927.jpg index 0bed63af..8c02f5c7 100644 Binary files a/samples/out/solvay1927.jpg and b/samples/out/solvay1927.jpg differ diff --git a/samples/out/stock-emotions-a-1.jpg b/samples/out/stock-emotions-a-1.jpg index e424d39e..b46fa92b 100644 Binary files a/samples/out/stock-emotions-a-1.jpg and b/samples/out/stock-emotions-a-1.jpg differ diff --git a/samples/out/stock-emotions-a-2.jpg b/samples/out/stock-emotions-a-2.jpg index 16b0070d..7861ad08 100644 Binary files a/samples/out/stock-emotions-a-2.jpg and b/samples/out/stock-emotions-a-2.jpg differ diff --git a/samples/out/stock-emotions-a-3.jpg b/samples/out/stock-emotions-a-3.jpg index b42b2ca6..da21c457 100644 Binary files a/samples/out/stock-emotions-a-3.jpg and b/samples/out/stock-emotions-a-3.jpg differ diff --git a/samples/out/stock-emotions-a-4.jpg b/samples/out/stock-emotions-a-4.jpg index 09886d4e..9ab3f66f 100644 Binary files a/samples/out/stock-emotions-a-4.jpg and b/samples/out/stock-emotions-a-4.jpg differ diff --git a/samples/out/stock-emotions-a-5.jpg b/samples/out/stock-emotions-a-5.jpg index 6125ca07..958d2a83 100644 Binary files a/samples/out/stock-emotions-a-5.jpg and b/samples/out/stock-emotions-a-5.jpg differ diff --git a/samples/out/stock-emotions-a-6.jpg b/samples/out/stock-emotions-a-6.jpg index a160ac27..faad3962 100644 Binary files a/samples/out/stock-emotions-a-6.jpg and b/samples/out/stock-emotions-a-6.jpg differ diff --git a/samples/out/stock-emotions-a-7.jpg b/samples/out/stock-emotions-a-7.jpg index d7fa6d72..4a78f8b1 100644 Binary files a/samples/out/stock-emotions-a-7.jpg and b/samples/out/stock-emotions-a-7.jpg differ diff --git a/samples/out/stock-emotions-a-8.jpg b/samples/out/stock-emotions-a-8.jpg index 4cfcfa62..2202b5e5 100644 Binary files a/samples/out/stock-emotions-a-8.jpg and b/samples/out/stock-emotions-a-8.jpg differ diff --git a/samples/out/stock-emotions-b-1.jpg b/samples/out/stock-emotions-b-1.jpg index 81d5ff11..08171ee5 100644 Binary files a/samples/out/stock-emotions-b-1.jpg and b/samples/out/stock-emotions-b-1.jpg differ diff --git a/samples/out/stock-emotions-b-2.jpg b/samples/out/stock-emotions-b-2.jpg index 32047958..245404e9 100644 Binary files a/samples/out/stock-emotions-b-2.jpg and b/samples/out/stock-emotions-b-2.jpg differ diff --git a/samples/out/stock-emotions-b-3.jpg b/samples/out/stock-emotions-b-3.jpg index fff1d2f2..ce0bd4b9 100644 Binary files a/samples/out/stock-emotions-b-3.jpg and b/samples/out/stock-emotions-b-3.jpg differ diff --git a/samples/out/stock-emotions-b-4.jpg b/samples/out/stock-emotions-b-4.jpg index 95594c3e..dbc9a5e3 100644 Binary files a/samples/out/stock-emotions-b-4.jpg and b/samples/out/stock-emotions-b-4.jpg differ diff --git a/samples/out/stock-emotions-b-5.jpg b/samples/out/stock-emotions-b-5.jpg index 3569b37e..60a187d9 100644 Binary files a/samples/out/stock-emotions-b-5.jpg and b/samples/out/stock-emotions-b-5.jpg differ diff --git a/samples/out/stock-emotions-b-6.jpg b/samples/out/stock-emotions-b-6.jpg index 98bf932e..40d98f1e 100644 Binary files a/samples/out/stock-emotions-b-6.jpg and b/samples/out/stock-emotions-b-6.jpg differ diff --git a/samples/out/stock-emotions-b-7.jpg b/samples/out/stock-emotions-b-7.jpg index 7bae2c39..338104c6 100644 Binary files a/samples/out/stock-emotions-b-7.jpg and b/samples/out/stock-emotions-b-7.jpg differ diff --git a/samples/out/stock-emotions-b-8.jpg b/samples/out/stock-emotions-b-8.jpg index 60fdd40c..8bb8a759 100644 Binary files a/samples/out/stock-emotions-b-8.jpg and b/samples/out/stock-emotions-b-8.jpg differ diff --git a/samples/out/stock-group-1.jpg b/samples/out/stock-group-1.jpg index dab49ac4..8a8b47b2 100644 Binary files a/samples/out/stock-group-1.jpg and b/samples/out/stock-group-1.jpg differ diff --git a/samples/out/stock-group-2.jpg b/samples/out/stock-group-2.jpg index 37183fb8..2ee11463 100644 Binary files a/samples/out/stock-group-2.jpg and b/samples/out/stock-group-2.jpg differ diff --git a/samples/out/stock-models-1.jpg b/samples/out/stock-models-1.jpg index 34299fa1..6ba5e0e6 100644 Binary files a/samples/out/stock-models-1.jpg and b/samples/out/stock-models-1.jpg differ diff --git a/samples/out/stock-models-10.jpg b/samples/out/stock-models-10.jpg index 7e59a545..f8179be3 100644 Binary files a/samples/out/stock-models-10.jpg and b/samples/out/stock-models-10.jpg differ diff --git a/samples/out/stock-models-11.jpg b/samples/out/stock-models-11.jpg index c062a93c..d3988145 100644 Binary files a/samples/out/stock-models-11.jpg and b/samples/out/stock-models-11.jpg differ diff --git a/samples/out/stock-models-12.jpg b/samples/out/stock-models-12.jpg index ae483b4f..77134a8e 100644 Binary files a/samples/out/stock-models-12.jpg and b/samples/out/stock-models-12.jpg differ diff --git a/samples/out/stock-models-13.jpg b/samples/out/stock-models-13.jpg index bfabd716..9d52a054 100644 Binary files a/samples/out/stock-models-13.jpg and b/samples/out/stock-models-13.jpg differ diff --git a/samples/out/stock-models-14.jpg b/samples/out/stock-models-14.jpg index 66a0f401..5e63ef86 100644 Binary files a/samples/out/stock-models-14.jpg and b/samples/out/stock-models-14.jpg differ diff --git a/samples/out/stock-models-15.jpg b/samples/out/stock-models-15.jpg index 25ecb5ac..edcffcef 100644 Binary files a/samples/out/stock-models-15.jpg and b/samples/out/stock-models-15.jpg differ diff --git a/samples/out/stock-models-16.jpg b/samples/out/stock-models-16.jpg index 6562f84b..e563cd30 100644 Binary files a/samples/out/stock-models-16.jpg and b/samples/out/stock-models-16.jpg differ diff --git a/samples/out/stock-models-2.jpg b/samples/out/stock-models-2.jpg index 29436c13..91a2582b 100644 Binary files a/samples/out/stock-models-2.jpg and b/samples/out/stock-models-2.jpg differ diff --git a/samples/out/stock-models-3.jpg b/samples/out/stock-models-3.jpg index da0bcd36..2fac37f0 100644 Binary files a/samples/out/stock-models-3.jpg and b/samples/out/stock-models-3.jpg differ diff --git a/samples/out/stock-models-4.jpg b/samples/out/stock-models-4.jpg index b992c39b..335f2ff7 100644 Binary files a/samples/out/stock-models-4.jpg and b/samples/out/stock-models-4.jpg differ diff --git a/samples/out/stock-models-5.jpg b/samples/out/stock-models-5.jpg index a3168735..feeb5ffb 100644 Binary files a/samples/out/stock-models-5.jpg and b/samples/out/stock-models-5.jpg differ diff --git a/samples/out/stock-models-6.jpg b/samples/out/stock-models-6.jpg index 64985b8a..bbbaa168 100644 Binary files a/samples/out/stock-models-6.jpg and b/samples/out/stock-models-6.jpg differ diff --git a/samples/out/stock-models-7.jpg b/samples/out/stock-models-7.jpg index a711a002..5d466579 100644 Binary files a/samples/out/stock-models-7.jpg and b/samples/out/stock-models-7.jpg differ diff --git a/samples/out/stock-models-8.jpg b/samples/out/stock-models-8.jpg index b30ea40b..2472bb47 100644 Binary files a/samples/out/stock-models-8.jpg and b/samples/out/stock-models-8.jpg differ diff --git a/samples/out/stock-models-9.jpg b/samples/out/stock-models-9.jpg index 199310a7..ec4ca627 100644 Binary files a/samples/out/stock-models-9.jpg and b/samples/out/stock-models-9.jpg differ diff --git a/samples/out/stock-teen-1.jpg b/samples/out/stock-teen-1.jpg index 4122993f..f396eb14 100644 Binary files a/samples/out/stock-teen-1.jpg and b/samples/out/stock-teen-1.jpg differ diff --git a/samples/out/stock-teen-2.jpg b/samples/out/stock-teen-2.jpg index fe4d7561..d0c682b2 100644 Binary files a/samples/out/stock-teen-2.jpg and b/samples/out/stock-teen-2.jpg differ diff --git a/samples/out/stock-teen-3.jpg b/samples/out/stock-teen-3.jpg index e5cc9f48..6440571c 100644 Binary files a/samples/out/stock-teen-3.jpg and b/samples/out/stock-teen-3.jpg differ diff --git a/samples/out/stock-teen-4.jpg b/samples/out/stock-teen-4.jpg index b0132ecb..8295cdcc 100644 Binary files a/samples/out/stock-teen-4.jpg and b/samples/out/stock-teen-4.jpg differ diff --git a/samples/out/stock-teen-5.jpg b/samples/out/stock-teen-5.jpg index 993dd0bb..e7a3577b 100644 Binary files a/samples/out/stock-teen-5.jpg and b/samples/out/stock-teen-5.jpg differ diff --git a/samples/out/stock-teen-6.jpg b/samples/out/stock-teen-6.jpg index 792ebad5..bceb0049 100644 Binary files a/samples/out/stock-teen-6.jpg and b/samples/out/stock-teen-6.jpg differ diff --git a/samples/out/stock-teen-7.jpg b/samples/out/stock-teen-7.jpg index 5ebe3dcd..ecfc54a5 100644 Binary files a/samples/out/stock-teen-7.jpg and b/samples/out/stock-teen-7.jpg differ diff --git a/samples/out/stock-teen-8.jpg b/samples/out/stock-teen-8.jpg index bfaeb5df..797e4fa6 100644 Binary files a/samples/out/stock-teen-8.jpg and b/samples/out/stock-teen-8.jpg differ diff --git a/src/tfjs/load.ts b/src/tfjs/load.ts index d89ad782..98421d80 100644 --- a/src/tfjs/load.ts +++ b/src/tfjs/load.ts @@ -56,16 +56,21 @@ export async function loadModel(modelPath: string | undefined): Promise httpHandler(url, init) }; - const model: GraphModel = new tf.GraphModel(modelStats[shortModelName].inCache ? cachedModelName : modelUrl, tfLoadOptions) as unknown as GraphModel; // create model prototype and decide if load from cache or from original modelurl + let model: GraphModel = new tf.GraphModel(modelStats[shortModelName].inCache ? cachedModelName : modelUrl, tfLoadOptions) as unknown as GraphModel; // create model prototype and decide if load from cache or from original modelurl let loaded = false; try { // @ts-ignore private function model.findIOHandler(); // decide how to actually load a model if (options.debug) log('model load handler:', model['handler']); + } catch (err) { + log('error finding model i/o handler:', modelUrl, err); + } + try { // @ts-ignore private property - const artifacts = await model.handler.load(); // load manifest + const artifacts = await model.handler?.load() || null; // load manifest modelStats[shortModelName].sizeFromManifest = artifacts?.weightData?.byteLength || 0; - model.loadSync(artifacts); // load weights + if (artifacts) model.loadSync(artifacts); // load weights + else model = await tf.loadGraphModel(modelStats[shortModelName].inCache ? cachedModelName : modelUrl, tfLoadOptions) as unknown as GraphModel; // @ts-ignore private property modelStats[shortModelName].sizeLoadedWeights = model.artifacts?.weightData?.byteLength || 0; if (options.verbose) log('load:', { model: shortModelName, url: model['modelUrl'], bytes: modelStats[shortModelName].sizeLoadedWeights }); diff --git a/test/build.log b/test/build.log index 9bfeaa36..5dbafc30 100644 --- a/test/build.log +++ b/test/build.log @@ -1,39 +1,39 @@ -2022-09-17 17:17:01 DATA:  Build {"name":"@vladmandic/human","version":"2.10.2"} -2022-09-17 17:17:01 INFO:  Application: {"name":"@vladmandic/human","version":"2.10.2"} -2022-09-17 17:17:01 INFO:  Environment: {"profile":"production","config":".build.json","package":"package.json","tsconfig":true,"eslintrc":true,"git":true} -2022-09-17 17:17:01 INFO:  Toolchain: {"build":"0.7.12","esbuild":"0.15.7","typescript":"4.8.3","typedoc":"0.23.14","eslint":"8.23.1"} -2022-09-17 17:17:01 INFO:  Build: {"profile":"production","steps":["clean","compile","typings","typedoc","lint","changelog"]} -2022-09-17 17:17:01 STATE: Clean: {"locations":["dist/*","types/lib/*","typedoc/*"]} -2022-09-17 17:17:01 STATE: Compile: {"name":"tfjs/nodejs/cpu","format":"cjs","platform":"node","input":"tfjs/tf-node.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":159,"outputBytes":608} -2022-09-17 17:17:01 STATE: Compile: {"name":"human/nodejs/cpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node.js","files":75,"inputBytes":658253,"outputBytes":309214} -2022-09-17 17:17:01 STATE: Compile: {"name":"tfjs/nodejs/gpu","format":"cjs","platform":"node","input":"tfjs/tf-node-gpu.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":167,"outputBytes":612} -2022-09-17 17:17:01 STATE: Compile: {"name":"human/nodejs/gpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-gpu.js","files":75,"inputBytes":658257,"outputBytes":309218} -2022-09-17 17:17:01 STATE: Compile: {"name":"tfjs/nodejs/wasm","format":"cjs","platform":"node","input":"tfjs/tf-node-wasm.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":206,"outputBytes":664} -2022-09-17 17:17:01 STATE: Compile: {"name":"human/nodejs/wasm","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-wasm.js","files":75,"inputBytes":658309,"outputBytes":309268} -2022-09-17 17:17:01 STATE: Compile: {"name":"tfjs/browser/version","format":"esm","platform":"browser","input":"tfjs/tf-version.ts","output":"dist/tfjs.version.js","files":1,"inputBytes":1125,"outputBytes":358} -2022-09-17 17:17:01 STATE: Compile: {"name":"tfjs/browser/esm/nobundle","format":"esm","platform":"browser","input":"tfjs/tf-browser.ts","output":"dist/tfjs.esm.js","files":2,"inputBytes":1088,"outputBytes":583} -2022-09-17 17:17:01 STATE: Compile: {"name":"human/browser/esm/nobundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm-nobundle.js","files":75,"inputBytes":658228,"outputBytes":308088} -2022-09-17 17:17:02 STATE: Compile: {"name":"tfjs/browser/esm/custom","format":"esm","platform":"browser","input":"tfjs/tf-custom.ts","output":"dist/tfjs.esm.js","files":11,"inputBytes":1344,"outputBytes":2821914} -2022-09-17 17:17:02 STATE: Compile: {"name":"human/browser/iife/bundle","format":"iife","platform":"browser","input":"src/human.ts","output":"dist/human.js","files":75,"inputBytes":3479559,"outputBytes":1688279} -2022-09-17 17:17:02 STATE: Compile: {"name":"human/browser/esm/bundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm.js","files":75,"inputBytes":3479559,"outputBytes":3109891} -2022-09-17 17:17:06 STATE: Typings: {"input":"src/human.ts","output":"types/lib","files":15} -2022-09-17 17:17:09 STATE: TypeDoc: {"input":"src/human.ts","output":"typedoc","objects":77,"generated":true} -2022-09-17 17:17:09 STATE: Compile: {"name":"demo/typescript","format":"esm","platform":"browser","input":"demo/typescript/index.ts","output":"demo/typescript/index.js","files":1,"inputBytes":6714,"outputBytes":3134} -2022-09-17 17:17:09 STATE: Compile: {"name":"demo/faceid","format":"esm","platform":"browser","input":"demo/faceid/index.ts","output":"demo/faceid/index.js","files":2,"inputBytes":15488,"outputBytes":7788} -2022-09-17 17:17:20 STATE: Lint: {"locations":["*.json","src/**/*.ts","test/**/*.js","demo/**/*.js"],"files":110,"errors":0,"warnings":0} -2022-09-17 17:17:20 STATE: ChangeLog: {"repository":"https://github.com/vladmandic/human","branch":"main","output":"CHANGELOG.md"} -2022-09-17 17:17:20 STATE: Copy: {"input":"tfjs/tfjs.esm.d.ts"} -2022-09-17 17:17:20 INFO:  Done... -2022-09-17 17:17:21 STATE: API-Extractor: {"succeeeded":true,"errors":0,"warnings":193} -2022-09-17 17:17:21 STATE: Copy: {"input":"types/human.d.ts"} -2022-09-17 17:17:21 INFO:  Analyze models: {"folders":8,"result":"models/models.json"} -2022-09-17 17:17:21 STATE: Models {"folder":"./models","models":13} -2022-09-17 17:17:21 STATE: Models {"folder":"../human-models/models","models":42} -2022-09-17 17:17:21 STATE: Models {"folder":"../blazepose/model/","models":4} -2022-09-17 17:17:21 STATE: Models {"folder":"../anti-spoofing/model","models":1} -2022-09-17 17:17:21 STATE: Models {"folder":"../efficientpose/models","models":3} -2022-09-17 17:17:21 STATE: Models {"folder":"../insightface/models","models":5} -2022-09-17 17:17:21 STATE: Models {"folder":"../movenet/models","models":3} -2022-09-17 17:17:21 STATE: Models {"folder":"../nanodet/models","models":4} -2022-09-17 17:17:22 STATE: Models: {"count":57,"totalSize":383017442} -2022-09-17 17:17:22 INFO:  Human Build complete... {"logFile":"test/build.log"} +2022-09-19 10:44:57 DATA:  Build {"name":"@vladmandic/human","version":"2.10.2"} +2022-09-19 10:44:57 INFO:  Application: {"name":"@vladmandic/human","version":"2.10.2"} +2022-09-19 10:44:57 INFO:  Environment: {"profile":"production","config":".build.json","package":"package.json","tsconfig":true,"eslintrc":true,"git":true} +2022-09-19 10:44:57 INFO:  Toolchain: {"build":"0.7.12","esbuild":"0.15.8","typescript":"4.8.3","typedoc":"0.23.15","eslint":"8.23.1"} +2022-09-19 10:44:57 INFO:  Build: {"profile":"production","steps":["clean","compile","typings","typedoc","lint","changelog"]} +2022-09-19 10:44:57 STATE: Clean: {"locations":["dist/*","types/lib/*","typedoc/*"]} +2022-09-19 10:44:57 STATE: Compile: {"name":"tfjs/nodejs/cpu","format":"cjs","platform":"node","input":"tfjs/tf-node.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":159,"outputBytes":608} +2022-09-19 10:44:57 STATE: Compile: {"name":"human/nodejs/cpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node.js","files":75,"inputBytes":658512,"outputBytes":309346} +2022-09-19 10:44:57 STATE: Compile: {"name":"tfjs/nodejs/gpu","format":"cjs","platform":"node","input":"tfjs/tf-node-gpu.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":167,"outputBytes":612} +2022-09-19 10:44:57 STATE: Compile: {"name":"human/nodejs/gpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-gpu.js","files":75,"inputBytes":658516,"outputBytes":309350} +2022-09-19 10:44:57 STATE: Compile: {"name":"tfjs/nodejs/wasm","format":"cjs","platform":"node","input":"tfjs/tf-node-wasm.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":206,"outputBytes":664} +2022-09-19 10:44:57 STATE: Compile: {"name":"human/nodejs/wasm","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-wasm.js","files":75,"inputBytes":658568,"outputBytes":309400} +2022-09-19 10:44:57 STATE: Compile: {"name":"tfjs/browser/version","format":"esm","platform":"browser","input":"tfjs/tf-version.ts","output":"dist/tfjs.version.js","files":1,"inputBytes":1125,"outputBytes":358} +2022-09-19 10:44:57 STATE: Compile: {"name":"tfjs/browser/esm/nobundle","format":"esm","platform":"browser","input":"tfjs/tf-browser.ts","output":"dist/tfjs.esm.js","files":2,"inputBytes":1088,"outputBytes":583} +2022-09-19 10:44:57 STATE: Compile: {"name":"human/browser/esm/nobundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm-nobundle.js","files":75,"inputBytes":658487,"outputBytes":308219} +2022-09-19 10:44:57 STATE: Compile: {"name":"tfjs/browser/esm/custom","format":"esm","platform":"browser","input":"tfjs/tf-custom.ts","output":"dist/tfjs.esm.js","files":11,"inputBytes":1344,"outputBytes":2821914} +2022-09-19 10:44:57 STATE: Compile: {"name":"human/browser/iife/bundle","format":"iife","platform":"browser","input":"src/human.ts","output":"dist/human.js","files":75,"inputBytes":3479818,"outputBytes":1688397} +2022-09-19 10:44:57 STATE: Compile: {"name":"human/browser/esm/bundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm.js","files":75,"inputBytes":3479818,"outputBytes":3110170} +2022-09-19 10:45:02 STATE: Typings: {"input":"src/human.ts","output":"types/lib","files":15} +2022-09-19 10:45:04 STATE: TypeDoc: {"input":"src/human.ts","output":"typedoc","objects":77,"generated":true} +2022-09-19 10:45:04 STATE: Compile: {"name":"demo/typescript","format":"esm","platform":"browser","input":"demo/typescript/index.ts","output":"demo/typescript/index.js","files":1,"inputBytes":6714,"outputBytes":3134} +2022-09-19 10:45:04 STATE: Compile: {"name":"demo/faceid","format":"esm","platform":"browser","input":"demo/faceid/index.ts","output":"demo/faceid/index.js","files":2,"inputBytes":15488,"outputBytes":7788} +2022-09-19 10:45:15 STATE: Lint: {"locations":["*.json","src/**/*.ts","test/**/*.js","demo/**/*.js"],"files":110,"errors":0,"warnings":0} +2022-09-19 10:45:15 STATE: ChangeLog: {"repository":"https://github.com/vladmandic/human","branch":"main","output":"CHANGELOG.md"} +2022-09-19 10:45:15 STATE: Copy: {"input":"tfjs/tfjs.esm.d.ts"} +2022-09-19 10:45:15 INFO:  Done... +2022-09-19 10:45:16 STATE: API-Extractor: {"succeeeded":true,"errors":0,"warnings":193} +2022-09-19 10:45:16 STATE: Copy: {"input":"types/human.d.ts"} +2022-09-19 10:45:16 INFO:  Analyze models: {"folders":8,"result":"models/models.json"} +2022-09-19 10:45:16 STATE: Models {"folder":"./models","models":13} +2022-09-19 10:45:16 STATE: Models {"folder":"../human-models/models","models":42} +2022-09-19 10:45:16 STATE: Models {"folder":"../blazepose/model/","models":4} +2022-09-19 10:45:16 STATE: Models {"folder":"../anti-spoofing/model","models":1} +2022-09-19 10:45:16 STATE: Models {"folder":"../efficientpose/models","models":3} +2022-09-19 10:45:16 STATE: Models {"folder":"../insightface/models","models":5} +2022-09-19 10:45:16 STATE: Models {"folder":"../movenet/models","models":3} +2022-09-19 10:45:16 STATE: Models {"folder":"../nanodet/models","models":4} +2022-09-19 10:45:17 STATE: Models: {"count":57,"totalSize":383017442} +2022-09-19 10:45:17 INFO:  Human Build complete... {"logFile":"test/build.log"} diff --git a/test/node.js b/test/node.js index e34a05b2..f8676a7f 100644 --- a/test/node.js +++ b/test/node.js @@ -23,6 +23,7 @@ const demos = [ { cmd: '../demo/nodejs/node-event.js', args: ['samples/in/ai-body.jpg'] }, { cmd: '../demo/nodejs/node-similarity.js', args: ['samples/in/ai-face.jpg', 'samples/in/ai-upper.jpg'] }, { cmd: '../demo/nodejs/node-canvas.js', args: ['samples/in/ai-body.jpg', 'samples/out/ai-body.jpg'] }, + { cmd: '../demo/nodejs/process-folder.js', args: ['samples'] }, { cmd: '../demo/multithread/node-multiprocess.js', args: [] }, { cmd: '../demo/facematch/node-match.js', args: [] }, // { cmd: '../demo/nodejs/node-video.js', args: [] }, diff --git a/test/test-backend-node-wasm.js b/test/test-backend-node-wasm.js index 875d08d5..cf259b28 100644 --- a/test/test-backend-node-wasm.js +++ b/test/test-backend-node-wasm.js @@ -39,7 +39,7 @@ async function main() { await tf.setBackend('wasm'); await tf.ready(); H.env.updateBackend(); - log.info(H.env.wasm); + log.info(H.env.wasm, config.wasmPath); test(H.Human, config); } diff --git a/test/test.log b/test/test.log index 0ebba379..4edae56d 100644 --- a/test/test.log +++ b/test/test.log @@ -1,999 +1,1001 @@ -2022-09-17 17:17:28 INFO:  @vladmandic/human version 2.10.2 -2022-09-17 17:17:28 INFO:  User: vlado Platform: linux Arch: x64 Node: v18.1.0 -2022-09-17 17:17:28 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-09-17 17:17:28 INFO:  {"cmd":"../demo/nodejs/node.js","args":[]} start -2022-09-17 17:17:29 INFO:  {"cmd":"../demo/nodejs/node-simple.js","args":[]} start -2022-09-17 17:17:29 INFO:  {"cmd":"../demo/nodejs/node-fetch.js","args":[]} start -2022-09-17 17:17:32 INFO:  {"cmd":"../demo/nodejs/node-event.js","args":["samples/in/ai-body.jpg"]} start -2022-09-17 17:17:33 INFO:  {"cmd":"../demo/nodejs/node-similarity.js","args":["samples/in/ai-face.jpg","samples/in/ai-upper.jpg"]} start -2022-09-17 17:17:33 INFO:  {"cmd":"../demo/nodejs/node-canvas.js","args":["samples/in/ai-body.jpg","samples/out/ai-body.jpg"]} start -2022-09-17 17:17:34 INFO:  {"cmd":"../demo/multithread/node-multiprocess.js","args":[]} start -2022-09-17 17:17:35 INFO:  {"cmd":"../demo/facematch/node-match.js","args":[]} start -2022-09-17 17:17:37 INFO:  tests: ["test-node-load.js","test-node-gear.js","test-backend-node.js","test-backend-node-gpu.js","test-backend-node-wasm.js"] -2022-09-17 17:17:37 INFO:  -2022-09-17 17:17:37 INFO:  test-node-load.js start -2022-09-17 17:17:37 INFO:  test-node-load.js load start {"human":"2.10.2","tf":"3.20.0","progress":0} -2022-09-17 17:17:37 DATA:  test-node-load.js load interval {"elapsed":0,"progress":0} -2022-09-17 17:17:37 DATA:  test-node-load.js load interval {"elapsed":10,"progress":0} -2022-09-17 17:17:37 DATA:  test-node-load.js load interval {"elapsed":30,"progress":0.11143791531203556} -2022-09-17 17:17:37 DATA:  test-node-load.js load interval {"elapsed":67,"progress":0.3299591712723044} -2022-09-17 17:17:37 DATA:  test-node-load.js load interval {"elapsed":107,"progress":0.5125946867158943} -2022-09-17 17:17:37 DATA:  test-node-load.js load interval {"elapsed":136,"progress":0.7259096583739463} -2022-09-17 17:17:37 STATE: test-node-load.js passed {"progress":1} -2022-09-17 17:17:37 INFO:  test-node-load.js load final {"progress":1} -2022-09-17 17:17:37 DATA:  test-node-load.js load interval {"elapsed":464,"progress":1} -2022-09-17 17:17:37 INFO:  -2022-09-17 17:17:37 INFO:  test-node-gear.js start -2022-09-17 17:17:38 DATA:  test-node-gear.js input: ["samples/in/ai-face.jpg"] -2022-09-17 17:17:39 STATE: test-node-gear.js passed: gear faceres samples/in/ai-face.jpg -2022-09-17 17:17:39 DATA:  test-node-gear.js results {"face":0,"model":"faceres","image":"samples/in/ai-face.jpg","age":23.5,"gender":"female","genderScore":0.92} -2022-09-17 17:17:39 STATE: test-node-gear.js passed: gear gear samples/in/ai-face.jpg -2022-09-17 17:17:39 DATA:  test-node-gear.js results {"face":0,"model":"gear","image":"samples/in/ai-face.jpg","age":23.3,"gender":"female","genderScore":0.51,"race":[{"score":0.93,"race":"white"}]} -2022-09-17 17:17:39 STATE: test-node-gear.js passed: gear ssrnet samples/in/ai-face.jpg -2022-09-17 17:17:39 DATA:  test-node-gear.js results {"face":0,"model":"ssrnet","image":"samples/in/ai-face.jpg","age":23.4,"gender":"female","genderScore":0.99} -2022-09-17 17:17:39 INFO:  -2022-09-17 17:17:39 INFO:  test-backend-node.js start -2022-09-17 17:17:39 INFO:  test-backend-node.js test: configuration validation -2022-09-17 17:17:39 STATE: test-backend-node.js passed: configuration default validation [] -2022-09-17 17:17:39 STATE: test-backend-node.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}] -2022-09-17 17:17:39 INFO:  test-backend-node.js test: model load -2022-09-17 17:17:39 STATE: test-backend-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-09-17 17:17:39 INFO:  test-backend-node.js memory: {"memory":{"unreliable":true,"numTensors":1921,"numDataBuffers":1921,"numBytes":63673064}} -2022-09-17 17:17:39 INFO:  test-backend-node.js state: {"state":{"registeredVariables":{},"nextTapeNodeId":0,"numBytes":63673064,"numTensors":1921,"numStringTensors":0,"numDataBuffers":1921,"gradientDepth":0,"kernelDepth":0,"scopeStack":[],"numDataMovesStack":[],"nextScopeId":0,"tensorInfo":{},"profiling":false,"activeProfile":{"newBytes":0,"newTensors":0,"peakBytes":0,"kernels":[],"result":null,"kernelNames":[]}}} -2022-09-17 17:17:39 INFO:  test-backend-node.js test: warmup -2022-09-17 17:17:39 STATE: test-backend-node.js passed: create human -2022-09-17 17:17:39 INFO:  test-backend-node.js human version: 2.10.2 -2022-09-17 17:17:39 INFO:  test-backend-node.js platform: linux x64 agent: NodeJS v18.1.0 -2022-09-17 17:17:39 INFO:  test-backend-node.js tfjs version: 3.20.0 -2022-09-17 17:17:39 INFO:  test-backend-node.js env: {"browser":false,"node":true,"platform":"linux x64","agent":"NodeJS v18.1.0","backends":["cpu","tensorflow"],"initial":false,"tfjs":{"version":"3.20.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-09-17 17:17:39 STATE: test-backend-node.js passed: set backend: tensorflow -2022-09-17 17:17:39 STATE: test-backend-node.js tensors 1921 -2022-09-17 17:17:39 STATE: test-backend-node.js passed: load models -2022-09-17 17:17:39 STATE: test-backend-node.js result: defined models: 23 loaded models: 12 -2022-09-17 17:17:39 STATE: test-backend-node.js passed: warmup: none default -2022-09-17 17:17:39 DATA:  test-backend-node.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {} -2022-09-17 17:17:39 DATA:  test-backend-node.js result: performance: load: null total: null -2022-09-17 17:17:39 STATE: test-backend-node.js passed: warmup none result match -2022-09-17 17:17:39 STATE: test-backend-node.js event: image -2022-09-17 17:17:40 STATE: test-backend-node.js event: detect -2022-09-17 17:17:40 STATE: test-backend-node.js event: warmup -2022-09-17 17:17:40 STATE: test-backend-node.js passed: warmup: face default -2022-09-17 17:17:40 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.42,"keypoints":4} -2022-09-17 17:17:40 DATA:  test-backend-node.js result: performance: load: null total: 384 -2022-09-17 17:17:40 STATE: test-backend-node.js passed: warmup face result match -2022-09-17 17:17:40 STATE: test-backend-node.js event: image -2022-09-17 17:17:40 STATE: test-backend-node.js event: detect -2022-09-17 17:17:40 STATE: test-backend-node.js event: warmup -2022-09-17 17:17:40 STATE: test-backend-node.js passed: warmup: body default -2022-09-17 17:17:40 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-09-17 17:17:40 DATA:  test-backend-node.js result: performance: load: null total: 290 -2022-09-17 17:17:40 STATE: test-backend-node.js passed: warmup body result match -2022-09-17 17:17:40 STATE: test-backend-node.js details: {"face":{"boxScore":0.92,"faceScore":1,"age":23.7,"gender":"female","genderScore":0.97},"emotion":[{"score":0.63,"emotion":"angry"},{"score":0.22,"emotion":"fear"}],"body":{"score":0.92,"keypoints":17},"hand":{"boxScore":0.52,"fingerScore":0.73,"keypoints":21},"gestures":[{"face":0,"gesture":"facing right"},{"face":0,"gesture":"mouth 10% open"},{"hand":0,"gesture":"pinky forward"},{"hand":0,"gesture":"palm up"},{"hand":0,"gesture":"open palm"},{"iris":0,"gesture":"looking left"},{"iris":0,"gesture":"looking up"}]} -2022-09-17 17:17:40 INFO:  test-backend-node.js test: details verification -2022-09-17 17:17:40 STATE: test-backend-node.js start default -2022-09-17 17:17:40 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-09-17 17:17:40 STATE: test-backend-node.js event: image -2022-09-17 17:17:41 STATE: test-backend-node.js event: detect -2022-09-17 17:17:41 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg default -2022-09-17 17:17:41 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-09-17 17:17:41 DATA:  test-backend-node.js result: performance: load: null total: 247 -2022-09-17 17:17:41 STATE: test-backend-node.js passed: details face length 1 -2022-09-17 17:17:41 STATE: test-backend-node.js passed: details face score 1 0.93 1 -2022-09-17 17:17:41 STATE: test-backend-node.js passed: details face age/gender 23.7 female 0.97 85.47 -2022-09-17 17:17:41 STATE: test-backend-node.js passed: details face arrays 4 478 1024 -2022-09-17 17:17:41 STATE: test-backend-node.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"} -2022-09-17 17:17:41 STATE: test-backend-node.js passed: details face anti-spoofing 0.79 -2022-09-17 17:17:41 STATE: test-backend-node.js passed: details face liveness 0.83 -2022-09-17 17:17:41 STATE: test-backend-node.js passed: details body length 1 -2022-09-17 17:17:41 STATE: test-backend-node.js passed: details body 0.92 17 6 -2022-09-17 17:17:41 STATE: test-backend-node.js passed: details hand length 1 -2022-09-17 17:17:41 STATE: test-backend-node.js passed: details hand 0.51 0.73 point -2022-09-17 17:17:41 STATE: test-backend-node.js passed: details hand arrays 21 5 7 -2022-09-17 17:17:41 STATE: test-backend-node.js passed: details gesture length 7 -2022-09-17 17:17:41 STATE: test-backend-node.js passed: details gesture first {"face":0,"gesture":"facing right"} -2022-09-17 17:17:41 STATE: test-backend-node.js passed: details object length 1 -2022-09-17 17:17:41 STATE: test-backend-node.js passed: details object 0.72 person -2022-09-17 17:17:41 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996928} -2022-09-17 17:17:41 STATE: test-backend-node.js event: image -2022-09-17 17:17:41 STATE: test-backend-node.js event: detect -2022-09-17 17:17:41 STATE: test-backend-node.js passed: tensor shape: [1,1200,1200,4] dtype: float32 -2022-09-17 17:17:41 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1371996928} -2022-09-17 17:17:41 STATE: test-backend-node.js event: image -2022-09-17 17:17:42 STATE: test-backend-node.js event: detect -2022-09-17 17:17:42 STATE: test-backend-node.js passed: tensor shape: [1200,1200,4] dtype: float32 -2022-09-17 17:17:42 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-09-17 17:17:42 STATE: test-backend-node.js event: image -2022-09-17 17:17:42 STATE: test-backend-node.js event: detect -2022-09-17 17:17:42 STATE: test-backend-node.js passed: tensor shape: [1,1200,1200,3] dtype: float32 -2022-09-17 17:17:42 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1004796864} -2022-09-17 17:17:42 STATE: test-backend-node.js event: image -2022-09-17 17:17:42 STATE: test-backend-node.js event: detect -2022-09-17 17:17:42 STATE: test-backend-node.js passed: tensor shape: [1200,1200,3] dtype: float32 -2022-09-17 17:17:43 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871} -2022-09-17 17:17:43 STATE: test-backend-node.js event: image -2022-09-17 17:17:43 STATE: test-backend-node.js event: detect -2022-09-17 17:17:43 STATE: test-backend-node.js passed: tensor shape: [1,1200,1200,4] dtype: int32 -2022-09-17 17:17:43 INFO:  test-backend-node.js test default -2022-09-17 17:17:43 STATE: test-backend-node.js start async -2022-09-17 17:17:43 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-09-17 17:17:43 STATE: test-backend-node.js event: image -2022-09-17 17:17:43 STATE: test-backend-node.js event: detect -2022-09-17 17:17:43 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg async -2022-09-17 17:17:43 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-09-17 17:17:43 DATA:  test-backend-node.js result: performance: load: null total: 249 -2022-09-17 17:17:43 STATE: test-backend-node.js passed: default result face match 1 female 0.97 -2022-09-17 17:17:43 INFO:  test-backend-node.js test sync -2022-09-17 17:17:43 STATE: test-backend-node.js start sync -2022-09-17 17:17:43 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-09-17 17:17:43 STATE: test-backend-node.js event: image -2022-09-17 17:17:44 STATE: test-backend-node.js event: detect -2022-09-17 17:17:44 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg sync -2022-09-17 17:17:44 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-09-17 17:17:44 DATA:  test-backend-node.js result: performance: load: null total: 239 -2022-09-17 17:17:44 STATE: test-backend-node.js passed: default sync 1 female 0.97 -2022-09-17 17:17:44 INFO:  test-backend-node.js test: image process -2022-09-17 17:17:44 STATE: test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-09-17 17:17:44 STATE: test-backend-node.js passed: image input null [1,256,256,3] -2022-09-17 17:17:44 INFO:  test-backend-node.js test: image null -2022-09-17 17:17:44 STATE: test-backend-node.js passed: invalid input could not convert input to tensor -2022-09-17 17:17:44 INFO:  test-backend-node.js test face similarity -2022-09-17 17:17:44 STATE: test-backend-node.js start face similarity -2022-09-17 17:17:44 STATE: test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-09-17 17:17:44 STATE: test-backend-node.js event: image -2022-09-17 17:17:44 STATE: test-backend-node.js event: detect -2022-09-17 17:17:44 STATE: test-backend-node.js passed: detect: samples/in/ai-face.jpg face similarity -2022-09-17 17:17:44 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":3} -2022-09-17 17:17:44 DATA:  test-backend-node.js result: performance: load: null total: 254 -2022-09-17 17:17:44 STATE: test-backend-node.js start face similarity -2022-09-17 17:17:44 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-09-17 17:17:44 STATE: test-backend-node.js event: image -2022-09-17 17:17:44 STATE: test-backend-node.js event: detect -2022-09-17 17:17:44 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg face similarity -2022-09-17 17:17:44 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-09-17 17:17:44 DATA:  test-backend-node.js result: performance: load: null total: 241 -2022-09-17 17:17:44 STATE: test-backend-node.js start face similarity -2022-09-17 17:17:44 STATE: test-backend-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} -2022-09-17 17:17:44 STATE: test-backend-node.js event: image -2022-09-17 17:17:45 STATE: test-backend-node.js event: detect -2022-09-17 17:17:45 STATE: test-backend-node.js passed: detect: samples/in/ai-upper.jpg face similarity -2022-09-17 17:17:45 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 0 gesture: 4 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":7} -2022-09-17 17:17:45 DATA:  test-backend-node.js result: performance: load: null total: 213 -2022-09-17 17:17:45 STATE: test-backend-node.js passed: face descriptor -2022-09-17 17:17:45 STATE: test-backend-node.js passed: face similarity {"similarity":[1,0.44727452329649126,0.5567935850640406],"descriptors":[1024,1024,1024]} -2022-09-17 17:17:45 INFO:  test-backend-node.js test object -2022-09-17 17:17:45 STATE: test-backend-node.js start object -2022-09-17 17:17:45 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-09-17 17:17:45 STATE: test-backend-node.js event: image -2022-09-17 17:17:45 STATE: test-backend-node.js event: detect -2022-09-17 17:17:45 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg object -2022-09-17 17:17:45 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-09-17 17:17:45 DATA:  test-backend-node.js result: performance: load: null total: 235 -2022-09-17 17:17:45 STATE: test-backend-node.js passed: centernet -2022-09-17 17:17:45 STATE: test-backend-node.js start object -2022-09-17 17:17:46 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-09-17 17:17:46 STATE: test-backend-node.js event: image -2022-09-17 17:17:46 STATE: test-backend-node.js event: detect -2022-09-17 17:17:46 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg object -2022-09-17 17:17:46 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 3 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.86,"class":"person"} {"score":0.92,"keypoints":17} -2022-09-17 17:17:46 DATA:  test-backend-node.js result: performance: load: null total: 254 -2022-09-17 17:17:46 STATE: test-backend-node.js passed: nanodet -2022-09-17 17:17:46 INFO:  test-backend-node.js test sensitive -2022-09-17 17:17:46 STATE: test-backend-node.js start sensitive -2022-09-17 17:17:47 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-09-17 17:17:47 STATE: test-backend-node.js event: image -2022-09-17 17:17:47 STATE: test-backend-node.js event: detect -2022-09-17 17:17:47 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg sensitive -2022-09-17 17:17:47 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.92,"keypoints":17} -2022-09-17 17:17:47 DATA:  test-backend-node.js result: performance: load: null total: 190 -2022-09-17 17:17:47 STATE: test-backend-node.js passed: sensitive result match -2022-09-17 17:17:47 STATE: test-backend-node.js passed: sensitive face result match -2022-09-17 17:17:47 STATE: test-backend-node.js passed: sensitive face emotion result [{"score":0.59,"emotion":"angry"},{"score":0.29,"emotion":"fear"}] -2022-09-17 17:17:47 STATE: test-backend-node.js passed: sensitive body result match -2022-09-17 17:17:47 STATE: test-backend-node.js passed: sensitive hand result match -2022-09-17 17:17:47 INFO:  test-backend-node.js test body -2022-09-17 17:17:47 STATE: test-backend-node.js start blazepose -2022-09-17 17:17:49 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-09-17 17:17:49 STATE: test-backend-node.js event: image -2022-09-17 17:17:49 STATE: test-backend-node.js event: detect -2022-09-17 17:17:49 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg blazepose -2022-09-17 17:17:49 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.99,"keypoints":39} -2022-09-17 17:17:49 DATA:  test-backend-node.js result: performance: load: null total: 258 -2022-09-17 17:17:49 STATE: test-backend-node.js passed: blazepose -2022-09-17 17:17:49 STATE: test-backend-node.js start efficientpose -2022-09-17 17:17:50 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-09-17 17:17:50 STATE: test-backend-node.js event: image -2022-09-17 17:17:50 STATE: test-backend-node.js event: detect -2022-09-17 17:17:50 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg efficientpose -2022-09-17 17:17:50 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.75,"keypoints":13} -2022-09-17 17:17:50 DATA:  test-backend-node.js result: performance: load: null total: 274 -2022-09-17 17:17:50 STATE: test-backend-node.js passed: efficientpose -2022-09-17 17:17:50 STATE: test-backend-node.js start posenet -2022-09-17 17:18:02 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-09-17 17:18:02 STATE: test-backend-node.js event: image -2022-09-17 17:18:02 STATE: test-backend-node.js event: detect -2022-09-17 17:18:02 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg posenet -2022-09-17 17:18:02 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.96,"keypoints":16} -2022-09-17 17:18:02 DATA:  test-backend-node.js result: performance: load: null total: 225 -2022-09-17 17:18:02 STATE: test-backend-node.js passed: posenet -2022-09-17 17:18:02 STATE: test-backend-node.js start movenet -2022-09-17 17:18:02 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-09-17 17:18:02 STATE: test-backend-node.js event: image -2022-09-17 17:18:02 STATE: test-backend-node.js event: detect -2022-09-17 17:18:02 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg movenet -2022-09-17 17:18:02 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.92,"keypoints":17} -2022-09-17 17:18:02 DATA:  test-backend-node.js result: performance: load: null total: 198 -2022-09-17 17:18:02 STATE: test-backend-node.js passed: movenet -2022-09-17 17:18:02 INFO:  test-backend-node.js test face matching -2022-09-17 17:18:02 STATE: test-backend-node.js passed: face database 40 -2022-09-17 17:18:02 STATE: test-backend-node.js passed: face match {"first":{"index":4,"similarity":0.7827852615252829}} {"second":{"index":4,"similarity":0.5002052633015844}} {"third":{"index":4,"similarity":0.5401587887998899}} -2022-09-17 17:18:02 INFO:  test-backend-node.js test face similarity alternative -2022-09-17 17:18:02 STATE: test-backend-node.js start face embeddings -2022-09-17 17:18:03 STATE: test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-09-17 17:18:03 STATE: test-backend-node.js event: image -2022-09-17 17:18:03 STATE: test-backend-node.js event: detect -2022-09-17 17:18:03 STATE: test-backend-node.js passed: detect: samples/in/ai-face.jpg face embeddings -2022-09-17 17:18:03 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} -2022-09-17 17:18:03 DATA:  test-backend-node.js result: performance: load: null total: 214 -2022-09-17 17:18:03 STATE: test-backend-node.js passed: mobilefacenet {"embedding":192} -2022-09-17 17:18:03 STATE: test-backend-node.js start face embeddings -2022-09-17 17:18:34 STATE: test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-09-17 17:18:34 STATE: test-backend-node.js event: image -2022-09-17 17:18:34 STATE: test-backend-node.js event: detect -2022-09-17 17:18:34 STATE: test-backend-node.js passed: detect: samples/in/ai-face.jpg face embeddings -2022-09-17 17:18:34 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} -2022-09-17 17:18:34 DATA:  test-backend-node.js result: performance: load: null total: 268 -2022-09-17 17:18:34 STATE: test-backend-node.js passed: insightface {"embedding":512} -2022-09-17 17:18:34 INFO:  test-backend-node.js test face attention -2022-09-17 17:18:34 STATE: test-backend-node.js start face attention -2022-09-17 17:18:34 STATE: test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-09-17 17:18:34 STATE: test-backend-node.js event: image -2022-09-17 17:18:35 STATE: test-backend-node.js event: detect -2022-09-17 17:18:35 STATE: test-backend-node.js passed: detect: samples/in/ai-face.jpg face attention -2022-09-17 17:18:35 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} -2022-09-17 17:18:35 DATA:  test-backend-node.js result: performance: load: null total: 215 -2022-09-17 17:18:35 STATE: test-backend-node.js passed: face attention -2022-09-17 17:18:35 INFO:  test-backend-node.js test detectors -2022-09-17 17:18:35 STATE: test-backend-node.js start detectors -2022-09-17 17:18:35 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-09-17 17:18:35 STATE: test-backend-node.js event: image -2022-09-17 17:18:35 STATE: test-backend-node.js event: detect -2022-09-17 17:18:35 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg detectors -2022-09-17 17:18:35 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} -2022-09-17 17:18:35 DATA:  test-backend-node.js result: performance: load: null total: 163 -2022-09-17 17:18:35 STATE: test-backend-node.js passed: detector result face match -2022-09-17 17:18:35 STATE: test-backend-node.js passed: detector result hand match -2022-09-17 17:18:35 INFO:  test-backend-node.js test: multi-instance -2022-09-17 17:18:35 STATE: test-backend-node.js start multi instance -2022-09-17 17:18:35 STATE: test-backend-node.js event: image -2022-09-17 17:18:35 STATE: test-backend-node.js event: detect -2022-09-17 17:18:35 STATE: test-backend-node.js passed: detect: random multi instance -2022-09-17 17:18:35 DATA:  test-backend-node.js result: face: 0 body: 1 hand: 0 gesture: 0 object: 0 person: 0 {} {} {"score":0,"keypoints":0} -2022-09-17 17:18:35 DATA:  test-backend-node.js result: performance: load: null total: 109 -2022-09-17 17:18:35 INFO:  test-backend-node.js test: first instance -2022-09-17 17:18:35 STATE: test-backend-node.js start multi instance -2022-09-17 17:18:35 STATE: test-backend-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} -2022-09-17 17:18:35 STATE: test-backend-node.js passed: detect: samples/in/ai-upper.jpg multi instance -2022-09-17 17:18:35 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-09-17 17:18:35 DATA:  test-backend-node.js result: performance: load: null total: 133 -2022-09-17 17:18:35 INFO:  test-backend-node.js test: second instance -2022-09-17 17:18:35 STATE: test-backend-node.js start multi instance -2022-09-17 17:18:35 STATE: test-backend-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} -2022-09-17 17:18:36 STATE: test-backend-node.js passed: detect: samples/in/ai-upper.jpg multi instance -2022-09-17 17:18:36 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-09-17 17:18:36 DATA:  test-backend-node.js result: performance: load: null total: 120 -2022-09-17 17:18:36 INFO:  test-backend-node.js test: concurrent -2022-09-17 17:18:36 STATE: test-backend-node.js start concurrent -2022-09-17 17:18:36 STATE: test-backend-node.js start concurrent -2022-09-17 17:18:36 STATE: test-backend-node.js start concurrent -2022-09-17 17:18:36 STATE: test-backend-node.js start concurrent -2022-09-17 17:18:36 STATE: test-backend-node.js start concurrent -2022-09-17 17:18:36 STATE: test-backend-node.js start concurrent -2022-09-17 17:18:36 STATE: test-backend-node.js start concurrent -2022-09-17 17:18:36 STATE: test-backend-node.js start concurrent -2022-09-17 17:18:36 STATE: test-backend-node.js start concurrent -2022-09-17 17:18:36 STATE: test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-09-17 17:18:36 STATE: test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-09-17 17:18:36 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-09-17 17:18:36 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-09-17 17:18:36 STATE: test-backend-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} -2022-09-17 17:18:36 STATE: test-backend-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} -2022-09-17 17:18:36 STATE: test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-09-17 17:18:36 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-09-17 17:18:36 STATE: test-backend-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} -2022-09-17 17:18:36 STATE: test-backend-node.js event: image -2022-09-17 17:18:36 STATE: test-backend-node.js event: image -2022-09-17 17:18:36 STATE: test-backend-node.js event: image -2022-09-17 17:18:37 STATE: test-backend-node.js passed: detect: samples/in/ai-upper.jpg concurrent -2022-09-17 17:18:37 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-09-17 17:18:37 DATA:  test-backend-node.js result: performance: load: null total: 1257 -2022-09-17 17:18:37 STATE: test-backend-node.js passed: detect: samples/in/ai-upper.jpg concurrent -2022-09-17 17:18:37 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-09-17 17:18:37 DATA:  test-backend-node.js result: performance: load: null total: 1257 -2022-09-17 17:18:37 STATE: test-backend-node.js passed: detect: samples/in/ai-face.jpg concurrent -2022-09-17 17:18:37 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} -2022-09-17 17:18:37 DATA:  test-backend-node.js result: performance: load: null total: 1257 -2022-09-17 17:18:37 STATE: test-backend-node.js passed: detect: samples/in/ai-face.jpg concurrent -2022-09-17 17:18:37 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} -2022-09-17 17:18:37 DATA:  test-backend-node.js result: performance: load: null total: 1257 -2022-09-17 17:18:37 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg concurrent -2022-09-17 17:18:37 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} -2022-09-17 17:18:37 DATA:  test-backend-node.js result: performance: load: null total: 1257 -2022-09-17 17:18:37 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg concurrent -2022-09-17 17:18:37 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} -2022-09-17 17:18:37 DATA:  test-backend-node.js result: performance: load: null total: 1257 -2022-09-17 17:18:37 STATE: test-backend-node.js event: detect -2022-09-17 17:18:37 STATE: test-backend-node.js passed: detect: samples/in/ai-upper.jpg concurrent -2022-09-17 17:18:37 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-09-17 17:18:37 DATA:  test-backend-node.js result: performance: load: null total: 1002 -2022-09-17 17:18:37 STATE: test-backend-node.js event: detect -2022-09-17 17:18:37 STATE: test-backend-node.js event: detect -2022-09-17 17:18:37 STATE: test-backend-node.js passed: detect: samples/in/ai-face.jpg concurrent -2022-09-17 17:18:37 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} -2022-09-17 17:18:37 DATA:  test-backend-node.js result: performance: load: null total: 1002 -2022-09-17 17:18:37 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg concurrent -2022-09-17 17:18:37 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} -2022-09-17 17:18:37 DATA:  test-backend-node.js result: performance: load: null total: 1002 -2022-09-17 17:18:37 INFO:  test-backend-node.js test: monkey-patch -2022-09-17 17:18:37 STATE: test-backend-node.js event: image -2022-09-17 17:18:37 STATE: test-backend-node.js event: detect -2022-09-17 17:18:37 STATE: test-backend-node.js passed: monkey patch -2022-09-17 17:18:37 STATE: test-backend-node.js passed: segmentation [65536] -2022-09-17 17:18:37 STATE: test-backend-node.js passeed: equal usage -2022-09-17 17:18:37 INFO:  test-backend-node.js test: input compare -2022-09-17 17:18:37 STATE: test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-09-17 17:18:38 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-09-17 17:18:38 STATE: test-backend-node.js passed: image compare 0 23.275441687091504 -2022-09-17 17:18:38 INFO:  test-backend-node.js events: {"image":29,"detect":29,"warmup":2} -2022-09-17 17:18:38 INFO:  test-backend-node.js tensors 4147 -2022-09-17 17:18:38 INFO:  test-backend-node.js test complete: 58329 ms -2022-09-17 17:18:38 INFO:  -2022-09-17 17:18:38 INFO:  test-backend-node-gpu.js start -2022-09-17 17:18:39 INFO:  test-backend-node-gpu.js test: configuration validation -2022-09-17 17:18:39 STATE: test-backend-node-gpu.js passed: configuration default validation [] -2022-09-17 17:18:39 STATE: test-backend-node-gpu.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}] -2022-09-17 17:18:39 INFO:  test-backend-node-gpu.js test: model load -2022-09-17 17:18:39 STATE: test-backend-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-09-17 17:18:39 INFO:  test-backend-node-gpu.js memory: {"memory":{"unreliable":true,"numTensors":1921,"numDataBuffers":1921,"numBytes":63673064}} -2022-09-17 17:18:39 INFO:  test-backend-node-gpu.js state: {"state":{"registeredVariables":{},"nextTapeNodeId":0,"numBytes":63673064,"numTensors":1921,"numStringTensors":0,"numDataBuffers":1921,"gradientDepth":0,"kernelDepth":0,"scopeStack":[],"numDataMovesStack":[],"nextScopeId":0,"tensorInfo":{},"profiling":false,"activeProfile":{"newBytes":0,"newTensors":0,"peakBytes":0,"kernels":[],"result":null,"kernelNames":[]}}} -2022-09-17 17:18:39 INFO:  test-backend-node-gpu.js test: warmup -2022-09-17 17:18:39 STATE: test-backend-node-gpu.js passed: create human -2022-09-17 17:18:39 INFO:  test-backend-node-gpu.js human version: 2.10.2 -2022-09-17 17:18:39 INFO:  test-backend-node-gpu.js platform: linux x64 agent: NodeJS v18.1.0 -2022-09-17 17:18:39 INFO:  test-backend-node-gpu.js tfjs version: 3.20.0 -2022-09-17 17:18:39 INFO:  test-backend-node-gpu.js env: {"browser":false,"node":true,"platform":"linux x64","agent":"NodeJS v18.1.0","backends":["cpu","tensorflow"],"initial":false,"tfjs":{"version":"3.20.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-09-17 17:18:39 STATE: test-backend-node-gpu.js passed: set backend: tensorflow -2022-09-17 17:18:39 STATE: test-backend-node-gpu.js tensors 1921 -2022-09-17 17:18:39 STATE: test-backend-node-gpu.js passed: load models -2022-09-17 17:18:39 STATE: test-backend-node-gpu.js result: defined models: 23 loaded models: 12 -2022-09-17 17:18:39 STATE: test-backend-node-gpu.js passed: warmup: none default -2022-09-17 17:18:39 DATA:  test-backend-node-gpu.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {} -2022-09-17 17:18:39 DATA:  test-backend-node-gpu.js result: performance: load: null total: null -2022-09-17 17:18:39 STATE: test-backend-node-gpu.js passed: warmup none result match -2022-09-17 17:18:40 STATE: test-backend-node-gpu.js event: image -2022-09-17 17:18:44 STATE: test-backend-node-gpu.js event: detect -2022-09-17 17:18:44 STATE: test-backend-node-gpu.js event: warmup -2022-09-17 17:18:44 STATE: test-backend-node-gpu.js passed: warmup: face default -2022-09-17 17:18:44 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.42,"keypoints":4} -2022-09-17 17:18:44 DATA:  test-backend-node-gpu.js result: performance: load: null total: 4852 -2022-09-17 17:18:44 STATE: test-backend-node-gpu.js passed: warmup face result match -2022-09-17 17:18:44 STATE: test-backend-node-gpu.js event: image -2022-09-17 17:18:45 STATE: test-backend-node-gpu.js event: detect -2022-09-17 17:18:45 STATE: test-backend-node-gpu.js event: warmup -2022-09-17 17:18:45 STATE: test-backend-node-gpu.js passed: warmup: body default -2022-09-17 17:18:45 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-09-17 17:18:45 DATA:  test-backend-node-gpu.js result: performance: load: null total: 160 -2022-09-17 17:18:45 STATE: test-backend-node-gpu.js passed: warmup body result match -2022-09-17 17:18:45 STATE: test-backend-node-gpu.js details: {"face":{"boxScore":0.92,"faceScore":1,"age":23.7,"gender":"female","genderScore":0.97},"emotion":[{"score":0.63,"emotion":"angry"},{"score":0.22,"emotion":"fear"}],"body":{"score":0.92,"keypoints":17},"hand":{"boxScore":0.52,"fingerScore":0.73,"keypoints":21},"gestures":[{"face":0,"gesture":"facing right"},{"face":0,"gesture":"mouth 10% open"},{"hand":0,"gesture":"pinky forward"},{"hand":0,"gesture":"palm up"},{"hand":0,"gesture":"open palm"},{"iris":0,"gesture":"looking left"},{"iris":0,"gesture":"looking up"}]} -2022-09-17 17:18:45 INFO:  test-backend-node-gpu.js test: details verification -2022-09-17 17:18:45 STATE: test-backend-node-gpu.js start default -2022-09-17 17:18:45 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-09-17 17:18:45 STATE: test-backend-node-gpu.js event: image -2022-09-17 17:18:45 STATE: test-backend-node-gpu.js event: detect -2022-09-17 17:18:45 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg default -2022-09-17 17:18:45 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-09-17 17:18:45 DATA:  test-backend-node-gpu.js result: performance: load: null total: 158 -2022-09-17 17:18:45 STATE: test-backend-node-gpu.js passed: details face length 1 -2022-09-17 17:18:45 STATE: test-backend-node-gpu.js passed: details face score 1 0.93 1 -2022-09-17 17:18:45 STATE: test-backend-node-gpu.js passed: details face age/gender 23.7 female 0.97 85.47 -2022-09-17 17:18:45 STATE: test-backend-node-gpu.js passed: details face arrays 4 478 1024 -2022-09-17 17:18:45 STATE: test-backend-node-gpu.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"} -2022-09-17 17:18:45 STATE: test-backend-node-gpu.js passed: details face anti-spoofing 0.79 -2022-09-17 17:18:45 STATE: test-backend-node-gpu.js passed: details face liveness 0.83 -2022-09-17 17:18:45 STATE: test-backend-node-gpu.js passed: details body length 1 -2022-09-17 17:18:45 STATE: test-backend-node-gpu.js passed: details body 0.92 17 6 -2022-09-17 17:18:45 STATE: test-backend-node-gpu.js passed: details hand length 1 -2022-09-17 17:18:45 STATE: test-backend-node-gpu.js passed: details hand 0.51 0.73 point -2022-09-17 17:18:45 STATE: test-backend-node-gpu.js passed: details hand arrays 21 5 7 -2022-09-17 17:18:45 STATE: test-backend-node-gpu.js passed: details gesture length 7 -2022-09-17 17:18:45 STATE: test-backend-node-gpu.js passed: details gesture first {"face":0,"gesture":"facing right"} -2022-09-17 17:18:45 STATE: test-backend-node-gpu.js passed: details object length 1 -2022-09-17 17:18:45 STATE: test-backend-node-gpu.js passed: details object 0.72 person -2022-09-17 17:18:45 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996928} -2022-09-17 17:18:45 STATE: test-backend-node-gpu.js event: image -2022-09-17 17:18:45 STATE: test-backend-node-gpu.js event: detect -2022-09-17 17:18:45 STATE: test-backend-node-gpu.js passed: tensor shape: [1,1200,1200,4] dtype: float32 -2022-09-17 17:18:46 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1371996928} -2022-09-17 17:18:46 STATE: test-backend-node-gpu.js event: image -2022-09-17 17:18:46 STATE: test-backend-node-gpu.js event: detect -2022-09-17 17:18:46 STATE: test-backend-node-gpu.js passed: tensor shape: [1200,1200,4] dtype: float32 -2022-09-17 17:18:46 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-09-17 17:18:46 STATE: test-backend-node-gpu.js event: image -2022-09-17 17:18:46 STATE: test-backend-node-gpu.js event: detect -2022-09-17 17:18:46 STATE: test-backend-node-gpu.js passed: tensor shape: [1,1200,1200,3] dtype: float32 -2022-09-17 17:18:46 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1004796928} -2022-09-17 17:18:46 STATE: test-backend-node-gpu.js event: image -2022-09-17 17:18:46 STATE: test-backend-node-gpu.js event: detect -2022-09-17 17:18:46 STATE: test-backend-node-gpu.js passed: tensor shape: [1200,1200,3] dtype: float32 -2022-09-17 17:18:47 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871} -2022-09-17 17:18:47 STATE: test-backend-node-gpu.js event: image -2022-09-17 17:18:47 STATE: test-backend-node-gpu.js event: detect -2022-09-17 17:18:47 STATE: test-backend-node-gpu.js passed: tensor shape: [1,1200,1200,4] dtype: int32 -2022-09-17 17:18:47 INFO:  test-backend-node-gpu.js test default -2022-09-17 17:18:47 STATE: test-backend-node-gpu.js start async -2022-09-17 17:18:47 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-09-17 17:18:47 STATE: test-backend-node-gpu.js event: image -2022-09-17 17:18:47 STATE: test-backend-node-gpu.js event: detect -2022-09-17 17:18:47 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg async -2022-09-17 17:18:47 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-09-17 17:18:47 DATA:  test-backend-node-gpu.js result: performance: load: null total: 149 -2022-09-17 17:18:47 STATE: test-backend-node-gpu.js passed: default result face match 1 female 0.97 -2022-09-17 17:18:47 INFO:  test-backend-node-gpu.js test sync -2022-09-17 17:18:47 STATE: test-backend-node-gpu.js start sync -2022-09-17 17:18:47 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-09-17 17:18:47 STATE: test-backend-node-gpu.js event: image -2022-09-17 17:18:47 STATE: test-backend-node-gpu.js event: detect -2022-09-17 17:18:47 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg sync -2022-09-17 17:18:47 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-09-17 17:18:47 DATA:  test-backend-node-gpu.js result: performance: load: null total: 146 -2022-09-17 17:18:47 STATE: test-backend-node-gpu.js passed: default sync 1 female 0.97 -2022-09-17 17:18:47 INFO:  test-backend-node-gpu.js test: image process -2022-09-17 17:18:47 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-09-17 17:18:47 STATE: test-backend-node-gpu.js passed: image input null [1,256,256,3] -2022-09-17 17:18:47 INFO:  test-backend-node-gpu.js test: image null -2022-09-17 17:18:47 STATE: test-backend-node-gpu.js passed: invalid input could not convert input to tensor -2022-09-17 17:18:47 INFO:  test-backend-node-gpu.js test face similarity -2022-09-17 17:18:47 STATE: test-backend-node-gpu.js start face similarity -2022-09-17 17:18:47 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-09-17 17:18:47 STATE: test-backend-node-gpu.js event: image -2022-09-17 17:18:48 STATE: test-backend-node-gpu.js event: detect -2022-09-17 17:18:48 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-face.jpg face similarity -2022-09-17 17:18:48 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":3} -2022-09-17 17:18:48 DATA:  test-backend-node-gpu.js result: performance: load: null total: 174 -2022-09-17 17:18:48 STATE: test-backend-node-gpu.js start face similarity -2022-09-17 17:18:48 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-09-17 17:18:48 STATE: test-backend-node-gpu.js event: image -2022-09-17 17:18:48 STATE: test-backend-node-gpu.js event: detect -2022-09-17 17:18:48 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg face similarity -2022-09-17 17:18:48 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-09-17 17:18:48 DATA:  test-backend-node-gpu.js result: performance: load: null total: 154 -2022-09-17 17:18:48 STATE: test-backend-node-gpu.js start face similarity -2022-09-17 17:18:48 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} -2022-09-17 17:18:48 STATE: test-backend-node-gpu.js event: image -2022-09-17 17:18:48 STATE: test-backend-node-gpu.js event: detect -2022-09-17 17:18:48 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-upper.jpg face similarity -2022-09-17 17:18:48 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 4 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":7} -2022-09-17 17:18:48 DATA:  test-backend-node-gpu.js result: performance: load: null total: 149 -2022-09-17 17:18:48 STATE: test-backend-node-gpu.js passed: face descriptor -2022-09-17 17:18:48 STATE: test-backend-node-gpu.js passed: face similarity {"similarity":[1,0.447238756461232,0.556914029877052],"descriptors":[1024,1024,1024]} -2022-09-17 17:18:48 INFO:  test-backend-node-gpu.js test object -2022-09-17 17:18:48 STATE: test-backend-node-gpu.js start object -2022-09-17 17:18:48 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-09-17 17:18:48 STATE: test-backend-node-gpu.js event: image -2022-09-17 17:18:48 STATE: test-backend-node-gpu.js event: detect -2022-09-17 17:18:48 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg object -2022-09-17 17:18:48 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-09-17 17:18:48 DATA:  test-backend-node-gpu.js result: performance: load: null total: 155 -2022-09-17 17:18:48 STATE: test-backend-node-gpu.js passed: centernet -2022-09-17 17:18:48 STATE: test-backend-node-gpu.js start object -2022-09-17 17:18:51 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-09-17 17:18:51 STATE: test-backend-node-gpu.js event: image -2022-09-17 17:18:52 STATE: test-backend-node-gpu.js event: detect -2022-09-17 17:18:52 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg object -2022-09-17 17:18:52 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 3 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.86,"class":"person"} {"score":0.92,"keypoints":17} -2022-09-17 17:18:52 DATA:  test-backend-node-gpu.js result: performance: load: null total: 607 -2022-09-17 17:18:52 STATE: test-backend-node-gpu.js passed: nanodet -2022-09-17 17:18:52 INFO:  test-backend-node-gpu.js test sensitive -2022-09-17 17:18:52 STATE: test-backend-node-gpu.js start sensitive -2022-09-17 17:18:52 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-09-17 17:18:52 STATE: test-backend-node-gpu.js event: image -2022-09-17 17:18:52 STATE: test-backend-node-gpu.js event: detect -2022-09-17 17:18:52 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg sensitive -2022-09-17 17:18:52 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.92,"keypoints":17} -2022-09-17 17:18:52 DATA:  test-backend-node-gpu.js result: performance: load: null total: 129 -2022-09-17 17:18:52 STATE: test-backend-node-gpu.js passed: sensitive result match -2022-09-17 17:18:52 STATE: test-backend-node-gpu.js passed: sensitive face result match -2022-09-17 17:18:52 STATE: test-backend-node-gpu.js passed: sensitive face emotion result [{"score":0.59,"emotion":"angry"},{"score":0.29,"emotion":"fear"}] -2022-09-17 17:18:52 STATE: test-backend-node-gpu.js passed: sensitive body result match -2022-09-17 17:18:52 STATE: test-backend-node-gpu.js passed: sensitive hand result match -2022-09-17 17:18:52 INFO:  test-backend-node-gpu.js test body -2022-09-17 17:18:52 STATE: test-backend-node-gpu.js start blazepose -2022-09-17 17:18:57 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-09-17 17:18:57 STATE: test-backend-node-gpu.js event: image -2022-09-17 17:18:57 STATE: test-backend-node-gpu.js event: detect -2022-09-17 17:18:57 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg blazepose -2022-09-17 17:18:57 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.99,"keypoints":39} -2022-09-17 17:18:57 DATA:  test-backend-node-gpu.js result: performance: load: null total: 437 -2022-09-17 17:18:57 STATE: test-backend-node-gpu.js passed: blazepose -2022-09-17 17:18:57 STATE: test-backend-node-gpu.js start efficientpose -2022-09-17 17:19:01 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-09-17 17:19:01 STATE: test-backend-node-gpu.js event: image -2022-09-17 17:19:01 STATE: test-backend-node-gpu.js event: detect -2022-09-17 17:19:01 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg efficientpose -2022-09-17 17:19:01 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.75,"keypoints":13} -2022-09-17 17:19:01 DATA:  test-backend-node-gpu.js result: performance: load: null total: 812 -2022-09-17 17:19:01 STATE: test-backend-node-gpu.js passed: efficientpose -2022-09-17 17:19:01 STATE: test-backend-node-gpu.js start posenet -2022-09-17 17:19:05 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-09-17 17:19:05 STATE: test-backend-node-gpu.js event: image -2022-09-17 17:19:05 STATE: test-backend-node-gpu.js event: detect -2022-09-17 17:19:05 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg posenet -2022-09-17 17:19:05 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.96,"keypoints":16} -2022-09-17 17:19:05 DATA:  test-backend-node-gpu.js result: performance: load: null total: 240 -2022-09-17 17:19:05 STATE: test-backend-node-gpu.js passed: posenet -2022-09-17 17:19:05 STATE: test-backend-node-gpu.js start movenet -2022-09-17 17:19:05 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-09-17 17:19:05 STATE: test-backend-node-gpu.js event: image -2022-09-17 17:19:06 STATE: test-backend-node-gpu.js event: detect -2022-09-17 17:19:06 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg movenet -2022-09-17 17:19:06 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.92,"keypoints":17} -2022-09-17 17:19:06 DATA:  test-backend-node-gpu.js result: performance: load: null total: 196 -2022-09-17 17:19:06 STATE: test-backend-node-gpu.js passed: movenet -2022-09-17 17:19:06 INFO:  test-backend-node-gpu.js test face matching -2022-09-17 17:19:06 STATE: test-backend-node-gpu.js passed: face database 40 -2022-09-17 17:19:06 STATE: test-backend-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-09-17 17:19:06 INFO:  test-backend-node-gpu.js test face similarity alternative -2022-09-17 17:19:06 STATE: test-backend-node-gpu.js start face embeddings -2022-09-17 17:19:09 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-09-17 17:19:09 STATE: test-backend-node-gpu.js event: image -2022-09-17 17:19:09 STATE: test-backend-node-gpu.js event: detect -2022-09-17 17:19:09 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-face.jpg face embeddings -2022-09-17 17:19:09 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} -2022-09-17 17:19:09 DATA:  test-backend-node-gpu.js result: performance: load: null total: 212 -2022-09-17 17:19:09 STATE: test-backend-node-gpu.js passed: mobilefacenet {"embedding":192} -2022-09-17 17:19:09 STATE: test-backend-node-gpu.js start face embeddings -2022-09-17 17:19:12 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-09-17 17:19:12 STATE: test-backend-node-gpu.js event: image -2022-09-17 17:19:12 STATE: test-backend-node-gpu.js event: detect -2022-09-17 17:19:12 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-face.jpg face embeddings -2022-09-17 17:19:12 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} -2022-09-17 17:19:12 DATA:  test-backend-node-gpu.js result: performance: load: null total: 256 -2022-09-17 17:19:12 STATE: test-backend-node-gpu.js passed: insightface {"embedding":512} -2022-09-17 17:19:12 INFO:  test-backend-node-gpu.js test face attention -2022-09-17 17:19:12 STATE: test-backend-node-gpu.js start face attention -2022-09-17 17:19:14 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-09-17 17:19:14 STATE: test-backend-node-gpu.js event: image -2022-09-17 17:19:15 STATE: test-backend-node-gpu.js event: detect -2022-09-17 17:19:15 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-face.jpg face attention -2022-09-17 17:19:15 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} -2022-09-17 17:19:15 DATA:  test-backend-node-gpu.js result: performance: load: null total: 420 -2022-09-17 17:19:15 STATE: test-backend-node-gpu.js passed: face attention -2022-09-17 17:19:15 INFO:  test-backend-node-gpu.js test detectors -2022-09-17 17:19:15 STATE: test-backend-node-gpu.js start detectors -2022-09-17 17:19:15 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-09-17 17:19:15 STATE: test-backend-node-gpu.js event: image -2022-09-17 17:19:15 STATE: test-backend-node-gpu.js event: detect -2022-09-17 17:19:15 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg detectors -2022-09-17 17:19:15 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} -2022-09-17 17:19:15 DATA:  test-backend-node-gpu.js result: performance: load: null total: 118 -2022-09-17 17:19:15 STATE: test-backend-node-gpu.js passed: detector result face match -2022-09-17 17:19:15 STATE: test-backend-node-gpu.js passed: detector result hand match -2022-09-17 17:19:15 INFO:  test-backend-node-gpu.js test: multi-instance -2022-09-17 17:19:15 STATE: test-backend-node-gpu.js start multi instance -2022-09-17 17:19:15 STATE: test-backend-node-gpu.js event: image -2022-09-17 17:19:15 STATE: test-backend-node-gpu.js event: detect -2022-09-17 17:19:15 STATE: test-backend-node-gpu.js passed: detect: random multi instance -2022-09-17 17:19:15 DATA:  test-backend-node-gpu.js result: face: 0 body: 1 hand: 0 gesture: 0 object: 0 person: 0 {} {} {"score":0,"keypoints":0} -2022-09-17 17:19:15 DATA:  test-backend-node-gpu.js result: performance: load: null total: 79 -2022-09-17 17:19:15 INFO:  test-backend-node-gpu.js test: first instance -2022-09-17 17:19:15 STATE: test-backend-node-gpu.js start multi instance -2022-09-17 17:19:15 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} -2022-09-17 17:19:15 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-upper.jpg multi instance -2022-09-17 17:19:15 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-09-17 17:19:15 DATA:  test-backend-node-gpu.js result: performance: load: null total: 95 -2022-09-17 17:19:15 INFO:  test-backend-node-gpu.js test: second instance -2022-09-17 17:19:15 STATE: test-backend-node-gpu.js start multi instance -2022-09-17 17:19:15 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} -2022-09-17 17:19:15 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-upper.jpg multi instance -2022-09-17 17:19:15 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-09-17 17:19:15 DATA:  test-backend-node-gpu.js result: performance: load: null total: 58 -2022-09-17 17:19:15 INFO:  test-backend-node-gpu.js test: concurrent -2022-09-17 17:19:15 STATE: test-backend-node-gpu.js start concurrent -2022-09-17 17:19:15 STATE: test-backend-node-gpu.js start concurrent -2022-09-17 17:19:15 STATE: test-backend-node-gpu.js start concurrent -2022-09-17 17:19:15 STATE: test-backend-node-gpu.js start concurrent -2022-09-17 17:19:15 STATE: test-backend-node-gpu.js start concurrent -2022-09-17 17:19:15 STATE: test-backend-node-gpu.js start concurrent -2022-09-17 17:19:15 STATE: test-backend-node-gpu.js start concurrent -2022-09-17 17:19:15 STATE: test-backend-node-gpu.js start concurrent -2022-09-17 17:19:15 STATE: test-backend-node-gpu.js start concurrent -2022-09-17 17:19:15 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-09-17 17:19:15 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-09-17 17:19:16 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-09-17 17:19:16 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-09-17 17:19:16 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} -2022-09-17 17:19:16 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} -2022-09-17 17:19:16 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-09-17 17:19:16 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-09-17 17:19:16 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} -2022-09-17 17:19:16 STATE: test-backend-node-gpu.js event: image -2022-09-17 17:19:16 STATE: test-backend-node-gpu.js event: image -2022-09-17 17:19:16 STATE: test-backend-node-gpu.js event: image -2022-09-17 17:19:17 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-upper.jpg concurrent -2022-09-17 17:19:17 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-09-17 17:19:17 DATA:  test-backend-node-gpu.js result: performance: load: null total: 801 -2022-09-17 17:19:17 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-upper.jpg concurrent -2022-09-17 17:19:17 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-09-17 17:19:17 DATA:  test-backend-node-gpu.js result: performance: load: null total: 802 -2022-09-17 17:19:17 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-face.jpg concurrent -2022-09-17 17:19:17 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} -2022-09-17 17:19:17 DATA:  test-backend-node-gpu.js result: performance: load: null total: 802 -2022-09-17 17:19:17 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-face.jpg concurrent -2022-09-17 17:19:17 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} -2022-09-17 17:19:17 DATA:  test-backend-node-gpu.js result: performance: load: null total: 802 -2022-09-17 17:19:17 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg concurrent -2022-09-17 17:19:17 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} -2022-09-17 17:19:17 DATA:  test-backend-node-gpu.js result: performance: load: null total: 802 -2022-09-17 17:19:17 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg concurrent -2022-09-17 17:19:17 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} -2022-09-17 17:19:17 DATA:  test-backend-node-gpu.js result: performance: load: null total: 802 -2022-09-17 17:19:17 STATE: test-backend-node-gpu.js event: detect -2022-09-17 17:19:17 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-upper.jpg concurrent -2022-09-17 17:19:17 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-09-17 17:19:17 DATA:  test-backend-node-gpu.js result: performance: load: null total: 550 -2022-09-17 17:19:17 STATE: test-backend-node-gpu.js event: detect -2022-09-17 17:19:17 STATE: test-backend-node-gpu.js event: detect -2022-09-17 17:19:17 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-face.jpg concurrent -2022-09-17 17:19:17 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} -2022-09-17 17:19:17 DATA:  test-backend-node-gpu.js result: performance: load: null total: 550 -2022-09-17 17:19:17 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg concurrent -2022-09-17 17:19:17 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} -2022-09-17 17:19:17 DATA:  test-backend-node-gpu.js result: performance: load: null total: 550 -2022-09-17 17:19:17 INFO:  test-backend-node-gpu.js test: monkey-patch -2022-09-17 17:19:17 STATE: test-backend-node-gpu.js event: image -2022-09-17 17:19:17 STATE: test-backend-node-gpu.js event: detect -2022-09-17 17:19:17 STATE: test-backend-node-gpu.js passed: monkey patch -2022-09-17 17:19:17 STATE: test-backend-node-gpu.js passed: segmentation [65536] -2022-09-17 17:19:17 STATE: test-backend-node-gpu.js passeed: equal usage -2022-09-17 17:19:17 INFO:  test-backend-node-gpu.js test: input compare -2022-09-17 17:19:17 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-09-17 17:19:17 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-09-17 17:19:17 STATE: test-backend-node-gpu.js passed: image compare 0 23.275441687091504 -2022-09-17 17:19:17 INFO:  test-backend-node-gpu.js events: {"image":29,"detect":29,"warmup":2} -2022-09-17 17:19:17 INFO:  test-backend-node-gpu.js tensors 4147 -2022-09-17 17:19:17 INFO:  test-backend-node-gpu.js test complete: 38121 ms -2022-09-17 17:19:19 INFO:  -2022-09-17 17:19:19 INFO:  test-backend-node-wasm.js start -2022-09-17 17:19:19 DATA:  test-backend-node-wasm.js stdout: 2022-09-17 17:19:19 INFO:  { supported: true, backend: true, simd: true, multithread: false } -2022-09-17 17:19:19 STATE: test-backend-node-wasm.js passed: model server: https://vladmandic.github.io/human/models/ -2022-09-17 17:19:19 INFO:  test-backend-node-wasm.js test: configuration validation -2022-09-17 17:19:19 STATE: test-backend-node-wasm.js passed: configuration default validation [] -2022-09-17 17:19:19 STATE: test-backend-node-wasm.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}] -2022-09-17 17:19:19 INFO:  test-backend-node-wasm.js test: model load -2022-09-17 17:19:22 STATE: test-backend-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-09-17 17:19:22 INFO:  test-backend-node-wasm.js memory: {"memory":{"unreliable":false,"numTensors":1921,"numDataBuffers":1921,"numBytes":63673064}} -2022-09-17 17:19:22 INFO:  test-backend-node-wasm.js state: {"state":{"registeredVariables":{},"nextTapeNodeId":0,"numBytes":63673064,"numTensors":1921,"numStringTensors":0,"numDataBuffers":1921,"gradientDepth":0,"kernelDepth":0,"scopeStack":[],"numDataMovesStack":[],"nextScopeId":0,"tensorInfo":{},"profiling":false,"activeProfile":{"newBytes":0,"newTensors":0,"peakBytes":0,"kernels":[],"result":null,"kernelNames":[]}}} -2022-09-17 17:19:22 INFO:  test-backend-node-wasm.js test: warmup -2022-09-17 17:19:22 STATE: test-backend-node-wasm.js passed: create human -2022-09-17 17:19:22 INFO:  test-backend-node-wasm.js human version: 2.10.2 -2022-09-17 17:19:22 INFO:  test-backend-node-wasm.js platform: linux x64 agent: NodeJS v18.1.0 -2022-09-17 17:19:22 INFO:  test-backend-node-wasm.js tfjs version: 3.20.0 -2022-09-17 17:19:22 INFO:  test-backend-node-wasm.js env: {"browser":false,"node":true,"platform":"linux x64","agent":"NodeJS v18.1.0","backends":["cpu","wasm"],"initial":false,"tfjs":{"version":"3.20.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-09-17 17:19:22 STATE: test-backend-node-wasm.js passed: set backend: wasm -2022-09-17 17:19:22 STATE: test-backend-node-wasm.js tensors 1921 -2022-09-17 17:19:22 STATE: test-backend-node-wasm.js passed: load models -2022-09-17 17:19:22 STATE: test-backend-node-wasm.js result: defined models: 23 loaded models: 12 -2022-09-17 17:19:22 STATE: test-backend-node-wasm.js passed: warmup: none default -2022-09-17 17:19:22 DATA:  test-backend-node-wasm.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {} -2022-09-17 17:19:22 DATA:  test-backend-node-wasm.js result: performance: load: null total: null -2022-09-17 17:19:22 STATE: test-backend-node-wasm.js passed: warmup none result match -2022-09-17 17:19:22 STATE: test-backend-node-wasm.js event: image -2022-09-17 17:19:22 STATE: test-backend-node-wasm.js event: detect -2022-09-17 17:19:22 STATE: test-backend-node-wasm.js event: warmup -2022-09-17 17:19:22 STATE: test-backend-node-wasm.js passed: warmup: face default -2022-09-17 17:19:22 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":3} -2022-09-17 17:19:22 DATA:  test-backend-node-wasm.js result: performance: load: null total: 514 -2022-09-17 17:19:22 STATE: test-backend-node-wasm.js passed: warmup face result match -2022-09-17 17:19:22 STATE: test-backend-node-wasm.js event: image -2022-09-17 17:19:23 STATE: test-backend-node-wasm.js event: detect -2022-09-17 17:19:23 STATE: test-backend-node-wasm.js event: warmup -2022-09-17 17:19:23 STATE: test-backend-node-wasm.js passed: warmup: body default -2022-09-17 17:19:23 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-09-17 17:19:23 DATA:  test-backend-node-wasm.js result: performance: load: null total: 375 -2022-09-17 17:19:23 STATE: test-backend-node-wasm.js passed: warmup body result match -2022-09-17 17:19:23 STATE: test-backend-node-wasm.js details: {"face":{"boxScore":0.93,"faceScore":1,"age":23.7,"gender":"female","genderScore":0.97},"emotion":[{"score":0.59,"emotion":"angry"},{"score":0.29,"emotion":"fear"}],"body":{"score":0.92,"keypoints":17},"hand":{"boxScore":0.51,"fingerScore":0.73,"keypoints":21},"gestures":[{"face":0,"gesture":"facing right"},{"face":0,"gesture":"mouth 21% open"},{"hand":0,"gesture":"pinky forward"},{"hand":0,"gesture":"palm up"},{"hand":0,"gesture":"open palm"},{"iris":0,"gesture":"looking left"},{"iris":0,"gesture":"looking up"}]} -2022-09-17 17:19:23 INFO:  test-backend-node-wasm.js test: details verification -2022-09-17 17:19:23 STATE: test-backend-node-wasm.js start default -2022-09-17 17:19:23 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-09-17 17:19:23 STATE: test-backend-node-wasm.js event: image -2022-09-17 17:19:23 STATE: test-backend-node-wasm.js event: detect -2022-09-17 17:19:23 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg default -2022-09-17 17:19:23 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-09-17 17:19:23 DATA:  test-backend-node-wasm.js result: performance: load: null total: 326 -2022-09-17 17:19:23 STATE: test-backend-node-wasm.js passed: details face length 1 -2022-09-17 17:19:23 STATE: test-backend-node-wasm.js passed: details face score 1 0.93 1 -2022-09-17 17:19:23 STATE: test-backend-node-wasm.js passed: details face age/gender 23.7 female 0.97 85.47 -2022-09-17 17:19:23 STATE: test-backend-node-wasm.js passed: details face arrays 4 478 1024 -2022-09-17 17:19:23 STATE: test-backend-node-wasm.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"} -2022-09-17 17:19:23 STATE: test-backend-node-wasm.js passed: details face anti-spoofing 0.79 -2022-09-17 17:19:23 STATE: test-backend-node-wasm.js passed: details face liveness 0.83 -2022-09-17 17:19:23 STATE: test-backend-node-wasm.js passed: details body length 1 -2022-09-17 17:19:23 STATE: test-backend-node-wasm.js passed: details body 0.92 17 6 -2022-09-17 17:19:23 STATE: test-backend-node-wasm.js passed: details hand length 1 -2022-09-17 17:19:23 STATE: test-backend-node-wasm.js passed: details hand 0.51 0.73 point -2022-09-17 17:19:23 STATE: test-backend-node-wasm.js passed: details hand arrays 21 5 7 -2022-09-17 17:19:23 STATE: test-backend-node-wasm.js passed: details gesture length 7 -2022-09-17 17:19:23 STATE: test-backend-node-wasm.js passed: details gesture first {"face":0,"gesture":"facing right"} -2022-09-17 17:19:23 STATE: test-backend-node-wasm.js passed: details object length 1 -2022-09-17 17:19:23 STATE: test-backend-node-wasm.js passed: details object 0.72 person -2022-09-17 17:19:23 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1413675264} -2022-09-17 17:19:23 STATE: test-backend-node-wasm.js event: image -2022-09-17 17:19:24 STATE: test-backend-node-wasm.js event: detect -2022-09-17 17:19:24 STATE: test-backend-node-wasm.js passed: tensor shape: [1,1200,1200,4] dtype: float32 -2022-09-17 17:19:24 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1413675264} -2022-09-17 17:19:24 STATE: test-backend-node-wasm.js event: image -2022-09-17 17:19:24 STATE: test-backend-node-wasm.js event: detect -2022-09-17 17:19:24 STATE: test-backend-node-wasm.js passed: tensor shape: [1200,1200,4] dtype: float32 -2022-09-17 17:19:25 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-09-17 17:19:25 STATE: test-backend-node-wasm.js event: image -2022-09-17 17:19:25 STATE: test-backend-node-wasm.js event: detect -2022-09-17 17:19:25 STATE: test-backend-node-wasm.js passed: tensor shape: [1,1200,1200,3] dtype: float32 -2022-09-17 17:19:25 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1038921856} -2022-09-17 17:19:25 STATE: test-backend-node-wasm.js event: image -2022-09-17 17:19:25 STATE: test-backend-node-wasm.js event: detect -2022-09-17 17:19:25 STATE: test-backend-node-wasm.js passed: tensor shape: [1200,1200,3] dtype: float32 -2022-09-17 17:19:26 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871} -2022-09-17 17:19:26 STATE: test-backend-node-wasm.js event: image -2022-09-17 17:19:26 STATE: test-backend-node-wasm.js event: detect -2022-09-17 17:19:26 STATE: test-backend-node-wasm.js passed: tensor shape: [1,1200,1200,4] dtype: int32 -2022-09-17 17:19:26 INFO:  test-backend-node-wasm.js test default -2022-09-17 17:19:26 STATE: test-backend-node-wasm.js start async -2022-09-17 17:19:26 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-09-17 17:19:26 STATE: test-backend-node-wasm.js event: image -2022-09-17 17:19:26 STATE: test-backend-node-wasm.js event: detect -2022-09-17 17:19:26 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg async -2022-09-17 17:19:26 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-09-17 17:19:26 DATA:  test-backend-node-wasm.js result: performance: load: null total: 330 -2022-09-17 17:19:26 STATE: test-backend-node-wasm.js passed: default result face match 1 female 0.97 -2022-09-17 17:19:26 INFO:  test-backend-node-wasm.js test sync -2022-09-17 17:19:26 STATE: test-backend-node-wasm.js start sync -2022-09-17 17:19:27 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-09-17 17:19:27 STATE: test-backend-node-wasm.js event: image -2022-09-17 17:19:27 STATE: test-backend-node-wasm.js event: detect -2022-09-17 17:19:27 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg sync -2022-09-17 17:19:27 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-09-17 17:19:27 DATA:  test-backend-node-wasm.js result: performance: load: null total: 330 -2022-09-17 17:19:27 STATE: test-backend-node-wasm.js passed: default sync 1 female 0.97 -2022-09-17 17:19:27 INFO:  test-backend-node-wasm.js test: image process -2022-09-17 17:19:27 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-09-17 17:19:27 STATE: test-backend-node-wasm.js passed: image input null [1,256,256,3] -2022-09-17 17:19:27 INFO:  test-backend-node-wasm.js test: image null -2022-09-17 17:19:27 STATE: test-backend-node-wasm.js passed: invalid input could not convert input to tensor -2022-09-17 17:19:27 INFO:  test-backend-node-wasm.js test face similarity -2022-09-17 17:19:27 STATE: test-backend-node-wasm.js start face similarity -2022-09-17 17:19:27 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-09-17 17:19:27 STATE: test-backend-node-wasm.js event: image -2022-09-17 17:19:27 STATE: test-backend-node-wasm.js event: detect -2022-09-17 17:19:27 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-face.jpg face similarity -2022-09-17 17:19:27 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":3} -2022-09-17 17:19:27 DATA:  test-backend-node-wasm.js result: performance: load: null total: 300 -2022-09-17 17:19:27 STATE: test-backend-node-wasm.js start face similarity -2022-09-17 17:19:28 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-09-17 17:19:28 STATE: test-backend-node-wasm.js event: image -2022-09-17 17:19:28 STATE: test-backend-node-wasm.js event: detect -2022-09-17 17:19:28 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg face similarity -2022-09-17 17:19:28 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-09-17 17:19:28 DATA:  test-backend-node-wasm.js result: performance: load: null total: 320 -2022-09-17 17:19:28 STATE: test-backend-node-wasm.js start face similarity -2022-09-17 17:19:28 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} -2022-09-17 17:19:28 STATE: test-backend-node-wasm.js event: image -2022-09-17 17:19:28 STATE: test-backend-node-wasm.js event: detect -2022-09-17 17:19:28 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-upper.jpg face similarity -2022-09-17 17:19:28 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 4 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":7} -2022-09-17 17:19:28 DATA:  test-backend-node-wasm.js result: performance: load: null total: 287 -2022-09-17 17:19:28 STATE: test-backend-node-wasm.js passed: face descriptor -2022-09-17 17:19:28 STATE: test-backend-node-wasm.js passed: face similarity {"similarity":[1,0.5266119940661309,0.4858842904087851],"descriptors":[1024,1024,1024]} -2022-09-17 17:19:28 INFO:  test-backend-node-wasm.js test object -2022-09-17 17:19:28 STATE: test-backend-node-wasm.js start object -2022-09-17 17:19:29 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-09-17 17:19:29 STATE: test-backend-node-wasm.js event: image -2022-09-17 17:19:29 STATE: test-backend-node-wasm.js event: detect -2022-09-17 17:19:29 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg object -2022-09-17 17:19:29 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-09-17 17:19:29 DATA:  test-backend-node-wasm.js result: performance: load: null total: 330 -2022-09-17 17:19:29 STATE: test-backend-node-wasm.js passed: centernet -2022-09-17 17:19:29 STATE: test-backend-node-wasm.js start object -2022-09-17 17:19:30 WARN:  test-backend-node-wasm.js missing kernel ops {"title":"object","model":"nanodet","url":"https://vladmandic.github.io/human-models/models/nanodet.json","missing":["sparsetodense"],"backkend":"wasm"} -2022-09-17 17:19:30 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-09-17 17:19:30 STATE: test-backend-node-wasm.js event: image -2022-09-17 17:19:30 STATE: test-backend-node-wasm.js event: detect -2022-09-17 17:19:30 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg object -2022-09-17 17:19:30 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 0 person: 1 {"score":1,"age":29.6,"gender":"female"} {} {"score":0.92,"keypoints":17} -2022-09-17 17:19:30 DATA:  test-backend-node-wasm.js result: performance: load: null total: 235 -2022-09-17 17:19:30 ERROR: test-backend-node-wasm.js failed: nanodet [] -2022-09-17 17:19:30 INFO:  test-backend-node-wasm.js test sensitive -2022-09-17 17:19:30 STATE: test-backend-node-wasm.js start sensitive -2022-09-17 17:19:30 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-09-17 17:19:30 STATE: test-backend-node-wasm.js event: image -2022-09-17 17:19:31 STATE: test-backend-node-wasm.js event: detect -2022-09-17 17:19:31 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg sensitive -2022-09-17 17:19:31 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 10 object: 0 person: 1 {"score":1,"age":29.6,"gender":"female"} {} {"score":0.92,"keypoints":17} -2022-09-17 17:19:31 DATA:  test-backend-node-wasm.js result: performance: load: null total: 271 -2022-09-17 17:19:31 STATE: test-backend-node-wasm.js passed: sensitive result match -2022-09-17 17:19:31 STATE: test-backend-node-wasm.js passed: sensitive face result match -2022-09-17 17:19:31 STATE: test-backend-node-wasm.js passed: sensitive face emotion result [{"score":0.46,"emotion":"neutral"},{"score":0.24,"emotion":"fear"},{"score":0.17,"emotion":"sad"}] -2022-09-17 17:19:31 STATE: test-backend-node-wasm.js passed: sensitive body result match -2022-09-17 17:19:31 STATE: test-backend-node-wasm.js passed: sensitive hand result match -2022-09-17 17:19:31 INFO:  test-backend-node-wasm.js test body -2022-09-17 17:19:31 STATE: test-backend-node-wasm.js start blazepose -2022-09-17 17:19:33 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-09-17 17:19:33 STATE: test-backend-node-wasm.js event: image -2022-09-17 17:19:33 STATE: test-backend-node-wasm.js event: detect -2022-09-17 17:19:33 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg blazepose -2022-09-17 17:19:33 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 10 object: 0 person: 1 {"score":1,"age":29.6,"gender":"female"} {} {"score":0.99,"keypoints":39} -2022-09-17 17:19:33 DATA:  test-backend-node-wasm.js result: performance: load: null total: 434 -2022-09-17 17:19:33 STATE: test-backend-node-wasm.js passed: blazepose -2022-09-17 17:19:33 STATE: test-backend-node-wasm.js start efficientpose -2022-09-17 17:19:34 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-09-17 17:19:34 STATE: test-backend-node-wasm.js event: image -2022-09-17 17:19:35 STATE: test-backend-node-wasm.js event: detect -2022-09-17 17:19:35 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg efficientpose -2022-09-17 17:19:35 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 10 object: 0 person: 1 {"score":1,"age":29.6,"gender":"female"} {} {"score":0.75,"keypoints":13} -2022-09-17 17:19:35 DATA:  test-backend-node-wasm.js result: performance: load: null total: 754 -2022-09-17 17:19:35 STATE: test-backend-node-wasm.js passed: efficientpose -2022-09-17 17:19:35 STATE: test-backend-node-wasm.js start posenet -2022-09-17 17:19:35 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-09-17 17:19:35 STATE: test-backend-node-wasm.js event: image -2022-09-17 17:19:36 STATE: test-backend-node-wasm.js event: detect -2022-09-17 17:19:36 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg posenet -2022-09-17 17:19:36 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 10 object: 0 person: 1 {"score":1,"age":29.6,"gender":"female"} {} {"score":0.96,"keypoints":16} -2022-09-17 17:19:36 DATA:  test-backend-node-wasm.js result: performance: load: null total: 291 -2022-09-17 17:19:36 STATE: test-backend-node-wasm.js passed: posenet -2022-09-17 17:19:36 STATE: test-backend-node-wasm.js start movenet -2022-09-17 17:19:36 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-09-17 17:19:36 STATE: test-backend-node-wasm.js event: image -2022-09-17 17:19:36 STATE: test-backend-node-wasm.js event: detect -2022-09-17 17:19:36 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg movenet -2022-09-17 17:19:36 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 10 object: 0 person: 1 {"score":1,"age":29.6,"gender":"female"} {} {"score":0.92,"keypoints":17} -2022-09-17 17:19:36 DATA:  test-backend-node-wasm.js result: performance: load: null total: 239 -2022-09-17 17:19:36 STATE: test-backend-node-wasm.js passed: movenet -2022-09-17 17:19:36 INFO:  test-backend-node-wasm.js test face matching -2022-09-17 17:19:36 STATE: test-backend-node-wasm.js passed: face database 40 -2022-09-17 17:19:36 STATE: test-backend-node-wasm.js passed: face match {"first":{"index":4,"similarity":0.7827852754786533}} {"second":{"index":4,"similarity":0.5660821189104794}} {"third":{"index":4,"similarity":0.45074189882665594}} -2022-09-17 17:19:36 INFO:  test-backend-node-wasm.js test face similarity alternative -2022-09-17 17:19:36 STATE: test-backend-node-wasm.js start face embeddings -2022-09-17 17:19:36 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-09-17 17:19:36 STATE: test-backend-node-wasm.js event: image -2022-09-17 17:19:37 STATE: test-backend-node-wasm.js event: detect -2022-09-17 17:19:37 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-face.jpg face embeddings -2022-09-17 17:19:37 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} -2022-09-17 17:19:37 DATA:  test-backend-node-wasm.js result: performance: load: null total: 241 -2022-09-17 17:19:37 STATE: test-backend-node-wasm.js passed: mobilefacenet {"embedding":192} -2022-09-17 17:19:37 STATE: test-backend-node-wasm.js start face embeddings -2022-09-17 17:19:37 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-09-17 17:19:37 STATE: test-backend-node-wasm.js event: image -2022-09-17 17:19:38 STATE: test-backend-node-wasm.js event: detect -2022-09-17 17:19:38 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-face.jpg face embeddings -2022-09-17 17:19:38 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} -2022-09-17 17:19:38 DATA:  test-backend-node-wasm.js result: performance: load: null total: 280 -2022-09-17 17:19:38 STATE: test-backend-node-wasm.js passed: insightface {"embedding":512} -2022-09-17 17:19:38 INFO:  test-backend-node-wasm.js test face attention -2022-09-17 17:19:38 STATE: test-backend-node-wasm.js start face attention -2022-09-17 17:19:38 WARN:  test-backend-node-wasm.js missing kernel ops {"title":"face attention","model":"facemesh","url":"https://vladmandic.github.io/human-models/models/facemesh-attention.json","missing":["atan2"],"backkend":"wasm"} -2022-09-17 17:19:38 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-09-17 17:19:38 STATE: test-backend-node-wasm.js event: image -2022-09-17 17:19:38 STATE: test-backend-node-wasm.js event: detect -2022-09-17 17:19:38 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-face.jpg face attention -2022-09-17 17:19:38 DATA:  test-backend-node-wasm.js result: face: 0 body: 1 hand: 1 gesture: 2 object: 0 person: 0 {} {} {"score":0.47,"keypoints":3} -2022-09-17 17:19:38 DATA:  test-backend-node-wasm.js result: performance: load: null total: 118 -2022-09-17 17:19:38 ERROR: test-backend-node-wasm.js failed: face attention {"annotations":0} -2022-09-17 17:19:38 INFO:  test-backend-node-wasm.js test detectors -2022-09-17 17:19:38 STATE: test-backend-node-wasm.js start detectors -2022-09-17 17:19:38 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-09-17 17:19:38 STATE: test-backend-node-wasm.js event: image -2022-09-17 17:19:38 STATE: test-backend-node-wasm.js event: detect -2022-09-17 17:19:38 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg detectors -2022-09-17 17:19:38 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} -2022-09-17 17:19:38 DATA:  test-backend-node-wasm.js result: performance: load: null total: 115 -2022-09-17 17:19:38 STATE: test-backend-node-wasm.js passed: detector result face match -2022-09-17 17:19:38 STATE: test-backend-node-wasm.js passed: detector result hand match -2022-09-17 17:19:38 INFO:  test-backend-node-wasm.js test: multi-instance -2022-09-17 17:19:38 STATE: test-backend-node-wasm.js start multi instance -2022-09-17 17:19:38 STATE: test-backend-node-wasm.js event: image -2022-09-17 17:19:38 STATE: test-backend-node-wasm.js event: detect -2022-09-17 17:19:38 STATE: test-backend-node-wasm.js passed: detect: random multi instance -2022-09-17 17:19:38 DATA:  test-backend-node-wasm.js result: face: 0 body: 1 hand: 0 gesture: 0 object: 0 person: 0 {} {} {"score":0,"keypoints":0} -2022-09-17 17:19:38 DATA:  test-backend-node-wasm.js result: performance: load: null total: 93 -2022-09-17 17:19:38 INFO:  test-backend-node-wasm.js test: first instance -2022-09-17 17:19:38 STATE: test-backend-node-wasm.js start multi instance -2022-09-17 17:19:39 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} -2022-09-17 17:19:39 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-upper.jpg multi instance -2022-09-17 17:19:39 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-09-17 17:19:39 DATA:  test-backend-node-wasm.js result: performance: load: null total: 117 -2022-09-17 17:19:39 INFO:  test-backend-node-wasm.js test: second instance -2022-09-17 17:19:39 STATE: test-backend-node-wasm.js start multi instance -2022-09-17 17:19:39 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} -2022-09-17 17:19:39 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-upper.jpg multi instance -2022-09-17 17:19:39 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-09-17 17:19:39 DATA:  test-backend-node-wasm.js result: performance: load: null total: 110 -2022-09-17 17:19:39 INFO:  test-backend-node-wasm.js test: concurrent -2022-09-17 17:19:39 STATE: test-backend-node-wasm.js start concurrent -2022-09-17 17:19:39 STATE: test-backend-node-wasm.js start concurrent -2022-09-17 17:19:39 STATE: test-backend-node-wasm.js start concurrent -2022-09-17 17:19:39 STATE: test-backend-node-wasm.js start concurrent -2022-09-17 17:19:39 STATE: test-backend-node-wasm.js start concurrent -2022-09-17 17:19:39 STATE: test-backend-node-wasm.js start concurrent -2022-09-17 17:19:39 STATE: test-backend-node-wasm.js start concurrent -2022-09-17 17:19:39 STATE: test-backend-node-wasm.js start concurrent -2022-09-17 17:19:39 STATE: test-backend-node-wasm.js start concurrent -2022-09-17 17:19:39 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-09-17 17:19:39 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-09-17 17:19:39 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-09-17 17:19:39 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-09-17 17:19:39 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} -2022-09-17 17:19:40 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} -2022-09-17 17:19:40 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-09-17 17:19:40 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-09-17 17:19:40 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} -2022-09-17 17:19:40 STATE: test-backend-node-wasm.js event: image -2022-09-17 17:19:40 STATE: test-backend-node-wasm.js event: image -2022-09-17 17:19:40 STATE: test-backend-node-wasm.js event: image -2022-09-17 17:19:41 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-upper.jpg concurrent -2022-09-17 17:19:41 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-09-17 17:19:41 DATA:  test-backend-node-wasm.js result: performance: load: null total: 1280 -2022-09-17 17:19:41 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-upper.jpg concurrent -2022-09-17 17:19:41 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-09-17 17:19:41 DATA:  test-backend-node-wasm.js result: performance: load: null total: 1280 -2022-09-17 17:19:41 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-face.jpg concurrent -2022-09-17 17:19:41 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} -2022-09-17 17:19:41 DATA:  test-backend-node-wasm.js result: performance: load: null total: 1281 -2022-09-17 17:19:41 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-face.jpg concurrent -2022-09-17 17:19:41 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} -2022-09-17 17:19:41 DATA:  test-backend-node-wasm.js result: performance: load: null total: 1281 -2022-09-17 17:19:41 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg concurrent -2022-09-17 17:19:41 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} -2022-09-17 17:19:41 DATA:  test-backend-node-wasm.js result: performance: load: null total: 1281 -2022-09-17 17:19:41 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg concurrent -2022-09-17 17:19:41 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} -2022-09-17 17:19:41 DATA:  test-backend-node-wasm.js result: performance: load: null total: 1281 -2022-09-17 17:19:41 STATE: test-backend-node-wasm.js event: detect -2022-09-17 17:19:41 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-upper.jpg concurrent -2022-09-17 17:19:41 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} -2022-09-17 17:19:41 DATA:  test-backend-node-wasm.js result: performance: load: null total: 957 -2022-09-17 17:19:41 STATE: test-backend-node-wasm.js event: detect -2022-09-17 17:19:41 STATE: test-backend-node-wasm.js event: detect -2022-09-17 17:19:41 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-face.jpg concurrent -2022-09-17 17:19:41 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} -2022-09-17 17:19:41 DATA:  test-backend-node-wasm.js result: performance: load: null total: 958 -2022-09-17 17:19:41 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg concurrent -2022-09-17 17:19:41 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} -2022-09-17 17:19:41 DATA:  test-backend-node-wasm.js result: performance: load: null total: 958 -2022-09-17 17:19:41 INFO:  test-backend-node-wasm.js test: monkey-patch -2022-09-17 17:19:41 STATE: test-backend-node-wasm.js event: image -2022-09-17 17:19:41 STATE: test-backend-node-wasm.js event: detect -2022-09-17 17:19:41 STATE: test-backend-node-wasm.js passed: monkey patch -2022-09-17 17:19:41 STATE: test-backend-node-wasm.js passed: segmentation [65536] -2022-09-17 17:19:41 STATE: test-backend-node-wasm.js passeed: equal usage -2022-09-17 17:19:41 INFO:  test-backend-node-wasm.js test: input compare -2022-09-17 17:19:41 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-09-17 17:19:41 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-09-17 17:19:41 STATE: test-backend-node-wasm.js passed: image compare 0 23.280073018790848 -2022-09-17 17:19:41 INFO:  test-backend-node-wasm.js events: {"image":29,"detect":29,"warmup":2} -2022-09-17 17:19:41 INFO:  test-backend-node-wasm.js tensors 4149 -2022-09-17 17:19:41 INFO:  test-backend-node-wasm.js test complete: 21846 ms -2022-09-17 17:19:41 STATE: all tests complete -2022-09-17 17:19:41 INFO:  status {"test":"../demo/nodejs/node.js","passed":1,"failed":0} -2022-09-17 17:19:41 INFO:  status {"test":"../demo/nodejs/node-simple.js","passed":1,"failed":0} -2022-09-17 17:19:41 INFO:  status {"test":"../demo/nodejs/node-fetch.js","passed":1,"failed":0} -2022-09-17 17:19:41 INFO:  status {"test":"../demo/nodejs/node-event.js","passed":1,"failed":0} -2022-09-17 17:19:41 INFO:  status {"test":"../demo/nodejs/node-similarity.js","passed":1,"failed":0} -2022-09-17 17:19:41 INFO:  status {"test":"../demo/nodejs/node-canvas.js","passed":1,"failed":0} -2022-09-17 17:19:41 INFO:  status {"test":"../demo/multithread/node-multiprocess.js","passed":1,"failed":0} -2022-09-17 17:19:41 INFO:  status {"test":"../demo/facematch/node-match.js","passed":1,"failed":0} -2022-09-17 17:19:41 INFO:  status {"test":"test-node-load.js","passed":1,"failed":0} -2022-09-17 17:19:41 INFO:  status {"test":"test-node-gear.js","passed":3,"failed":0} -2022-09-17 17:19:41 INFO:  status {"test":"test-backend-node.js","passed":125,"failed":0} -2022-09-17 17:19:41 INFO:  status {"test":"test-backend-node-gpu.js","passed":125,"failed":0} -2022-09-17 17:19:41 INFO:  status {"test":"test-backend-node-wasm.js","passed":124,"failed":2} -2022-09-17 17:19:41 INFO:  failures {"count":2} -2022-09-17 17:19:41 WARN:  failed {"test":"test-backend-node-wasm.js","message":["error",["failed: nanodet",[]]]} -2022-09-17 17:19:41 WARN:  failed {"test":"test-backend-node-wasm.js","message":["error",["failed: face attention",{"annotations":0}]]} +2022-09-19 10:41:04 INFO:  @vladmandic/human version 2.10.2 +2022-09-19 10:41:04 INFO:  User: vlado Platform: linux Arch: x64 Node: v18.1.0 +2022-09-19 10:41:04 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/nodejs/process-folder.js","args":["samples"]},{"cmd":"../demo/multithread/node-multiprocess.js","args":[]},{"cmd":"../demo/facematch/node-match.js","args":[]}] +2022-09-19 10:41:04 INFO:  {"cmd":"../demo/nodejs/node.js","args":[]} start +2022-09-19 10:41:05 INFO:  {"cmd":"../demo/nodejs/node-simple.js","args":[]} start +2022-09-19 10:41:05 INFO:  {"cmd":"../demo/nodejs/node-fetch.js","args":[]} start +2022-09-19 10:41:08 INFO:  {"cmd":"../demo/nodejs/node-event.js","args":["samples/in/ai-body.jpg"]} start +2022-09-19 10:41:08 INFO:  {"cmd":"../demo/nodejs/node-similarity.js","args":["samples/in/ai-face.jpg","samples/in/ai-upper.jpg"]} start +2022-09-19 10:41:09 INFO:  {"cmd":"../demo/nodejs/node-canvas.js","args":["samples/in/ai-body.jpg","samples/out/ai-body.jpg"]} start +2022-09-19 10:41:10 INFO:  {"cmd":"../demo/nodejs/process-folder.js","args":["samples"]} start +2022-09-19 10:41:11 INFO:  {"cmd":"../demo/multithread/node-multiprocess.js","args":[]} start +2022-09-19 10:41:22 INFO:  {"cmd":"../demo/facematch/node-match.js","args":[]} start +2022-09-19 10:41:24 INFO:  tests: ["test-node-load.js","test-node-gear.js","test-backend-node.js","test-backend-node-gpu.js","test-backend-node-wasm.js"] +2022-09-19 10:41:24 INFO:  +2022-09-19 10:41:24 INFO:  test-node-load.js start +2022-09-19 10:41:24 INFO:  test-node-load.js load start {"human":"2.10.2","tf":"3.20.0","progress":0} +2022-09-19 10:41:24 DATA:  test-node-load.js load interval {"elapsed":0,"progress":0} +2022-09-19 10:41:24 DATA:  test-node-load.js load interval {"elapsed":14,"progress":0} +2022-09-19 10:41:24 DATA:  test-node-load.js load interval {"elapsed":23,"progress":0.05339166087267679} +2022-09-19 10:41:24 DATA:  test-node-load.js load interval {"elapsed":34,"progress":0.2135162934143239} +2022-09-19 10:41:24 DATA:  test-node-load.js load interval {"elapsed":61,"progress":0.3299591712723044} +2022-09-19 10:41:24 DATA:  test-node-load.js load interval {"elapsed":83,"progress":0.5125946867158943} +2022-09-19 10:41:24 STATE: test-node-load.js passed {"progress":1} +2022-09-19 10:41:24 INFO:  test-node-load.js load final {"progress":1} +2022-09-19 10:41:24 DATA:  test-node-load.js load interval {"elapsed":375,"progress":1} +2022-09-19 10:41:24 INFO:  +2022-09-19 10:41:24 INFO:  test-node-gear.js start +2022-09-19 10:41:24 DATA:  test-node-gear.js input: ["samples/in/ai-face.jpg"] +2022-09-19 10:41:26 STATE: test-node-gear.js passed: gear faceres samples/in/ai-face.jpg +2022-09-19 10:41:26 DATA:  test-node-gear.js results {"face":0,"model":"faceres","image":"samples/in/ai-face.jpg","age":23.5,"gender":"female","genderScore":0.92} +2022-09-19 10:41:26 STATE: test-node-gear.js passed: gear gear samples/in/ai-face.jpg +2022-09-19 10:41:26 DATA:  test-node-gear.js results {"face":0,"model":"gear","image":"samples/in/ai-face.jpg","age":23.3,"gender":"female","genderScore":0.51,"race":[{"score":0.93,"race":"white"}]} +2022-09-19 10:41:26 STATE: test-node-gear.js passed: gear ssrnet samples/in/ai-face.jpg +2022-09-19 10:41:26 DATA:  test-node-gear.js results {"face":0,"model":"ssrnet","image":"samples/in/ai-face.jpg","age":23.4,"gender":"female","genderScore":0.99} +2022-09-19 10:41:26 INFO:  +2022-09-19 10:41:26 INFO:  test-backend-node.js start +2022-09-19 10:41:26 INFO:  test-backend-node.js test: configuration validation +2022-09-19 10:41:26 STATE: test-backend-node.js passed: configuration default validation [] +2022-09-19 10:41:26 STATE: test-backend-node.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}] +2022-09-19 10:41:26 INFO:  test-backend-node.js test: model load +2022-09-19 10:41:26 STATE: test-backend-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-09-19 10:41:26 INFO:  test-backend-node.js memory: {"memory":{"unreliable":true,"numTensors":1921,"numDataBuffers":1921,"numBytes":63673064}} +2022-09-19 10:41:26 INFO:  test-backend-node.js state: {"state":{"registeredVariables":{},"nextTapeNodeId":0,"numBytes":63673064,"numTensors":1921,"numStringTensors":0,"numDataBuffers":1921,"gradientDepth":0,"kernelDepth":0,"scopeStack":[],"numDataMovesStack":[],"nextScopeId":0,"tensorInfo":{},"profiling":false,"activeProfile":{"newBytes":0,"newTensors":0,"peakBytes":0,"kernels":[],"result":null,"kernelNames":[]}}} +2022-09-19 10:41:26 INFO:  test-backend-node.js test: warmup +2022-09-19 10:41:26 STATE: test-backend-node.js passed: create human +2022-09-19 10:41:26 INFO:  test-backend-node.js human version: 2.10.2 +2022-09-19 10:41:26 INFO:  test-backend-node.js platform: linux x64 agent: NodeJS v18.1.0 +2022-09-19 10:41:26 INFO:  test-backend-node.js tfjs version: 3.20.0 +2022-09-19 10:41:26 INFO:  test-backend-node.js env: {"browser":false,"node":true,"platform":"linux x64","agent":"NodeJS v18.1.0","backends":["cpu","tensorflow"],"initial":false,"tfjs":{"version":"3.20.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-09-19 10:41:26 STATE: test-backend-node.js passed: set backend: tensorflow +2022-09-19 10:41:26 STATE: test-backend-node.js tensors 1921 +2022-09-19 10:41:26 STATE: test-backend-node.js passed: load models +2022-09-19 10:41:26 STATE: test-backend-node.js result: defined models: 23 loaded models: 12 +2022-09-19 10:41:26 STATE: test-backend-node.js passed: warmup: none default +2022-09-19 10:41:26 DATA:  test-backend-node.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {} +2022-09-19 10:41:26 DATA:  test-backend-node.js result: performance: load: null total: null +2022-09-19 10:41:26 STATE: test-backend-node.js passed: warmup none result match +2022-09-19 10:41:26 STATE: test-backend-node.js event: image +2022-09-19 10:41:26 STATE: test-backend-node.js event: detect +2022-09-19 10:41:26 STATE: test-backend-node.js event: warmup +2022-09-19 10:41:26 STATE: test-backend-node.js passed: warmup: face default +2022-09-19 10:41:26 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.42,"keypoints":4} +2022-09-19 10:41:26 DATA:  test-backend-node.js result: performance: load: null total: 349 +2022-09-19 10:41:26 STATE: test-backend-node.js passed: warmup face result match +2022-09-19 10:41:26 STATE: test-backend-node.js event: image +2022-09-19 10:41:27 STATE: test-backend-node.js event: detect +2022-09-19 10:41:27 STATE: test-backend-node.js event: warmup +2022-09-19 10:41:27 STATE: test-backend-node.js passed: warmup: body default +2022-09-19 10:41:27 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-09-19 10:41:27 DATA:  test-backend-node.js result: performance: load: null total: 259 +2022-09-19 10:41:27 STATE: test-backend-node.js passed: warmup body result match +2022-09-19 10:41:27 STATE: test-backend-node.js details: {"face":{"boxScore":0.92,"faceScore":1,"age":23.7,"gender":"female","genderScore":0.97},"emotion":[{"score":0.63,"emotion":"angry"},{"score":0.22,"emotion":"fear"}],"body":{"score":0.92,"keypoints":17},"hand":{"boxScore":0.52,"fingerScore":0.73,"keypoints":21},"gestures":[{"face":0,"gesture":"facing right"},{"face":0,"gesture":"mouth 10% open"},{"hand":0,"gesture":"pinky forward"},{"hand":0,"gesture":"palm up"},{"hand":0,"gesture":"open palm"},{"iris":0,"gesture":"looking left"},{"iris":0,"gesture":"looking up"}]} +2022-09-19 10:41:27 INFO:  test-backend-node.js test: details verification +2022-09-19 10:41:27 STATE: test-backend-node.js start default +2022-09-19 10:41:27 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-09-19 10:41:27 STATE: test-backend-node.js event: image +2022-09-19 10:41:27 STATE: test-backend-node.js event: detect +2022-09-19 10:41:27 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg default +2022-09-19 10:41:27 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-09-19 10:41:27 DATA:  test-backend-node.js result: performance: load: null total: 243 +2022-09-19 10:41:27 STATE: test-backend-node.js passed: details face length 1 +2022-09-19 10:41:27 STATE: test-backend-node.js passed: details face score 1 0.93 1 +2022-09-19 10:41:27 STATE: test-backend-node.js passed: details face age/gender 23.7 female 0.97 85.47 +2022-09-19 10:41:27 STATE: test-backend-node.js passed: details face arrays 4 478 1024 +2022-09-19 10:41:27 STATE: test-backend-node.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"} +2022-09-19 10:41:27 STATE: test-backend-node.js passed: details face anti-spoofing 0.79 +2022-09-19 10:41:27 STATE: test-backend-node.js passed: details face liveness 0.83 +2022-09-19 10:41:27 STATE: test-backend-node.js passed: details body length 1 +2022-09-19 10:41:27 STATE: test-backend-node.js passed: details body 0.92 17 6 +2022-09-19 10:41:27 STATE: test-backend-node.js passed: details hand length 1 +2022-09-19 10:41:27 STATE: test-backend-node.js passed: details hand 0.51 0.73 point +2022-09-19 10:41:27 STATE: test-backend-node.js passed: details hand arrays 21 5 7 +2022-09-19 10:41:27 STATE: test-backend-node.js passed: details gesture length 7 +2022-09-19 10:41:27 STATE: test-backend-node.js passed: details gesture first {"face":0,"gesture":"facing right"} +2022-09-19 10:41:27 STATE: test-backend-node.js passed: details object length 1 +2022-09-19 10:41:27 STATE: test-backend-node.js passed: details object 0.72 person +2022-09-19 10:41:27 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996928} +2022-09-19 10:41:27 STATE: test-backend-node.js event: image +2022-09-19 10:41:27 STATE: test-backend-node.js event: detect +2022-09-19 10:41:27 STATE: test-backend-node.js passed: tensor shape: [1,1200,1200,4] dtype: float32 +2022-09-19 10:41:28 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1371996928} +2022-09-19 10:41:28 STATE: test-backend-node.js event: image +2022-09-19 10:41:28 STATE: test-backend-node.js event: detect +2022-09-19 10:41:28 STATE: test-backend-node.js passed: tensor shape: [1200,1200,4] dtype: float32 +2022-09-19 10:41:28 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-09-19 10:41:28 STATE: test-backend-node.js event: image +2022-09-19 10:41:28 STATE: test-backend-node.js event: detect +2022-09-19 10:41:28 STATE: test-backend-node.js passed: tensor shape: [1,1200,1200,3] dtype: float32 +2022-09-19 10:41:28 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1004796864} +2022-09-19 10:41:28 STATE: test-backend-node.js event: image +2022-09-19 10:41:29 STATE: test-backend-node.js event: detect +2022-09-19 10:41:29 STATE: test-backend-node.js passed: tensor shape: [1200,1200,3] dtype: float32 +2022-09-19 10:41:29 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871} +2022-09-19 10:41:29 STATE: test-backend-node.js event: image +2022-09-19 10:41:29 STATE: test-backend-node.js event: detect +2022-09-19 10:41:29 STATE: test-backend-node.js passed: tensor shape: [1,1200,1200,4] dtype: int32 +2022-09-19 10:41:29 INFO:  test-backend-node.js test default +2022-09-19 10:41:29 STATE: test-backend-node.js start async +2022-09-19 10:41:29 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-09-19 10:41:29 STATE: test-backend-node.js event: image +2022-09-19 10:41:29 STATE: test-backend-node.js event: detect +2022-09-19 10:41:29 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg async +2022-09-19 10:41:29 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-09-19 10:41:29 DATA:  test-backend-node.js result: performance: load: null total: 233 +2022-09-19 10:41:29 STATE: test-backend-node.js passed: default result face match 1 female 0.97 +2022-09-19 10:41:29 INFO:  test-backend-node.js test sync +2022-09-19 10:41:29 STATE: test-backend-node.js start sync +2022-09-19 10:41:30 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-09-19 10:41:30 STATE: test-backend-node.js event: image +2022-09-19 10:41:30 STATE: test-backend-node.js event: detect +2022-09-19 10:41:30 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg sync +2022-09-19 10:41:30 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-09-19 10:41:30 DATA:  test-backend-node.js result: performance: load: null total: 238 +2022-09-19 10:41:30 STATE: test-backend-node.js passed: default sync 1 female 0.97 +2022-09-19 10:41:30 INFO:  test-backend-node.js test: image process +2022-09-19 10:41:30 STATE: test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-09-19 10:41:30 STATE: test-backend-node.js passed: image input null [1,256,256,3] +2022-09-19 10:41:30 INFO:  test-backend-node.js test: image null +2022-09-19 10:41:30 STATE: test-backend-node.js passed: invalid input could not convert input to tensor +2022-09-19 10:41:30 INFO:  test-backend-node.js test face similarity +2022-09-19 10:41:30 STATE: test-backend-node.js start face similarity +2022-09-19 10:41:30 STATE: test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-09-19 10:41:30 STATE: test-backend-node.js event: image +2022-09-19 10:41:30 STATE: test-backend-node.js event: detect +2022-09-19 10:41:30 STATE: test-backend-node.js passed: detect: samples/in/ai-face.jpg face similarity +2022-09-19 10:41:30 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":3} +2022-09-19 10:41:30 DATA:  test-backend-node.js result: performance: load: null total: 224 +2022-09-19 10:41:30 STATE: test-backend-node.js start face similarity +2022-09-19 10:41:30 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-09-19 10:41:30 STATE: test-backend-node.js event: image +2022-09-19 10:41:31 STATE: test-backend-node.js event: detect +2022-09-19 10:41:31 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg face similarity +2022-09-19 10:41:31 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-09-19 10:41:31 DATA:  test-backend-node.js result: performance: load: null total: 232 +2022-09-19 10:41:31 STATE: test-backend-node.js start face similarity +2022-09-19 10:41:31 STATE: test-backend-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} +2022-09-19 10:41:31 STATE: test-backend-node.js event: image +2022-09-19 10:41:31 STATE: test-backend-node.js event: detect +2022-09-19 10:41:31 STATE: test-backend-node.js passed: detect: samples/in/ai-upper.jpg face similarity +2022-09-19 10:41:31 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 0 gesture: 4 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":7} +2022-09-19 10:41:31 DATA:  test-backend-node.js result: performance: load: null total: 203 +2022-09-19 10:41:31 STATE: test-backend-node.js passed: face descriptor +2022-09-19 10:41:31 STATE: test-backend-node.js passed: face similarity {"similarity":[1,0.44727452329649126,0.5567935850640406],"descriptors":[1024,1024,1024]} +2022-09-19 10:41:31 INFO:  test-backend-node.js test object +2022-09-19 10:41:31 STATE: test-backend-node.js start object +2022-09-19 10:41:31 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-09-19 10:41:31 STATE: test-backend-node.js event: image +2022-09-19 10:41:31 STATE: test-backend-node.js event: detect +2022-09-19 10:41:31 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg object +2022-09-19 10:41:31 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-09-19 10:41:31 DATA:  test-backend-node.js result: performance: load: null total: 227 +2022-09-19 10:41:31 STATE: test-backend-node.js passed: centernet +2022-09-19 10:41:31 STATE: test-backend-node.js start object +2022-09-19 10:41:32 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-09-19 10:41:32 STATE: test-backend-node.js event: image +2022-09-19 10:41:32 STATE: test-backend-node.js event: detect +2022-09-19 10:41:32 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg object +2022-09-19 10:41:32 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 3 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.86,"class":"person"} {"score":0.92,"keypoints":17} +2022-09-19 10:41:32 DATA:  test-backend-node.js result: performance: load: null total: 230 +2022-09-19 10:41:32 STATE: test-backend-node.js passed: nanodet +2022-09-19 10:41:32 INFO:  test-backend-node.js test sensitive +2022-09-19 10:41:32 STATE: test-backend-node.js start sensitive +2022-09-19 10:41:33 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-09-19 10:41:33 STATE: test-backend-node.js event: image +2022-09-19 10:41:33 STATE: test-backend-node.js event: detect +2022-09-19 10:41:33 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg sensitive +2022-09-19 10:41:33 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.92,"keypoints":17} +2022-09-19 10:41:33 DATA:  test-backend-node.js result: performance: load: null total: 185 +2022-09-19 10:41:33 STATE: test-backend-node.js passed: sensitive result match +2022-09-19 10:41:33 STATE: test-backend-node.js passed: sensitive face result match +2022-09-19 10:41:33 STATE: test-backend-node.js passed: sensitive face emotion result [{"score":0.59,"emotion":"angry"},{"score":0.29,"emotion":"fear"}] +2022-09-19 10:41:33 STATE: test-backend-node.js passed: sensitive body result match +2022-09-19 10:41:33 STATE: test-backend-node.js passed: sensitive hand result match +2022-09-19 10:41:33 INFO:  test-backend-node.js test body +2022-09-19 10:41:33 STATE: test-backend-node.js start blazepose +2022-09-19 10:41:34 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-09-19 10:41:34 STATE: test-backend-node.js event: image +2022-09-19 10:41:35 STATE: test-backend-node.js event: detect +2022-09-19 10:41:35 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg blazepose +2022-09-19 10:41:35 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.99,"keypoints":39} +2022-09-19 10:41:35 DATA:  test-backend-node.js result: performance: load: null total: 236 +2022-09-19 10:41:35 STATE: test-backend-node.js passed: blazepose +2022-09-19 10:41:35 STATE: test-backend-node.js start efficientpose +2022-09-19 10:41:35 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-09-19 10:41:35 STATE: test-backend-node.js event: image +2022-09-19 10:41:35 STATE: test-backend-node.js event: detect +2022-09-19 10:41:35 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg efficientpose +2022-09-19 10:41:35 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.75,"keypoints":13} +2022-09-19 10:41:35 DATA:  test-backend-node.js result: performance: load: null total: 255 +2022-09-19 10:41:35 STATE: test-backend-node.js passed: efficientpose +2022-09-19 10:41:35 STATE: test-backend-node.js start posenet +2022-09-19 10:41:36 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-09-19 10:41:36 STATE: test-backend-node.js event: image +2022-09-19 10:41:36 STATE: test-backend-node.js event: detect +2022-09-19 10:41:36 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg posenet +2022-09-19 10:41:36 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.96,"keypoints":16} +2022-09-19 10:41:36 DATA:  test-backend-node.js result: performance: load: null total: 186 +2022-09-19 10:41:36 STATE: test-backend-node.js passed: posenet +2022-09-19 10:41:36 STATE: test-backend-node.js start movenet +2022-09-19 10:41:36 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-09-19 10:41:36 STATE: test-backend-node.js event: image +2022-09-19 10:41:36 STATE: test-backend-node.js event: detect +2022-09-19 10:41:36 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg movenet +2022-09-19 10:41:36 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.92,"keypoints":17} +2022-09-19 10:41:36 DATA:  test-backend-node.js result: performance: load: null total: 190 +2022-09-19 10:41:36 STATE: test-backend-node.js passed: movenet +2022-09-19 10:41:36 INFO:  test-backend-node.js test face matching +2022-09-19 10:41:36 STATE: test-backend-node.js passed: face database 40 +2022-09-19 10:41:36 STATE: test-backend-node.js passed: face match {"first":{"index":4,"similarity":0.7827852615252829}} {"second":{"index":4,"similarity":0.5002052633015844}} {"third":{"index":4,"similarity":0.5401587887998899}} +2022-09-19 10:41:36 INFO:  test-backend-node.js test face similarity alternative +2022-09-19 10:41:36 STATE: test-backend-node.js start face embeddings +2022-09-19 10:41:37 STATE: test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-09-19 10:41:37 STATE: test-backend-node.js event: image +2022-09-19 10:41:37 STATE: test-backend-node.js event: detect +2022-09-19 10:41:37 STATE: test-backend-node.js passed: detect: samples/in/ai-face.jpg face embeddings +2022-09-19 10:41:37 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} +2022-09-19 10:41:37 DATA:  test-backend-node.js result: performance: load: null total: 203 +2022-09-19 10:41:37 STATE: test-backend-node.js passed: mobilefacenet {"embedding":192} +2022-09-19 10:41:37 STATE: test-backend-node.js start face embeddings +2022-09-19 10:41:38 STATE: test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-09-19 10:41:38 STATE: test-backend-node.js event: image +2022-09-19 10:41:38 STATE: test-backend-node.js event: detect +2022-09-19 10:41:38 STATE: test-backend-node.js passed: detect: samples/in/ai-face.jpg face embeddings +2022-09-19 10:41:38 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} +2022-09-19 10:41:38 DATA:  test-backend-node.js result: performance: load: null total: 212 +2022-09-19 10:41:38 STATE: test-backend-node.js passed: insightface {"embedding":512} +2022-09-19 10:41:38 INFO:  test-backend-node.js test face attention +2022-09-19 10:41:38 STATE: test-backend-node.js start face attention +2022-09-19 10:41:38 STATE: test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-09-19 10:41:38 STATE: test-backend-node.js event: image +2022-09-19 10:41:38 STATE: test-backend-node.js event: detect +2022-09-19 10:41:38 STATE: test-backend-node.js passed: detect: samples/in/ai-face.jpg face attention +2022-09-19 10:41:38 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} +2022-09-19 10:41:38 DATA:  test-backend-node.js result: performance: load: null total: 197 +2022-09-19 10:41:38 STATE: test-backend-node.js passed: face attention +2022-09-19 10:41:38 INFO:  test-backend-node.js test detectors +2022-09-19 10:41:38 STATE: test-backend-node.js start detectors +2022-09-19 10:41:39 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-09-19 10:41:39 STATE: test-backend-node.js event: image +2022-09-19 10:41:39 STATE: test-backend-node.js event: detect +2022-09-19 10:41:39 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg detectors +2022-09-19 10:41:39 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} +2022-09-19 10:41:39 DATA:  test-backend-node.js result: performance: load: null total: 140 +2022-09-19 10:41:39 STATE: test-backend-node.js passed: detector result face match +2022-09-19 10:41:39 STATE: test-backend-node.js passed: detector result hand match +2022-09-19 10:41:39 INFO:  test-backend-node.js test: multi-instance +2022-09-19 10:41:39 STATE: test-backend-node.js start multi instance +2022-09-19 10:41:39 STATE: test-backend-node.js event: image +2022-09-19 10:41:39 STATE: test-backend-node.js event: detect +2022-09-19 10:41:39 STATE: test-backend-node.js passed: detect: random multi instance +2022-09-19 10:41:39 DATA:  test-backend-node.js result: face: 0 body: 1 hand: 0 gesture: 0 object: 0 person: 0 {} {} {"score":0,"keypoints":0} +2022-09-19 10:41:39 DATA:  test-backend-node.js result: performance: load: null total: 95 +2022-09-19 10:41:39 INFO:  test-backend-node.js test: first instance +2022-09-19 10:41:39 STATE: test-backend-node.js start multi instance +2022-09-19 10:41:39 STATE: test-backend-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} +2022-09-19 10:41:39 STATE: test-backend-node.js passed: detect: samples/in/ai-upper.jpg multi instance +2022-09-19 10:41:39 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-09-19 10:41:39 DATA:  test-backend-node.js result: performance: load: null total: 118 +2022-09-19 10:41:39 INFO:  test-backend-node.js test: second instance +2022-09-19 10:41:39 STATE: test-backend-node.js start multi instance +2022-09-19 10:41:39 STATE: test-backend-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} +2022-09-19 10:41:39 STATE: test-backend-node.js passed: detect: samples/in/ai-upper.jpg multi instance +2022-09-19 10:41:39 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-09-19 10:41:39 DATA:  test-backend-node.js result: performance: load: null total: 111 +2022-09-19 10:41:39 INFO:  test-backend-node.js test: concurrent +2022-09-19 10:41:39 STATE: test-backend-node.js start concurrent +2022-09-19 10:41:39 STATE: test-backend-node.js start concurrent +2022-09-19 10:41:39 STATE: test-backend-node.js start concurrent +2022-09-19 10:41:39 STATE: test-backend-node.js start concurrent +2022-09-19 10:41:39 STATE: test-backend-node.js start concurrent +2022-09-19 10:41:39 STATE: test-backend-node.js start concurrent +2022-09-19 10:41:39 STATE: test-backend-node.js start concurrent +2022-09-19 10:41:39 STATE: test-backend-node.js start concurrent +2022-09-19 10:41:39 STATE: test-backend-node.js start concurrent +2022-09-19 10:41:39 STATE: test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-09-19 10:41:39 STATE: test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-09-19 10:41:39 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-09-19 10:41:40 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-09-19 10:41:40 STATE: test-backend-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} +2022-09-19 10:41:40 STATE: test-backend-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} +2022-09-19 10:41:40 STATE: test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-09-19 10:41:40 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-09-19 10:41:40 STATE: test-backend-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} +2022-09-19 10:41:40 STATE: test-backend-node.js event: image +2022-09-19 10:41:40 STATE: test-backend-node.js event: image +2022-09-19 10:41:40 STATE: test-backend-node.js event: image +2022-09-19 10:41:41 STATE: test-backend-node.js passed: detect: samples/in/ai-upper.jpg concurrent +2022-09-19 10:41:41 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-09-19 10:41:41 DATA:  test-backend-node.js result: performance: load: null total: 1236 +2022-09-19 10:41:41 STATE: test-backend-node.js passed: detect: samples/in/ai-upper.jpg concurrent +2022-09-19 10:41:41 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-09-19 10:41:41 DATA:  test-backend-node.js result: performance: load: null total: 1236 +2022-09-19 10:41:41 STATE: test-backend-node.js passed: detect: samples/in/ai-face.jpg concurrent +2022-09-19 10:41:41 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} +2022-09-19 10:41:41 DATA:  test-backend-node.js result: performance: load: null total: 1236 +2022-09-19 10:41:41 STATE: test-backend-node.js passed: detect: samples/in/ai-face.jpg concurrent +2022-09-19 10:41:41 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} +2022-09-19 10:41:41 DATA:  test-backend-node.js result: performance: load: null total: 1236 +2022-09-19 10:41:41 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg concurrent +2022-09-19 10:41:41 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} +2022-09-19 10:41:41 DATA:  test-backend-node.js result: performance: load: null total: 1236 +2022-09-19 10:41:41 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg concurrent +2022-09-19 10:41:41 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} +2022-09-19 10:41:41 DATA:  test-backend-node.js result: performance: load: null total: 1236 +2022-09-19 10:41:41 STATE: test-backend-node.js event: detect +2022-09-19 10:41:41 STATE: test-backend-node.js passed: detect: samples/in/ai-upper.jpg concurrent +2022-09-19 10:41:41 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-09-19 10:41:41 DATA:  test-backend-node.js result: performance: load: null total: 984 +2022-09-19 10:41:41 STATE: test-backend-node.js event: detect +2022-09-19 10:41:41 STATE: test-backend-node.js event: detect +2022-09-19 10:41:41 STATE: test-backend-node.js passed: detect: samples/in/ai-face.jpg concurrent +2022-09-19 10:41:41 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} +2022-09-19 10:41:41 DATA:  test-backend-node.js result: performance: load: null total: 984 +2022-09-19 10:41:41 STATE: test-backend-node.js passed: detect: samples/in/ai-body.jpg concurrent +2022-09-19 10:41:41 DATA:  test-backend-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} +2022-09-19 10:41:41 DATA:  test-backend-node.js result: performance: load: null total: 984 +2022-09-19 10:41:41 INFO:  test-backend-node.js test: monkey-patch +2022-09-19 10:41:41 STATE: test-backend-node.js event: image +2022-09-19 10:41:41 STATE: test-backend-node.js event: detect +2022-09-19 10:41:41 STATE: test-backend-node.js passed: monkey patch +2022-09-19 10:41:41 STATE: test-backend-node.js passed: segmentation [65536] +2022-09-19 10:41:41 STATE: test-backend-node.js passeed: equal usage +2022-09-19 10:41:41 INFO:  test-backend-node.js test: input compare +2022-09-19 10:41:41 STATE: test-backend-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-09-19 10:41:41 STATE: test-backend-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-09-19 10:41:41 STATE: test-backend-node.js passed: image compare 0 23.275441687091504 +2022-09-19 10:41:41 INFO:  test-backend-node.js events: {"image":29,"detect":29,"warmup":2} +2022-09-19 10:41:41 INFO:  test-backend-node.js tensors 4147 +2022-09-19 10:41:41 INFO:  test-backend-node.js test complete: 15368 ms +2022-09-19 10:41:41 INFO:  +2022-09-19 10:41:41 INFO:  test-backend-node-gpu.js start +2022-09-19 10:41:42 INFO:  test-backend-node-gpu.js test: configuration validation +2022-09-19 10:41:42 STATE: test-backend-node-gpu.js passed: configuration default validation [] +2022-09-19 10:41:42 STATE: test-backend-node-gpu.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}] +2022-09-19 10:41:42 INFO:  test-backend-node-gpu.js test: model load +2022-09-19 10:41:42 STATE: test-backend-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-09-19 10:41:42 INFO:  test-backend-node-gpu.js memory: {"memory":{"unreliable":true,"numTensors":1921,"numDataBuffers":1921,"numBytes":63673064}} +2022-09-19 10:41:42 INFO:  test-backend-node-gpu.js state: {"state":{"registeredVariables":{},"nextTapeNodeId":0,"numBytes":63673064,"numTensors":1921,"numStringTensors":0,"numDataBuffers":1921,"gradientDepth":0,"kernelDepth":0,"scopeStack":[],"numDataMovesStack":[],"nextScopeId":0,"tensorInfo":{},"profiling":false,"activeProfile":{"newBytes":0,"newTensors":0,"peakBytes":0,"kernels":[],"result":null,"kernelNames":[]}}} +2022-09-19 10:41:42 INFO:  test-backend-node-gpu.js test: warmup +2022-09-19 10:41:42 STATE: test-backend-node-gpu.js passed: create human +2022-09-19 10:41:42 INFO:  test-backend-node-gpu.js human version: 2.10.2 +2022-09-19 10:41:42 INFO:  test-backend-node-gpu.js platform: linux x64 agent: NodeJS v18.1.0 +2022-09-19 10:41:42 INFO:  test-backend-node-gpu.js tfjs version: 3.20.0 +2022-09-19 10:41:42 INFO:  test-backend-node-gpu.js env: {"browser":false,"node":true,"platform":"linux x64","agent":"NodeJS v18.1.0","backends":["cpu","tensorflow"],"initial":false,"tfjs":{"version":"3.20.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-09-19 10:41:42 STATE: test-backend-node-gpu.js passed: set backend: tensorflow +2022-09-19 10:41:42 STATE: test-backend-node-gpu.js tensors 1921 +2022-09-19 10:41:42 STATE: test-backend-node-gpu.js passed: load models +2022-09-19 10:41:42 STATE: test-backend-node-gpu.js result: defined models: 23 loaded models: 12 +2022-09-19 10:41:42 STATE: test-backend-node-gpu.js passed: warmup: none default +2022-09-19 10:41:42 DATA:  test-backend-node-gpu.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {} +2022-09-19 10:41:42 DATA:  test-backend-node-gpu.js result: performance: load: null total: null +2022-09-19 10:41:42 STATE: test-backend-node-gpu.js passed: warmup none result match +2022-09-19 10:41:42 STATE: test-backend-node-gpu.js event: image +2022-09-19 10:41:44 STATE: test-backend-node-gpu.js event: detect +2022-09-19 10:41:44 STATE: test-backend-node-gpu.js event: warmup +2022-09-19 10:41:44 STATE: test-backend-node-gpu.js passed: warmup: face default +2022-09-19 10:41:44 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.42,"keypoints":4} +2022-09-19 10:41:44 DATA:  test-backend-node-gpu.js result: performance: load: null total: 1862 +2022-09-19 10:41:44 STATE: test-backend-node-gpu.js passed: warmup face result match +2022-09-19 10:41:44 STATE: test-backend-node-gpu.js event: image +2022-09-19 10:41:44 STATE: test-backend-node-gpu.js event: detect +2022-09-19 10:41:44 STATE: test-backend-node-gpu.js event: warmup +2022-09-19 10:41:44 STATE: test-backend-node-gpu.js passed: warmup: body default +2022-09-19 10:41:44 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-09-19 10:41:44 DATA:  test-backend-node-gpu.js result: performance: load: null total: 146 +2022-09-19 10:41:44 STATE: test-backend-node-gpu.js passed: warmup body result match +2022-09-19 10:41:44 STATE: test-backend-node-gpu.js details: {"face":{"boxScore":0.92,"faceScore":1,"age":23.7,"gender":"female","genderScore":0.97},"emotion":[{"score":0.63,"emotion":"angry"},{"score":0.22,"emotion":"fear"}],"body":{"score":0.92,"keypoints":17},"hand":{"boxScore":0.52,"fingerScore":0.73,"keypoints":21},"gestures":[{"face":0,"gesture":"facing right"},{"face":0,"gesture":"mouth 10% open"},{"hand":0,"gesture":"pinky forward"},{"hand":0,"gesture":"palm up"},{"hand":0,"gesture":"open palm"},{"iris":0,"gesture":"looking left"},{"iris":0,"gesture":"looking up"}]} +2022-09-19 10:41:44 INFO:  test-backend-node-gpu.js test: details verification +2022-09-19 10:41:44 STATE: test-backend-node-gpu.js start default +2022-09-19 10:41:45 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-09-19 10:41:45 STATE: test-backend-node-gpu.js event: image +2022-09-19 10:41:45 STATE: test-backend-node-gpu.js event: detect +2022-09-19 10:41:45 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg default +2022-09-19 10:41:45 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-09-19 10:41:45 DATA:  test-backend-node-gpu.js result: performance: load: null total: 140 +2022-09-19 10:41:45 STATE: test-backend-node-gpu.js passed: details face length 1 +2022-09-19 10:41:45 STATE: test-backend-node-gpu.js passed: details face score 1 0.93 1 +2022-09-19 10:41:45 STATE: test-backend-node-gpu.js passed: details face age/gender 23.7 female 0.97 85.47 +2022-09-19 10:41:45 STATE: test-backend-node-gpu.js passed: details face arrays 4 478 1024 +2022-09-19 10:41:45 STATE: test-backend-node-gpu.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"} +2022-09-19 10:41:45 STATE: test-backend-node-gpu.js passed: details face anti-spoofing 0.79 +2022-09-19 10:41:45 STATE: test-backend-node-gpu.js passed: details face liveness 0.83 +2022-09-19 10:41:45 STATE: test-backend-node-gpu.js passed: details body length 1 +2022-09-19 10:41:45 STATE: test-backend-node-gpu.js passed: details body 0.92 17 6 +2022-09-19 10:41:45 STATE: test-backend-node-gpu.js passed: details hand length 1 +2022-09-19 10:41:45 STATE: test-backend-node-gpu.js passed: details hand 0.51 0.73 point +2022-09-19 10:41:45 STATE: test-backend-node-gpu.js passed: details hand arrays 21 5 7 +2022-09-19 10:41:45 STATE: test-backend-node-gpu.js passed: details gesture length 7 +2022-09-19 10:41:45 STATE: test-backend-node-gpu.js passed: details gesture first {"face":0,"gesture":"facing right"} +2022-09-19 10:41:45 STATE: test-backend-node-gpu.js passed: details object length 1 +2022-09-19 10:41:45 STATE: test-backend-node-gpu.js passed: details object 0.72 person +2022-09-19 10:41:45 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996928} +2022-09-19 10:41:45 STATE: test-backend-node-gpu.js event: image +2022-09-19 10:41:45 STATE: test-backend-node-gpu.js event: detect +2022-09-19 10:41:45 STATE: test-backend-node-gpu.js passed: tensor shape: [1,1200,1200,4] dtype: float32 +2022-09-19 10:41:45 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1371996928} +2022-09-19 10:41:45 STATE: test-backend-node-gpu.js event: image +2022-09-19 10:41:45 STATE: test-backend-node-gpu.js event: detect +2022-09-19 10:41:45 STATE: test-backend-node-gpu.js passed: tensor shape: [1200,1200,4] dtype: float32 +2022-09-19 10:41:46 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-09-19 10:41:46 STATE: test-backend-node-gpu.js event: image +2022-09-19 10:41:46 STATE: test-backend-node-gpu.js event: detect +2022-09-19 10:41:46 STATE: test-backend-node-gpu.js passed: tensor shape: [1,1200,1200,3] dtype: float32 +2022-09-19 10:41:46 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1004796928} +2022-09-19 10:41:46 STATE: test-backend-node-gpu.js event: image +2022-09-19 10:41:46 STATE: test-backend-node-gpu.js event: detect +2022-09-19 10:41:46 STATE: test-backend-node-gpu.js passed: tensor shape: [1200,1200,3] dtype: float32 +2022-09-19 10:41:46 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871} +2022-09-19 10:41:46 STATE: test-backend-node-gpu.js event: image +2022-09-19 10:41:46 STATE: test-backend-node-gpu.js event: detect +2022-09-19 10:41:46 STATE: test-backend-node-gpu.js passed: tensor shape: [1,1200,1200,4] dtype: int32 +2022-09-19 10:41:46 INFO:  test-backend-node-gpu.js test default +2022-09-19 10:41:46 STATE: test-backend-node-gpu.js start async +2022-09-19 10:41:46 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-09-19 10:41:46 STATE: test-backend-node-gpu.js event: image +2022-09-19 10:41:47 STATE: test-backend-node-gpu.js event: detect +2022-09-19 10:41:47 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg async +2022-09-19 10:41:47 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-09-19 10:41:47 DATA:  test-backend-node-gpu.js result: performance: load: null total: 129 +2022-09-19 10:41:47 STATE: test-backend-node-gpu.js passed: default result face match 1 female 0.97 +2022-09-19 10:41:47 INFO:  test-backend-node-gpu.js test sync +2022-09-19 10:41:47 STATE: test-backend-node-gpu.js start sync +2022-09-19 10:41:47 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-09-19 10:41:47 STATE: test-backend-node-gpu.js event: image +2022-09-19 10:41:47 STATE: test-backend-node-gpu.js event: detect +2022-09-19 10:41:47 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg sync +2022-09-19 10:41:47 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-09-19 10:41:47 DATA:  test-backend-node-gpu.js result: performance: load: null total: 131 +2022-09-19 10:41:47 STATE: test-backend-node-gpu.js passed: default sync 1 female 0.97 +2022-09-19 10:41:47 INFO:  test-backend-node-gpu.js test: image process +2022-09-19 10:41:47 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-09-19 10:41:47 STATE: test-backend-node-gpu.js passed: image input null [1,256,256,3] +2022-09-19 10:41:47 INFO:  test-backend-node-gpu.js test: image null +2022-09-19 10:41:47 STATE: test-backend-node-gpu.js passed: invalid input could not convert input to tensor +2022-09-19 10:41:47 INFO:  test-backend-node-gpu.js test face similarity +2022-09-19 10:41:47 STATE: test-backend-node-gpu.js start face similarity +2022-09-19 10:41:47 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-09-19 10:41:47 STATE: test-backend-node-gpu.js event: image +2022-09-19 10:41:47 STATE: test-backend-node-gpu.js event: detect +2022-09-19 10:41:47 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-face.jpg face similarity +2022-09-19 10:41:47 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":3} +2022-09-19 10:41:47 DATA:  test-backend-node-gpu.js result: performance: load: null total: 117 +2022-09-19 10:41:47 STATE: test-backend-node-gpu.js start face similarity +2022-09-19 10:41:47 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-09-19 10:41:47 STATE: test-backend-node-gpu.js event: image +2022-09-19 10:41:47 STATE: test-backend-node-gpu.js event: detect +2022-09-19 10:41:47 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg face similarity +2022-09-19 10:41:47 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-09-19 10:41:47 DATA:  test-backend-node-gpu.js result: performance: load: null total: 126 +2022-09-19 10:41:47 STATE: test-backend-node-gpu.js start face similarity +2022-09-19 10:41:47 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} +2022-09-19 10:41:47 STATE: test-backend-node-gpu.js event: image +2022-09-19 10:41:48 STATE: test-backend-node-gpu.js event: detect +2022-09-19 10:41:48 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-upper.jpg face similarity +2022-09-19 10:41:48 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 4 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":7} +2022-09-19 10:41:48 DATA:  test-backend-node-gpu.js result: performance: load: null total: 113 +2022-09-19 10:41:48 STATE: test-backend-node-gpu.js passed: face descriptor +2022-09-19 10:41:48 STATE: test-backend-node-gpu.js passed: face similarity {"similarity":[1,0.447238756461232,0.556914029877052],"descriptors":[1024,1024,1024]} +2022-09-19 10:41:48 INFO:  test-backend-node-gpu.js test object +2022-09-19 10:41:48 STATE: test-backend-node-gpu.js start object +2022-09-19 10:41:48 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-09-19 10:41:48 STATE: test-backend-node-gpu.js event: image +2022-09-19 10:41:48 STATE: test-backend-node-gpu.js event: detect +2022-09-19 10:41:48 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg object +2022-09-19 10:41:48 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-09-19 10:41:48 DATA:  test-backend-node-gpu.js result: performance: load: null total: 115 +2022-09-19 10:41:48 STATE: test-backend-node-gpu.js passed: centernet +2022-09-19 10:41:48 STATE: test-backend-node-gpu.js start object +2022-09-19 10:41:49 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-09-19 10:41:49 STATE: test-backend-node-gpu.js event: image +2022-09-19 10:41:49 STATE: test-backend-node-gpu.js event: detect +2022-09-19 10:41:49 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg object +2022-09-19 10:41:49 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 3 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.86,"class":"person"} {"score":0.92,"keypoints":17} +2022-09-19 10:41:49 DATA:  test-backend-node-gpu.js result: performance: load: null total: 527 +2022-09-19 10:41:49 STATE: test-backend-node-gpu.js passed: nanodet +2022-09-19 10:41:49 INFO:  test-backend-node-gpu.js test sensitive +2022-09-19 10:41:49 STATE: test-backend-node-gpu.js start sensitive +2022-09-19 10:41:50 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-09-19 10:41:50 STATE: test-backend-node-gpu.js event: image +2022-09-19 10:41:50 STATE: test-backend-node-gpu.js event: detect +2022-09-19 10:41:50 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg sensitive +2022-09-19 10:41:50 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.92,"keypoints":17} +2022-09-19 10:41:50 DATA:  test-backend-node-gpu.js result: performance: load: null total: 125 +2022-09-19 10:41:50 STATE: test-backend-node-gpu.js passed: sensitive result match +2022-09-19 10:41:50 STATE: test-backend-node-gpu.js passed: sensitive face result match +2022-09-19 10:41:50 STATE: test-backend-node-gpu.js passed: sensitive face emotion result [{"score":0.59,"emotion":"angry"},{"score":0.29,"emotion":"fear"}] +2022-09-19 10:41:50 STATE: test-backend-node-gpu.js passed: sensitive body result match +2022-09-19 10:41:50 STATE: test-backend-node-gpu.js passed: sensitive hand result match +2022-09-19 10:41:50 INFO:  test-backend-node-gpu.js test body +2022-09-19 10:41:50 STATE: test-backend-node-gpu.js start blazepose +2022-09-19 10:41:51 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-09-19 10:41:51 STATE: test-backend-node-gpu.js event: image +2022-09-19 10:41:52 STATE: test-backend-node-gpu.js event: detect +2022-09-19 10:41:52 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg blazepose +2022-09-19 10:41:52 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.99,"keypoints":39} +2022-09-19 10:41:52 DATA:  test-backend-node-gpu.js result: performance: load: null total: 293 +2022-09-19 10:41:52 STATE: test-backend-node-gpu.js passed: blazepose +2022-09-19 10:41:52 STATE: test-backend-node-gpu.js start efficientpose +2022-09-19 10:41:52 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-09-19 10:41:52 STATE: test-backend-node-gpu.js event: image +2022-09-19 10:41:53 STATE: test-backend-node-gpu.js event: detect +2022-09-19 10:41:53 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg efficientpose +2022-09-19 10:41:53 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.75,"keypoints":13} +2022-09-19 10:41:53 DATA:  test-backend-node-gpu.js result: performance: load: null total: 537 +2022-09-19 10:41:53 STATE: test-backend-node-gpu.js passed: efficientpose +2022-09-19 10:41:53 STATE: test-backend-node-gpu.js start posenet +2022-09-19 10:41:53 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-09-19 10:41:53 STATE: test-backend-node-gpu.js event: image +2022-09-19 10:41:53 STATE: test-backend-node-gpu.js event: detect +2022-09-19 10:41:53 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg posenet +2022-09-19 10:41:53 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.96,"keypoints":16} +2022-09-19 10:41:53 DATA:  test-backend-node-gpu.js result: performance: load: null total: 164 +2022-09-19 10:41:53 STATE: test-backend-node-gpu.js passed: posenet +2022-09-19 10:41:53 STATE: test-backend-node-gpu.js start movenet +2022-09-19 10:41:53 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-09-19 10:41:53 STATE: test-backend-node-gpu.js event: image +2022-09-19 10:41:54 STATE: test-backend-node-gpu.js event: detect +2022-09-19 10:41:54 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg movenet +2022-09-19 10:41:54 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 0 person: 1 {"score":1,"age":23.7,"gender":"female"} {} {"score":0.92,"keypoints":17} +2022-09-19 10:41:54 DATA:  test-backend-node-gpu.js result: performance: load: null total: 118 +2022-09-19 10:41:54 STATE: test-backend-node-gpu.js passed: movenet +2022-09-19 10:41:54 INFO:  test-backend-node-gpu.js test face matching +2022-09-19 10:41:54 STATE: test-backend-node-gpu.js passed: face database 40 +2022-09-19 10:41:54 STATE: test-backend-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-09-19 10:41:54 INFO:  test-backend-node-gpu.js test face similarity alternative +2022-09-19 10:41:54 STATE: test-backend-node-gpu.js start face embeddings +2022-09-19 10:41:54 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-09-19 10:41:54 STATE: test-backend-node-gpu.js event: image +2022-09-19 10:41:54 STATE: test-backend-node-gpu.js event: detect +2022-09-19 10:41:54 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-face.jpg face embeddings +2022-09-19 10:41:54 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} +2022-09-19 10:41:54 DATA:  test-backend-node-gpu.js result: performance: load: null total: 153 +2022-09-19 10:41:54 STATE: test-backend-node-gpu.js passed: mobilefacenet {"embedding":192} +2022-09-19 10:41:54 STATE: test-backend-node-gpu.js start face embeddings +2022-09-19 10:41:55 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-09-19 10:41:55 STATE: test-backend-node-gpu.js event: image +2022-09-19 10:41:55 STATE: test-backend-node-gpu.js event: detect +2022-09-19 10:41:55 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-face.jpg face embeddings +2022-09-19 10:41:55 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} +2022-09-19 10:41:55 DATA:  test-backend-node-gpu.js result: performance: load: null total: 205 +2022-09-19 10:41:55 STATE: test-backend-node-gpu.js passed: insightface {"embedding":512} +2022-09-19 10:41:55 INFO:  test-backend-node-gpu.js test face attention +2022-09-19 10:41:55 STATE: test-backend-node-gpu.js start face attention +2022-09-19 10:41:55 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-09-19 10:41:55 STATE: test-backend-node-gpu.js event: image +2022-09-19 10:41:56 STATE: test-backend-node-gpu.js event: detect +2022-09-19 10:41:56 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-face.jpg face attention +2022-09-19 10:41:56 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} +2022-09-19 10:41:56 DATA:  test-backend-node-gpu.js result: performance: load: null total: 256 +2022-09-19 10:41:56 STATE: test-backend-node-gpu.js passed: face attention +2022-09-19 10:41:56 INFO:  test-backend-node-gpu.js test detectors +2022-09-19 10:41:56 STATE: test-backend-node-gpu.js start detectors +2022-09-19 10:41:56 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-09-19 10:41:56 STATE: test-backend-node-gpu.js event: image +2022-09-19 10:41:56 STATE: test-backend-node-gpu.js event: detect +2022-09-19 10:41:56 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg detectors +2022-09-19 10:41:56 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} +2022-09-19 10:41:56 DATA:  test-backend-node-gpu.js result: performance: load: null total: 117 +2022-09-19 10:41:56 STATE: test-backend-node-gpu.js passed: detector result face match +2022-09-19 10:41:56 STATE: test-backend-node-gpu.js passed: detector result hand match +2022-09-19 10:41:56 INFO:  test-backend-node-gpu.js test: multi-instance +2022-09-19 10:41:56 STATE: test-backend-node-gpu.js start multi instance +2022-09-19 10:41:56 STATE: test-backend-node-gpu.js event: image +2022-09-19 10:41:56 STATE: test-backend-node-gpu.js event: detect +2022-09-19 10:41:56 STATE: test-backend-node-gpu.js passed: detect: random multi instance +2022-09-19 10:41:56 DATA:  test-backend-node-gpu.js result: face: 0 body: 1 hand: 0 gesture: 0 object: 0 person: 0 {} {} {"score":0,"keypoints":0} +2022-09-19 10:41:56 DATA:  test-backend-node-gpu.js result: performance: load: null total: 64 +2022-09-19 10:41:56 INFO:  test-backend-node-gpu.js test: first instance +2022-09-19 10:41:56 STATE: test-backend-node-gpu.js start multi instance +2022-09-19 10:41:56 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} +2022-09-19 10:41:56 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-upper.jpg multi instance +2022-09-19 10:41:56 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-09-19 10:41:56 DATA:  test-backend-node-gpu.js result: performance: load: null total: 87 +2022-09-19 10:41:56 INFO:  test-backend-node-gpu.js test: second instance +2022-09-19 10:41:56 STATE: test-backend-node-gpu.js start multi instance +2022-09-19 10:41:56 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} +2022-09-19 10:41:56 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-upper.jpg multi instance +2022-09-19 10:41:56 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-09-19 10:41:56 DATA:  test-backend-node-gpu.js result: performance: load: null total: 81 +2022-09-19 10:41:56 INFO:  test-backend-node-gpu.js test: concurrent +2022-09-19 10:41:56 STATE: test-backend-node-gpu.js start concurrent +2022-09-19 10:41:56 STATE: test-backend-node-gpu.js start concurrent +2022-09-19 10:41:56 STATE: test-backend-node-gpu.js start concurrent +2022-09-19 10:41:56 STATE: test-backend-node-gpu.js start concurrent +2022-09-19 10:41:56 STATE: test-backend-node-gpu.js start concurrent +2022-09-19 10:41:56 STATE: test-backend-node-gpu.js start concurrent +2022-09-19 10:41:56 STATE: test-backend-node-gpu.js start concurrent +2022-09-19 10:41:56 STATE: test-backend-node-gpu.js start concurrent +2022-09-19 10:41:56 STATE: test-backend-node-gpu.js start concurrent +2022-09-19 10:41:56 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-09-19 10:41:56 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-09-19 10:41:56 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-09-19 10:41:57 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-09-19 10:41:57 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} +2022-09-19 10:41:57 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} +2022-09-19 10:41:57 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-09-19 10:41:57 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-09-19 10:41:57 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} +2022-09-19 10:41:57 STATE: test-backend-node-gpu.js event: image +2022-09-19 10:41:57 STATE: test-backend-node-gpu.js event: image +2022-09-19 10:41:57 STATE: test-backend-node-gpu.js event: image +2022-09-19 10:41:58 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-upper.jpg concurrent +2022-09-19 10:41:58 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-09-19 10:41:58 DATA:  test-backend-node-gpu.js result: performance: load: null total: 1006 +2022-09-19 10:41:58 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-upper.jpg concurrent +2022-09-19 10:41:58 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-09-19 10:41:58 DATA:  test-backend-node-gpu.js result: performance: load: null total: 1006 +2022-09-19 10:41:58 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-face.jpg concurrent +2022-09-19 10:41:58 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} +2022-09-19 10:41:58 DATA:  test-backend-node-gpu.js result: performance: load: null total: 1007 +2022-09-19 10:41:58 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-face.jpg concurrent +2022-09-19 10:41:58 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} +2022-09-19 10:41:58 DATA:  test-backend-node-gpu.js result: performance: load: null total: 1007 +2022-09-19 10:41:58 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg concurrent +2022-09-19 10:41:58 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} +2022-09-19 10:41:58 DATA:  test-backend-node-gpu.js result: performance: load: null total: 1007 +2022-09-19 10:41:58 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg concurrent +2022-09-19 10:41:58 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} +2022-09-19 10:41:58 DATA:  test-backend-node-gpu.js result: performance: load: null total: 1007 +2022-09-19 10:41:58 STATE: test-backend-node-gpu.js event: detect +2022-09-19 10:41:58 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-upper.jpg concurrent +2022-09-19 10:41:58 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-09-19 10:41:58 DATA:  test-backend-node-gpu.js result: performance: load: null total: 740 +2022-09-19 10:41:58 STATE: test-backend-node-gpu.js event: detect +2022-09-19 10:41:58 STATE: test-backend-node-gpu.js event: detect +2022-09-19 10:41:58 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-face.jpg concurrent +2022-09-19 10:41:58 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} +2022-09-19 10:41:58 DATA:  test-backend-node-gpu.js result: performance: load: null total: 740 +2022-09-19 10:41:58 STATE: test-backend-node-gpu.js passed: detect: samples/in/ai-body.jpg concurrent +2022-09-19 10:41:58 DATA:  test-backend-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} +2022-09-19 10:41:58 DATA:  test-backend-node-gpu.js result: performance: load: null total: 740 +2022-09-19 10:41:58 INFO:  test-backend-node-gpu.js test: monkey-patch +2022-09-19 10:41:58 STATE: test-backend-node-gpu.js event: image +2022-09-19 10:41:58 STATE: test-backend-node-gpu.js event: detect +2022-09-19 10:41:58 STATE: test-backend-node-gpu.js passed: monkey patch +2022-09-19 10:41:58 STATE: test-backend-node-gpu.js passed: segmentation [65536] +2022-09-19 10:41:58 STATE: test-backend-node-gpu.js passeed: equal usage +2022-09-19 10:41:58 INFO:  test-backend-node-gpu.js test: input compare +2022-09-19 10:41:58 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-09-19 10:41:58 STATE: test-backend-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-09-19 10:41:58 STATE: test-backend-node-gpu.js passed: image compare 0 23.275441687091504 +2022-09-19 10:41:58 INFO:  test-backend-node-gpu.js events: {"image":29,"detect":29,"warmup":2} +2022-09-19 10:41:58 INFO:  test-backend-node-gpu.js tensors 4147 +2022-09-19 10:41:58 INFO:  test-backend-node-gpu.js test complete: 16060 ms +2022-09-19 10:41:59 INFO:  +2022-09-19 10:41:59 INFO:  test-backend-node-wasm.js start +2022-09-19 10:41:59 DATA:  test-backend-node-wasm.js stdout: 2022-09-19 10:41:59 INFO:  { supported: true, backend: true, simd: true, multithread: false } https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-backend-wasm@3.20.0/dist/ +2022-09-19 10:41:59 STATE: test-backend-node-wasm.js passed: model server: https://vladmandic.github.io/human/models/ +2022-09-19 10:41:59 INFO:  test-backend-node-wasm.js test: configuration validation +2022-09-19 10:41:59 STATE: test-backend-node-wasm.js passed: configuration default validation [] +2022-09-19 10:41:59 STATE: test-backend-node-wasm.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}] +2022-09-19 10:41:59 INFO:  test-backend-node-wasm.js test: model load +2022-09-19 10:42:01 STATE: test-backend-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-09-19 10:42:01 INFO:  test-backend-node-wasm.js memory: {"memory":{"unreliable":false,"numTensors":1921,"numDataBuffers":1921,"numBytes":63673064}} +2022-09-19 10:42:01 INFO:  test-backend-node-wasm.js state: {"state":{"registeredVariables":{},"nextTapeNodeId":0,"numBytes":63673064,"numTensors":1921,"numStringTensors":0,"numDataBuffers":1921,"gradientDepth":0,"kernelDepth":0,"scopeStack":[],"numDataMovesStack":[],"nextScopeId":0,"tensorInfo":{},"profiling":false,"activeProfile":{"newBytes":0,"newTensors":0,"peakBytes":0,"kernels":[],"result":null,"kernelNames":[]}}} +2022-09-19 10:42:01 INFO:  test-backend-node-wasm.js test: warmup +2022-09-19 10:42:01 STATE: test-backend-node-wasm.js passed: create human +2022-09-19 10:42:01 INFO:  test-backend-node-wasm.js human version: 2.10.2 +2022-09-19 10:42:01 INFO:  test-backend-node-wasm.js platform: linux x64 agent: NodeJS v18.1.0 +2022-09-19 10:42:01 INFO:  test-backend-node-wasm.js tfjs version: 3.20.0 +2022-09-19 10:42:01 INFO:  test-backend-node-wasm.js env: {"browser":false,"node":true,"platform":"linux x64","agent":"NodeJS v18.1.0","backends":["cpu","wasm"],"initial":false,"tfjs":{"version":"3.20.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-09-19 10:42:01 STATE: test-backend-node-wasm.js passed: set backend: wasm +2022-09-19 10:42:01 STATE: test-backend-node-wasm.js tensors 1921 +2022-09-19 10:42:01 STATE: test-backend-node-wasm.js passed: load models +2022-09-19 10:42:01 STATE: test-backend-node-wasm.js result: defined models: 23 loaded models: 12 +2022-09-19 10:42:01 STATE: test-backend-node-wasm.js passed: warmup: none default +2022-09-19 10:42:01 DATA:  test-backend-node-wasm.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {} +2022-09-19 10:42:01 DATA:  test-backend-node-wasm.js result: performance: load: null total: null +2022-09-19 10:42:01 STATE: test-backend-node-wasm.js passed: warmup none result match +2022-09-19 10:42:01 STATE: test-backend-node-wasm.js event: image +2022-09-19 10:42:02 STATE: test-backend-node-wasm.js event: detect +2022-09-19 10:42:02 STATE: test-backend-node-wasm.js event: warmup +2022-09-19 10:42:02 STATE: test-backend-node-wasm.js passed: warmup: face default +2022-09-19 10:42:02 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":3} +2022-09-19 10:42:02 DATA:  test-backend-node-wasm.js result: performance: load: null total: 509 +2022-09-19 10:42:02 STATE: test-backend-node-wasm.js passed: warmup face result match +2022-09-19 10:42:02 STATE: test-backend-node-wasm.js event: image +2022-09-19 10:42:02 STATE: test-backend-node-wasm.js event: detect +2022-09-19 10:42:02 STATE: test-backend-node-wasm.js event: warmup +2022-09-19 10:42:02 STATE: test-backend-node-wasm.js passed: warmup: body default +2022-09-19 10:42:02 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-09-19 10:42:02 DATA:  test-backend-node-wasm.js result: performance: load: null total: 357 +2022-09-19 10:42:02 STATE: test-backend-node-wasm.js passed: warmup body result match +2022-09-19 10:42:02 STATE: test-backend-node-wasm.js details: {"face":{"boxScore":0.93,"faceScore":1,"age":23.7,"gender":"female","genderScore":0.97},"emotion":[{"score":0.59,"emotion":"angry"},{"score":0.29,"emotion":"fear"}],"body":{"score":0.92,"keypoints":17},"hand":{"boxScore":0.51,"fingerScore":0.73,"keypoints":21},"gestures":[{"face":0,"gesture":"facing right"},{"face":0,"gesture":"mouth 21% open"},{"hand":0,"gesture":"pinky forward"},{"hand":0,"gesture":"palm up"},{"hand":0,"gesture":"open palm"},{"iris":0,"gesture":"looking left"},{"iris":0,"gesture":"looking up"}]} +2022-09-19 10:42:02 INFO:  test-backend-node-wasm.js test: details verification +2022-09-19 10:42:02 STATE: test-backend-node-wasm.js start default +2022-09-19 10:42:02 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-09-19 10:42:02 STATE: test-backend-node-wasm.js event: image +2022-09-19 10:42:03 STATE: test-backend-node-wasm.js event: detect +2022-09-19 10:42:03 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg default +2022-09-19 10:42:03 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-09-19 10:42:03 DATA:  test-backend-node-wasm.js result: performance: load: null total: 327 +2022-09-19 10:42:03 STATE: test-backend-node-wasm.js passed: details face length 1 +2022-09-19 10:42:03 STATE: test-backend-node-wasm.js passed: details face score 1 0.93 1 +2022-09-19 10:42:03 STATE: test-backend-node-wasm.js passed: details face age/gender 23.7 female 0.97 85.47 +2022-09-19 10:42:03 STATE: test-backend-node-wasm.js passed: details face arrays 4 478 1024 +2022-09-19 10:42:03 STATE: test-backend-node-wasm.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"} +2022-09-19 10:42:03 STATE: test-backend-node-wasm.js passed: details face anti-spoofing 0.79 +2022-09-19 10:42:03 STATE: test-backend-node-wasm.js passed: details face liveness 0.83 +2022-09-19 10:42:03 STATE: test-backend-node-wasm.js passed: details body length 1 +2022-09-19 10:42:03 STATE: test-backend-node-wasm.js passed: details body 0.92 17 6 +2022-09-19 10:42:03 STATE: test-backend-node-wasm.js passed: details hand length 1 +2022-09-19 10:42:03 STATE: test-backend-node-wasm.js passed: details hand 0.51 0.73 point +2022-09-19 10:42:03 STATE: test-backend-node-wasm.js passed: details hand arrays 21 5 7 +2022-09-19 10:42:03 STATE: test-backend-node-wasm.js passed: details gesture length 7 +2022-09-19 10:42:03 STATE: test-backend-node-wasm.js passed: details gesture first {"face":0,"gesture":"facing right"} +2022-09-19 10:42:03 STATE: test-backend-node-wasm.js passed: details object length 1 +2022-09-19 10:42:03 STATE: test-backend-node-wasm.js passed: details object 0.72 person +2022-09-19 10:42:03 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1413675264} +2022-09-19 10:42:03 STATE: test-backend-node-wasm.js event: image +2022-09-19 10:42:03 STATE: test-backend-node-wasm.js event: detect +2022-09-19 10:42:03 STATE: test-backend-node-wasm.js passed: tensor shape: [1,1200,1200,4] dtype: float32 +2022-09-19 10:42:04 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1413675264} +2022-09-19 10:42:04 STATE: test-backend-node-wasm.js event: image +2022-09-19 10:42:04 STATE: test-backend-node-wasm.js event: detect +2022-09-19 10:42:04 STATE: test-backend-node-wasm.js passed: tensor shape: [1200,1200,4] dtype: float32 +2022-09-19 10:42:04 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-09-19 10:42:04 STATE: test-backend-node-wasm.js event: image +2022-09-19 10:42:04 STATE: test-backend-node-wasm.js event: detect +2022-09-19 10:42:04 STATE: test-backend-node-wasm.js passed: tensor shape: [1,1200,1200,3] dtype: float32 +2022-09-19 10:42:05 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1038921856} +2022-09-19 10:42:05 STATE: test-backend-node-wasm.js event: image +2022-09-19 10:42:05 STATE: test-backend-node-wasm.js event: detect +2022-09-19 10:42:05 STATE: test-backend-node-wasm.js passed: tensor shape: [1200,1200,3] dtype: float32 +2022-09-19 10:42:05 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871} +2022-09-19 10:42:05 STATE: test-backend-node-wasm.js event: image +2022-09-19 10:42:05 STATE: test-backend-node-wasm.js event: detect +2022-09-19 10:42:05 STATE: test-backend-node-wasm.js passed: tensor shape: [1,1200,1200,4] dtype: int32 +2022-09-19 10:42:05 INFO:  test-backend-node-wasm.js test default +2022-09-19 10:42:05 STATE: test-backend-node-wasm.js start async +2022-09-19 10:42:06 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-09-19 10:42:06 STATE: test-backend-node-wasm.js event: image +2022-09-19 10:42:06 STATE: test-backend-node-wasm.js event: detect +2022-09-19 10:42:06 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg async +2022-09-19 10:42:06 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-09-19 10:42:06 DATA:  test-backend-node-wasm.js result: performance: load: null total: 317 +2022-09-19 10:42:06 STATE: test-backend-node-wasm.js passed: default result face match 1 female 0.97 +2022-09-19 10:42:06 INFO:  test-backend-node-wasm.js test sync +2022-09-19 10:42:06 STATE: test-backend-node-wasm.js start sync +2022-09-19 10:42:06 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-09-19 10:42:06 STATE: test-backend-node-wasm.js event: image +2022-09-19 10:42:07 STATE: test-backend-node-wasm.js event: detect +2022-09-19 10:42:07 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg sync +2022-09-19 10:42:07 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-09-19 10:42:07 DATA:  test-backend-node-wasm.js result: performance: load: null total: 318 +2022-09-19 10:42:07 STATE: test-backend-node-wasm.js passed: default sync 1 female 0.97 +2022-09-19 10:42:07 INFO:  test-backend-node-wasm.js test: image process +2022-09-19 10:42:07 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-09-19 10:42:07 STATE: test-backend-node-wasm.js passed: image input null [1,256,256,3] +2022-09-19 10:42:07 INFO:  test-backend-node-wasm.js test: image null +2022-09-19 10:42:07 STATE: test-backend-node-wasm.js passed: invalid input could not convert input to tensor +2022-09-19 10:42:07 INFO:  test-backend-node-wasm.js test face similarity +2022-09-19 10:42:07 STATE: test-backend-node-wasm.js start face similarity +2022-09-19 10:42:07 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-09-19 10:42:07 STATE: test-backend-node-wasm.js event: image +2022-09-19 10:42:07 STATE: test-backend-node-wasm.js event: detect +2022-09-19 10:42:07 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-face.jpg face similarity +2022-09-19 10:42:07 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":3} +2022-09-19 10:42:07 DATA:  test-backend-node-wasm.js result: performance: load: null total: 297 +2022-09-19 10:42:07 STATE: test-backend-node-wasm.js start face similarity +2022-09-19 10:42:07 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-09-19 10:42:07 STATE: test-backend-node-wasm.js event: image +2022-09-19 10:42:07 STATE: test-backend-node-wasm.js event: detect +2022-09-19 10:42:07 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg face similarity +2022-09-19 10:42:07 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-09-19 10:42:07 DATA:  test-backend-node-wasm.js result: performance: load: null total: 318 +2022-09-19 10:42:07 STATE: test-backend-node-wasm.js start face similarity +2022-09-19 10:42:07 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} +2022-09-19 10:42:07 STATE: test-backend-node-wasm.js event: image +2022-09-19 10:42:08 STATE: test-backend-node-wasm.js event: detect +2022-09-19 10:42:08 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-upper.jpg face similarity +2022-09-19 10:42:08 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 4 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":7} +2022-09-19 10:42:08 DATA:  test-backend-node-wasm.js result: performance: load: null total: 301 +2022-09-19 10:42:08 STATE: test-backend-node-wasm.js passed: face descriptor +2022-09-19 10:42:08 STATE: test-backend-node-wasm.js passed: face similarity {"similarity":[1,0.5266119940661309,0.4858842904087851],"descriptors":[1024,1024,1024]} +2022-09-19 10:42:08 INFO:  test-backend-node-wasm.js test object +2022-09-19 10:42:08 STATE: test-backend-node-wasm.js start object +2022-09-19 10:42:08 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-09-19 10:42:08 STATE: test-backend-node-wasm.js event: image +2022-09-19 10:42:08 STATE: test-backend-node-wasm.js event: detect +2022-09-19 10:42:08 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg object +2022-09-19 10:42:08 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-09-19 10:42:08 DATA:  test-backend-node-wasm.js result: performance: load: null total: 318 +2022-09-19 10:42:08 STATE: test-backend-node-wasm.js passed: centernet +2022-09-19 10:42:08 STATE: test-backend-node-wasm.js start object +2022-09-19 10:42:09 WARN:  test-backend-node-wasm.js missing kernel ops {"title":"object","model":"nanodet","url":"https://vladmandic.github.io/human-models/models/nanodet.json","missing":["sparsetodense"],"backkend":"wasm"} +2022-09-19 10:42:09 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-09-19 10:42:09 STATE: test-backend-node-wasm.js event: image +2022-09-19 10:42:09 STATE: test-backend-node-wasm.js event: detect +2022-09-19 10:42:09 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg object +2022-09-19 10:42:09 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 0 person: 1 {"score":1,"age":29.6,"gender":"female"} {} {"score":0.92,"keypoints":17} +2022-09-19 10:42:09 DATA:  test-backend-node-wasm.js result: performance: load: null total: 209 +2022-09-19 10:42:09 ERROR: test-backend-node-wasm.js failed: nanodet [] +2022-09-19 10:42:09 INFO:  test-backend-node-wasm.js test sensitive +2022-09-19 10:42:09 STATE: test-backend-node-wasm.js start sensitive +2022-09-19 10:42:09 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-09-19 10:42:09 STATE: test-backend-node-wasm.js event: image +2022-09-19 10:42:10 STATE: test-backend-node-wasm.js event: detect +2022-09-19 10:42:10 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg sensitive +2022-09-19 10:42:10 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 10 object: 0 person: 1 {"score":1,"age":29.6,"gender":"female"} {} {"score":0.92,"keypoints":17} +2022-09-19 10:42:10 DATA:  test-backend-node-wasm.js result: performance: load: null total: 248 +2022-09-19 10:42:10 STATE: test-backend-node-wasm.js passed: sensitive result match +2022-09-19 10:42:10 STATE: test-backend-node-wasm.js passed: sensitive face result match +2022-09-19 10:42:10 STATE: test-backend-node-wasm.js passed: sensitive face emotion result [{"score":0.46,"emotion":"neutral"},{"score":0.24,"emotion":"fear"},{"score":0.17,"emotion":"sad"}] +2022-09-19 10:42:10 STATE: test-backend-node-wasm.js passed: sensitive body result match +2022-09-19 10:42:10 STATE: test-backend-node-wasm.js passed: sensitive hand result match +2022-09-19 10:42:10 INFO:  test-backend-node-wasm.js test body +2022-09-19 10:42:10 STATE: test-backend-node-wasm.js start blazepose +2022-09-19 10:42:11 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-09-19 10:42:11 STATE: test-backend-node-wasm.js event: image +2022-09-19 10:42:12 STATE: test-backend-node-wasm.js event: detect +2022-09-19 10:42:12 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg blazepose +2022-09-19 10:42:12 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 10 object: 0 person: 1 {"score":1,"age":29.6,"gender":"female"} {} {"score":0.99,"keypoints":39} +2022-09-19 10:42:12 DATA:  test-backend-node-wasm.js result: performance: load: null total: 401 +2022-09-19 10:42:12 STATE: test-backend-node-wasm.js passed: blazepose +2022-09-19 10:42:12 STATE: test-backend-node-wasm.js start efficientpose +2022-09-19 10:42:12 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-09-19 10:42:12 STATE: test-backend-node-wasm.js event: image +2022-09-19 10:42:13 STATE: test-backend-node-wasm.js event: detect +2022-09-19 10:42:13 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg efficientpose +2022-09-19 10:42:13 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 10 object: 0 person: 1 {"score":1,"age":29.6,"gender":"female"} {} {"score":0.75,"keypoints":13} +2022-09-19 10:42:13 DATA:  test-backend-node-wasm.js result: performance: load: null total: 696 +2022-09-19 10:42:13 STATE: test-backend-node-wasm.js passed: efficientpose +2022-09-19 10:42:13 STATE: test-backend-node-wasm.js start posenet +2022-09-19 10:42:13 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-09-19 10:42:13 STATE: test-backend-node-wasm.js event: image +2022-09-19 10:42:14 STATE: test-backend-node-wasm.js event: detect +2022-09-19 10:42:14 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg posenet +2022-09-19 10:42:14 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 10 object: 0 person: 1 {"score":1,"age":29.6,"gender":"female"} {} {"score":0.96,"keypoints":16} +2022-09-19 10:42:14 DATA:  test-backend-node-wasm.js result: performance: load: null total: 315 +2022-09-19 10:42:14 STATE: test-backend-node-wasm.js passed: posenet +2022-09-19 10:42:14 STATE: test-backend-node-wasm.js start movenet +2022-09-19 10:42:14 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-09-19 10:42:14 STATE: test-backend-node-wasm.js event: image +2022-09-19 10:42:14 STATE: test-backend-node-wasm.js event: detect +2022-09-19 10:42:14 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg movenet +2022-09-19 10:42:14 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 10 object: 0 person: 1 {"score":1,"age":29.6,"gender":"female"} {} {"score":0.92,"keypoints":17} +2022-09-19 10:42:14 DATA:  test-backend-node-wasm.js result: performance: load: null total: 267 +2022-09-19 10:42:14 STATE: test-backend-node-wasm.js passed: movenet +2022-09-19 10:42:14 INFO:  test-backend-node-wasm.js test face matching +2022-09-19 10:42:14 STATE: test-backend-node-wasm.js passed: face database 40 +2022-09-19 10:42:14 STATE: test-backend-node-wasm.js passed: face match {"first":{"index":4,"similarity":0.7827852754786533}} {"second":{"index":4,"similarity":0.5660821189104794}} {"third":{"index":4,"similarity":0.45074189882665594}} +2022-09-19 10:42:14 INFO:  test-backend-node-wasm.js test face similarity alternative +2022-09-19 10:42:14 STATE: test-backend-node-wasm.js start face embeddings +2022-09-19 10:42:15 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-09-19 10:42:15 STATE: test-backend-node-wasm.js event: image +2022-09-19 10:42:15 STATE: test-backend-node-wasm.js event: detect +2022-09-19 10:42:15 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-face.jpg face embeddings +2022-09-19 10:42:15 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} +2022-09-19 10:42:15 DATA:  test-backend-node-wasm.js result: performance: load: null total: 229 +2022-09-19 10:42:15 STATE: test-backend-node-wasm.js passed: mobilefacenet {"embedding":192} +2022-09-19 10:42:15 STATE: test-backend-node-wasm.js start face embeddings +2022-09-19 10:42:15 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-09-19 10:42:15 STATE: test-backend-node-wasm.js event: image +2022-09-19 10:42:16 STATE: test-backend-node-wasm.js event: detect +2022-09-19 10:42:16 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-face.jpg face embeddings +2022-09-19 10:42:16 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 8 object: 0 person: 1 {"score":1,"age":23.5,"gender":"female"} {} {"score":0.47,"keypoints":3} +2022-09-19 10:42:16 DATA:  test-backend-node-wasm.js result: performance: load: null total: 278 +2022-09-19 10:42:16 STATE: test-backend-node-wasm.js passed: insightface {"embedding":512} +2022-09-19 10:42:16 INFO:  test-backend-node-wasm.js test face attention +2022-09-19 10:42:16 STATE: test-backend-node-wasm.js start face attention +2022-09-19 10:42:16 WARN:  test-backend-node-wasm.js missing kernel ops {"title":"face attention","model":"facemesh","url":"https://vladmandic.github.io/human-models/models/facemesh-attention.json","missing":["atan2"],"backkend":"wasm"} +2022-09-19 10:42:16 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-09-19 10:42:16 STATE: test-backend-node-wasm.js event: image +2022-09-19 10:42:16 STATE: test-backend-node-wasm.js event: detect +2022-09-19 10:42:16 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-face.jpg face attention +2022-09-19 10:42:16 DATA:  test-backend-node-wasm.js result: face: 0 body: 1 hand: 1 gesture: 2 object: 0 person: 0 {} {} {"score":0.47,"keypoints":3} +2022-09-19 10:42:16 DATA:  test-backend-node-wasm.js result: performance: load: null total: 121 +2022-09-19 10:42:16 ERROR: test-backend-node-wasm.js failed: face attention {"annotations":0} +2022-09-19 10:42:16 INFO:  test-backend-node-wasm.js test detectors +2022-09-19 10:42:16 STATE: test-backend-node-wasm.js start detectors +2022-09-19 10:42:16 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-09-19 10:42:16 STATE: test-backend-node-wasm.js event: image +2022-09-19 10:42:16 STATE: test-backend-node-wasm.js event: detect +2022-09-19 10:42:16 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg detectors +2022-09-19 10:42:16 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} +2022-09-19 10:42:16 DATA:  test-backend-node-wasm.js result: performance: load: null total: 143 +2022-09-19 10:42:16 STATE: test-backend-node-wasm.js passed: detector result face match +2022-09-19 10:42:16 STATE: test-backend-node-wasm.js passed: detector result hand match +2022-09-19 10:42:16 INFO:  test-backend-node-wasm.js test: multi-instance +2022-09-19 10:42:16 STATE: test-backend-node-wasm.js start multi instance +2022-09-19 10:42:17 STATE: test-backend-node-wasm.js event: image +2022-09-19 10:42:17 STATE: test-backend-node-wasm.js event: detect +2022-09-19 10:42:17 STATE: test-backend-node-wasm.js passed: detect: random multi instance +2022-09-19 10:42:17 DATA:  test-backend-node-wasm.js result: face: 0 body: 1 hand: 0 gesture: 0 object: 0 person: 0 {} {} {"score":0,"keypoints":0} +2022-09-19 10:42:17 DATA:  test-backend-node-wasm.js result: performance: load: null total: 95 +2022-09-19 10:42:17 INFO:  test-backend-node-wasm.js test: first instance +2022-09-19 10:42:17 STATE: test-backend-node-wasm.js start multi instance +2022-09-19 10:42:17 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} +2022-09-19 10:42:17 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-upper.jpg multi instance +2022-09-19 10:42:17 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-09-19 10:42:17 DATA:  test-backend-node-wasm.js result: performance: load: null total: 113 +2022-09-19 10:42:17 INFO:  test-backend-node-wasm.js test: second instance +2022-09-19 10:42:17 STATE: test-backend-node-wasm.js start multi instance +2022-09-19 10:42:17 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} +2022-09-19 10:42:17 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-upper.jpg multi instance +2022-09-19 10:42:17 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-09-19 10:42:17 DATA:  test-backend-node-wasm.js result: performance: load: null total: 118 +2022-09-19 10:42:17 INFO:  test-backend-node-wasm.js test: concurrent +2022-09-19 10:42:17 STATE: test-backend-node-wasm.js start concurrent +2022-09-19 10:42:17 STATE: test-backend-node-wasm.js start concurrent +2022-09-19 10:42:17 STATE: test-backend-node-wasm.js start concurrent +2022-09-19 10:42:17 STATE: test-backend-node-wasm.js start concurrent +2022-09-19 10:42:17 STATE: test-backend-node-wasm.js start concurrent +2022-09-19 10:42:17 STATE: test-backend-node-wasm.js start concurrent +2022-09-19 10:42:17 STATE: test-backend-node-wasm.js start concurrent +2022-09-19 10:42:17 STATE: test-backend-node-wasm.js start concurrent +2022-09-19 10:42:17 STATE: test-backend-node-wasm.js start concurrent +2022-09-19 10:42:17 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-09-19 10:42:17 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-09-19 10:42:17 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-09-19 10:42:17 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-09-19 10:42:18 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} +2022-09-19 10:42:18 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} +2022-09-19 10:42:18 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-09-19 10:42:18 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-09-19 10:42:18 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} +2022-09-19 10:42:18 STATE: test-backend-node-wasm.js event: image +2022-09-19 10:42:18 STATE: test-backend-node-wasm.js event: image +2022-09-19 10:42:18 STATE: test-backend-node-wasm.js event: image +2022-09-19 10:42:19 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-upper.jpg concurrent +2022-09-19 10:42:19 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-09-19 10:42:19 DATA:  test-backend-node-wasm.js result: performance: load: null total: 1227 +2022-09-19 10:42:19 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-upper.jpg concurrent +2022-09-19 10:42:19 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-09-19 10:42:19 DATA:  test-backend-node-wasm.js result: performance: load: null total: 1227 +2022-09-19 10:42:19 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-face.jpg concurrent +2022-09-19 10:42:19 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} +2022-09-19 10:42:19 DATA:  test-backend-node-wasm.js result: performance: load: null total: 1228 +2022-09-19 10:42:19 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-face.jpg concurrent +2022-09-19 10:42:19 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} +2022-09-19 10:42:19 DATA:  test-backend-node-wasm.js result: performance: load: null total: 1228 +2022-09-19 10:42:19 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg concurrent +2022-09-19 10:42:19 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} +2022-09-19 10:42:19 DATA:  test-backend-node-wasm.js result: performance: load: null total: 1228 +2022-09-19 10:42:19 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg concurrent +2022-09-19 10:42:19 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} +2022-09-19 10:42:19 DATA:  test-backend-node-wasm.js result: performance: load: null total: 1228 +2022-09-19 10:42:19 STATE: test-backend-node-wasm.js event: detect +2022-09-19 10:42:19 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-upper.jpg concurrent +2022-09-19 10:42:19 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 0 person: 1 {"score":0.96,"gender":"unknown"} {} {"score":0.75,"keypoints":7} +2022-09-19 10:42:19 DATA:  test-backend-node-wasm.js result: performance: load: null total: 928 +2022-09-19 10:42:19 STATE: test-backend-node-wasm.js event: detect +2022-09-19 10:42:19 STATE: test-backend-node-wasm.js event: detect +2022-09-19 10:42:19 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-face.jpg concurrent +2022-09-19 10:42:19 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.91,"gender":"unknown"} {} {"score":0.47,"keypoints":3} +2022-09-19 10:42:19 DATA:  test-backend-node-wasm.js result: performance: load: null total: 928 +2022-09-19 10:42:19 STATE: test-backend-node-wasm.js passed: detect: samples/in/ai-body.jpg concurrent +2022-09-19 10:42:19 DATA:  test-backend-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 0 person: 1 {"score":0.93,"gender":"unknown"} {} {"score":0.92,"keypoints":17} +2022-09-19 10:42:19 DATA:  test-backend-node-wasm.js result: performance: load: null total: 928 +2022-09-19 10:42:19 INFO:  test-backend-node-wasm.js test: monkey-patch +2022-09-19 10:42:19 STATE: test-backend-node-wasm.js event: image +2022-09-19 10:42:19 STATE: test-backend-node-wasm.js event: detect +2022-09-19 10:42:19 STATE: test-backend-node-wasm.js passed: monkey patch +2022-09-19 10:42:19 STATE: test-backend-node-wasm.js passed: segmentation [65536] +2022-09-19 10:42:19 STATE: test-backend-node-wasm.js passeed: equal usage +2022-09-19 10:42:19 INFO:  test-backend-node-wasm.js test: input compare +2022-09-19 10:42:19 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-09-19 10:42:19 STATE: test-backend-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-09-19 10:42:19 STATE: test-backend-node-wasm.js passed: image compare 0 23.280073018790848 +2022-09-19 10:42:19 INFO:  test-backend-node-wasm.js events: {"image":29,"detect":29,"warmup":2} +2022-09-19 10:42:19 INFO:  test-backend-node-wasm.js tensors 4149 +2022-09-19 10:42:19 INFO:  test-backend-node-wasm.js test complete: 19997 ms +2022-09-19 10:42:19 STATE: all tests complete +2022-09-19 10:42:19 INFO:  status {"test":"../demo/nodejs/node.js","passed":1,"failed":0} +2022-09-19 10:42:19 INFO:  status {"test":"../demo/nodejs/node-simple.js","passed":1,"failed":0} +2022-09-19 10:42:19 INFO:  status {"test":"../demo/nodejs/node-fetch.js","passed":1,"failed":0} +2022-09-19 10:42:19 INFO:  status {"test":"../demo/nodejs/node-event.js","passed":1,"failed":0} +2022-09-19 10:42:19 INFO:  status {"test":"../demo/nodejs/node-similarity.js","passed":1,"failed":0} +2022-09-19 10:42:19 INFO:  status {"test":"../demo/nodejs/node-canvas.js","passed":1,"failed":0} +2022-09-19 10:42:19 INFO:  status {"test":"../demo/nodejs/process-folder.js","passed":1,"failed":0} +2022-09-19 10:42:19 INFO:  status {"test":"../demo/multithread/node-multiprocess.js","passed":1,"failed":0} +2022-09-19 10:42:19 INFO:  status {"test":"../demo/facematch/node-match.js","passed":1,"failed":0} +2022-09-19 10:42:19 INFO:  status {"test":"test-node-load.js","passed":1,"failed":0} +2022-09-19 10:42:19 INFO:  status {"test":"test-node-gear.js","passed":3,"failed":0} +2022-09-19 10:42:19 INFO:  status {"test":"test-backend-node.js","passed":125,"failed":0} +2022-09-19 10:42:19 INFO:  status {"test":"test-backend-node-gpu.js","passed":125,"failed":0} +2022-09-19 10:42:19 INFO:  status {"test":"test-backend-node-wasm.js","passed":124,"failed":2} +2022-09-19 10:42:19 INFO:  failures {"count":2} +2022-09-19 10:42:19 WARN:  failed {"test":"test-backend-node-wasm.js","message":["error",["failed: nanodet",[]]]} +2022-09-19 10:42:19 WARN:  failed {"test":"test-backend-node-wasm.js","message":["error",["failed: face attention",{"annotations":0}]]}