From faa9615d3af269ef9e626549f2268fa33a9e5148 Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Fri, 29 Jul 2022 09:24:04 -0400 Subject: [PATCH] update build platform --- CHANGELOG.md | 9 +- demo/faceid/index.js | 8 - demo/typescript/index.js | 8 - package.json | 6 +- test/build.log | 48 +- test/test.log | 1368 +++++++++++++++++++------------------- 6 files changed, 717 insertions(+), 730 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5d205e01..d7b14eda 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,11 +9,14 @@ ## Changelog +### **HEAD -> main** 2022/07/26 mandic00@live.com + + +### **release: 2.9.1** 2022/07/25 mandic00@live.com + + ### **2.9.1** 2022/07/25 mandic00@live.com - -### **origin/main** 2022/07/23 mandic00@live.com - - full rebuild - release cleanup - tflite experiments diff --git a/demo/faceid/index.js b/demo/faceid/index.js index c29a04e1..8beacbf6 100644 --- a/demo/faceid/index.js +++ b/demo/faceid/index.js @@ -6,12 +6,4 @@ import{Human as H}from"../../dist/human.esm.js";var d,R="human",m="person",g=(...t)=>console.log("indexdb",...t);async function b(){return d?!0:new Promise(t=>{let i=indexedDB.open(R,1);i.onerror=s=>g("error:",s),i.onupgradeneeded=s=>{g("create:",s.target),d=s.target.result,d.createObjectStore(m,{keyPath:"id",autoIncrement:!0})},i.onsuccess=s=>{d=s.target.result,g("open:",d),t(!0)}})}async function C(){let t=[];return d||await b(),new Promise(i=>{let s=d.transaction([m],"readwrite").objectStore(m).openCursor(null,"next");s.onerror=o=>g("load error:",o),s.onsuccess=o=>{o.target.result?(t.push(o.target.result.value),o.target.result.continue()):i(t)}})}async function k(){return d||await b(),new Promise(t=>{let i=d.transaction([m],"readwrite").objectStore(m).count();i.onerror=s=>g("count error:",s),i.onsuccess=()=>t(i.result)})}async function x(t){d||await b();let i={name:t.name,descriptor:t.descriptor,image:t.image};d.transaction([m],"readwrite").objectStore(m).put(i),g("save:",i)}async function D(t){d||await b(),d.transaction([m],"readwrite").objectStore(m).delete(t.id),g("delete:",t)}var v={modelBasePath:"../../models",filter:{equalization:!0},face:{enabled:!0,detector:{rotation:!0,return:!0,cropFactor:1.6,mask:!1},description:{enabled:!0},mobilefacenet:{enabled:!1,modelPath:"https://vladmandic.github.io/human-models/models/mobilefacenet.json"},iris:{enabled:!0},emotion:{enabled:!1},antispoof:{enabled:!0},liveness:{enabled:!0}},body:{enabled:!1},hand:{enabled:!1},object:{enabled:!1},gesture:{enabled:!0}},I={order:2,multiplier:25,min:.2,max:.8},c={minConfidence:.6,minSize:224,maxTime:1e4,blinkMin:10,blinkMax:800,threshold:.5,mask:v.face.detector.mask,rotation:v.face.detector.rotation,cropFactor:v.face.detector.cropFactor,...I},n={faceCount:!1,faceConfidence:!1,facingCenter:!1,lookingCenter:!1,blinkDetected:!1,faceSize:!1,antispoofCheck:!1,livenessCheck:!1,elapsedMs:0},M=()=>n.faceCount&&n.faceSize&&n.blinkDetected&&n.facingCenter&&n.lookingCenter&&n.faceConfidence&&n.antispoofCheck&&n.livenessCheck,r={face:null,record:null},l={start:0,end:0,time:0},a=new H(v);a.env.perfadd=!1;a.draw.options.font='small-caps 18px "Lato"';a.draw.options.lineHeight=20;var e={video:document.getElementById("video"),canvas:document.getElementById("canvas"),log:document.getElementById("log"),fps:document.getElementById("fps"),match:document.getElementById("match"),name:document.getElementById("name"),save:document.getElementById("save"),delete:document.getElementById("delete"),retry:document.getElementById("retry"),source:document.getElementById("source"),ok:document.getElementById("ok")},h={detect:0,draw:0},y={detect:0,draw:0},E=0,p=(...t)=>{e.log.innerText+=t.join(" ")+` `,console.log(...t)},w=t=>e.fps.innerText=t;async function S(){w("starting webcam...");let t={audio:!1,video:{facingMode:"user",resizeMode:"none",width:{ideal:document.body.clientWidth}}},i=await navigator.mediaDevices.getUserMedia(t),s=new Promise(o=>{e.video.onloadeddata=()=>o(!0)});e.video.srcObject=i,e.video.play(),await s,e.canvas.width=e.video.videoWidth,e.canvas.height=e.video.videoHeight,a.env.initial&&p("video:",e.video.videoWidth,e.video.videoHeight,"|",i.getVideoTracks()[0].label),e.canvas.onclick=()=>{e.video.paused?e.video.play():e.video.pause()}}async function T(){if(!e.video.paused){r.face&&r.face.tensor&&a.tf.dispose(r.face.tensor),await a.detect(e.video);let t=a.now();y.detect=1e3/(t-h.detect),h.detect=t,requestAnimationFrame(T)}}async function L(){let t=await a.next(a.result);await a.draw.canvas(e.video,e.canvas),await a.draw.all(e.canvas,t);let i=a.now();if(y.draw=1e3/(i-h.draw),h.draw=i,w(`fps: ${y.detect.toFixed(1).padStart(5," ")} detect | ${y.draw.toFixed(1).padStart(5," ")} draw`),n.faceCount=a.result.face.length===1,n.faceCount){let o=Object.values(a.result.gesture).map(f=>f.gesture);(o.includes("blink left eye")||o.includes("blink right eye"))&&(l.start=a.now()),l.start>0&&!o.includes("blink left eye")&&!o.includes("blink right eye")&&(l.end=a.now()),n.blinkDetected=n.blinkDetected||Math.abs(l.end-l.start)>c.blinkMin&&Math.abs(l.end-l.start)c.minConfidence&&(a.result.face[0].faceScore||0)>c.minConfidence&&(a.result.face[0].genderScore||0)>c.minConfidence,n.antispoofCheck=(a.result.face[0].real||0)>c.minConfidence,n.livenessCheck=(a.result.face[0].live||0)>c.minConfidence,n.faceSize=a.result.face[0].box[2]>=c.minSize&&a.result.face[0].box[3]>=c.minSize}let s=32;for(let[o,f]of Object.entries(n)){let u=document.getElementById(`ok-${o}`);u||(u=document.createElement("div"),u.innerText=o,u.className="ok",u.style.top=`${s}px`,e.ok.appendChild(u)),typeof f=="boolean"?u.style.backgroundColor=f?"lightgreen":"lightcoral":u.innerText=`${o}:${f}`,s+=28}return M()||n.elapsedMs>c.maxTime?(e.video.pause(),a.result.face[0]):(n.elapsedMs=Math.trunc(a.now()-E),new Promise(o=>{setTimeout(async()=>{await L()&&o(a.result.face[0])},30)}))}async function P(){var t,i;if(e.name.value.length>0){let s=(t=e.canvas.getContext("2d"))==null?void 0:t.getImageData(0,0,e.canvas.width,e.canvas.height),o={id:0,name:e.name.value,descriptor:(i=r.face)==null?void 0:i.embedding,image:s};await x(o),p("saved face record:",o.name)}else p("invalid name")}async function z(){r.record&&r.record.id>0&&await D(r.record)}async function j(){var o,f;if((o=e.canvas.getContext("2d"))==null||o.clearRect(0,0,c.minSize,c.minSize),!r.face||!r.face.tensor||!r.face.embedding)return!1;if(console.log("face record:",r.face),a.tf.browser.toPixels(r.face.tensor,e.canvas),await k()===0)return p("face database is empty"),document.body.style.background="black",e.delete.style.display="none",!1;let t=await C(),i=t.map(u=>u.descriptor),s=await a.match(r.face.embedding,i,I);return r.record=t[s.index]||null,r.record&&(p(`best match: ${r.record.name} | id: ${r.record.id} | similarity: ${Math.round(1e3*s.similarity)/10}%`),e.name.value=r.record.name,e.source.style.display="",(f=e.source.getContext("2d"))==null||f.putImageData(r.record.image,0,0)),document.body.style.background=s.similarity>c.threshold?"darkgreen":"maroon",s.similarity>c.threshold}async function B(){var t,i,s,o;return n.faceCount=!1,n.faceConfidence=!1,n.facingCenter=!1,n.blinkDetected=!1,n.faceSize=!1,n.antispoofCheck=!1,n.livenessCheck=!1,n.elapsedMs=0,e.match.style.display="none",e.retry.style.display="none",e.source.style.display="none",document.body.style.background="black",await S(),await T(),E=a.now(),r.face=await L(),e.canvas.width=((i=(t=r.face)==null?void 0:t.tensor)==null?void 0:i.shape[1])||c.minSize,e.canvas.height=((o=(s=r.face)==null?void 0:s.tensor)==null?void 0:o.shape[0])||c.minSize,e.source.width=e.canvas.width,e.source.height=e.canvas.height,e.canvas.style.width="",e.match.style.display="flex",e.save.style.display="flex",e.delete.style.display="flex",e.retry.style.display="block",M()?j():(p("did not find valid face"),!1)}async function q(){p("human version:",a.version,"| tfjs version:",a.tf.version["tfjs-core"]),p("options:",JSON.stringify(c).replace(/{|}|"|\[|\]/g,"").replace(/,/g," ")),w("loading..."),p("known face records:",await k()),await S(),await a.load(),w("initializing..."),e.retry.addEventListener("click",B),e.save.addEventListener("click",P),e.delete.addEventListener("click",z),await a.warmup(),await B()}window.onload=q; -/** - * Human demo for browsers - * @default Human Library - * @summary - * @author - * @copyright - * @license MIT - */ //# sourceMappingURL=index.js.map diff --git a/demo/typescript/index.js b/demo/typescript/index.js index 60a01fe8..f01ad6bd 100644 --- a/demo/typescript/index.js +++ b/demo/typescript/index.js @@ -6,12 +6,4 @@ import{Human as p}from"../../dist/human.esm.js";var w={async:!0,modelBasePath:"../../models",filter:{enabled:!0,equalization:!1,flip:!1},face:{enabled:!0,detector:{rotation:!1},mesh:{enabled:!0},attention:{enabled:!1},iris:{enabled:!0},description:{enabled:!0},emotion:{enabled:!0}},body:{enabled:!0},hand:{enabled:!0},object:{enabled:!1},gesture:{enabled:!0}},t=new p(w);t.env.perfadd=!1;t.draw.options.font='small-caps 18px "Lato"';t.draw.options.lineHeight=20;var e={video:document.getElementById("video"),canvas:document.getElementById("canvas"),log:document.getElementById("log"),fps:document.getElementById("status"),perf:document.getElementById("performance")},o={detect:0,draw:0,tensors:0},d={detect:0,draw:0},s=(...a)=>{e.log.innerText+=a.join(" ")+` `,console.log(...a)},r=a=>e.fps.innerText=a,b=a=>e.perf.innerText="tensors:"+t.tf.memory().numTensors+" | performance: "+JSON.stringify(a).replace(/"|{|}/g,"").replace(/,/g," | ");async function h(){r("starting webcam...");let a={audio:!1,video:{facingMode:"user",resizeMode:"none",width:{ideal:document.body.clientWidth},height:{ideal:document.body.clientHeight}}},n=await navigator.mediaDevices.getUserMedia(a),m=new Promise(u=>{e.video.onloadeddata=()=>u(!0)});e.video.srcObject=n,e.video.play(),await m,e.canvas.width=e.video.videoWidth,e.canvas.height=e.video.videoHeight;let i=n.getVideoTracks()[0],f=i.getCapabilities?i.getCapabilities():"",v=i.getSettings?i.getSettings():"",g=i.getConstraints?i.getConstraints():"";s("video:",e.video.videoWidth,e.video.videoHeight,i.label,{stream:n,track:i,settings:v,constraints:g,capabilities:f}),e.canvas.onclick=()=>{e.video.paused?e.video.play():e.video.pause()}}async function c(){if(!e.video.paused){await t.detect(e.video);let n=t.tf.memory().numTensors;n-o.tensors!==0&&s("allocated tensors:",n-o.tensors),o.tensors=n}let a=t.now();d.detect=1e3/(a-o.detect),o.detect=a,requestAnimationFrame(c)}async function l(){if(!e.video.paused){let n=await t.next(t.result);t.config.filter.flip?await t.draw.canvas(n.canvas,e.canvas):await t.draw.canvas(e.video,e.canvas),await t.draw.all(e.canvas,n),b(n.performance)}let a=t.now();d.draw=1e3/(a-o.draw),o.draw=a,r(e.video.paused?"paused":`fps: ${d.detect.toFixed(1).padStart(5," ")} detect | ${d.draw.toFixed(1).padStart(5," ")} draw`),setTimeout(l,30)}async function y(){s("human version:",t.version,"| tfjs version:",t.tf.version["tfjs-core"]),s("platform:",t.env.platform,"| agent:",t.env.agent),r("loading..."),await t.load(),s("backend:",t.tf.getBackend(),"| available:",t.env.backends),s("models stats:",t.getModelStats()),s("models loaded:",Object.values(t.models).filter(a=>a!==null).length),r("initializing..."),await t.warmup(),await h(),await c(),await l()}window.onload=y; -/** - * Human demo for browsers - * @default Human Library - * @summary - * @author - * @copyright - * @license MIT - */ //# sourceMappingURL=index.js.map diff --git a/package.json b/package.json index 755556b4..092bf647 100644 --- a/package.json +++ b/package.json @@ -72,14 +72,14 @@ "@tensorflow/tfjs-node": "^3.19.0", "@tensorflow/tfjs-node-gpu": "^3.19.0", "@tensorflow/tfjs-tflite": "0.0.1-alpha.8", - "@types/node": "^18.6.1", + "@types/node": "^18.6.2", "@types/offscreencanvas": "^2019.7.0", "@typescript-eslint/eslint-plugin": "^5.31.0", "@typescript-eslint/parser": "^5.31.0", - "@vladmandic/build": "^0.7.7", + "@vladmandic/build": "^0.7.8", "@vladmandic/pilogger": "^0.4.5", "@vladmandic/tfjs": "github:vladmandic/tfjs", - "esbuild": "^0.14.50", + "esbuild": "^0.14.51", "eslint": "8.20.0", "eslint-config-airbnb-base": "^15.0.0", "eslint-plugin-html": "^7.1.0", diff --git a/test/build.log b/test/build.log index 175b5b22..b90a0546 100644 --- a/test/build.log +++ b/test/build.log @@ -1,24 +1,24 @@ -2022-07-25 08:30:42 INFO:  Application: {"name":"@vladmandic/human","version":"2.9.1"} -2022-07-25 08:30:42 INFO:  Environment: {"profile":"production","config":".build.json","package":"package.json","tsconfig":true,"eslintrc":true,"git":true} -2022-07-25 08:30:42 INFO:  Toolchain: {"build":"0.7.7","esbuild":"0.14.50","typescript":"4.7.4","typedoc":"0.23.9","eslint":"8.20.0"} -2022-07-25 08:30:42 INFO:  Build: {"profile":"production","steps":["clean","compile","typings","typedoc","lint","changelog"]} -2022-07-25 08:30:42 STATE: Clean: {"locations":["dist/*","types/lib/*","typedoc/*"]} -2022-07-25 08:30:42 STATE: Compile: {"name":"tfjs/nodejs/cpu","format":"cjs","platform":"node","input":"tfjs/tf-node.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":102,"outputBytes":608} -2022-07-25 08:30:42 STATE: Compile: {"name":"human/nodejs/cpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node.js","files":74,"inputBytes":647910,"outputBytes":304014} -2022-07-25 08:30:42 STATE: Compile: {"name":"tfjs/nodejs/gpu","format":"cjs","platform":"node","input":"tfjs/tf-node-gpu.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":110,"outputBytes":612} -2022-07-25 08:30:42 STATE: Compile: {"name":"human/nodejs/gpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-gpu.js","files":74,"inputBytes":647914,"outputBytes":304018} -2022-07-25 08:30:42 STATE: Compile: {"name":"tfjs/nodejs/wasm","format":"cjs","platform":"node","input":"tfjs/tf-node-wasm.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":149,"outputBytes":664} -2022-07-25 08:30:42 STATE: Compile: {"name":"human/nodejs/wasm","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-wasm.js","files":74,"inputBytes":647966,"outputBytes":304068} -2022-07-25 08:30:42 STATE: Compile: {"name":"tfjs/browser/version","format":"esm","platform":"browser","input":"tfjs/tf-version.ts","output":"dist/tfjs.version.js","files":1,"inputBytes":1069,"outputBytes":358} -2022-07-25 08:30:42 STATE: Compile: {"name":"tfjs/browser/esm/nobundle","format":"esm","platform":"browser","input":"tfjs/tf-browser.ts","output":"dist/tfjs.esm.js","files":2,"inputBytes":1032,"outputBytes":583} -2022-07-25 08:30:42 STATE: Compile: {"name":"human/browser/esm/nobundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm-nobundle.js","files":74,"inputBytes":647885,"outputBytes":302893} -2022-07-25 08:30:42 STATE: Compile: {"name":"tfjs/browser/esm/custom","format":"esm","platform":"browser","input":"tfjs/tf-custom.ts","output":"dist/tfjs.esm.js","files":11,"inputBytes":1271,"outputBytes":2799989} -2022-07-25 08:30:42 STATE: Compile: {"name":"human/browser/iife/bundle","format":"iife","platform":"browser","input":"src/human.ts","output":"dist/human.js","files":74,"inputBytes":3447291,"outputBytes":1678221} -2022-07-25 08:30:42 STATE: Compile: {"name":"human/browser/esm/bundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm.js","files":74,"inputBytes":3447291,"outputBytes":3078832} -2022-07-25 08:30:48 STATE: Typings: {"input":"src/human.ts","output":"types/lib","files":30} -2022-07-25 08:30:51 STATE: TypeDoc: {"input":"src/human.ts","output":"typedoc","objects":76,"generated":true} -2022-07-25 08:30:51 STATE: Compile: {"name":"demo/typescript","format":"esm","platform":"browser","input":"demo/typescript/index.ts","output":"demo/typescript/index.js","files":1,"inputBytes":6414,"outputBytes":3094} -2022-07-25 08:30:51 STATE: Compile: {"name":"demo/faceid","format":"esm","platform":"browser","input":"demo/faceid/index.ts","output":"demo/faceid/index.js","files":2,"inputBytes":15174,"outputBytes":7820} -2022-07-25 08:31:01 STATE: Lint: {"locations":["*.json","src/**/*.ts","test/**/*.js","demo/**/*.js"],"files":107,"errors":0,"warnings":0} -2022-07-25 08:31:01 STATE: ChangeLog: {"repository":"https://github.com/vladmandic/human","branch":"main","output":"CHANGELOG.md"} -2022-07-25 08:31:01 INFO:  Done... +2022-07-29 09:21:22 INFO:  Application: {"name":"@vladmandic/human","version":"2.9.1"} +2022-07-29 09:21:22 INFO:  Environment: {"profile":"production","config":".build.json","package":"package.json","tsconfig":true,"eslintrc":true,"git":true} +2022-07-29 09:21:22 INFO:  Toolchain: {"build":"0.7.8","esbuild":"0.14.51","typescript":"4.7.4","typedoc":"0.23.9","eslint":"8.20.0"} +2022-07-29 09:21:22 INFO:  Build: {"profile":"production","steps":["clean","compile","typings","typedoc","lint","changelog"]} +2022-07-29 09:21:22 STATE: Clean: {"locations":["dist/*","types/lib/*","typedoc/*"]} +2022-07-29 09:21:22 STATE: Compile: {"name":"tfjs/nodejs/cpu","format":"cjs","platform":"node","input":"tfjs/tf-node.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":102,"outputBytes":608} +2022-07-29 09:21:22 STATE: Compile: {"name":"human/nodejs/cpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node.js","files":74,"inputBytes":647939,"outputBytes":303804} +2022-07-29 09:21:22 STATE: Compile: {"name":"tfjs/nodejs/gpu","format":"cjs","platform":"node","input":"tfjs/tf-node-gpu.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":110,"outputBytes":612} +2022-07-29 09:21:22 STATE: Compile: {"name":"human/nodejs/gpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-gpu.js","files":74,"inputBytes":647943,"outputBytes":303808} +2022-07-29 09:21:22 STATE: Compile: {"name":"tfjs/nodejs/wasm","format":"cjs","platform":"node","input":"tfjs/tf-node-wasm.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":149,"outputBytes":664} +2022-07-29 09:21:22 STATE: Compile: {"name":"human/nodejs/wasm","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-wasm.js","files":74,"inputBytes":647995,"outputBytes":303858} +2022-07-29 09:21:22 STATE: Compile: {"name":"tfjs/browser/version","format":"esm","platform":"browser","input":"tfjs/tf-version.ts","output":"dist/tfjs.version.js","files":1,"inputBytes":1069,"outputBytes":358} +2022-07-29 09:21:22 STATE: Compile: {"name":"tfjs/browser/esm/nobundle","format":"esm","platform":"browser","input":"tfjs/tf-browser.ts","output":"dist/tfjs.esm.js","files":2,"inputBytes":1032,"outputBytes":583} +2022-07-29 09:21:22 STATE: Compile: {"name":"human/browser/esm/nobundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm-nobundle.js","files":74,"inputBytes":647914,"outputBytes":302683} +2022-07-29 09:21:22 STATE: Compile: {"name":"tfjs/browser/esm/custom","format":"esm","platform":"browser","input":"tfjs/tf-custom.ts","output":"dist/tfjs.esm.js","files":11,"inputBytes":1271,"outputBytes":2787569} +2022-07-29 09:21:22 STATE: Compile: {"name":"human/browser/iife/bundle","format":"iife","platform":"browser","input":"src/human.ts","output":"dist/human.js","files":74,"inputBytes":3434900,"outputBytes":1665591} +2022-07-29 09:21:22 STATE: Compile: {"name":"human/browser/esm/bundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm.js","files":74,"inputBytes":3434900,"outputBytes":3066202} +2022-07-29 09:21:29 STATE: Typings: {"input":"src/human.ts","output":"types/lib","files":30} +2022-07-29 09:21:31 STATE: TypeDoc: {"input":"src/human.ts","output":"typedoc","objects":76,"generated":true} +2022-07-29 09:21:31 STATE: Compile: {"name":"demo/typescript","format":"esm","platform":"browser","input":"demo/typescript/index.ts","output":"demo/typescript/index.js","files":1,"inputBytes":6414,"outputBytes":2878} +2022-07-29 09:21:31 STATE: Compile: {"name":"demo/faceid","format":"esm","platform":"browser","input":"demo/faceid/index.ts","output":"demo/faceid/index.js","files":2,"inputBytes":15174,"outputBytes":7604} +2022-07-29 09:21:40 STATE: Lint: {"locations":["*.json","src/**/*.ts","test/**/*.js","demo/**/*.js"],"files":107,"errors":0,"warnings":0} +2022-07-29 09:21:40 STATE: ChangeLog: {"repository":"https://github.com/vladmandic/human","branch":"main","output":"CHANGELOG.md"} +2022-07-29 09:21:40 INFO:  Done... diff --git a/test/test.log b/test/test.log index b5ca062b..8e64e263 100644 --- a/test/test.log +++ b/test/test.log @@ -1,684 +1,684 @@ -2022-07-25 08:31:32 INFO:  @vladmandic/human version 2.9.1 -2022-07-25 08:31:32 INFO:  User: vlado Platform: linux Arch: x64 Node: v16.15.0 -2022-07-25 08:31:32 INFO:  tests: ["test-node.js","test-node-gpu.js","test-node-wasm.js"] -2022-07-25 08:31:32 INFO:  demos: ["../demo/nodejs/node.js","../demo/nodejs/node-canvas.js","../demo/nodejs/node-env.js","../demo/nodejs/node-event.js","../demo/nodejs/node-multiprocess.js"] -2022-07-25 08:31:32 INFO:  -2022-07-25 08:31:32 INFO:  test-node.js start -2022-07-25 08:31:32 INFO:  test-node.js test: configuration validation -2022-07-25 08:31:32 STATE: test-node.js passed: configuration default validation [] -2022-07-25 08:31:32 STATE: test-node.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}] -2022-07-25 08:31:32 INFO:  test-node.js test: model load -2022-07-25 08:31:32 STATE: test-node.js passed: models loaded 22 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":"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-07-25 08:31:32 INFO:  test-node.js test: warmup -2022-07-25 08:31:32 STATE: test-node.js passed: create human -2022-07-25 08:31:32 INFO:  test-node.js human version: 2.9.1 -2022-07-25 08:31:32 INFO:  test-node.js platform: linux x64 agent: NodeJS v16.15.0 -2022-07-25 08:31:32 INFO:  test-node.js tfjs version: 3.19.0 -2022-07-25 08:31:32 INFO:  test-node.js tensorflow binding version: 2.7.3-dev20220521 -2022-07-25 08:31:32 STATE: test-node.js passed: set backend: tensorflow -2022-07-25 08:31:32 STATE: test-node.js tensors 1921 -2022-07-25 08:31:32 STATE: test-node.js passed: load models -2022-07-25 08:31:32 STATE: test-node.js result: defined models: 22 loaded models: 12 -2022-07-25 08:31:32 STATE: test-node.js passed: warmup: none default -2022-07-25 08:31:32 DATA:  test-node.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {} -2022-07-25 08:31:32 DATA:  test-node.js result: performance: load: null total: null -2022-07-25 08:31:32 STATE: test-node.js passed: warmup none result match -2022-07-25 08:31:32 STATE: test-node.js event: image -2022-07-25 08:31:32 STATE: test-node.js event: detect -2022-07-25 08:31:32 STATE: test-node.js event: warmup -2022-07-25 08:31:32 STATE: test-node.js passed: warmup: face default -2022-07-25 08:31:32 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.42,"keypoints":4} -2022-07-25 08:31:32 DATA:  test-node.js result: performance: load: null total: 342 -2022-07-25 08:31:32 STATE: test-node.js passed: warmup face result match -2022-07-25 08:31:32 STATE: test-node.js event: image -2022-07-25 08:31:33 STATE: test-node.js event: detect -2022-07-25 08:31:33 STATE: test-node.js event: warmup -2022-07-25 08:31:33 STATE: test-node.js passed: warmup: body default -2022-07-25 08:31:33 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-25 08:31:33 DATA:  test-node.js result: performance: load: null total: 259 -2022-07-25 08:31:33 STATE: test-node.js passed: warmup body result match -2022-07-25 08:31:33 STATE: test-node.js details: {"face":{"boxScore":0.92,"faceScore":1,"age":23.7,"gender":"female","genderScore":0.97},"emotion":[{"score":0.63,"emotion":"angry"},{"score":0.22,"emotion":"fear"}],"body":{"score":0.92,"keypoints":17},"hand":{"boxScore":0.52,"fingerScore":0.73,"keypoints":21},"gestures":[{"face":0,"gesture":"facing right"},{"face":0,"gesture":"mouth 10% open"},{"hand":0,"gesture":"pinky forward"},{"hand":0,"gesture":"palm up"},{"hand":0,"gesture":"open palm"},{"iris":0,"gesture":"looking left"},{"iris":0,"gesture":"looking up"}]} -2022-07-25 08:31:33 INFO:  test-node.js test: details verification -2022-07-25 08:31:33 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-07-25 08:31:33 STATE: test-node.js event: image -2022-07-25 08:31:33 STATE: test-node.js event: detect -2022-07-25 08:31:33 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default -2022-07-25 08:31:33 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-25 08:31:33 DATA:  test-node.js result: performance: load: null total: 249 -2022-07-25 08:31:33 STATE: test-node.js passed: details face length 1 -2022-07-25 08:31:33 STATE: test-node.js passed: details face score 1 0.93 1 -2022-07-25 08:31:33 STATE: test-node.js passed: details face age/gender 23.7 female 0.97 85.47 -2022-07-25 08:31:33 STATE: test-node.js passed: details face arrays 4 478 1024 -2022-07-25 08:31:33 STATE: test-node.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"} -2022-07-25 08:31:33 STATE: test-node.js passed: details face anti-spoofing 0.79 -2022-07-25 08:31:33 STATE: test-node.js passed: details face liveness 0.83 -2022-07-25 08:31:33 STATE: test-node.js passed: details body length 1 -2022-07-25 08:31:33 STATE: test-node.js passed: details body 0.92 17 6 -2022-07-25 08:31:33 STATE: test-node.js passed: details hand length 1 -2022-07-25 08:31:33 STATE: test-node.js passed: details hand 0.51 0.73 point -2022-07-25 08:31:33 STATE: test-node.js passed: details hand arrays 21 5 7 -2022-07-25 08:31:33 STATE: test-node.js passed: details gesture length 7 -2022-07-25 08:31:33 STATE: test-node.js passed: details gesture first {"face":0,"gesture":"facing right"} -2022-07-25 08:31:33 STATE: test-node.js passed: details object length 1 -2022-07-25 08:31:33 STATE: test-node.js passed: details object 0.72 person -2022-07-25 08:31:33 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996928} -2022-07-25 08:31:33 STATE: test-node.js event: image -2022-07-25 08:31:33 STATE: test-node.js event: detect -2022-07-25 08:31:33 STATE: test-node.js passed: tensor shape: [1,1200,1200,4] dtype: float32 -2022-07-25 08:31:34 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1371996928} -2022-07-25 08:31:34 STATE: test-node.js event: image -2022-07-25 08:31:34 STATE: test-node.js event: detect -2022-07-25 08:31:34 STATE: test-node.js passed: tensor shape: [1200,1200,4] dtype: float32 -2022-07-25 08:31:34 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-07-25 08:31:34 STATE: test-node.js event: image -2022-07-25 08:31:34 STATE: test-node.js event: detect -2022-07-25 08:31:34 STATE: test-node.js passed: tensor shape: [1,1200,1200,3] dtype: float32 -2022-07-25 08:31:34 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1004796864} -2022-07-25 08:31:34 STATE: test-node.js event: image -2022-07-25 08:31:35 STATE: test-node.js event: detect -2022-07-25 08:31:35 STATE: test-node.js passed: tensor shape: [1200,1200,3] dtype: float32 -2022-07-25 08:31:35 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871} -2022-07-25 08:31:35 STATE: test-node.js event: image -2022-07-25 08:31:35 STATE: test-node.js event: detect -2022-07-25 08:31:35 STATE: test-node.js passed: tensor shape: [1,1200,1200,4] dtype: int32 -2022-07-25 08:31:35 INFO:  test-node.js test default -2022-07-25 08:31:35 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-07-25 08:31:35 STATE: test-node.js event: image -2022-07-25 08:31:35 STATE: test-node.js event: detect -2022-07-25 08:31:35 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default -2022-07-25 08:31:35 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-25 08:31:35 DATA:  test-node.js result: performance: load: null total: 217 -2022-07-25 08:31:35 STATE: test-node.js passed: default result face match 1 female 0.97 -2022-07-25 08:31:35 INFO:  test-node.js test sync -2022-07-25 08:31:36 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-07-25 08:31:36 STATE: test-node.js event: image -2022-07-25 08:31:36 STATE: test-node.js event: detect -2022-07-25 08:31:36 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default -2022-07-25 08:31:36 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-25 08:31:36 DATA:  test-node.js result: performance: load: null total: 214 -2022-07-25 08:31:36 STATE: test-node.js passed: default sync 1 female 0.97 -2022-07-25 08:31:36 INFO:  test-node.js test: image process -2022-07-25 08:31:36 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-07-25 08:31:36 STATE: test-node.js passed: image input null [1,256,256,3] -2022-07-25 08:31:36 INFO:  test-node.js test: image null -2022-07-25 08:31:36 STATE: test-node.js passed: invalid input could not convert input to tensor -2022-07-25 08:31:36 INFO:  test-node.js test face similarity -2022-07-25 08:31:36 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-07-25 08:31:36 STATE: test-node.js event: image -2022-07-25 08:31:36 STATE: test-node.js event: detect -2022-07-25 08:31:36 STATE: test-node.js passed: detect: samples/in/ai-face.jpg default -2022-07-25 08:31:36 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":3} -2022-07-25 08:31:36 DATA:  test-node.js result: performance: load: null total: 210 -2022-07-25 08:31:36 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-07-25 08:31:36 STATE: test-node.js event: image -2022-07-25 08:31:36 STATE: test-node.js event: detect -2022-07-25 08:31:36 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default -2022-07-25 08:31:36 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-25 08:31:36 DATA:  test-node.js result: performance: load: null total: 212 -2022-07-25 08:31:36 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} -2022-07-25 08:31:36 STATE: test-node.js event: image -2022-07-25 08:31:37 STATE: test-node.js event: detect -2022-07-25 08:31:37 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg default -2022-07-25 08:31:37 DATA:  test-node.js result: face: 1 body: 1 hand: 0 gesture: 4 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":7} -2022-07-25 08:31:37 DATA:  test-node.js result: performance: load: null total: 193 -2022-07-25 08:31:37 STATE: test-node.js passed: face descriptor -2022-07-25 08:31:37 STATE: test-node.js passed: face similarity {"similarity":[1,0.44727452329649126,0.5567935850640406],"descriptors":[1024,1024,1024]} -2022-07-25 08:31:37 INFO:  test-node.js test face matching -2022-07-25 08:31:37 STATE: test-node.js passed: face database 40 -2022-07-25 08:31:37 STATE: test-node.js passed: face match {"first":{"index":4,"similarity":0.7827852615252829}} {"second":{"index":4,"similarity":0.5002052633015844}} {"third":{"index":4,"similarity":0.5401587887998899}} -2022-07-25 08:31:37 INFO:  test-node.js test object -2022-07-25 08:31:37 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-07-25 08:31:37 STATE: test-node.js event: image -2022-07-25 08:31:37 STATE: test-node.js event: detect -2022-07-25 08:31:37 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default -2022-07-25 08:31:37 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-25 08:31:37 DATA:  test-node.js result: performance: load: null total: 212 -2022-07-25 08:31:37 STATE: test-node.js passed: object result match -2022-07-25 08:31:37 INFO:  test-node.js test sensitive -2022-07-25 08:31:37 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-07-25 08:31:37 STATE: test-node.js event: image -2022-07-25 08:31:37 STATE: test-node.js event: detect -2022-07-25 08:31:37 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default -2022-07-25 08:31:37 DATA:  test-node.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-25 08:31:37 DATA:  test-node.js result: performance: load: null total: 228 -2022-07-25 08:31:37 STATE: test-node.js passed: sensitive result match -2022-07-25 08:31:37 STATE: test-node.js passed: sensitive face result match -2022-07-25 08:31:37 STATE: test-node.js passed: sensitive face emotion result [{"score":0.59,"emotion":"angry"},{"score":0.29,"emotion":"fear"}] -2022-07-25 08:31:37 STATE: test-node.js passed: sensitive body result match -2022-07-25 08:31:37 STATE: test-node.js passed: sensitive hand result match -2022-07-25 08:31:37 INFO:  test-node.js test detectors -2022-07-25 08:31:38 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-07-25 08:31:38 STATE: test-node.js event: image -2022-07-25 08:31:38 STATE: test-node.js event: detect -2022-07-25 08:31:38 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default -2022-07-25 08:31:38 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-25 08:31:38 DATA:  test-node.js result: performance: load: null total: 147 -2022-07-25 08:31:38 STATE: test-node.js passed: detector result face match -2022-07-25 08:31:38 STATE: test-node.js passed: detector result hand match -2022-07-25 08:31:38 INFO:  test-node.js test: multi-instance -2022-07-25 08:31:38 STATE: test-node.js event: image -2022-07-25 08:31:38 STATE: test-node.js event: detect -2022-07-25 08:31:38 STATE: test-node.js passed: detect: random default -2022-07-25 08:31:38 DATA:  test-node.js result: face: 0 body: 1 hand: 0 gesture: 0 object: 0 person: 0 {} {} {"score":0.07,"keypoints":15} -2022-07-25 08:31:38 DATA:  test-node.js result: performance: load: null total: 139 -2022-07-25 08:31:38 INFO:  test-node.js test: first instance -2022-07-25 08:31:38 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} -2022-07-25 08:31:38 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg default -2022-07-25 08:31:38 DATA:  test-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} -2022-07-25 08:31:38 DATA:  test-node.js result: performance: load: null total: 143 -2022-07-25 08:31:38 INFO:  test-node.js test: second instance -2022-07-25 08:31:38 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} -2022-07-25 08:31:38 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg default -2022-07-25 08:31:38 DATA:  test-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} -2022-07-25 08:31:38 DATA:  test-node.js result: performance: load: null total: 151 -2022-07-25 08:31:38 INFO:  test-node.js test: concurrent -2022-07-25 08:31:38 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-07-25 08:31:38 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-07-25 08:31:39 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-07-25 08:31:39 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-07-25 08:31:39 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} -2022-07-25 08:31:39 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} -2022-07-25 08:31:39 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-07-25 08:31:39 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-07-25 08:31:39 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} -2022-07-25 08:31:39 STATE: test-node.js event: image -2022-07-25 08:31:39 STATE: test-node.js event: image -2022-07-25 08:31:39 STATE: test-node.js event: image -2022-07-25 08:31:40 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg default -2022-07-25 08:31:40 DATA:  test-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} -2022-07-25 08:31:40 DATA:  test-node.js result: performance: load: null total: 1414 -2022-07-25 08:31:40 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg default -2022-07-25 08:31:40 DATA:  test-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} -2022-07-25 08:31:40 DATA:  test-node.js result: performance: load: null total: 1414 -2022-07-25 08:31:40 STATE: test-node.js passed: detect: samples/in/ai-face.jpg default -2022-07-25 08:31:40 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 2 object: 1 person: 1 {"score":0.91} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":17} -2022-07-25 08:31:40 DATA:  test-node.js result: performance: load: null total: 1539 -2022-07-25 08:31:40 STATE: test-node.js passed: detect: samples/in/ai-face.jpg default -2022-07-25 08:31:40 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 2 object: 1 person: 1 {"score":0.91} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":17} -2022-07-25 08:31:40 DATA:  test-node.js result: performance: load: null total: 1539 -2022-07-25 08:31:40 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default -2022-07-25 08:31:40 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-25 08:31:40 DATA:  test-node.js result: performance: load: null total: 1539 -2022-07-25 08:31:40 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default -2022-07-25 08:31:40 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-25 08:31:40 DATA:  test-node.js result: performance: load: null total: 1539 -2022-07-25 08:31:40 STATE: test-node.js event: detect -2022-07-25 08:31:40 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg default -2022-07-25 08:31:40 DATA:  test-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} -2022-07-25 08:31:40 DATA:  test-node.js result: performance: load: null total: 1279 -2022-07-25 08:31:40 STATE: test-node.js event: detect -2022-07-25 08:31:40 STATE: test-node.js event: detect -2022-07-25 08:31:40 STATE: test-node.js passed: detect: samples/in/ai-face.jpg default -2022-07-25 08:31:40 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 2 object: 1 person: 1 {"score":0.91} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":17} -2022-07-25 08:31:40 DATA:  test-node.js result: performance: load: null total: 1279 -2022-07-25 08:31:40 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default -2022-07-25 08:31:40 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-25 08:31:40 DATA:  test-node.js result: performance: load: null total: 1279 -2022-07-25 08:31:40 INFO:  test-node.js test: monkey-patch -2022-07-25 08:31:40 STATE: test-node.js event: image -2022-07-25 08:31:41 STATE: test-node.js event: detect -2022-07-25 08:31:41 STATE: test-node.js passed: monkey patch -2022-07-25 08:31:41 STATE: test-node.js passed: segmentation [65536] -2022-07-25 08:31:41 STATE: test-node.js passeed: equal usage -2022-07-25 08:31:41 INFO:  test-node.js test: input compare -2022-07-25 08:31:41 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-07-25 08:31:41 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} -2022-07-25 08:31:41 STATE: test-node.js passed: image compare 0 23.275441687091504 -2022-07-25 08:31:41 INFO:  test-node.js events: {"image":21,"detect":21,"warmup":2} -2022-07-25 08:31:41 INFO:  test-node.js tensors 1927 -2022-07-25 08:31:41 INFO:  test-node.js test complete: 9071 ms -2022-07-25 08:31:41 INFO:  -2022-07-25 08:31:41 INFO:  test-node-gpu.js start -2022-07-25 08:31:42 INFO:  test-node-gpu.js test: configuration validation -2022-07-25 08:31:42 STATE: test-node-gpu.js passed: configuration default validation [] -2022-07-25 08:31:42 STATE: test-node-gpu.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}] -2022-07-25 08:31:42 INFO:  test-node-gpu.js test: model load -2022-07-25 08:31:42 STATE: test-node-gpu.js passed: models loaded 22 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":"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-07-25 08:31:42 INFO:  test-node-gpu.js test: warmup -2022-07-25 08:31:42 STATE: test-node-gpu.js passed: create human -2022-07-25 08:31:42 INFO:  test-node-gpu.js human version: 2.9.1 -2022-07-25 08:31:42 INFO:  test-node-gpu.js platform: linux x64 agent: NodeJS v16.15.0 -2022-07-25 08:31:42 INFO:  test-node-gpu.js tfjs version: 3.19.0 -2022-07-25 08:31:42 INFO:  test-node-gpu.js tensorflow binding version: 2.7.3-dev20220521 -2022-07-25 08:31:42 STATE: test-node-gpu.js passed: set backend: tensorflow -2022-07-25 08:31:42 STATE: test-node-gpu.js tensors 1921 -2022-07-25 08:31:42 STATE: test-node-gpu.js passed: load models -2022-07-25 08:31:42 STATE: test-node-gpu.js result: defined models: 22 loaded models: 12 -2022-07-25 08:31:42 STATE: test-node-gpu.js passed: warmup: none default -2022-07-25 08:31:42 DATA:  test-node-gpu.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {} -2022-07-25 08:31:42 DATA:  test-node-gpu.js result: performance: load: null total: null -2022-07-25 08:31:42 STATE: test-node-gpu.js passed: warmup none result match -2022-07-25 08:31:42 STATE: test-node-gpu.js event: image -2022-07-25 08:31:46 STATE: test-node-gpu.js event: detect -2022-07-25 08:31:46 STATE: test-node-gpu.js event: warmup -2022-07-25 08:31:46 STATE: test-node-gpu.js passed: warmup: face default -2022-07-25 08:31:46 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.42,"keypoints":4} -2022-07-25 08:31:46 DATA:  test-node-gpu.js result: performance: load: null total: 3629 -2022-07-25 08:31:46 STATE: test-node-gpu.js passed: warmup face result match -2022-07-25 08:31:46 STATE: test-node-gpu.js event: image -2022-07-25 08:31:46 STATE: test-node-gpu.js event: detect -2022-07-25 08:31:46 STATE: test-node-gpu.js event: warmup -2022-07-25 08:31:46 STATE: test-node-gpu.js passed: warmup: body default -2022-07-25 08:31:46 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-25 08:31:46 DATA:  test-node-gpu.js result: performance: load: null total: 219 -2022-07-25 08:31:46 STATE: test-node-gpu.js passed: warmup body result match -2022-07-25 08:31:46 STATE: test-node-gpu.js details: {"face":{"boxScore":0.92,"faceScore":1,"age":23.7,"gender":"female","genderScore":0.97},"emotion":[{"score":0.63,"emotion":"angry"},{"score":0.22,"emotion":"fear"}],"body":{"score":0.92,"keypoints":17},"hand":{"boxScore":0.52,"fingerScore":0.73,"keypoints":21},"gestures":[{"face":0,"gesture":"facing right"},{"face":0,"gesture":"mouth 10% open"},{"hand":0,"gesture":"pinky forward"},{"hand":0,"gesture":"palm up"},{"hand":0,"gesture":"open palm"},{"iris":0,"gesture":"looking left"},{"iris":0,"gesture":"looking up"}]} -2022-07-25 08:31:46 INFO:  test-node-gpu.js test: details verification -2022-07-25 08:31:46 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-07-25 08:31:46 STATE: test-node-gpu.js event: image -2022-07-25 08:31:47 STATE: test-node-gpu.js event: detect -2022-07-25 08:31:47 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default -2022-07-25 08:31:47 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-25 08:31:47 DATA:  test-node-gpu.js result: performance: load: null total: 200 -2022-07-25 08:31:47 STATE: test-node-gpu.js passed: details face length 1 -2022-07-25 08:31:47 STATE: test-node-gpu.js passed: details face score 1 0.93 1 -2022-07-25 08:31:47 STATE: test-node-gpu.js passed: details face age/gender 23.7 female 0.97 85.47 -2022-07-25 08:31:47 STATE: test-node-gpu.js passed: details face arrays 4 478 1024 -2022-07-25 08:31:47 STATE: test-node-gpu.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"} -2022-07-25 08:31:47 STATE: test-node-gpu.js passed: details face anti-spoofing 0.79 -2022-07-25 08:31:47 STATE: test-node-gpu.js passed: details face liveness 0.83 -2022-07-25 08:31:47 STATE: test-node-gpu.js passed: details body length 1 -2022-07-25 08:31:47 STATE: test-node-gpu.js passed: details body 0.92 17 6 -2022-07-25 08:31:47 STATE: test-node-gpu.js passed: details hand length 1 -2022-07-25 08:31:47 STATE: test-node-gpu.js passed: details hand 0.51 0.73 point -2022-07-25 08:31:47 STATE: test-node-gpu.js passed: details hand arrays 21 5 7 -2022-07-25 08:31:47 STATE: test-node-gpu.js passed: details gesture length 7 -2022-07-25 08:31:47 STATE: test-node-gpu.js passed: details gesture first {"face":0,"gesture":"facing right"} -2022-07-25 08:31:47 STATE: test-node-gpu.js passed: details object length 1 -2022-07-25 08:31:47 STATE: test-node-gpu.js passed: details object 0.72 person -2022-07-25 08:31:47 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996928} -2022-07-25 08:31:47 STATE: test-node-gpu.js event: image -2022-07-25 08:31:47 STATE: test-node-gpu.js event: detect -2022-07-25 08:31:47 STATE: test-node-gpu.js passed: tensor shape: [1,1200,1200,4] dtype: float32 -2022-07-25 08:31:47 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1371996928} -2022-07-25 08:31:47 STATE: test-node-gpu.js event: image -2022-07-25 08:31:47 STATE: test-node-gpu.js event: detect -2022-07-25 08:31:47 STATE: test-node-gpu.js passed: tensor shape: [1200,1200,4] dtype: float32 -2022-07-25 08:31:48 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-07-25 08:31:48 STATE: test-node-gpu.js event: image -2022-07-25 08:31:48 STATE: test-node-gpu.js event: detect -2022-07-25 08:31:48 STATE: test-node-gpu.js passed: tensor shape: [1,1200,1200,3] dtype: float32 -2022-07-25 08:31:48 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1004796928} -2022-07-25 08:31:48 STATE: test-node-gpu.js event: image -2022-07-25 08:31:48 STATE: test-node-gpu.js event: detect -2022-07-25 08:31:48 STATE: test-node-gpu.js passed: tensor shape: [1200,1200,3] dtype: float32 -2022-07-25 08:31:48 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871} -2022-07-25 08:31:48 STATE: test-node-gpu.js event: image -2022-07-25 08:31:49 STATE: test-node-gpu.js event: detect -2022-07-25 08:31:49 STATE: test-node-gpu.js passed: tensor shape: [1,1200,1200,4] dtype: int32 -2022-07-25 08:31:49 INFO:  test-node-gpu.js test default -2022-07-25 08:31:49 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-07-25 08:31:49 STATE: test-node-gpu.js event: image -2022-07-25 08:31:49 STATE: test-node-gpu.js event: detect -2022-07-25 08:31:49 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default -2022-07-25 08:31:49 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-25 08:31:49 DATA:  test-node-gpu.js result: performance: load: null total: 185 -2022-07-25 08:31:49 STATE: test-node-gpu.js passed: default result face match 1 female 0.97 -2022-07-25 08:31:49 INFO:  test-node-gpu.js test sync -2022-07-25 08:31:49 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-07-25 08:31:49 STATE: test-node-gpu.js event: image -2022-07-25 08:31:49 STATE: test-node-gpu.js event: detect -2022-07-25 08:31:49 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default -2022-07-25 08:31:49 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-25 08:31:49 DATA:  test-node-gpu.js result: performance: load: null total: 277 -2022-07-25 08:31:49 STATE: test-node-gpu.js passed: default sync 1 female 0.97 -2022-07-25 08:31:49 INFO:  test-node-gpu.js test: image process -2022-07-25 08:31:49 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-07-25 08:31:49 STATE: test-node-gpu.js passed: image input null [1,256,256,3] -2022-07-25 08:31:49 INFO:  test-node-gpu.js test: image null -2022-07-25 08:31:49 STATE: test-node-gpu.js passed: invalid input could not convert input to tensor -2022-07-25 08:31:49 INFO:  test-node-gpu.js test face similarity -2022-07-25 08:31:49 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-07-25 08:31:49 STATE: test-node-gpu.js event: image -2022-07-25 08:31:50 STATE: test-node-gpu.js event: detect -2022-07-25 08:31:50 STATE: test-node-gpu.js passed: detect: samples/in/ai-face.jpg default -2022-07-25 08:31:50 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":3} -2022-07-25 08:31:50 DATA:  test-node-gpu.js result: performance: load: null total: 169 -2022-07-25 08:31:50 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-07-25 08:31:50 STATE: test-node-gpu.js event: image -2022-07-25 08:31:50 STATE: test-node-gpu.js event: detect -2022-07-25 08:31:50 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default -2022-07-25 08:31:50 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-25 08:31:50 DATA:  test-node-gpu.js result: performance: load: null total: 191 -2022-07-25 08:31:50 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} -2022-07-25 08:31:50 STATE: test-node-gpu.js event: image -2022-07-25 08:31:50 STATE: test-node-gpu.js event: detect -2022-07-25 08:31:50 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg default -2022-07-25 08:31:50 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 4 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":7} -2022-07-25 08:31:50 DATA:  test-node-gpu.js result: performance: load: null total: 138 -2022-07-25 08:31:50 STATE: test-node-gpu.js passed: face descriptor -2022-07-25 08:31:50 STATE: test-node-gpu.js passed: face similarity {"similarity":[1,0.447238756461232,0.556914029877052],"descriptors":[1024,1024,1024]} -2022-07-25 08:31:50 INFO:  test-node-gpu.js test face matching -2022-07-25 08:31:50 STATE: test-node-gpu.js passed: face database 40 -2022-07-25 08:31:50 STATE: test-node-gpu.js passed: face match {"first":{"index":4,"similarity":0.7828184453007331}} {"second":{"index":4,"similarity":0.5001334216773398}} {"third":{"index":4,"similarity":0.5403054967489764}} -2022-07-25 08:31:50 INFO:  test-node-gpu.js test object -2022-07-25 08:31:50 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-07-25 08:31:50 STATE: test-node-gpu.js event: image -2022-07-25 08:31:50 STATE: test-node-gpu.js event: detect -2022-07-25 08:31:50 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default -2022-07-25 08:31:50 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-25 08:31:50 DATA:  test-node-gpu.js result: performance: load: null total: 149 -2022-07-25 08:31:50 STATE: test-node-gpu.js passed: object result match -2022-07-25 08:31:50 INFO:  test-node-gpu.js test sensitive -2022-07-25 08:31:51 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-07-25 08:31:51 STATE: test-node-gpu.js event: image -2022-07-25 08:31:51 STATE: test-node-gpu.js event: detect -2022-07-25 08:31:51 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default -2022-07-25 08:31:51 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-25 08:31:51 DATA:  test-node-gpu.js result: performance: load: null total: 161 -2022-07-25 08:31:51 STATE: test-node-gpu.js passed: sensitive result match -2022-07-25 08:31:51 STATE: test-node-gpu.js passed: sensitive face result match -2022-07-25 08:31:51 STATE: test-node-gpu.js passed: sensitive face emotion result [{"score":0.59,"emotion":"angry"},{"score":0.29,"emotion":"fear"}] -2022-07-25 08:31:51 STATE: test-node-gpu.js passed: sensitive body result match -2022-07-25 08:31:51 STATE: test-node-gpu.js passed: sensitive hand result match -2022-07-25 08:31:51 INFO:  test-node-gpu.js test detectors -2022-07-25 08:31:51 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-07-25 08:31:51 STATE: test-node-gpu.js event: image -2022-07-25 08:31:51 STATE: test-node-gpu.js event: detect -2022-07-25 08:31:51 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default -2022-07-25 08:31:51 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-25 08:31:51 DATA:  test-node-gpu.js result: performance: load: null total: 86 -2022-07-25 08:31:51 STATE: test-node-gpu.js passed: detector result face match -2022-07-25 08:31:51 STATE: test-node-gpu.js passed: detector result hand match -2022-07-25 08:31:51 INFO:  test-node-gpu.js test: multi-instance -2022-07-25 08:31:51 STATE: test-node-gpu.js event: image -2022-07-25 08:31:51 STATE: test-node-gpu.js event: detect -2022-07-25 08:31:51 STATE: test-node-gpu.js passed: detect: random default -2022-07-25 08:31:51 DATA:  test-node-gpu.js result: face: 0 body: 1 hand: 0 gesture: 0 object: 0 person: 0 {} {} {"score":0.07,"keypoints":15} -2022-07-25 08:31:51 DATA:  test-node-gpu.js result: performance: load: null total: 104 -2022-07-25 08:31:51 INFO:  test-node-gpu.js test: first instance -2022-07-25 08:31:51 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} -2022-07-25 08:31:52 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg default -2022-07-25 08:31:52 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} -2022-07-25 08:31:52 DATA:  test-node-gpu.js result: performance: load: null total: 88 -2022-07-25 08:31:52 INFO:  test-node-gpu.js test: second instance -2022-07-25 08:31:52 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} -2022-07-25 08:31:52 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg default -2022-07-25 08:31:52 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} -2022-07-25 08:31:52 DATA:  test-node-gpu.js result: performance: load: null total: 80 -2022-07-25 08:31:52 INFO:  test-node-gpu.js test: concurrent -2022-07-25 08:31:52 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-07-25 08:31:52 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-07-25 08:31:52 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-07-25 08:31:52 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-07-25 08:31:52 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} -2022-07-25 08:31:52 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} -2022-07-25 08:31:52 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-07-25 08:31:53 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-07-25 08:31:53 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} -2022-07-25 08:31:53 STATE: test-node-gpu.js event: image -2022-07-25 08:31:53 STATE: test-node-gpu.js event: image -2022-07-25 08:31:53 STATE: test-node-gpu.js event: image -2022-07-25 08:31:53 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg default -2022-07-25 08:31:53 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} -2022-07-25 08:31:53 DATA:  test-node-gpu.js result: performance: load: null total: 986 -2022-07-25 08:31:53 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg default -2022-07-25 08:31:53 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} -2022-07-25 08:31:53 DATA:  test-node-gpu.js result: performance: load: null total: 986 -2022-07-25 08:31:53 STATE: test-node-gpu.js passed: detect: samples/in/ai-face.jpg default -2022-07-25 08:31:53 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 2 object: 1 person: 1 {"score":0.91} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":17} -2022-07-25 08:31:53 DATA:  test-node-gpu.js result: performance: load: null total: 1052 -2022-07-25 08:31:53 STATE: test-node-gpu.js passed: detect: samples/in/ai-face.jpg default -2022-07-25 08:31:53 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 2 object: 1 person: 1 {"score":0.91} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":17} -2022-07-25 08:31:53 DATA:  test-node-gpu.js result: performance: load: null total: 1052 -2022-07-25 08:31:53 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default -2022-07-25 08:31:53 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-25 08:31:53 DATA:  test-node-gpu.js result: performance: load: null total: 1052 -2022-07-25 08:31:53 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default -2022-07-25 08:31:53 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-25 08:31:53 DATA:  test-node-gpu.js result: performance: load: null total: 1052 -2022-07-25 08:31:53 STATE: test-node-gpu.js event: detect -2022-07-25 08:31:53 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg default -2022-07-25 08:31:53 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} -2022-07-25 08:31:53 DATA:  test-node-gpu.js result: performance: load: null total: 772 -2022-07-25 08:31:53 STATE: test-node-gpu.js event: detect -2022-07-25 08:31:53 STATE: test-node-gpu.js event: detect -2022-07-25 08:31:53 STATE: test-node-gpu.js passed: detect: samples/in/ai-face.jpg default -2022-07-25 08:31:53 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 2 object: 1 person: 1 {"score":0.91} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":17} -2022-07-25 08:31:53 DATA:  test-node-gpu.js result: performance: load: null total: 772 -2022-07-25 08:31:53 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default -2022-07-25 08:31:53 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-25 08:31:53 DATA:  test-node-gpu.js result: performance: load: null total: 772 -2022-07-25 08:31:53 INFO:  test-node-gpu.js test: monkey-patch -2022-07-25 08:31:53 STATE: test-node-gpu.js event: image -2022-07-25 08:31:53 STATE: test-node-gpu.js event: detect -2022-07-25 08:31:53 STATE: test-node-gpu.js passed: monkey patch -2022-07-25 08:31:54 STATE: test-node-gpu.js passed: segmentation [65536] -2022-07-25 08:31:54 STATE: test-node-gpu.js passeed: equal usage -2022-07-25 08:31:54 INFO:  test-node-gpu.js test: input compare -2022-07-25 08:31:54 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} -2022-07-25 08:31:54 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} -2022-07-25 08:31:54 STATE: test-node-gpu.js passed: image compare 0 23.275441687091504 -2022-07-25 08:31:54 INFO:  test-node-gpu.js events: {"image":21,"detect":21,"warmup":2} -2022-07-25 08:31:54 INFO:  test-node-gpu.js tensors 1927 -2022-07-25 08:31:54 INFO:  test-node-gpu.js test complete: 12205 ms -2022-07-25 08:31:55 INFO:  -2022-07-25 08:31:55 INFO:  test-node-wasm.js start -2022-07-25 08:31:55 STATE: test-node-wasm.js passed: model server: https://vladmandic.github.io/human/models/ -2022-07-25 08:31:55 INFO:  test-node-wasm.js test: configuration validation -2022-07-25 08:31:55 STATE: test-node-wasm.js passed: configuration default validation [] -2022-07-25 08:31:55 STATE: test-node-wasm.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}] -2022-07-25 08:31:55 INFO:  test-node-wasm.js test: model load -2022-07-25 08:31:57 STATE: test-node-wasm.js passed: models loaded 22 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":"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-07-25 08:31:57 INFO:  test-node-wasm.js test: warmup -2022-07-25 08:31:57 STATE: test-node-wasm.js passed: create human -2022-07-25 08:31:57 INFO:  test-node-wasm.js human version: 2.9.1 -2022-07-25 08:31:57 INFO:  test-node-wasm.js platform: linux x64 agent: NodeJS v16.15.0 -2022-07-25 08:31:57 INFO:  test-node-wasm.js tfjs version: 3.19.0 -2022-07-25 08:31:57 STATE: test-node-wasm.js passed: set backend: wasm -2022-07-25 08:31:57 STATE: test-node-wasm.js tensors 1921 -2022-07-25 08:31:57 STATE: test-node-wasm.js passed: load models -2022-07-25 08:31:57 STATE: test-node-wasm.js result: defined models: 22 loaded models: 12 -2022-07-25 08:31:57 STATE: test-node-wasm.js passed: warmup: none default -2022-07-25 08:31:57 DATA:  test-node-wasm.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {} -2022-07-25 08:31:57 DATA:  test-node-wasm.js result: performance: load: null total: null -2022-07-25 08:31:57 STATE: test-node-wasm.js passed: warmup none result match -2022-07-25 08:31:57 STATE: test-node-wasm.js event: image -2022-07-25 08:31:58 STATE: test-node-wasm.js event: detect -2022-07-25 08:31:58 STATE: test-node-wasm.js event: warmup -2022-07-25 08:31:58 STATE: test-node-wasm.js passed: warmup: face default -2022-07-25 08:31:58 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":3} -2022-07-25 08:31:58 DATA:  test-node-wasm.js result: performance: load: null total: 572 -2022-07-25 08:31:58 STATE: test-node-wasm.js passed: warmup face result match -2022-07-25 08:31:58 STATE: test-node-wasm.js event: image -2022-07-25 08:31:58 STATE: test-node-wasm.js event: detect -2022-07-25 08:31:58 STATE: test-node-wasm.js event: warmup -2022-07-25 08:31:58 STATE: test-node-wasm.js passed: warmup: body default -2022-07-25 08:31:58 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-25 08:31:58 DATA:  test-node-wasm.js result: performance: load: null total: 418 -2022-07-25 08:31:58 STATE: test-node-wasm.js passed: warmup body result match -2022-07-25 08:31:58 STATE: test-node-wasm.js details: {"face":{"boxScore":0.93,"faceScore":1,"age":23.7,"gender":"female","genderScore":0.97},"emotion":[{"score":0.59,"emotion":"angry"},{"score":0.29,"emotion":"fear"}],"body":{"score":0.92,"keypoints":17},"hand":{"boxScore":0.51,"fingerScore":0.73,"keypoints":21},"gestures":[{"face":0,"gesture":"facing right"},{"face":0,"gesture":"mouth 21% open"},{"hand":0,"gesture":"pinky forward"},{"hand":0,"gesture":"palm up"},{"hand":0,"gesture":"open palm"},{"iris":0,"gesture":"looking left"},{"iris":0,"gesture":"looking up"}]} -2022-07-25 08:31:58 INFO:  test-node-wasm.js test: details verification -2022-07-25 08:31:58 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-07-25 08:31:58 STATE: test-node-wasm.js event: image -2022-07-25 08:31:59 STATE: test-node-wasm.js event: detect -2022-07-25 08:31:59 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default -2022-07-25 08:31:59 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-25 08:31:59 DATA:  test-node-wasm.js result: performance: load: null total: 361 -2022-07-25 08:31:59 STATE: test-node-wasm.js passed: details face length 1 -2022-07-25 08:31:59 STATE: test-node-wasm.js passed: details face score 1 0.93 1 -2022-07-25 08:31:59 STATE: test-node-wasm.js passed: details face age/gender 23.7 female 0.97 85.47 -2022-07-25 08:31:59 STATE: test-node-wasm.js passed: details face arrays 4 478 1024 -2022-07-25 08:31:59 STATE: test-node-wasm.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"} -2022-07-25 08:31:59 STATE: test-node-wasm.js passed: details face anti-spoofing 0.79 -2022-07-25 08:31:59 STATE: test-node-wasm.js passed: details face liveness 0.83 -2022-07-25 08:31:59 STATE: test-node-wasm.js passed: details body length 1 -2022-07-25 08:31:59 STATE: test-node-wasm.js passed: details body 0.92 17 6 -2022-07-25 08:31:59 STATE: test-node-wasm.js passed: details hand length 1 -2022-07-25 08:31:59 STATE: test-node-wasm.js passed: details hand 0.51 0.73 point -2022-07-25 08:31:59 STATE: test-node-wasm.js passed: details hand arrays 21 5 7 -2022-07-25 08:31:59 STATE: test-node-wasm.js passed: details gesture length 7 -2022-07-25 08:31:59 STATE: test-node-wasm.js passed: details gesture first {"face":0,"gesture":"facing right"} -2022-07-25 08:31:59 STATE: test-node-wasm.js passed: details object length 1 -2022-07-25 08:31:59 STATE: test-node-wasm.js passed: details object 0.72 person -2022-07-25 08:31:59 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1413675264} -2022-07-25 08:31:59 STATE: test-node-wasm.js event: image -2022-07-25 08:31:59 STATE: test-node-wasm.js event: detect -2022-07-25 08:31:59 STATE: test-node-wasm.js passed: tensor shape: [1,1200,1200,4] dtype: float32 -2022-07-25 08:31:59 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1413675264} -2022-07-25 08:31:59 STATE: test-node-wasm.js event: image -2022-07-25 08:32:00 STATE: test-node-wasm.js event: detect -2022-07-25 08:32:00 STATE: test-node-wasm.js passed: tensor shape: [1200,1200,4] dtype: float32 -2022-07-25 08:32:00 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-07-25 08:32:00 STATE: test-node-wasm.js event: image -2022-07-25 08:32:00 STATE: test-node-wasm.js event: detect -2022-07-25 08:32:00 STATE: test-node-wasm.js passed: tensor shape: [1,1200,1200,3] dtype: float32 -2022-07-25 08:32:01 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1038921856} -2022-07-25 08:32:01 STATE: test-node-wasm.js event: image -2022-07-25 08:32:01 STATE: test-node-wasm.js event: detect -2022-07-25 08:32:01 STATE: test-node-wasm.js passed: tensor shape: [1200,1200,3] dtype: float32 -2022-07-25 08:32:01 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871} -2022-07-25 08:32:01 STATE: test-node-wasm.js event: image -2022-07-25 08:32:02 STATE: test-node-wasm.js event: detect -2022-07-25 08:32:02 STATE: test-node-wasm.js passed: tensor shape: [1,1200,1200,4] dtype: int32 -2022-07-25 08:32:02 INFO:  test-node-wasm.js test default -2022-07-25 08:32:02 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-07-25 08:32:02 STATE: test-node-wasm.js event: image -2022-07-25 08:32:02 STATE: test-node-wasm.js event: detect -2022-07-25 08:32:02 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default -2022-07-25 08:32:02 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-25 08:32:02 DATA:  test-node-wasm.js result: performance: load: null total: 351 -2022-07-25 08:32:02 STATE: test-node-wasm.js passed: default result face match 1 female 0.97 -2022-07-25 08:32:02 INFO:  test-node-wasm.js test sync -2022-07-25 08:32:02 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-07-25 08:32:02 STATE: test-node-wasm.js event: image -2022-07-25 08:32:03 STATE: test-node-wasm.js event: detect -2022-07-25 08:32:03 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default -2022-07-25 08:32:03 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-25 08:32:03 DATA:  test-node-wasm.js result: performance: load: null total: 373 -2022-07-25 08:32:03 STATE: test-node-wasm.js passed: default sync 1 female 0.97 -2022-07-25 08:32:03 INFO:  test-node-wasm.js test: image process -2022-07-25 08:32:03 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-07-25 08:32:03 STATE: test-node-wasm.js passed: image input null [1,256,256,3] -2022-07-25 08:32:03 INFO:  test-node-wasm.js test: image null -2022-07-25 08:32:03 STATE: test-node-wasm.js passed: invalid input could not convert input to tensor -2022-07-25 08:32:03 INFO:  test-node-wasm.js test face similarity -2022-07-25 08:32:03 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-07-25 08:32:03 STATE: test-node-wasm.js event: image -2022-07-25 08:32:03 STATE: test-node-wasm.js event: detect -2022-07-25 08:32:03 STATE: test-node-wasm.js passed: detect: samples/in/ai-face.jpg default -2022-07-25 08:32:03 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":3} -2022-07-25 08:32:03 DATA:  test-node-wasm.js result: performance: load: null total: 300 -2022-07-25 08:32:03 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-07-25 08:32:03 STATE: test-node-wasm.js event: image -2022-07-25 08:32:04 STATE: test-node-wasm.js event: detect -2022-07-25 08:32:04 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default -2022-07-25 08:32:04 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-25 08:32:04 DATA:  test-node-wasm.js result: performance: load: null total: 335 -2022-07-25 08:32:04 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} -2022-07-25 08:32:04 STATE: test-node-wasm.js event: image -2022-07-25 08:32:04 STATE: test-node-wasm.js event: detect -2022-07-25 08:32:04 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg default -2022-07-25 08:32:04 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 4 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":7} -2022-07-25 08:32:04 DATA:  test-node-wasm.js result: performance: load: null total: 316 -2022-07-25 08:32:04 STATE: test-node-wasm.js passed: face descriptor -2022-07-25 08:32:04 STATE: test-node-wasm.js passed: face similarity {"similarity":[1,0.5266119940661309,0.4858842904087851],"descriptors":[1024,1024,1024]} -2022-07-25 08:32:04 INFO:  test-node-wasm.js test face matching -2022-07-25 08:32:04 STATE: test-node-wasm.js passed: face database 40 -2022-07-25 08:32:04 STATE: test-node-wasm.js passed: face match {"first":{"index":4,"similarity":0.7827852754786533}} {"second":{"index":4,"similarity":0.5660821189104794}} {"third":{"index":4,"similarity":0.45074189882665594}} -2022-07-25 08:32:04 INFO:  test-node-wasm.js test object -2022-07-25 08:32:04 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-07-25 08:32:04 STATE: test-node-wasm.js event: image -2022-07-25 08:32:05 STATE: test-node-wasm.js event: detect -2022-07-25 08:32:05 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default -2022-07-25 08:32:05 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-25 08:32:05 DATA:  test-node-wasm.js result: performance: load: null total: 326 -2022-07-25 08:32:05 STATE: test-node-wasm.js passed: object result match -2022-07-25 08:32:05 INFO:  test-node-wasm.js test sensitive -2022-07-25 08:32:05 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-07-25 08:32:05 STATE: test-node-wasm.js event: image -2022-07-25 08:32:05 STATE: test-node-wasm.js event: detect -2022-07-25 08:32:05 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default -2022-07-25 08:32:05 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 10 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-25 08:32:05 DATA:  test-node-wasm.js result: performance: load: null total: 358 -2022-07-25 08:32:05 STATE: test-node-wasm.js passed: sensitive result match -2022-07-25 08:32:05 STATE: test-node-wasm.js passed: sensitive face result match -2022-07-25 08:32:05 STATE: test-node-wasm.js passed: sensitive face emotion result [{"score":0.46,"emotion":"neutral"},{"score":0.24,"emotion":"fear"},{"score":0.17,"emotion":"sad"}] -2022-07-25 08:32:05 STATE: test-node-wasm.js passed: sensitive body result match -2022-07-25 08:32:05 STATE: test-node-wasm.js passed: sensitive hand result match -2022-07-25 08:32:05 INFO:  test-node-wasm.js test detectors -2022-07-25 08:32:06 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-07-25 08:32:06 STATE: test-node-wasm.js event: image -2022-07-25 08:32:06 STATE: test-node-wasm.js event: detect -2022-07-25 08:32:06 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default -2022-07-25 08:32:06 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-25 08:32:06 DATA:  test-node-wasm.js result: performance: load: null total: 248 -2022-07-25 08:32:06 STATE: test-node-wasm.js passed: detector result face match -2022-07-25 08:32:06 STATE: test-node-wasm.js passed: detector result hand match -2022-07-25 08:32:06 INFO:  test-node-wasm.js test: multi-instance -2022-07-25 08:32:06 STATE: test-node-wasm.js event: image -2022-07-25 08:32:06 STATE: test-node-wasm.js event: detect -2022-07-25 08:32:06 STATE: test-node-wasm.js passed: detect: random default -2022-07-25 08:32:06 DATA:  test-node-wasm.js result: face: 0 body: 1 hand: 0 gesture: 0 object: 0 person: 0 {} {} {"score":0.06,"keypoints":15} -2022-07-25 08:32:06 DATA:  test-node-wasm.js result: performance: load: null total: 247 -2022-07-25 08:32:06 INFO:  test-node-wasm.js test: first instance -2022-07-25 08:32:06 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} -2022-07-25 08:32:06 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg default -2022-07-25 08:32:06 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} -2022-07-25 08:32:06 DATA:  test-node-wasm.js result: performance: load: null total: 230 -2022-07-25 08:32:06 INFO:  test-node-wasm.js test: second instance -2022-07-25 08:32:07 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} -2022-07-25 08:32:07 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg default -2022-07-25 08:32:07 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} -2022-07-25 08:32:07 DATA:  test-node-wasm.js result: performance: load: null total: 252 -2022-07-25 08:32:07 INFO:  test-node-wasm.js test: concurrent -2022-07-25 08:32:07 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-07-25 08:32:07 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-07-25 08:32:07 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-07-25 08:32:07 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-07-25 08:32:07 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} -2022-07-25 08:32:07 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} -2022-07-25 08:32:07 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-07-25 08:32:08 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-07-25 08:32:08 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} -2022-07-25 08:32:08 STATE: test-node-wasm.js event: image -2022-07-25 08:32:08 STATE: test-node-wasm.js event: image -2022-07-25 08:32:08 STATE: test-node-wasm.js event: image -2022-07-25 08:32:10 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg default -2022-07-25 08:32:10 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} -2022-07-25 08:32:10 DATA:  test-node-wasm.js result: performance: load: null total: 2135 -2022-07-25 08:32:10 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg default -2022-07-25 08:32:10 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} -2022-07-25 08:32:10 DATA:  test-node-wasm.js result: performance: load: null total: 2135 -2022-07-25 08:32:10 STATE: test-node-wasm.js passed: detect: samples/in/ai-face.jpg default -2022-07-25 08:32:10 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 2 object: 1 person: 1 {"score":0.91} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":17} -2022-07-25 08:32:10 DATA:  test-node-wasm.js result: performance: load: null total: 2393 -2022-07-25 08:32:10 STATE: test-node-wasm.js passed: detect: samples/in/ai-face.jpg default -2022-07-25 08:32:10 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 2 object: 1 person: 1 {"score":0.91} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":17} -2022-07-25 08:32:10 DATA:  test-node-wasm.js result: performance: load: null total: 2393 -2022-07-25 08:32:10 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default -2022-07-25 08:32:10 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-25 08:32:10 DATA:  test-node-wasm.js result: performance: load: null total: 2393 -2022-07-25 08:32:10 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default -2022-07-25 08:32:10 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-25 08:32:10 DATA:  test-node-wasm.js result: performance: load: null total: 2393 -2022-07-25 08:32:10 STATE: test-node-wasm.js event: detect -2022-07-25 08:32:10 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg default -2022-07-25 08:32:10 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} -2022-07-25 08:32:10 DATA:  test-node-wasm.js result: performance: load: null total: 2080 -2022-07-25 08:32:10 STATE: test-node-wasm.js event: detect -2022-07-25 08:32:10 STATE: test-node-wasm.js event: detect -2022-07-25 08:32:10 STATE: test-node-wasm.js passed: detect: samples/in/ai-face.jpg default -2022-07-25 08:32:10 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 2 object: 1 person: 1 {"score":0.91} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":17} -2022-07-25 08:32:10 DATA:  test-node-wasm.js result: performance: load: null total: 2080 -2022-07-25 08:32:10 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default -2022-07-25 08:32:10 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} -2022-07-25 08:32:10 DATA:  test-node-wasm.js result: performance: load: null total: 2080 -2022-07-25 08:32:10 INFO:  test-node-wasm.js test: monkey-patch -2022-07-25 08:32:10 STATE: test-node-wasm.js event: image -2022-07-25 08:32:10 STATE: test-node-wasm.js event: detect -2022-07-25 08:32:10 STATE: test-node-wasm.js passed: monkey patch -2022-07-25 08:32:10 STATE: test-node-wasm.js passed: segmentation [65536] -2022-07-25 08:32:10 STATE: test-node-wasm.js passeed: equal usage -2022-07-25 08:32:10 INFO:  test-node-wasm.js test: input compare -2022-07-25 08:32:10 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} -2022-07-25 08:32:10 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} -2022-07-25 08:32:10 STATE: test-node-wasm.js passed: image compare 0 23.280073018790848 -2022-07-25 08:32:10 INFO:  test-node-wasm.js events: {"image":21,"detect":21,"warmup":2} -2022-07-25 08:32:10 INFO:  test-node-wasm.js tensors 1929 -2022-07-25 08:32:10 INFO:  test-node-wasm.js test complete: 14980 ms -2022-07-25 08:32:10 INFO:  all tests complete -2022-07-25 08:32:10 INFO:  failed: {"count":0,"messages":[]} -2022-07-25 08:32:10 INFO:  status: {"test":"test-node.js","passed":101,"failed":0} -2022-07-25 08:32:10 INFO:  status: {"test":"test-node-gpu.js","passed":101,"failed":0} -2022-07-25 08:32:10 INFO:  status: {"test":"test-node-wasm.js","passed":102,"failed":0} +2022-07-29 09:22:56 INFO:  @vladmandic/human version 2.9.1 +2022-07-29 09:22:56 INFO:  User: vlado Platform: linux Arch: x64 Node: v16.15.0 +2022-07-29 09:22:56 INFO:  tests: ["test-node.js","test-node-gpu.js","test-node-wasm.js"] +2022-07-29 09:22:56 INFO:  demos: ["../demo/nodejs/node.js","../demo/nodejs/node-canvas.js","../demo/nodejs/node-env.js","../demo/nodejs/node-event.js","../demo/nodejs/node-multiprocess.js"] +2022-07-29 09:22:56 INFO:  +2022-07-29 09:22:56 INFO:  test-node.js start +2022-07-29 09:22:56 INFO:  test-node.js test: configuration validation +2022-07-29 09:22:56 STATE: test-node.js passed: configuration default validation [] +2022-07-29 09:22:56 STATE: test-node.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}] +2022-07-29 09:22:56 INFO:  test-node.js test: model load +2022-07-29 09:22:56 STATE: test-node.js passed: models loaded 22 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":"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-07-29 09:22:56 INFO:  test-node.js test: warmup +2022-07-29 09:22:56 STATE: test-node.js passed: create human +2022-07-29 09:22:56 INFO:  test-node.js human version: 2.9.1 +2022-07-29 09:22:56 INFO:  test-node.js platform: linux x64 agent: NodeJS v16.15.0 +2022-07-29 09:22:56 INFO:  test-node.js tfjs version: 3.19.0 +2022-07-29 09:22:56 INFO:  test-node.js tensorflow binding version: 2.7.3-dev20220521 +2022-07-29 09:22:56 STATE: test-node.js passed: set backend: tensorflow +2022-07-29 09:22:56 STATE: test-node.js tensors 1921 +2022-07-29 09:22:56 STATE: test-node.js passed: load models +2022-07-29 09:22:56 STATE: test-node.js result: defined models: 22 loaded models: 12 +2022-07-29 09:22:56 STATE: test-node.js passed: warmup: none default +2022-07-29 09:22:56 DATA:  test-node.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {} +2022-07-29 09:22:56 DATA:  test-node.js result: performance: load: null total: null +2022-07-29 09:22:56 STATE: test-node.js passed: warmup none result match +2022-07-29 09:22:56 STATE: test-node.js event: image +2022-07-29 09:22:56 STATE: test-node.js event: detect +2022-07-29 09:22:56 STATE: test-node.js event: warmup +2022-07-29 09:22:56 STATE: test-node.js passed: warmup: face default +2022-07-29 09:22:56 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.42,"keypoints":4} +2022-07-29 09:22:56 DATA:  test-node.js result: performance: load: null total: 332 +2022-07-29 09:22:56 STATE: test-node.js passed: warmup face result match +2022-07-29 09:22:56 STATE: test-node.js event: image +2022-07-29 09:22:57 STATE: test-node.js event: detect +2022-07-29 09:22:57 STATE: test-node.js event: warmup +2022-07-29 09:22:57 STATE: test-node.js passed: warmup: body default +2022-07-29 09:22:57 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-29 09:22:57 DATA:  test-node.js result: performance: load: null total: 253 +2022-07-29 09:22:57 STATE: test-node.js passed: warmup body result match +2022-07-29 09:22:57 STATE: test-node.js details: {"face":{"boxScore":0.92,"faceScore":1,"age":23.7,"gender":"female","genderScore":0.97},"emotion":[{"score":0.63,"emotion":"angry"},{"score":0.22,"emotion":"fear"}],"body":{"score":0.92,"keypoints":17},"hand":{"boxScore":0.52,"fingerScore":0.73,"keypoints":21},"gestures":[{"face":0,"gesture":"facing right"},{"face":0,"gesture":"mouth 10% open"},{"hand":0,"gesture":"pinky forward"},{"hand":0,"gesture":"palm up"},{"hand":0,"gesture":"open palm"},{"iris":0,"gesture":"looking left"},{"iris":0,"gesture":"looking up"}]} +2022-07-29 09:22:57 INFO:  test-node.js test: details verification +2022-07-29 09:22:57 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-07-29 09:22:57 STATE: test-node.js event: image +2022-07-29 09:22:57 STATE: test-node.js event: detect +2022-07-29 09:22:57 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default +2022-07-29 09:22:57 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-29 09:22:57 DATA:  test-node.js result: performance: load: null total: 246 +2022-07-29 09:22:57 STATE: test-node.js passed: details face length 1 +2022-07-29 09:22:57 STATE: test-node.js passed: details face score 1 0.93 1 +2022-07-29 09:22:57 STATE: test-node.js passed: details face age/gender 23.7 female 0.97 85.47 +2022-07-29 09:22:57 STATE: test-node.js passed: details face arrays 4 478 1024 +2022-07-29 09:22:57 STATE: test-node.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"} +2022-07-29 09:22:57 STATE: test-node.js passed: details face anti-spoofing 0.79 +2022-07-29 09:22:57 STATE: test-node.js passed: details face liveness 0.83 +2022-07-29 09:22:57 STATE: test-node.js passed: details body length 1 +2022-07-29 09:22:57 STATE: test-node.js passed: details body 0.92 17 6 +2022-07-29 09:22:57 STATE: test-node.js passed: details hand length 1 +2022-07-29 09:22:57 STATE: test-node.js passed: details hand 0.51 0.73 point +2022-07-29 09:22:57 STATE: test-node.js passed: details hand arrays 21 5 7 +2022-07-29 09:22:57 STATE: test-node.js passed: details gesture length 7 +2022-07-29 09:22:57 STATE: test-node.js passed: details gesture first {"face":0,"gesture":"facing right"} +2022-07-29 09:22:57 STATE: test-node.js passed: details object length 1 +2022-07-29 09:22:57 STATE: test-node.js passed: details object 0.72 person +2022-07-29 09:22:57 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996928} +2022-07-29 09:22:57 STATE: test-node.js event: image +2022-07-29 09:22:58 STATE: test-node.js event: detect +2022-07-29 09:22:58 STATE: test-node.js passed: tensor shape: [1,1200,1200,4] dtype: float32 +2022-07-29 09:22:58 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1371996928} +2022-07-29 09:22:58 STATE: test-node.js event: image +2022-07-29 09:22:58 STATE: test-node.js event: detect +2022-07-29 09:22:58 STATE: test-node.js passed: tensor shape: [1200,1200,4] dtype: float32 +2022-07-29 09:22:58 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-07-29 09:22:58 STATE: test-node.js event: image +2022-07-29 09:22:59 STATE: test-node.js event: detect +2022-07-29 09:22:59 STATE: test-node.js passed: tensor shape: [1,1200,1200,3] dtype: float32 +2022-07-29 09:22:59 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1004796864} +2022-07-29 09:22:59 STATE: test-node.js event: image +2022-07-29 09:22:59 STATE: test-node.js event: detect +2022-07-29 09:22:59 STATE: test-node.js passed: tensor shape: [1200,1200,3] dtype: float32 +2022-07-29 09:22:59 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871} +2022-07-29 09:22:59 STATE: test-node.js event: image +2022-07-29 09:23:00 STATE: test-node.js event: detect +2022-07-29 09:23:00 STATE: test-node.js passed: tensor shape: [1,1200,1200,4] dtype: int32 +2022-07-29 09:23:00 INFO:  test-node.js test default +2022-07-29 09:23:00 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-07-29 09:23:00 STATE: test-node.js event: image +2022-07-29 09:23:00 STATE: test-node.js event: detect +2022-07-29 09:23:00 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default +2022-07-29 09:23:00 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-29 09:23:00 DATA:  test-node.js result: performance: load: null total: 227 +2022-07-29 09:23:00 STATE: test-node.js passed: default result face match 1 female 0.97 +2022-07-29 09:23:00 INFO:  test-node.js test sync +2022-07-29 09:23:00 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-07-29 09:23:00 STATE: test-node.js event: image +2022-07-29 09:23:00 STATE: test-node.js event: detect +2022-07-29 09:23:00 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default +2022-07-29 09:23:00 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-29 09:23:00 DATA:  test-node.js result: performance: load: null total: 213 +2022-07-29 09:23:00 STATE: test-node.js passed: default sync 1 female 0.97 +2022-07-29 09:23:00 INFO:  test-node.js test: image process +2022-07-29 09:23:00 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-07-29 09:23:00 STATE: test-node.js passed: image input null [1,256,256,3] +2022-07-29 09:23:00 INFO:  test-node.js test: image null +2022-07-29 09:23:00 STATE: test-node.js passed: invalid input could not convert input to tensor +2022-07-29 09:23:00 INFO:  test-node.js test face similarity +2022-07-29 09:23:00 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-07-29 09:23:00 STATE: test-node.js event: image +2022-07-29 09:23:01 STATE: test-node.js event: detect +2022-07-29 09:23:01 STATE: test-node.js passed: detect: samples/in/ai-face.jpg default +2022-07-29 09:23:01 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":3} +2022-07-29 09:23:01 DATA:  test-node.js result: performance: load: null total: 203 +2022-07-29 09:23:01 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-07-29 09:23:01 STATE: test-node.js event: image +2022-07-29 09:23:01 STATE: test-node.js event: detect +2022-07-29 09:23:01 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default +2022-07-29 09:23:01 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-29 09:23:01 DATA:  test-node.js result: performance: load: null total: 213 +2022-07-29 09:23:01 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} +2022-07-29 09:23:01 STATE: test-node.js event: image +2022-07-29 09:23:01 STATE: test-node.js event: detect +2022-07-29 09:23:01 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg default +2022-07-29 09:23:01 DATA:  test-node.js result: face: 1 body: 1 hand: 0 gesture: 4 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":7} +2022-07-29 09:23:01 DATA:  test-node.js result: performance: load: null total: 193 +2022-07-29 09:23:01 STATE: test-node.js passed: face descriptor +2022-07-29 09:23:01 STATE: test-node.js passed: face similarity {"similarity":[1,0.44727452329649126,0.5567935850640406],"descriptors":[1024,1024,1024]} +2022-07-29 09:23:01 INFO:  test-node.js test face matching +2022-07-29 09:23:01 STATE: test-node.js passed: face database 40 +2022-07-29 09:23:01 STATE: test-node.js passed: face match {"first":{"index":4,"similarity":0.7827852615252829}} {"second":{"index":4,"similarity":0.5002052633015844}} {"third":{"index":4,"similarity":0.5401587887998899}} +2022-07-29 09:23:01 INFO:  test-node.js test object +2022-07-29 09:23:01 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-07-29 09:23:01 STATE: test-node.js event: image +2022-07-29 09:23:02 STATE: test-node.js event: detect +2022-07-29 09:23:02 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default +2022-07-29 09:23:02 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-29 09:23:02 DATA:  test-node.js result: performance: load: null total: 204 +2022-07-29 09:23:02 STATE: test-node.js passed: object result match +2022-07-29 09:23:02 INFO:  test-node.js test sensitive +2022-07-29 09:23:02 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-07-29 09:23:02 STATE: test-node.js event: image +2022-07-29 09:23:02 STATE: test-node.js event: detect +2022-07-29 09:23:02 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default +2022-07-29 09:23:02 DATA:  test-node.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-29 09:23:02 DATA:  test-node.js result: performance: load: null total: 229 +2022-07-29 09:23:02 STATE: test-node.js passed: sensitive result match +2022-07-29 09:23:02 STATE: test-node.js passed: sensitive face result match +2022-07-29 09:23:02 STATE: test-node.js passed: sensitive face emotion result [{"score":0.59,"emotion":"angry"},{"score":0.29,"emotion":"fear"}] +2022-07-29 09:23:02 STATE: test-node.js passed: sensitive body result match +2022-07-29 09:23:02 STATE: test-node.js passed: sensitive hand result match +2022-07-29 09:23:02 INFO:  test-node.js test detectors +2022-07-29 09:23:02 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-07-29 09:23:02 STATE: test-node.js event: image +2022-07-29 09:23:02 STATE: test-node.js event: detect +2022-07-29 09:23:02 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default +2022-07-29 09:23:02 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-29 09:23:02 DATA:  test-node.js result: performance: load: null total: 144 +2022-07-29 09:23:02 STATE: test-node.js passed: detector result face match +2022-07-29 09:23:02 STATE: test-node.js passed: detector result hand match +2022-07-29 09:23:02 INFO:  test-node.js test: multi-instance +2022-07-29 09:23:02 STATE: test-node.js event: image +2022-07-29 09:23:03 STATE: test-node.js event: detect +2022-07-29 09:23:03 STATE: test-node.js passed: detect: random default +2022-07-29 09:23:03 DATA:  test-node.js result: face: 0 body: 1 hand: 0 gesture: 0 object: 0 person: 0 {} {} {"score":0.07,"keypoints":15} +2022-07-29 09:23:03 DATA:  test-node.js result: performance: load: null total: 133 +2022-07-29 09:23:03 INFO:  test-node.js test: first instance +2022-07-29 09:23:03 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} +2022-07-29 09:23:03 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg default +2022-07-29 09:23:03 DATA:  test-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} +2022-07-29 09:23:03 DATA:  test-node.js result: performance: load: null total: 144 +2022-07-29 09:23:03 INFO:  test-node.js test: second instance +2022-07-29 09:23:03 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} +2022-07-29 09:23:03 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg default +2022-07-29 09:23:03 DATA:  test-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} +2022-07-29 09:23:03 DATA:  test-node.js result: performance: load: null total: 144 +2022-07-29 09:23:03 INFO:  test-node.js test: concurrent +2022-07-29 09:23:03 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-07-29 09:23:03 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-07-29 09:23:03 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-07-29 09:23:03 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-07-29 09:23:03 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} +2022-07-29 09:23:03 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} +2022-07-29 09:23:03 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-07-29 09:23:04 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-07-29 09:23:04 STATE: test-node.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289024} +2022-07-29 09:23:04 STATE: test-node.js event: image +2022-07-29 09:23:04 STATE: test-node.js event: image +2022-07-29 09:23:04 STATE: test-node.js event: image +2022-07-29 09:23:05 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg default +2022-07-29 09:23:05 DATA:  test-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} +2022-07-29 09:23:05 DATA:  test-node.js result: performance: load: null total: 1333 +2022-07-29 09:23:05 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg default +2022-07-29 09:23:05 DATA:  test-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} +2022-07-29 09:23:05 DATA:  test-node.js result: performance: load: null total: 1333 +2022-07-29 09:23:05 STATE: test-node.js passed: detect: samples/in/ai-face.jpg default +2022-07-29 09:23:05 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 2 object: 1 person: 1 {"score":0.91} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":17} +2022-07-29 09:23:05 DATA:  test-node.js result: performance: load: null total: 1447 +2022-07-29 09:23:05 STATE: test-node.js passed: detect: samples/in/ai-face.jpg default +2022-07-29 09:23:05 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 2 object: 1 person: 1 {"score":0.91} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":17} +2022-07-29 09:23:05 DATA:  test-node.js result: performance: load: null total: 1447 +2022-07-29 09:23:05 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default +2022-07-29 09:23:05 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-29 09:23:05 DATA:  test-node.js result: performance: load: null total: 1447 +2022-07-29 09:23:05 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default +2022-07-29 09:23:05 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-29 09:23:05 DATA:  test-node.js result: performance: load: null total: 1447 +2022-07-29 09:23:05 STATE: test-node.js event: detect +2022-07-29 09:23:05 STATE: test-node.js passed: detect: samples/in/ai-upper.jpg default +2022-07-29 09:23:05 DATA:  test-node.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} +2022-07-29 09:23:05 DATA:  test-node.js result: performance: load: null total: 1209 +2022-07-29 09:23:05 STATE: test-node.js event: detect +2022-07-29 09:23:05 STATE: test-node.js event: detect +2022-07-29 09:23:05 STATE: test-node.js passed: detect: samples/in/ai-face.jpg default +2022-07-29 09:23:05 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 2 object: 1 person: 1 {"score":0.91} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":17} +2022-07-29 09:23:05 DATA:  test-node.js result: performance: load: null total: 1209 +2022-07-29 09:23:05 STATE: test-node.js passed: detect: samples/in/ai-body.jpg default +2022-07-29 09:23:05 DATA:  test-node.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-29 09:23:05 DATA:  test-node.js result: performance: load: null total: 1209 +2022-07-29 09:23:05 INFO:  test-node.js test: monkey-patch +2022-07-29 09:23:05 STATE: test-node.js event: image +2022-07-29 09:23:05 STATE: test-node.js event: detect +2022-07-29 09:23:05 STATE: test-node.js passed: monkey patch +2022-07-29 09:23:05 STATE: test-node.js passed: segmentation [65536] +2022-07-29 09:23:05 STATE: test-node.js passeed: equal usage +2022-07-29 09:23:05 INFO:  test-node.js test: input compare +2022-07-29 09:23:05 STATE: test-node.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-07-29 09:23:05 STATE: test-node.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796864} +2022-07-29 09:23:05 STATE: test-node.js passed: image compare 0 23.275441687091504 +2022-07-29 09:23:05 INFO:  test-node.js events: {"image":21,"detect":21,"warmup":2} +2022-07-29 09:23:05 INFO:  test-node.js tensors 1927 +2022-07-29 09:23:05 INFO:  test-node.js test complete: 9269 ms +2022-07-29 09:23:05 INFO:  +2022-07-29 09:23:05 INFO:  test-node-gpu.js start +2022-07-29 09:23:06 INFO:  test-node-gpu.js test: configuration validation +2022-07-29 09:23:06 STATE: test-node-gpu.js passed: configuration default validation [] +2022-07-29 09:23:06 STATE: test-node-gpu.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}] +2022-07-29 09:23:06 INFO:  test-node-gpu.js test: model load +2022-07-29 09:23:06 STATE: test-node-gpu.js passed: models loaded 22 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":"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-07-29 09:23:06 INFO:  test-node-gpu.js test: warmup +2022-07-29 09:23:06 STATE: test-node-gpu.js passed: create human +2022-07-29 09:23:06 INFO:  test-node-gpu.js human version: 2.9.1 +2022-07-29 09:23:06 INFO:  test-node-gpu.js platform: linux x64 agent: NodeJS v16.15.0 +2022-07-29 09:23:06 INFO:  test-node-gpu.js tfjs version: 3.19.0 +2022-07-29 09:23:06 INFO:  test-node-gpu.js tensorflow binding version: 2.7.3-dev20220521 +2022-07-29 09:23:06 STATE: test-node-gpu.js passed: set backend: tensorflow +2022-07-29 09:23:06 STATE: test-node-gpu.js tensors 1921 +2022-07-29 09:23:06 STATE: test-node-gpu.js passed: load models +2022-07-29 09:23:06 STATE: test-node-gpu.js result: defined models: 22 loaded models: 12 +2022-07-29 09:23:06 STATE: test-node-gpu.js passed: warmup: none default +2022-07-29 09:23:06 DATA:  test-node-gpu.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {} +2022-07-29 09:23:06 DATA:  test-node-gpu.js result: performance: load: null total: null +2022-07-29 09:23:06 STATE: test-node-gpu.js passed: warmup none result match +2022-07-29 09:23:07 STATE: test-node-gpu.js event: image +2022-07-29 09:23:10 STATE: test-node-gpu.js event: detect +2022-07-29 09:23:10 STATE: test-node-gpu.js event: warmup +2022-07-29 09:23:10 STATE: test-node-gpu.js passed: warmup: face default +2022-07-29 09:23:10 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.42,"keypoints":4} +2022-07-29 09:23:10 DATA:  test-node-gpu.js result: performance: load: null total: 3380 +2022-07-29 09:23:10 STATE: test-node-gpu.js passed: warmup face result match +2022-07-29 09:23:10 STATE: test-node-gpu.js event: image +2022-07-29 09:23:10 STATE: test-node-gpu.js event: detect +2022-07-29 09:23:10 STATE: test-node-gpu.js event: warmup +2022-07-29 09:23:10 STATE: test-node-gpu.js passed: warmup: body default +2022-07-29 09:23:10 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-29 09:23:10 DATA:  test-node-gpu.js result: performance: load: null total: 267 +2022-07-29 09:23:10 STATE: test-node-gpu.js passed: warmup body result match +2022-07-29 09:23:10 STATE: test-node-gpu.js details: {"face":{"boxScore":0.92,"faceScore":1,"age":23.7,"gender":"female","genderScore":0.97},"emotion":[{"score":0.63,"emotion":"angry"},{"score":0.22,"emotion":"fear"}],"body":{"score":0.92,"keypoints":17},"hand":{"boxScore":0.52,"fingerScore":0.73,"keypoints":21},"gestures":[{"face":0,"gesture":"facing right"},{"face":0,"gesture":"mouth 10% open"},{"hand":0,"gesture":"pinky forward"},{"hand":0,"gesture":"palm up"},{"hand":0,"gesture":"open palm"},{"iris":0,"gesture":"looking left"},{"iris":0,"gesture":"looking up"}]} +2022-07-29 09:23:10 INFO:  test-node-gpu.js test: details verification +2022-07-29 09:23:11 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-07-29 09:23:11 STATE: test-node-gpu.js event: image +2022-07-29 09:23:11 STATE: test-node-gpu.js event: detect +2022-07-29 09:23:11 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default +2022-07-29 09:23:11 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-29 09:23:11 DATA:  test-node-gpu.js result: performance: load: null total: 223 +2022-07-29 09:23:11 STATE: test-node-gpu.js passed: details face length 1 +2022-07-29 09:23:11 STATE: test-node-gpu.js passed: details face score 1 0.93 1 +2022-07-29 09:23:11 STATE: test-node-gpu.js passed: details face age/gender 23.7 female 0.97 85.47 +2022-07-29 09:23:11 STATE: test-node-gpu.js passed: details face arrays 4 478 1024 +2022-07-29 09:23:11 STATE: test-node-gpu.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"} +2022-07-29 09:23:11 STATE: test-node-gpu.js passed: details face anti-spoofing 0.79 +2022-07-29 09:23:11 STATE: test-node-gpu.js passed: details face liveness 0.83 +2022-07-29 09:23:11 STATE: test-node-gpu.js passed: details body length 1 +2022-07-29 09:23:11 STATE: test-node-gpu.js passed: details body 0.92 17 6 +2022-07-29 09:23:11 STATE: test-node-gpu.js passed: details hand length 1 +2022-07-29 09:23:11 STATE: test-node-gpu.js passed: details hand 0.51 0.73 point +2022-07-29 09:23:11 STATE: test-node-gpu.js passed: details hand arrays 21 5 7 +2022-07-29 09:23:11 STATE: test-node-gpu.js passed: details gesture length 7 +2022-07-29 09:23:11 STATE: test-node-gpu.js passed: details gesture first {"face":0,"gesture":"facing right"} +2022-07-29 09:23:11 STATE: test-node-gpu.js passed: details object length 1 +2022-07-29 09:23:11 STATE: test-node-gpu.js passed: details object 0.72 person +2022-07-29 09:23:11 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996928} +2022-07-29 09:23:11 STATE: test-node-gpu.js event: image +2022-07-29 09:23:11 STATE: test-node-gpu.js event: detect +2022-07-29 09:23:11 STATE: test-node-gpu.js passed: tensor shape: [1,1200,1200,4] dtype: float32 +2022-07-29 09:23:11 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1371996928} +2022-07-29 09:23:11 STATE: test-node-gpu.js event: image +2022-07-29 09:23:12 STATE: test-node-gpu.js event: detect +2022-07-29 09:23:12 STATE: test-node-gpu.js passed: tensor shape: [1200,1200,4] dtype: float32 +2022-07-29 09:23:12 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-07-29 09:23:12 STATE: test-node-gpu.js event: image +2022-07-29 09:23:12 STATE: test-node-gpu.js event: detect +2022-07-29 09:23:12 STATE: test-node-gpu.js passed: tensor shape: [1,1200,1200,3] dtype: float32 +2022-07-29 09:23:12 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1004796928} +2022-07-29 09:23:12 STATE: test-node-gpu.js event: image +2022-07-29 09:23:12 STATE: test-node-gpu.js event: detect +2022-07-29 09:23:12 STATE: test-node-gpu.js passed: tensor shape: [1200,1200,3] dtype: float32 +2022-07-29 09:23:13 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871} +2022-07-29 09:23:13 STATE: test-node-gpu.js event: image +2022-07-29 09:23:13 STATE: test-node-gpu.js event: detect +2022-07-29 09:23:13 STATE: test-node-gpu.js passed: tensor shape: [1,1200,1200,4] dtype: int32 +2022-07-29 09:23:13 INFO:  test-node-gpu.js test default +2022-07-29 09:23:13 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-07-29 09:23:13 STATE: test-node-gpu.js event: image +2022-07-29 09:23:13 STATE: test-node-gpu.js event: detect +2022-07-29 09:23:13 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default +2022-07-29 09:23:13 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-29 09:23:13 DATA:  test-node-gpu.js result: performance: load: null total: 193 +2022-07-29 09:23:13 STATE: test-node-gpu.js passed: default result face match 1 female 0.97 +2022-07-29 09:23:13 INFO:  test-node-gpu.js test sync +2022-07-29 09:23:13 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-07-29 09:23:13 STATE: test-node-gpu.js event: image +2022-07-29 09:23:13 STATE: test-node-gpu.js event: detect +2022-07-29 09:23:13 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default +2022-07-29 09:23:13 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-29 09:23:13 DATA:  test-node-gpu.js result: performance: load: null total: 176 +2022-07-29 09:23:13 STATE: test-node-gpu.js passed: default sync 1 female 0.97 +2022-07-29 09:23:13 INFO:  test-node-gpu.js test: image process +2022-07-29 09:23:13 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-07-29 09:23:13 STATE: test-node-gpu.js passed: image input null [1,256,256,3] +2022-07-29 09:23:13 INFO:  test-node-gpu.js test: image null +2022-07-29 09:23:13 STATE: test-node-gpu.js passed: invalid input could not convert input to tensor +2022-07-29 09:23:13 INFO:  test-node-gpu.js test face similarity +2022-07-29 09:23:13 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-07-29 09:23:13 STATE: test-node-gpu.js event: image +2022-07-29 09:23:14 STATE: test-node-gpu.js event: detect +2022-07-29 09:23:14 STATE: test-node-gpu.js passed: detect: samples/in/ai-face.jpg default +2022-07-29 09:23:14 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":3} +2022-07-29 09:23:14 DATA:  test-node-gpu.js result: performance: load: null total: 186 +2022-07-29 09:23:14 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-07-29 09:23:14 STATE: test-node-gpu.js event: image +2022-07-29 09:23:14 STATE: test-node-gpu.js event: detect +2022-07-29 09:23:14 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default +2022-07-29 09:23:14 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-29 09:23:14 DATA:  test-node-gpu.js result: performance: load: null total: 192 +2022-07-29 09:23:14 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} +2022-07-29 09:23:14 STATE: test-node-gpu.js event: image +2022-07-29 09:23:14 STATE: test-node-gpu.js event: detect +2022-07-29 09:23:14 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg default +2022-07-29 09:23:14 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 4 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":7} +2022-07-29 09:23:14 DATA:  test-node-gpu.js result: performance: load: null total: 178 +2022-07-29 09:23:14 STATE: test-node-gpu.js passed: face descriptor +2022-07-29 09:23:14 STATE: test-node-gpu.js passed: face similarity {"similarity":[1,0.447238756461232,0.556914029877052],"descriptors":[1024,1024,1024]} +2022-07-29 09:23:14 INFO:  test-node-gpu.js test face matching +2022-07-29 09:23:14 STATE: test-node-gpu.js passed: face database 40 +2022-07-29 09:23:14 STATE: test-node-gpu.js passed: face match {"first":{"index":4,"similarity":0.7828184453007331}} {"second":{"index":4,"similarity":0.5001334216773398}} {"third":{"index":4,"similarity":0.5403054967489764}} +2022-07-29 09:23:14 INFO:  test-node-gpu.js test object +2022-07-29 09:23:14 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-07-29 09:23:14 STATE: test-node-gpu.js event: image +2022-07-29 09:23:15 STATE: test-node-gpu.js event: detect +2022-07-29 09:23:15 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default +2022-07-29 09:23:15 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-29 09:23:15 DATA:  test-node-gpu.js result: performance: load: null total: 220 +2022-07-29 09:23:15 STATE: test-node-gpu.js passed: object result match +2022-07-29 09:23:15 INFO:  test-node-gpu.js test sensitive +2022-07-29 09:23:15 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-07-29 09:23:15 STATE: test-node-gpu.js event: image +2022-07-29 09:23:15 STATE: test-node-gpu.js event: detect +2022-07-29 09:23:15 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default +2022-07-29 09:23:15 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 2 gesture: 9 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-29 09:23:15 DATA:  test-node-gpu.js result: performance: load: null total: 235 +2022-07-29 09:23:15 STATE: test-node-gpu.js passed: sensitive result match +2022-07-29 09:23:15 STATE: test-node-gpu.js passed: sensitive face result match +2022-07-29 09:23:15 STATE: test-node-gpu.js passed: sensitive face emotion result [{"score":0.59,"emotion":"angry"},{"score":0.29,"emotion":"fear"}] +2022-07-29 09:23:15 STATE: test-node-gpu.js passed: sensitive body result match +2022-07-29 09:23:15 STATE: test-node-gpu.js passed: sensitive hand result match +2022-07-29 09:23:15 INFO:  test-node-gpu.js test detectors +2022-07-29 09:23:16 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-07-29 09:23:16 STATE: test-node-gpu.js event: image +2022-07-29 09:23:16 STATE: test-node-gpu.js event: detect +2022-07-29 09:23:16 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default +2022-07-29 09:23:16 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-29 09:23:16 DATA:  test-node-gpu.js result: performance: load: null total: 139 +2022-07-29 09:23:16 STATE: test-node-gpu.js passed: detector result face match +2022-07-29 09:23:16 STATE: test-node-gpu.js passed: detector result hand match +2022-07-29 09:23:16 INFO:  test-node-gpu.js test: multi-instance +2022-07-29 09:23:16 STATE: test-node-gpu.js event: image +2022-07-29 09:23:16 STATE: test-node-gpu.js event: detect +2022-07-29 09:23:16 STATE: test-node-gpu.js passed: detect: random default +2022-07-29 09:23:16 DATA:  test-node-gpu.js result: face: 0 body: 1 hand: 0 gesture: 0 object: 0 person: 0 {} {} {"score":0.06,"keypoints":15} +2022-07-29 09:23:16 DATA:  test-node-gpu.js result: performance: load: null total: 81 +2022-07-29 09:23:16 INFO:  test-node-gpu.js test: first instance +2022-07-29 09:23:16 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} +2022-07-29 09:23:16 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg default +2022-07-29 09:23:16 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} +2022-07-29 09:23:16 DATA:  test-node-gpu.js result: performance: load: null total: 96 +2022-07-29 09:23:16 INFO:  test-node-gpu.js test: second instance +2022-07-29 09:23:16 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} +2022-07-29 09:23:16 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg default +2022-07-29 09:23:16 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} +2022-07-29 09:23:16 DATA:  test-node-gpu.js result: performance: load: null total: 100 +2022-07-29 09:23:16 INFO:  test-node-gpu.js test: concurrent +2022-07-29 09:23:16 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-07-29 09:23:16 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-07-29 09:23:17 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-07-29 09:23:17 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-07-29 09:23:17 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} +2022-07-29 09:23:17 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} +2022-07-29 09:23:17 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-07-29 09:23:17 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-07-29 09:23:17 STATE: test-node-gpu.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151289056} +2022-07-29 09:23:17 STATE: test-node-gpu.js event: image +2022-07-29 09:23:17 STATE: test-node-gpu.js event: image +2022-07-29 09:23:17 STATE: test-node-gpu.js event: image +2022-07-29 09:23:18 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg default +2022-07-29 09:23:18 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} +2022-07-29 09:23:18 DATA:  test-node-gpu.js result: performance: load: null total: 1009 +2022-07-29 09:23:18 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg default +2022-07-29 09:23:18 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} +2022-07-29 09:23:18 DATA:  test-node-gpu.js result: performance: load: null total: 1009 +2022-07-29 09:23:18 STATE: test-node-gpu.js passed: detect: samples/in/ai-face.jpg default +2022-07-29 09:23:18 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 2 object: 1 person: 1 {"score":0.91} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":17} +2022-07-29 09:23:18 DATA:  test-node-gpu.js result: performance: load: null total: 1079 +2022-07-29 09:23:18 STATE: test-node-gpu.js passed: detect: samples/in/ai-face.jpg default +2022-07-29 09:23:18 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 2 object: 1 person: 1 {"score":0.91} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":17} +2022-07-29 09:23:18 DATA:  test-node-gpu.js result: performance: load: null total: 1079 +2022-07-29 09:23:18 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default +2022-07-29 09:23:18 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-29 09:23:18 DATA:  test-node-gpu.js result: performance: load: null total: 1079 +2022-07-29 09:23:18 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default +2022-07-29 09:23:18 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-29 09:23:18 DATA:  test-node-gpu.js result: performance: load: null total: 1079 +2022-07-29 09:23:18 STATE: test-node-gpu.js event: detect +2022-07-29 09:23:18 STATE: test-node-gpu.js passed: detect: samples/in/ai-upper.jpg default +2022-07-29 09:23:18 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} +2022-07-29 09:23:18 DATA:  test-node-gpu.js result: performance: load: null total: 832 +2022-07-29 09:23:18 STATE: test-node-gpu.js event: detect +2022-07-29 09:23:18 STATE: test-node-gpu.js event: detect +2022-07-29 09:23:18 STATE: test-node-gpu.js passed: detect: samples/in/ai-face.jpg default +2022-07-29 09:23:18 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 2 object: 1 person: 1 {"score":0.91} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":17} +2022-07-29 09:23:18 DATA:  test-node-gpu.js result: performance: load: null total: 833 +2022-07-29 09:23:18 STATE: test-node-gpu.js passed: detect: samples/in/ai-body.jpg default +2022-07-29 09:23:18 DATA:  test-node-gpu.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-29 09:23:18 DATA:  test-node-gpu.js result: performance: load: null total: 833 +2022-07-29 09:23:18 INFO:  test-node-gpu.js test: monkey-patch +2022-07-29 09:23:18 STATE: test-node-gpu.js event: image +2022-07-29 09:23:18 STATE: test-node-gpu.js event: detect +2022-07-29 09:23:18 STATE: test-node-gpu.js passed: monkey patch +2022-07-29 09:23:18 STATE: test-node-gpu.js passed: segmentation [65536] +2022-07-29 09:23:18 STATE: test-node-gpu.js passeed: equal usage +2022-07-29 09:23:18 INFO:  test-node-gpu.js test: input compare +2022-07-29 09:23:18 STATE: test-node-gpu.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34696120} +2022-07-29 09:23:19 STATE: test-node-gpu.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1004796928} +2022-07-29 09:23:19 STATE: test-node-gpu.js passed: image compare 0 23.275441687091504 +2022-07-29 09:23:19 INFO:  test-node-gpu.js events: {"image":21,"detect":21,"warmup":2} +2022-07-29 09:23:19 INFO:  test-node-gpu.js tensors 1927 +2022-07-29 09:23:19 INFO:  test-node-gpu.js test complete: 12418 ms +2022-07-29 09:23:19 INFO:  +2022-07-29 09:23:19 INFO:  test-node-wasm.js start +2022-07-29 09:23:20 STATE: test-node-wasm.js passed: model server: https://vladmandic.github.io/human/models/ +2022-07-29 09:23:20 INFO:  test-node-wasm.js test: configuration validation +2022-07-29 09:23:20 STATE: test-node-wasm.js passed: configuration default validation [] +2022-07-29 09:23:20 STATE: test-node-wasm.js passed: configuration invalid validation [{"reason":"unknown property","where":"config.invalid = true"}] +2022-07-29 09:23:20 INFO:  test-node-wasm.js test: model load +2022-07-29 09:23:22 STATE: test-node-wasm.js passed: models loaded 22 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":"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-07-29 09:23:22 INFO:  test-node-wasm.js test: warmup +2022-07-29 09:23:22 STATE: test-node-wasm.js passed: create human +2022-07-29 09:23:22 INFO:  test-node-wasm.js human version: 2.9.1 +2022-07-29 09:23:22 INFO:  test-node-wasm.js platform: linux x64 agent: NodeJS v16.15.0 +2022-07-29 09:23:22 INFO:  test-node-wasm.js tfjs version: 3.19.0 +2022-07-29 09:23:22 STATE: test-node-wasm.js passed: set backend: wasm +2022-07-29 09:23:22 STATE: test-node-wasm.js tensors 1921 +2022-07-29 09:23:22 STATE: test-node-wasm.js passed: load models +2022-07-29 09:23:22 STATE: test-node-wasm.js result: defined models: 22 loaded models: 12 +2022-07-29 09:23:22 STATE: test-node-wasm.js passed: warmup: none default +2022-07-29 09:23:22 DATA:  test-node-wasm.js result: face: 0 body: 0 hand: 0 gesture: 0 object: 0 person: 0 {} {} {} +2022-07-29 09:23:22 DATA:  test-node-wasm.js result: performance: load: null total: null +2022-07-29 09:23:22 STATE: test-node-wasm.js passed: warmup none result match +2022-07-29 09:23:22 STATE: test-node-wasm.js event: image +2022-07-29 09:23:22 STATE: test-node-wasm.js event: detect +2022-07-29 09:23:22 STATE: test-node-wasm.js event: warmup +2022-07-29 09:23:22 STATE: test-node-wasm.js passed: warmup: face default +2022-07-29 09:23:22 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":3} +2022-07-29 09:23:22 DATA:  test-node-wasm.js result: performance: load: null total: 525 +2022-07-29 09:23:22 STATE: test-node-wasm.js passed: warmup face result match +2022-07-29 09:23:23 STATE: test-node-wasm.js event: image +2022-07-29 09:23:23 STATE: test-node-wasm.js event: detect +2022-07-29 09:23:23 STATE: test-node-wasm.js event: warmup +2022-07-29 09:23:23 STATE: test-node-wasm.js passed: warmup: body default +2022-07-29 09:23:23 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-29 09:23:23 DATA:  test-node-wasm.js result: performance: load: null total: 395 +2022-07-29 09:23:23 STATE: test-node-wasm.js passed: warmup body result match +2022-07-29 09:23:23 STATE: test-node-wasm.js details: {"face":{"boxScore":0.93,"faceScore":1,"age":23.7,"gender":"female","genderScore":0.97},"emotion":[{"score":0.59,"emotion":"angry"},{"score":0.29,"emotion":"fear"}],"body":{"score":0.92,"keypoints":17},"hand":{"boxScore":0.51,"fingerScore":0.73,"keypoints":21},"gestures":[{"face":0,"gesture":"facing right"},{"face":0,"gesture":"mouth 21% open"},{"hand":0,"gesture":"pinky forward"},{"hand":0,"gesture":"palm up"},{"hand":0,"gesture":"open palm"},{"iris":0,"gesture":"looking left"},{"iris":0,"gesture":"looking up"}]} +2022-07-29 09:23:23 INFO:  test-node-wasm.js test: details verification +2022-07-29 09:23:23 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-07-29 09:23:23 STATE: test-node-wasm.js event: image +2022-07-29 09:23:24 STATE: test-node-wasm.js event: detect +2022-07-29 09:23:24 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default +2022-07-29 09:23:24 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 7 object: 1 person: 1 {"score":1,"age":23.7,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-29 09:23:24 DATA:  test-node-wasm.js result: performance: load: null total: 365 +2022-07-29 09:23:24 STATE: test-node-wasm.js passed: details face length 1 +2022-07-29 09:23:24 STATE: test-node-wasm.js passed: details face score 1 0.93 1 +2022-07-29 09:23:24 STATE: test-node-wasm.js passed: details face age/gender 23.7 female 0.97 85.47 +2022-07-29 09:23:24 STATE: test-node-wasm.js passed: details face arrays 4 478 1024 +2022-07-29 09:23:24 STATE: test-node-wasm.js passed: details face emotion 2 {"score":0.59,"emotion":"angry"} +2022-07-29 09:23:24 STATE: test-node-wasm.js passed: details face anti-spoofing 0.79 +2022-07-29 09:23:24 STATE: test-node-wasm.js passed: details face liveness 0.83 +2022-07-29 09:23:24 STATE: test-node-wasm.js passed: details body length 1 +2022-07-29 09:23:24 STATE: test-node-wasm.js passed: details body 0.92 17 6 +2022-07-29 09:23:24 STATE: test-node-wasm.js passed: details hand length 1 +2022-07-29 09:23:24 STATE: test-node-wasm.js passed: details hand 0.51 0.73 point +2022-07-29 09:23:24 STATE: test-node-wasm.js passed: details hand arrays 21 5 7 +2022-07-29 09:23:24 STATE: test-node-wasm.js passed: details gesture length 7 +2022-07-29 09:23:24 STATE: test-node-wasm.js passed: details gesture first {"face":0,"gesture":"facing right"} +2022-07-29 09:23:24 STATE: test-node-wasm.js passed: details object length 1 +2022-07-29 09:23:24 STATE: test-node-wasm.js passed: details object 0.72 person +2022-07-29 09:23:24 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1413675264} +2022-07-29 09:23:24 STATE: test-node-wasm.js event: image +2022-07-29 09:23:24 STATE: test-node-wasm.js event: detect +2022-07-29 09:23:24 STATE: test-node-wasm.js passed: tensor shape: [1,1200,1200,4] dtype: float32 +2022-07-29 09:23:24 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1200,1200,4] {"checksum":1413675264} +2022-07-29 09:23:24 STATE: test-node-wasm.js event: image +2022-07-29 09:23:25 STATE: test-node-wasm.js event: detect +2022-07-29 09:23:25 STATE: test-node-wasm.js passed: tensor shape: [1200,1200,4] dtype: float32 +2022-07-29 09:23:25 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-07-29 09:23:25 STATE: test-node-wasm.js event: image +2022-07-29 09:23:25 STATE: test-node-wasm.js event: detect +2022-07-29 09:23:25 STATE: test-node-wasm.js passed: tensor shape: [1,1200,1200,3] dtype: float32 +2022-07-29 09:23:26 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1200,1200,3] {"checksum":1038921856} +2022-07-29 09:23:26 STATE: test-node-wasm.js event: image +2022-07-29 09:23:26 STATE: test-node-wasm.js event: detect +2022-07-29 09:23:26 STATE: test-node-wasm.js passed: tensor shape: [1200,1200,3] dtype: float32 +2022-07-29 09:23:26 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,4] {"checksum":1371996871} +2022-07-29 09:23:26 STATE: test-node-wasm.js event: image +2022-07-29 09:23:27 STATE: test-node-wasm.js event: detect +2022-07-29 09:23:27 STATE: test-node-wasm.js passed: tensor shape: [1,1200,1200,4] dtype: int32 +2022-07-29 09:23:27 INFO:  test-node-wasm.js test default +2022-07-29 09:23:27 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-07-29 09:23:27 STATE: test-node-wasm.js event: image +2022-07-29 09:23:27 STATE: test-node-wasm.js event: detect +2022-07-29 09:23:27 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default +2022-07-29 09:23:27 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-29 09:23:27 DATA:  test-node-wasm.js result: performance: load: null total: 376 +2022-07-29 09:23:27 STATE: test-node-wasm.js passed: default result face match 1 female 0.97 +2022-07-29 09:23:27 INFO:  test-node-wasm.js test sync +2022-07-29 09:23:27 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-07-29 09:23:27 STATE: test-node-wasm.js event: image +2022-07-29 09:23:28 STATE: test-node-wasm.js event: detect +2022-07-29 09:23:28 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default +2022-07-29 09:23:28 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-29 09:23:28 DATA:  test-node-wasm.js result: performance: load: null total: 423 +2022-07-29 09:23:28 STATE: test-node-wasm.js passed: default sync 1 female 0.97 +2022-07-29 09:23:28 INFO:  test-node-wasm.js test: image process +2022-07-29 09:23:28 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-07-29 09:23:28 STATE: test-node-wasm.js passed: image input null [1,256,256,3] +2022-07-29 09:23:28 INFO:  test-node-wasm.js test: image null +2022-07-29 09:23:28 STATE: test-node-wasm.js passed: invalid input could not convert input to tensor +2022-07-29 09:23:28 INFO:  test-node-wasm.js test face similarity +2022-07-29 09:23:28 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-07-29 09:23:28 STATE: test-node-wasm.js event: image +2022-07-29 09:23:28 STATE: test-node-wasm.js event: detect +2022-07-29 09:23:28 STATE: test-node-wasm.js passed: detect: samples/in/ai-face.jpg default +2022-07-29 09:23:28 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 6 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":3} +2022-07-29 09:23:28 DATA:  test-node-wasm.js result: performance: load: null total: 383 +2022-07-29 09:23:28 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-07-29 09:23:28 STATE: test-node-wasm.js event: image +2022-07-29 09:23:29 STATE: test-node-wasm.js event: detect +2022-07-29 09:23:29 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default +2022-07-29 09:23:29 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-29 09:23:29 DATA:  test-node-wasm.js result: performance: load: null total: 382 +2022-07-29 09:23:29 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} +2022-07-29 09:23:29 STATE: test-node-wasm.js event: image +2022-07-29 09:23:29 STATE: test-node-wasm.js event: detect +2022-07-29 09:23:29 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg default +2022-07-29 09:23:29 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 4 object: 1 person: 1 {"score":1,"age":23.5,"gender":"female"} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":7} +2022-07-29 09:23:29 DATA:  test-node-wasm.js result: performance: load: null total: 337 +2022-07-29 09:23:29 STATE: test-node-wasm.js passed: face descriptor +2022-07-29 09:23:29 STATE: test-node-wasm.js passed: face similarity {"similarity":[1,0.5266119940661309,0.4858842904087851],"descriptors":[1024,1024,1024]} +2022-07-29 09:23:29 INFO:  test-node-wasm.js test face matching +2022-07-29 09:23:29 STATE: test-node-wasm.js passed: face database 40 +2022-07-29 09:23:29 STATE: test-node-wasm.js passed: face match {"first":{"index":4,"similarity":0.7827852754786533}} {"second":{"index":4,"similarity":0.5660821189104794}} {"third":{"index":4,"similarity":0.45074189882665594}} +2022-07-29 09:23:29 INFO:  test-node-wasm.js test object +2022-07-29 09:23:30 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-07-29 09:23:30 STATE: test-node-wasm.js event: image +2022-07-29 09:23:30 STATE: test-node-wasm.js event: detect +2022-07-29 09:23:30 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default +2022-07-29 09:23:30 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 8 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-29 09:23:30 DATA:  test-node-wasm.js result: performance: load: null total: 372 +2022-07-29 09:23:30 STATE: test-node-wasm.js passed: object result match +2022-07-29 09:23:30 INFO:  test-node-wasm.js test sensitive +2022-07-29 09:23:30 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-07-29 09:23:30 STATE: test-node-wasm.js event: image +2022-07-29 09:23:31 STATE: test-node-wasm.js event: detect +2022-07-29 09:23:31 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default +2022-07-29 09:23:31 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 2 gesture: 10 object: 1 person: 1 {"score":1,"age":29.6,"gender":"female"} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-29 09:23:31 DATA:  test-node-wasm.js result: performance: load: null total: 396 +2022-07-29 09:23:31 STATE: test-node-wasm.js passed: sensitive result match +2022-07-29 09:23:31 STATE: test-node-wasm.js passed: sensitive face result match +2022-07-29 09:23:31 STATE: test-node-wasm.js passed: sensitive face emotion result [{"score":0.46,"emotion":"neutral"},{"score":0.24,"emotion":"fear"},{"score":0.17,"emotion":"sad"}] +2022-07-29 09:23:31 STATE: test-node-wasm.js passed: sensitive body result match +2022-07-29 09:23:31 STATE: test-node-wasm.js passed: sensitive hand result match +2022-07-29 09:23:31 INFO:  test-node-wasm.js test detectors +2022-07-29 09:23:31 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-07-29 09:23:31 STATE: test-node-wasm.js event: image +2022-07-29 09:23:31 STATE: test-node-wasm.js event: detect +2022-07-29 09:23:31 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default +2022-07-29 09:23:31 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-29 09:23:31 DATA:  test-node-wasm.js result: performance: load: null total: 258 +2022-07-29 09:23:31 STATE: test-node-wasm.js passed: detector result face match +2022-07-29 09:23:31 STATE: test-node-wasm.js passed: detector result hand match +2022-07-29 09:23:31 INFO:  test-node-wasm.js test: multi-instance +2022-07-29 09:23:31 STATE: test-node-wasm.js event: image +2022-07-29 09:23:31 STATE: test-node-wasm.js event: detect +2022-07-29 09:23:31 STATE: test-node-wasm.js passed: detect: random default +2022-07-29 09:23:31 DATA:  test-node-wasm.js result: face: 0 body: 1 hand: 0 gesture: 0 object: 0 person: 0 {} {} {"score":0.07,"keypoints":15} +2022-07-29 09:23:31 DATA:  test-node-wasm.js result: performance: load: null total: 239 +2022-07-29 09:23:31 INFO:  test-node-wasm.js test: first instance +2022-07-29 09:23:31 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} +2022-07-29 09:23:32 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg default +2022-07-29 09:23:32 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} +2022-07-29 09:23:32 DATA:  test-node-wasm.js result: performance: load: null total: 252 +2022-07-29 09:23:32 INFO:  test-node-wasm.js test: second instance +2022-07-29 09:23:32 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} +2022-07-29 09:23:32 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg default +2022-07-29 09:23:32 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} +2022-07-29 09:23:32 DATA:  test-node-wasm.js result: performance: load: null total: 251 +2022-07-29 09:23:32 INFO:  test-node-wasm.js test: concurrent +2022-07-29 09:23:32 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-07-29 09:23:32 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-07-29 09:23:32 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-07-29 09:23:32 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-07-29 09:23:33 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} +2022-07-29 09:23:33 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} +2022-07-29 09:23:33 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-07-29 09:23:33 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-07-29 09:23:33 STATE: test-node-wasm.js passed: load image: samples/in/ai-upper.jpg [1,720,688,3] {"checksum":151155104} +2022-07-29 09:23:33 STATE: test-node-wasm.js event: image +2022-07-29 09:23:33 STATE: test-node-wasm.js event: image +2022-07-29 09:23:33 STATE: test-node-wasm.js event: image +2022-07-29 09:23:35 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg default +2022-07-29 09:23:35 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} +2022-07-29 09:23:35 DATA:  test-node-wasm.js result: performance: load: null total: 2186 +2022-07-29 09:23:35 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg default +2022-07-29 09:23:35 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} +2022-07-29 09:23:35 DATA:  test-node-wasm.js result: performance: load: null total: 2186 +2022-07-29 09:23:35 STATE: test-node-wasm.js passed: detect: samples/in/ai-face.jpg default +2022-07-29 09:23:35 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 2 object: 1 person: 1 {"score":0.91} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":17} +2022-07-29 09:23:35 DATA:  test-node-wasm.js result: performance: load: null total: 2430 +2022-07-29 09:23:35 STATE: test-node-wasm.js passed: detect: samples/in/ai-face.jpg default +2022-07-29 09:23:35 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 2 object: 1 person: 1 {"score":0.91} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":17} +2022-07-29 09:23:35 DATA:  test-node-wasm.js result: performance: load: null total: 2430 +2022-07-29 09:23:35 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default +2022-07-29 09:23:35 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-29 09:23:35 DATA:  test-node-wasm.js result: performance: load: null total: 2430 +2022-07-29 09:23:35 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default +2022-07-29 09:23:35 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-29 09:23:35 DATA:  test-node-wasm.js result: performance: load: null total: 2430 +2022-07-29 09:23:35 STATE: test-node-wasm.js event: detect +2022-07-29 09:23:35 STATE: test-node-wasm.js passed: detect: samples/in/ai-upper.jpg default +2022-07-29 09:23:35 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 0 object: 1 person: 1 {"score":0.96} {"score":0.71,"class":"person"} {"score":0.75,"keypoints":16} +2022-07-29 09:23:35 DATA:  test-node-wasm.js result: performance: load: null total: 2107 +2022-07-29 09:23:35 STATE: test-node-wasm.js event: detect +2022-07-29 09:23:35 STATE: test-node-wasm.js event: detect +2022-07-29 09:23:35 STATE: test-node-wasm.js passed: detect: samples/in/ai-face.jpg default +2022-07-29 09:23:35 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 2 object: 1 person: 1 {"score":0.91} {"score":0.82,"class":"person"} {"score":0.47,"keypoints":17} +2022-07-29 09:23:35 DATA:  test-node-wasm.js result: performance: load: null total: 2108 +2022-07-29 09:23:35 STATE: test-node-wasm.js passed: detect: samples/in/ai-body.jpg default +2022-07-29 09:23:35 DATA:  test-node-wasm.js result: face: 1 body: 1 hand: 1 gesture: 0 object: 1 person: 1 {"score":0.93} {"score":0.72,"class":"person"} {"score":0.92,"keypoints":17} +2022-07-29 09:23:35 DATA:  test-node-wasm.js result: performance: load: null total: 2108 +2022-07-29 09:23:35 INFO:  test-node-wasm.js test: monkey-patch +2022-07-29 09:23:35 STATE: test-node-wasm.js event: image +2022-07-29 09:23:35 STATE: test-node-wasm.js event: detect +2022-07-29 09:23:35 STATE: test-node-wasm.js passed: monkey patch +2022-07-29 09:23:35 STATE: test-node-wasm.js passed: segmentation [65536] +2022-07-29 09:23:35 STATE: test-node-wasm.js passeed: equal usage +2022-07-29 09:23:35 INFO:  test-node-wasm.js test: input compare +2022-07-29 09:23:35 STATE: test-node-wasm.js passed: load image: samples/in/ai-face.jpg [1,256,256,3] {"checksum":34697856} +2022-07-29 09:23:36 STATE: test-node-wasm.js passed: load image: samples/in/ai-body.jpg [1,1200,1200,3] {"checksum":1038921856} +2022-07-29 09:23:36 STATE: test-node-wasm.js passed: image compare 0 23.280073018790848 +2022-07-29 09:23:36 INFO:  test-node-wasm.js events: {"image":21,"detect":21,"warmup":2} +2022-07-29 09:23:36 INFO:  test-node-wasm.js tensors 1929 +2022-07-29 09:23:36 INFO:  test-node-wasm.js test complete: 15934 ms +2022-07-29 09:23:36 INFO:  all tests complete +2022-07-29 09:23:36 INFO:  failed: {"count":0,"messages":[]} +2022-07-29 09:23:36 INFO:  status: {"test":"test-node.js","passed":101,"failed":0} +2022-07-29 09:23:36 INFO:  status: {"test":"test-node-gpu.js","passed":101,"failed":0} +2022-07-29 09:23:36 INFO:  status: {"test":"test-node-wasm.js","passed":102,"failed":0}