mirror of https://github.com/vladmandic/human
fix node build and update model signatures
parent
4390f94b50
commit
374a5a15c1
12
CHANGELOG.md
12
CHANGELOG.md
|
@ -1,6 +1,6 @@
|
|||
# @vladmandic/human
|
||||
|
||||
Version: **1.8.3**
|
||||
Version: **1.8.4**
|
||||
Description: **Human: AI-powered 3D Face Detection & Rotation Tracking, Face Description & Recognition, Body Pose Tracking, 3D Hand & Finger Tracking, Iris Analysis, Age & Gender & Emotion Prediction, Gesture Recognition**
|
||||
|
||||
Author: **Vladimir Mandic <mandic00@live.com>**
|
||||
|
@ -9,11 +9,15 @@ Repository: **<git+https://github.com/vladmandic/human.git>**
|
|||
|
||||
## Changelog
|
||||
|
||||
### **1.8.4** 2021/05/11 mandic00@live.com
|
||||
|
||||
|
||||
### **origin/main** 2021/05/05 mandic00@live.com
|
||||
|
||||
|
||||
### **1.8.3** 2021/05/05 mandic00@live.com
|
||||
|
||||
|
||||
### **origin/main** 2021/05/04 mandic00@live.com
|
||||
|
||||
- switch posenet weights
|
||||
|
||||
### **1.8.2** 2021/05/04 mandic00@live.com
|
||||
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
51330
demo/helpers/three.js
51330
demo/helpers/three.js
File diff suppressed because one or more lines are too long
|
@ -24,6 +24,7 @@ onmessage = async (msg) => {
|
|||
}
|
||||
// must strip canvas from return value as it cannot be transfered from worker thread
|
||||
if (result.canvas) result.canvas = null;
|
||||
// @ts-ignore tslint wrong type matching for worker
|
||||
postMessage({ result });
|
||||
busy = false;
|
||||
};
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -7,12 +7,14 @@
|
|||
|
||||
var __create = Object.create;
|
||||
var __defProp = Object.defineProperty;
|
||||
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
||||
var __getOwnPropNames = Object.getOwnPropertyNames;
|
||||
var __getProtoOf = Object.getPrototypeOf;
|
||||
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
||||
var __getOwnPropNames = Object.getOwnPropertyNames;
|
||||
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
||||
var __markAsModule = (target) => __defProp(target, "__esModule", {value: true});
|
||||
var __commonJS = (cb, mod) => () => (mod || cb((mod = {exports: {}}).exports, mod), mod.exports);
|
||||
var __commonJS = (cb, mod) => function __require() {
|
||||
return mod || (0, cb[Object.keys(cb)[0]])((mod = {exports: {}}).exports, mod), mod.exports;
|
||||
};
|
||||
var __export = (target, all2) => {
|
||||
for (var name in all2)
|
||||
__defProp(target, name, {get: all2[name], enumerable: true});
|
||||
|
@ -36,6 +38,11 @@ var __privateGet = (obj, member, getter) => {
|
|||
__accessCheck(obj, member, "read from private field");
|
||||
return getter ? getter.call(obj) : member.get(obj);
|
||||
};
|
||||
var __privateAdd = (obj, member, value) => {
|
||||
if (member.has(obj))
|
||||
throw TypeError("Cannot add the same private member more than once");
|
||||
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
||||
};
|
||||
var __privateSet = (obj, member, value, setter) => {
|
||||
__accessCheck(obj, member, "write to private field");
|
||||
setter ? setter.call(obj, value) : member.set(obj, value);
|
||||
|
@ -43,23 +50,29 @@ var __privateSet = (obj, member, value, setter) => {
|
|||
};
|
||||
|
||||
// dist/tfjs.esm.js
|
||||
var require_tfjs_esm = __commonJS((exports) => {
|
||||
var s = Object.create;
|
||||
var t = Object.defineProperty;
|
||||
var d = Object.getPrototypeOf;
|
||||
var g = Object.prototype.hasOwnProperty;
|
||||
var j = Object.getOwnPropertyNames;
|
||||
var l = Object.getOwnPropertyDescriptor;
|
||||
var p = (o) => t(o, "__esModule", {value: true});
|
||||
var r = (o, e, n) => {
|
||||
if (e && typeof e == "object" || typeof e == "function")
|
||||
for (let f of j(e))
|
||||
!g.call(o, f) && f !== "default" && t(o, f, {get: () => e[f], enumerable: !(n = l(e, f)) || n.enumerable});
|
||||
return o;
|
||||
var require_tfjs_esm = __commonJS({
|
||||
"dist/tfjs.esm.js"(exports) {
|
||||
var __create2 = Object.create;
|
||||
var __defProp2 = Object.defineProperty;
|
||||
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
||||
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
||||
var __getProtoOf2 = Object.getPrototypeOf;
|
||||
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
||||
var __markAsModule2 = (target) => __defProp2(target, "__esModule", {value: true});
|
||||
var __reExport2 = (target, module22, desc) => {
|
||||
if (module22 && typeof module22 === "object" || typeof module22 === "function") {
|
||||
for (let key of __getOwnPropNames2(module22))
|
||||
if (!__hasOwnProp2.call(target, key) && key !== "default")
|
||||
__defProp2(target, key, {get: () => module22[key], enumerable: !(desc = __getOwnPropDesc2(module22, key)) || desc.enumerable});
|
||||
}
|
||||
return target;
|
||||
};
|
||||
var m = (o) => r(p(t(o != null ? s(d(o)) : {}, "default", o && o.__esModule && "default" in o ? {get: () => o.default, enumerable: true} : {value: o, enumerable: true})), o);
|
||||
p(exports);
|
||||
r(exports, m(require("@tensorflow/tfjs-node-gpu")));
|
||||
var __toModule2 = (module22) => {
|
||||
return __reExport2(__markAsModule2(__defProp2(module22 != null ? __create2(__getProtoOf2(module22)) : {}, "default", module22 && module22.__esModule && "default" in module22 ? {get: () => module22.default, enumerable: true} : {value: module22, enumerable: true})), module22);
|
||||
};
|
||||
__markAsModule2(exports);
|
||||
__reExport2(exports, __toModule2(require("@tensorflow/tfjs-node-gpu")));
|
||||
}
|
||||
});
|
||||
|
||||
// src/human.ts
|
||||
|
@ -110,7 +123,7 @@ function mergeDeep(...objects) {
|
|||
var config = {
|
||||
backend: "webgl",
|
||||
modelBasePath: "../models/",
|
||||
wasmPath: "../assets/",
|
||||
wasmPath: "../node_modules/@tensorflow/tfjs-backend-wasm/dist//",
|
||||
debug: true,
|
||||
async: true,
|
||||
videoOptimized: true,
|
||||
|
@ -19512,16 +19525,16 @@ lBhEMohlFerLlBjEMohMVTEARDKCITsAk2AEgAAAkAAAAAAAAAAAAAAAAAAAAAAAASAAAAAAAAD/
|
|||
2Q==`;
|
||||
|
||||
// package.json
|
||||
var version = "1.8.3";
|
||||
var version = "1.8.4";
|
||||
|
||||
// src/human.ts
|
||||
var _numTensors, _analyzeMemoryLeaks, _checkSanity, _firstRun, _sanity, _checkBackend, _warmupBitmap, _warmupCanvas, _warmupNode;
|
||||
var Human = class {
|
||||
constructor(userConfig = {}) {
|
||||
_numTensors.set(this, void 0);
|
||||
_analyzeMemoryLeaks.set(this, void 0);
|
||||
_checkSanity.set(this, void 0);
|
||||
_firstRun.set(this, void 0);
|
||||
__privateAdd(this, _numTensors, void 0);
|
||||
__privateAdd(this, _analyzeMemoryLeaks, void 0);
|
||||
__privateAdd(this, _checkSanity, void 0);
|
||||
__privateAdd(this, _firstRun, void 0);
|
||||
this.analyze = (...msg) => {
|
||||
if (!__privateGet(this, _analyzeMemoryLeaks))
|
||||
return;
|
||||
|
@ -19532,7 +19545,7 @@ var Human = class {
|
|||
if (leaked !== 0)
|
||||
log(...msg, leaked);
|
||||
};
|
||||
_sanity.set(this, (input) => {
|
||||
__privateAdd(this, _sanity, (input) => {
|
||||
if (!__privateGet(this, _checkSanity))
|
||||
return null;
|
||||
if (!input)
|
||||
|
@ -19546,7 +19559,7 @@ var Human = class {
|
|||
}
|
||||
return null;
|
||||
});
|
||||
_checkBackend.set(this, async (force = false) => {
|
||||
__privateAdd(this, _checkBackend, async (force = false) => {
|
||||
var _a;
|
||||
if (this.config.backend && this.config.backend.length > 0 && force || this.tf.getBackend() !== this.config.backend) {
|
||||
const timeStamp = now();
|
||||
|
@ -19598,7 +19611,7 @@ var Human = class {
|
|||
this.perf.backend = Math.trunc(now() - timeStamp);
|
||||
}
|
||||
});
|
||||
_warmupBitmap.set(this, async () => {
|
||||
__privateAdd(this, _warmupBitmap, async () => {
|
||||
const b64toBlob = (base64, type = "application/octet-stream") => fetch(`data:${type};base64,${base64}`).then((res2) => res2.blob());
|
||||
let blob;
|
||||
let res;
|
||||
|
@ -19619,7 +19632,7 @@ var Human = class {
|
|||
}
|
||||
return res;
|
||||
});
|
||||
_warmupCanvas.set(this, async () => new Promise((resolve) => {
|
||||
__privateAdd(this, _warmupCanvas, async () => new Promise((resolve) => {
|
||||
let src;
|
||||
let size = 0;
|
||||
switch (this.config.warmup) {
|
||||
|
@ -19650,7 +19663,7 @@ var Human = class {
|
|||
else
|
||||
resolve(null);
|
||||
}));
|
||||
_warmupNode.set(this, async () => {
|
||||
__privateAdd(this, _warmupNode, async () => {
|
||||
const atob = (str) => Buffer.from(str, "base64");
|
||||
let img;
|
||||
if (this.config.warmup === "face")
|
||||
|
@ -19660,8 +19673,8 @@ var Human = class {
|
|||
if (!img)
|
||||
return null;
|
||||
let res;
|
||||
if (typeof tf16.node !== "undefined") {
|
||||
const data = tf16.node.decodeJpeg(img);
|
||||
if (typeof tf16["node"] !== "undefined") {
|
||||
const data = tf16["node"].decodeJpeg(img);
|
||||
const expanded = data.expandDims(0);
|
||||
this.tf.dispose(data);
|
||||
res = await this.detect(expanded, this.config);
|
||||
|
|
|
@ -7,12 +7,14 @@
|
|||
|
||||
var __create = Object.create;
|
||||
var __defProp = Object.defineProperty;
|
||||
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
||||
var __getOwnPropNames = Object.getOwnPropertyNames;
|
||||
var __getProtoOf = Object.getPrototypeOf;
|
||||
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
||||
var __getOwnPropNames = Object.getOwnPropertyNames;
|
||||
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
||||
var __markAsModule = (target) => __defProp(target, "__esModule", {value: true});
|
||||
var __commonJS = (cb, mod) => () => (mod || cb((mod = {exports: {}}).exports, mod), mod.exports);
|
||||
var __commonJS = (cb, mod) => function __require() {
|
||||
return mod || (0, cb[Object.keys(cb)[0]])((mod = {exports: {}}).exports, mod), mod.exports;
|
||||
};
|
||||
var __export = (target, all2) => {
|
||||
for (var name in all2)
|
||||
__defProp(target, name, {get: all2[name], enumerable: true});
|
||||
|
@ -36,6 +38,11 @@ var __privateGet = (obj, member, getter) => {
|
|||
__accessCheck(obj, member, "read from private field");
|
||||
return getter ? getter.call(obj) : member.get(obj);
|
||||
};
|
||||
var __privateAdd = (obj, member, value) => {
|
||||
if (member.has(obj))
|
||||
throw TypeError("Cannot add the same private member more than once");
|
||||
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
||||
};
|
||||
var __privateSet = (obj, member, value, setter) => {
|
||||
__accessCheck(obj, member, "write to private field");
|
||||
setter ? setter.call(obj, value) : member.set(obj, value);
|
||||
|
@ -43,24 +50,30 @@ var __privateSet = (obj, member, value, setter) => {
|
|||
};
|
||||
|
||||
// dist/tfjs.esm.js
|
||||
var require_tfjs_esm = __commonJS((exports) => {
|
||||
var w = Object.create;
|
||||
var e = Object.defineProperty;
|
||||
var a = Object.getPrototypeOf;
|
||||
var j = Object.prototype.hasOwnProperty;
|
||||
var l = Object.getOwnPropertyNames;
|
||||
var p = Object.getOwnPropertyDescriptor;
|
||||
var m = (o) => e(o, "__esModule", {value: true});
|
||||
var f = (o, r, s) => {
|
||||
if (r && typeof r == "object" || typeof r == "function")
|
||||
for (let t of l(r))
|
||||
!j.call(o, t) && t !== "default" && e(o, t, {get: () => r[t], enumerable: !(s = p(r, t)) || s.enumerable});
|
||||
return o;
|
||||
var require_tfjs_esm = __commonJS({
|
||||
"dist/tfjs.esm.js"(exports) {
|
||||
var __create2 = Object.create;
|
||||
var __defProp2 = Object.defineProperty;
|
||||
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
||||
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
||||
var __getProtoOf2 = Object.getPrototypeOf;
|
||||
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
||||
var __markAsModule2 = (target) => __defProp2(target, "__esModule", {value: true});
|
||||
var __reExport2 = (target, module22, desc) => {
|
||||
if (module22 && typeof module22 === "object" || typeof module22 === "function") {
|
||||
for (let key of __getOwnPropNames2(module22))
|
||||
if (!__hasOwnProp2.call(target, key) && key !== "default")
|
||||
__defProp2(target, key, {get: () => module22[key], enumerable: !(desc = __getOwnPropDesc2(module22, key)) || desc.enumerable});
|
||||
}
|
||||
return target;
|
||||
};
|
||||
var n = (o) => f(m(e(o != null ? w(a(o)) : {}, "default", o && o.__esModule && "default" in o ? {get: () => o.default, enumerable: true} : {value: o, enumerable: true})), o);
|
||||
m(exports);
|
||||
f(exports, n(require("@tensorflow/tfjs")));
|
||||
f(exports, n(require("@tensorflow/tfjs-backend-wasm")));
|
||||
var __toModule2 = (module22) => {
|
||||
return __reExport2(__markAsModule2(__defProp2(module22 != null ? __create2(__getProtoOf2(module22)) : {}, "default", module22 && module22.__esModule && "default" in module22 ? {get: () => module22.default, enumerable: true} : {value: module22, enumerable: true})), module22);
|
||||
};
|
||||
__markAsModule2(exports);
|
||||
__reExport2(exports, __toModule2(require("@tensorflow/tfjs")));
|
||||
__reExport2(exports, __toModule2(require("@tensorflow/tfjs-backend-wasm")));
|
||||
}
|
||||
});
|
||||
|
||||
// src/human.ts
|
||||
|
@ -111,7 +124,7 @@ function mergeDeep(...objects) {
|
|||
var config = {
|
||||
backend: "webgl",
|
||||
modelBasePath: "../models/",
|
||||
wasmPath: "../assets/",
|
||||
wasmPath: "../node_modules/@tensorflow/tfjs-backend-wasm/dist//",
|
||||
debug: true,
|
||||
async: true,
|
||||
videoOptimized: true,
|
||||
|
@ -19513,16 +19526,16 @@ lBhEMohlFerLlBjEMohMVTEARDKCITsAk2AEgAAAkAAAAAAAAAAAAAAAAAAAAAAAASAAAAAAAAD/
|
|||
2Q==`;
|
||||
|
||||
// package.json
|
||||
var version = "1.8.3";
|
||||
var version = "1.8.4";
|
||||
|
||||
// src/human.ts
|
||||
var _numTensors, _analyzeMemoryLeaks, _checkSanity, _firstRun, _sanity, _checkBackend, _warmupBitmap, _warmupCanvas, _warmupNode;
|
||||
var Human = class {
|
||||
constructor(userConfig = {}) {
|
||||
_numTensors.set(this, void 0);
|
||||
_analyzeMemoryLeaks.set(this, void 0);
|
||||
_checkSanity.set(this, void 0);
|
||||
_firstRun.set(this, void 0);
|
||||
__privateAdd(this, _numTensors, void 0);
|
||||
__privateAdd(this, _analyzeMemoryLeaks, void 0);
|
||||
__privateAdd(this, _checkSanity, void 0);
|
||||
__privateAdd(this, _firstRun, void 0);
|
||||
this.analyze = (...msg) => {
|
||||
if (!__privateGet(this, _analyzeMemoryLeaks))
|
||||
return;
|
||||
|
@ -19533,7 +19546,7 @@ var Human = class {
|
|||
if (leaked !== 0)
|
||||
log(...msg, leaked);
|
||||
};
|
||||
_sanity.set(this, (input) => {
|
||||
__privateAdd(this, _sanity, (input) => {
|
||||
if (!__privateGet(this, _checkSanity))
|
||||
return null;
|
||||
if (!input)
|
||||
|
@ -19547,7 +19560,7 @@ var Human = class {
|
|||
}
|
||||
return null;
|
||||
});
|
||||
_checkBackend.set(this, async (force = false) => {
|
||||
__privateAdd(this, _checkBackend, async (force = false) => {
|
||||
var _a;
|
||||
if (this.config.backend && this.config.backend.length > 0 && force || this.tf.getBackend() !== this.config.backend) {
|
||||
const timeStamp = now();
|
||||
|
@ -19599,7 +19612,7 @@ var Human = class {
|
|||
this.perf.backend = Math.trunc(now() - timeStamp);
|
||||
}
|
||||
});
|
||||
_warmupBitmap.set(this, async () => {
|
||||
__privateAdd(this, _warmupBitmap, async () => {
|
||||
const b64toBlob = (base64, type = "application/octet-stream") => fetch(`data:${type};base64,${base64}`).then((res2) => res2.blob());
|
||||
let blob;
|
||||
let res;
|
||||
|
@ -19620,7 +19633,7 @@ var Human = class {
|
|||
}
|
||||
return res;
|
||||
});
|
||||
_warmupCanvas.set(this, async () => new Promise((resolve) => {
|
||||
__privateAdd(this, _warmupCanvas, async () => new Promise((resolve) => {
|
||||
let src;
|
||||
let size = 0;
|
||||
switch (this.config.warmup) {
|
||||
|
@ -19651,7 +19664,7 @@ var Human = class {
|
|||
else
|
||||
resolve(null);
|
||||
}));
|
||||
_warmupNode.set(this, async () => {
|
||||
__privateAdd(this, _warmupNode, async () => {
|
||||
const atob = (str) => Buffer.from(str, "base64");
|
||||
let img;
|
||||
if (this.config.warmup === "face")
|
||||
|
@ -19661,8 +19674,8 @@ var Human = class {
|
|||
if (!img)
|
||||
return null;
|
||||
let res;
|
||||
if (typeof tf16.node !== "undefined") {
|
||||
const data = tf16.node.decodeJpeg(img);
|
||||
if (typeof tf16["node"] !== "undefined") {
|
||||
const data = tf16["node"].decodeJpeg(img);
|
||||
const expanded = data.expandDims(0);
|
||||
this.tf.dispose(data);
|
||||
res = await this.detect(expanded, this.config);
|
||||
|
|
|
@ -7,12 +7,14 @@
|
|||
|
||||
var __create = Object.create;
|
||||
var __defProp = Object.defineProperty;
|
||||
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
||||
var __getOwnPropNames = Object.getOwnPropertyNames;
|
||||
var __getProtoOf = Object.getPrototypeOf;
|
||||
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
||||
var __getOwnPropNames = Object.getOwnPropertyNames;
|
||||
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
||||
var __markAsModule = (target) => __defProp(target, "__esModule", {value: true});
|
||||
var __commonJS = (cb, mod) => () => (mod || cb((mod = {exports: {}}).exports, mod), mod.exports);
|
||||
var __commonJS = (cb, mod) => function __require() {
|
||||
return mod || (0, cb[Object.keys(cb)[0]])((mod = {exports: {}}).exports, mod), mod.exports;
|
||||
};
|
||||
var __export = (target, all2) => {
|
||||
for (var name in all2)
|
||||
__defProp(target, name, {get: all2[name], enumerable: true});
|
||||
|
@ -36,6 +38,11 @@ var __privateGet = (obj, member, getter) => {
|
|||
__accessCheck(obj, member, "read from private field");
|
||||
return getter ? getter.call(obj) : member.get(obj);
|
||||
};
|
||||
var __privateAdd = (obj, member, value) => {
|
||||
if (member.has(obj))
|
||||
throw TypeError("Cannot add the same private member more than once");
|
||||
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
||||
};
|
||||
var __privateSet = (obj, member, value, setter) => {
|
||||
__accessCheck(obj, member, "write to private field");
|
||||
setter ? setter.call(obj, value) : member.set(obj, value);
|
||||
|
@ -43,23 +50,29 @@ var __privateSet = (obj, member, value, setter) => {
|
|||
};
|
||||
|
||||
// dist/tfjs.esm.js
|
||||
var require_tfjs_esm = __commonJS((exports) => {
|
||||
var d = Object.create;
|
||||
var t = Object.defineProperty;
|
||||
var j = Object.getPrototypeOf;
|
||||
var l = Object.prototype.hasOwnProperty;
|
||||
var m = Object.getOwnPropertyNames;
|
||||
var p = Object.getOwnPropertyDescriptor;
|
||||
var s = (o) => t(o, "__esModule", {value: true});
|
||||
var r = (o, e, n) => {
|
||||
if (e && typeof e == "object" || typeof e == "function")
|
||||
for (let f of m(e))
|
||||
!l.call(o, f) && f !== "default" && t(o, f, {get: () => e[f], enumerable: !(n = p(e, f)) || n.enumerable});
|
||||
return o;
|
||||
var require_tfjs_esm = __commonJS({
|
||||
"dist/tfjs.esm.js"(exports) {
|
||||
var __create2 = Object.create;
|
||||
var __defProp2 = Object.defineProperty;
|
||||
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
||||
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
||||
var __getProtoOf2 = Object.getPrototypeOf;
|
||||
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
||||
var __markAsModule2 = (target) => __defProp2(target, "__esModule", {value: true});
|
||||
var __reExport2 = (target, module22, desc) => {
|
||||
if (module22 && typeof module22 === "object" || typeof module22 === "function") {
|
||||
for (let key of __getOwnPropNames2(module22))
|
||||
if (!__hasOwnProp2.call(target, key) && key !== "default")
|
||||
__defProp2(target, key, {get: () => module22[key], enumerable: !(desc = __getOwnPropDesc2(module22, key)) || desc.enumerable});
|
||||
}
|
||||
return target;
|
||||
};
|
||||
var w = (o) => r(s(t(o != null ? d(j(o)) : {}, "default", o && o.__esModule && "default" in o ? {get: () => o.default, enumerable: true} : {value: o, enumerable: true})), o);
|
||||
s(exports);
|
||||
r(exports, w(require("@tensorflow/tfjs-node")));
|
||||
var __toModule2 = (module22) => {
|
||||
return __reExport2(__markAsModule2(__defProp2(module22 != null ? __create2(__getProtoOf2(module22)) : {}, "default", module22 && module22.__esModule && "default" in module22 ? {get: () => module22.default, enumerable: true} : {value: module22, enumerable: true})), module22);
|
||||
};
|
||||
__markAsModule2(exports);
|
||||
__reExport2(exports, __toModule2(require("@tensorflow/tfjs-node")));
|
||||
}
|
||||
});
|
||||
|
||||
// src/human.ts
|
||||
|
@ -110,7 +123,7 @@ function mergeDeep(...objects) {
|
|||
var config = {
|
||||
backend: "webgl",
|
||||
modelBasePath: "../models/",
|
||||
wasmPath: "../assets/",
|
||||
wasmPath: "../node_modules/@tensorflow/tfjs-backend-wasm/dist//",
|
||||
debug: true,
|
||||
async: true,
|
||||
videoOptimized: true,
|
||||
|
@ -19512,16 +19525,16 @@ lBhEMohlFerLlBjEMohMVTEARDKCITsAk2AEgAAAkAAAAAAAAAAAAAAAAAAAAAAAASAAAAAAAAD/
|
|||
2Q==`;
|
||||
|
||||
// package.json
|
||||
var version = "1.8.3";
|
||||
var version = "1.8.4";
|
||||
|
||||
// src/human.ts
|
||||
var _numTensors, _analyzeMemoryLeaks, _checkSanity, _firstRun, _sanity, _checkBackend, _warmupBitmap, _warmupCanvas, _warmupNode;
|
||||
var Human = class {
|
||||
constructor(userConfig = {}) {
|
||||
_numTensors.set(this, void 0);
|
||||
_analyzeMemoryLeaks.set(this, void 0);
|
||||
_checkSanity.set(this, void 0);
|
||||
_firstRun.set(this, void 0);
|
||||
__privateAdd(this, _numTensors, void 0);
|
||||
__privateAdd(this, _analyzeMemoryLeaks, void 0);
|
||||
__privateAdd(this, _checkSanity, void 0);
|
||||
__privateAdd(this, _firstRun, void 0);
|
||||
this.analyze = (...msg) => {
|
||||
if (!__privateGet(this, _analyzeMemoryLeaks))
|
||||
return;
|
||||
|
@ -19532,7 +19545,7 @@ var Human = class {
|
|||
if (leaked !== 0)
|
||||
log(...msg, leaked);
|
||||
};
|
||||
_sanity.set(this, (input) => {
|
||||
__privateAdd(this, _sanity, (input) => {
|
||||
if (!__privateGet(this, _checkSanity))
|
||||
return null;
|
||||
if (!input)
|
||||
|
@ -19546,7 +19559,7 @@ var Human = class {
|
|||
}
|
||||
return null;
|
||||
});
|
||||
_checkBackend.set(this, async (force = false) => {
|
||||
__privateAdd(this, _checkBackend, async (force = false) => {
|
||||
var _a;
|
||||
if (this.config.backend && this.config.backend.length > 0 && force || this.tf.getBackend() !== this.config.backend) {
|
||||
const timeStamp = now();
|
||||
|
@ -19598,7 +19611,7 @@ var Human = class {
|
|||
this.perf.backend = Math.trunc(now() - timeStamp);
|
||||
}
|
||||
});
|
||||
_warmupBitmap.set(this, async () => {
|
||||
__privateAdd(this, _warmupBitmap, async () => {
|
||||
const b64toBlob = (base64, type = "application/octet-stream") => fetch(`data:${type};base64,${base64}`).then((res2) => res2.blob());
|
||||
let blob;
|
||||
let res;
|
||||
|
@ -19619,7 +19632,7 @@ var Human = class {
|
|||
}
|
||||
return res;
|
||||
});
|
||||
_warmupCanvas.set(this, async () => new Promise((resolve) => {
|
||||
__privateAdd(this, _warmupCanvas, async () => new Promise((resolve) => {
|
||||
let src;
|
||||
let size = 0;
|
||||
switch (this.config.warmup) {
|
||||
|
@ -19650,7 +19663,7 @@ var Human = class {
|
|||
else
|
||||
resolve(null);
|
||||
}));
|
||||
_warmupNode.set(this, async () => {
|
||||
__privateAdd(this, _warmupNode, async () => {
|
||||
const atob = (str) => Buffer.from(str, "base64");
|
||||
let img;
|
||||
if (this.config.warmup === "face")
|
||||
|
@ -19660,8 +19673,8 @@ var Human = class {
|
|||
if (!img)
|
||||
return null;
|
||||
let res;
|
||||
if (typeof tf16.node !== "undefined") {
|
||||
const data = tf16.node.decodeJpeg(img);
|
||||
if (typeof tf16["node"] !== "undefined") {
|
||||
const data = tf16["node"].decodeJpeg(img);
|
||||
const expanded = data.expandDims(0);
|
||||
this.tf.dispose(data);
|
||||
res = await this.detect(expanded, this.config);
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -6,8 +6,15 @@
|
|||
{
|
||||
"signature":
|
||||
{
|
||||
"inputs": {"input:0":{"name":"input:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"256"},{"size":"256"},{"size":"3"}]}}},
|
||||
"outputs": {"Identity_3:0":{"name":"Identity_3:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"384"},{"size":"16"}]}},"Identity:0":{"name":"Identity:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"512"},{"size":"1"}]}},"Identity_1:0":{"name":"Identity_1:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"384"},{"size":"1"}]}},"Identity_2:0":{"name":"Identity_2:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"512"},{"size":"16"}]}}}
|
||||
"inputs":
|
||||
{
|
||||
"input:0":{"name":"input:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"256"},{"size":"256"},{"size":"3"}]}}
|
||||
},
|
||||
"outputs":
|
||||
{
|
||||
"Identity_3:0":{"name":"Identity_3:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"384"},{"size":"16"}]}},"Identity:0":{"name":"Identity:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"512"},{"size":"1"}]}},
|
||||
"Identity_1:0":{"name":"Identity_1:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"384"},{"size":"1"}]}},"Identity_2:0":{"name":"Identity_2:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"512"},{"size":"16"}]}}
|
||||
}
|
||||
}
|
||||
},
|
||||
"modelTopology":
|
||||
|
@ -273,10 +280,7 @@
|
|||
{"name":"Identity_1","op":"Identity","input":["StatefulPartitionedCall/functional_1/tf_op_layer_classificators_2/classificators_2"],"attr":{"T":{"type":"DT_FLOAT"}}}
|
||||
],
|
||||
"library": {},
|
||||
"versions":
|
||||
{
|
||||
"producer": 440
|
||||
}
|
||||
"versions": {}
|
||||
},
|
||||
"weightsManifest":
|
||||
[
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
"format": "graph-model",
|
||||
"generatedBy": "https://github.com/google/mediapipe",
|
||||
"convertedBy": "https://github.com/vladmandic",
|
||||
"userDefinedMetadata":
|
||||
{
|
||||
"signature":
|
||||
{
|
||||
"inputs":
|
||||
|
@ -14,6 +16,7 @@
|
|||
"output_segmentation:0": {"name":"output_segmentation:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"128"},{"size":"128"},{"size":"1"}]}},
|
||||
"output_poseflag:0": {"name":"output_poseflag:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"1"}]}}
|
||||
}
|
||||
}
|
||||
},
|
||||
"modelTopology":
|
||||
{
|
||||
|
@ -616,10 +619,7 @@
|
|||
{"name":"output_poseflag","op":"Reshape","input":["activation_poseflag","output_poseflag/shape"],"attr":{"Tshape":{"type":"DT_INT32"},"T":{"type":"DT_FLOAT"}}}
|
||||
],
|
||||
"library": {},
|
||||
"versions":
|
||||
{
|
||||
"producer": 561
|
||||
}
|
||||
"versions": {}
|
||||
},
|
||||
"weightsManifest":
|
||||
[
|
||||
|
|
|
@ -6,8 +6,14 @@
|
|||
{
|
||||
"signature":
|
||||
{
|
||||
"inputs": {"input_1:0":{"name":"input_1:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"-1"},{"size":"64"},{"size":"64"},{"size":"1"}]}}},
|
||||
"outputs": {"Identity:0":{"name":"Identity:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"-1"},{"size":"7"}]}}}
|
||||
"inputs":
|
||||
{
|
||||
"input_1:0":{"name":"input_1:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"-1"},{"size":"64"},{"size":"64"},{"size":"1"}]}}
|
||||
},
|
||||
"outputs":
|
||||
{
|
||||
"Identity:0":{"name":"Identity:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"-1"},{"size":"7"}]}}
|
||||
}
|
||||
}
|
||||
},
|
||||
"modelTopology":
|
||||
|
@ -61,10 +67,7 @@
|
|||
{"name":"Identity","op":"Identity","input":["StatefulPartitionedCall/model_1/predictions/Softmax"],"attr":{"T":{"type":"DT_FLOAT"}}}
|
||||
],
|
||||
"library": {},
|
||||
"versions":
|
||||
{
|
||||
"producer": 440
|
||||
}
|
||||
"versions": {}
|
||||
},
|
||||
"weightsManifest":
|
||||
[
|
||||
|
|
|
@ -6,8 +6,16 @@
|
|||
{
|
||||
"signature":
|
||||
{
|
||||
"inputs": {"input_1:0":{"name":"input_1:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"192"},{"size":"192"},{"size":"3"}]}}},
|
||||
"outputs": {"Identity_1:0":{"name":"Identity_1:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"266"}]}},"Identity_2:0":{"name":"Identity_2:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"1"}]}},"Identity:0":{"name":"Identity:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"1404"}]}}}
|
||||
"inputs":
|
||||
{
|
||||
"input_1:0":{"name":"input_1:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"192"},{"size":"192"},{"size":"3"}]}}
|
||||
},
|
||||
"outputs":
|
||||
{
|
||||
"Identity_1:0":{"name":"Identity_1:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"266"}]}},
|
||||
"Identity_2:0":{"name":"Identity_2:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"1"}]}},
|
||||
"Identity:0":{"name":"Identity:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"1404"}]}}
|
||||
}
|
||||
}
|
||||
},
|
||||
"modelTopology":
|
||||
|
@ -253,10 +261,8 @@
|
|||
{"name":"Identity","op":"Identity","input":["StatefulPartitionedCall/model/output_mesh/Reshape","^Func/StatefulPartitionedCall/output_control_node/_204"],"attr":{"T":{"type":"DT_FLOAT"}}},
|
||||
{"name":"Identity_1","op":"Identity","input":["StatefulPartitionedCall/model/output_contours/Reshape","^Func/StatefulPartitionedCall/output_control_node/_204"],"attr":{"T":{"type":"DT_FLOAT"}}}
|
||||
],
|
||||
"versions":
|
||||
{
|
||||
"producer": 134
|
||||
}
|
||||
"library": {},
|
||||
"versions": {}
|
||||
},
|
||||
"weightsManifest":
|
||||
[
|
||||
|
|
|
@ -4,7 +4,8 @@
|
|||
"convertedBy": "https://github.com/vladmandic",
|
||||
"signature":
|
||||
{
|
||||
"inputs": {
|
||||
"inputs":
|
||||
{
|
||||
"input_1": { "name": "input_1", "dtype": "DT_FLOAT", "tensorShape":{"dim":[{"size":"-1"},{"size":"224"},{"size":"224"},{"size":"3"}]} }
|
||||
},
|
||||
"outputs":
|
||||
|
|
|
@ -6,8 +6,14 @@
|
|||
{
|
||||
"signature":
|
||||
{
|
||||
"inputs": {"input:0":{"name":"input:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"256"},{"size":"256"},{"size":"3"}]}}},
|
||||
"outputs": {"Identity:0":{"name":"Identity:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"2944"},{"size":"19"}]}}}
|
||||
"inputs":
|
||||
{
|
||||
"input:0":{"name":"input:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"256"},{"size":"256"},{"size":"3"}]}}
|
||||
},
|
||||
"outputs":
|
||||
{
|
||||
"Identity:0":{"name":"Identity:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"2944"},{"size":"19"}]}}
|
||||
}
|
||||
}
|
||||
},
|
||||
"modelTopology":
|
||||
|
@ -366,11 +372,8 @@
|
|||
{"name":"StatefulPartitionedCall/model/objects/concat","op":"ConcatV2","input":["StatefulPartitionedCall/model/classificators/concat","StatefulPartitionedCall/model/regressors/concat","StatefulPartitionedCall/model/objects/concat/axis"],"attr":{"T":{"type":"DT_FLOAT"},"N":{"i":"2"},"Tidx":{"type":"DT_INT32"}}},
|
||||
{"name":"Identity","op":"Identity","input":["StatefulPartitionedCall/model/objects/concat"],"attr":{"T":{"type":"DT_FLOAT"}}}
|
||||
],
|
||||
"versions":
|
||||
{
|
||||
"producer": 134,
|
||||
"minConsumer": 12
|
||||
}
|
||||
"library": {},
|
||||
"versions": {}
|
||||
},
|
||||
"weightsManifest":
|
||||
[
|
||||
|
|
|
@ -6,8 +6,15 @@
|
|||
{
|
||||
"signature":
|
||||
{
|
||||
"inputs": {"input_1:0":{"name":"input_1:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"256"},{"size":"256"},{"size":"3"}]}}},
|
||||
"outputs": {"Identity_1:0":{"name":"Identity_1:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"1"}]}},"Identity:0":{"name":"Identity:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"63"}]}}}
|
||||
"inputs":
|
||||
{
|
||||
"input_1:0":{"name":"input_1:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"256"},{"size":"256"},{"size":"3"}]}}
|
||||
},
|
||||
"outputs":
|
||||
{
|
||||
"Identity_1:0":{"name":"Identity_1:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"1"}]}},
|
||||
"Identity:0":{"name":"Identity:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"63"}]}}
|
||||
}
|
||||
}
|
||||
},
|
||||
"modelTopology":
|
||||
|
@ -359,10 +366,8 @@
|
|||
{"name":"Identity","op":"Identity","input":["StatefulPartitionedCall/model/ld_21_3d/Reshape","^Func/StatefulPartitionedCall/output_control_node/_285"],"attr":{"T":{"type":"DT_FLOAT"}}},
|
||||
{"name":"Identity_1","op":"Identity","input":["StatefulPartitionedCall/model/output_handflag/Reshape","^Func/StatefulPartitionedCall/output_control_node/_285"],"attr":{"T":{"type":"DT_FLOAT"}}}
|
||||
],
|
||||
"versions":
|
||||
{
|
||||
"producer": 134
|
||||
}
|
||||
"library": {},
|
||||
"versions": {}
|
||||
},
|
||||
"weightsManifest":
|
||||
[
|
||||
|
|
|
@ -6,8 +6,14 @@
|
|||
{
|
||||
"signature":
|
||||
{
|
||||
"inputs": {"input_1:0":{"name":"input_1:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"-1"},{"size":"64"},{"size":"64"},{"size":"3"}]}}},
|
||||
"outputs": {"Identity:0":{"name":"Identity:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"-1"},{"size":"1"},{"size":"1"},{"size":"228"}]}}}
|
||||
"inputs":
|
||||
{
|
||||
"input_1:0":{"name":"input_1:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"-1"},{"size":"64"},{"size":"64"},{"size":"3"}]}}
|
||||
},
|
||||
"outputs":
|
||||
{
|
||||
"Identity:0":{"name":"Identity:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"-1"},{"size":"1"},{"size":"1"},{"size":"228"}]}}
|
||||
}
|
||||
}
|
||||
},
|
||||
"modelTopology":
|
||||
|
|
|
@ -513,10 +513,7 @@
|
|||
{"name":"Identity_2","op":"Identity","input":["PartitionedCall/onnx_tf_prefix_Transpose_179"],"attr":{"T":{"type":"DT_FLOAT"}}}
|
||||
],
|
||||
"library": {},
|
||||
"versions":
|
||||
{
|
||||
"producer": 561
|
||||
}
|
||||
"versions": {}
|
||||
},
|
||||
"weightsManifest":
|
||||
[
|
||||
|
|
|
@ -116,10 +116,7 @@
|
|||
{"name":"MobilenetV1/displacement_bwd_2/BiasAdd","op":"_FusedConv2D","input":["MobilenetV1/MobilenetV1/Conv2d_13_pointwise/Relu6","Const_61","Const_60"],"device":"/device:CPU:0","attr":{"padding":{"s":"U0FNRQ=="},"dilations":{"list":{"i":["1","1","1","1"]}},"use_cudnn_on_gpu":{"b":true},"fused_ops":{"list":{"s":["Qmlhc0FkZA=="]}},"epsilon":{"f":0},"explicit_paddings":{"list":{}},"data_format":{"s":"TkhXQw=="},"T":{"type":"DT_FLOAT"},"strides":{"list":{"i":["1","1","1","1"]}},"num_args":{"i":"1"}}}
|
||||
],
|
||||
"library": {},
|
||||
"versions":
|
||||
{
|
||||
"producer": 561
|
||||
}
|
||||
"versions": {}
|
||||
},
|
||||
"weightsManifest":
|
||||
[
|
||||
|
|
|
@ -69,6 +69,9 @@ const targets = {
|
|||
outfile: 'dist/tfjs.esm.js',
|
||||
external: ['@tensorflow'],
|
||||
sourcemap: false,
|
||||
minifyWhitespace: false,
|
||||
minifyIdentifiers: false,
|
||||
minifySyntax: false,
|
||||
},
|
||||
node: {
|
||||
platform: 'node',
|
||||
|
@ -90,6 +93,9 @@ const targets = {
|
|||
outfile: 'dist/tfjs.esm.js',
|
||||
external: ['@tensorflow'],
|
||||
sourcemap: false,
|
||||
minifyWhitespace: false,
|
||||
minifyIdentifiers: false,
|
||||
minifySyntax: false,
|
||||
},
|
||||
node: {
|
||||
platform: 'node',
|
||||
|
@ -111,6 +117,9 @@ const targets = {
|
|||
outfile: 'dist/tfjs.esm.js',
|
||||
external: ['@tensorflow'],
|
||||
sourcemap: false,
|
||||
minifyWhitespace: false,
|
||||
minifyIdentifiers: false,
|
||||
minifySyntax: false,
|
||||
},
|
||||
node: {
|
||||
platform: 'node',
|
||||
|
@ -159,7 +168,7 @@ const targets = {
|
|||
entryPoints: ['src/human.ts'],
|
||||
outfile: 'dist/human.js',
|
||||
external: ['fs', 'buffer', 'util', 'os'],
|
||||
sourcemap: true,
|
||||
sourcemap: false,
|
||||
},
|
||||
esm: {
|
||||
platform: 'browser',
|
||||
|
|
|
@ -1,17 +1,17 @@
|
|||
2021-05-05 10:06:54 [36mINFO: [39m @vladmandic/human version 1.8.3
|
||||
2021-05-05 10:06:54 [36mINFO: [39m User: vlado Platform: linux Arch: x64 Node: v16.0.0
|
||||
2021-05-05 10:06:54 [36mINFO: [39m Build: file startup all type: production config: {"minifyWhitespace":true,"minifyIdentifiers":true,"minifySyntax":true}
|
||||
2021-05-05 10:06:54 [35mSTATE:[39m Build for: node type: tfjs: {"imports":1,"importBytes":39,"outputBytes":696,"outputFiles":"dist/tfjs.esm.js"}
|
||||
2021-05-05 10:06:54 [35mSTATE:[39m Build for: node type: node: {"imports":35,"importBytes":412756,"outputBytes":371901,"outputFiles":"dist/human.node.js"}
|
||||
2021-05-05 10:06:54 [35mSTATE:[39m Build for: nodeGPU type: tfjs: {"imports":1,"importBytes":43,"outputBytes":700,"outputFiles":"dist/tfjs.esm.js"}
|
||||
2021-05-05 10:06:54 [35mSTATE:[39m Build for: nodeGPU type: node: {"imports":35,"importBytes":412760,"outputBytes":371905,"outputFiles":"dist/human.node-gpu.js"}
|
||||
2021-05-05 10:06:54 [35mSTATE:[39m Build for: nodeWASM type: tfjs: {"imports":1,"importBytes":81,"outputBytes":746,"outputFiles":"dist/tfjs.esm.js"}
|
||||
2021-05-05 10:06:54 [35mSTATE:[39m Build for: nodeWASM type: node: {"imports":35,"importBytes":412806,"outputBytes":371955,"outputFiles":"dist/human.node-wasm.js"}
|
||||
2021-05-05 10:06:55 [35mSTATE:[39m Build for: browserNoBundle type: tfjs: {"imports":1,"importBytes":2488,"outputBytes":1394,"outputFiles":"dist/tfjs.esm.js"}
|
||||
2021-05-05 10:06:55 [35mSTATE:[39m Build for: browserNoBundle type: esm: {"imports":35,"importBytes":413454,"outputBytes":229541,"outputFiles":"dist/human.esm-nobundle.js"}
|
||||
2021-05-05 10:06:55 [35mSTATE:[39m Build for: browserBundle type: tfjs: {"modules":1274,"moduleBytes":4114813,"imports":7,"importBytes":2488,"outputBytes":1111306,"outputFiles":"dist/tfjs.esm.js"}
|
||||
2021-05-05 10:06:56 [35mSTATE:[39m Build for: browserBundle type: iife: {"imports":35,"importBytes":1523366,"outputBytes":1337233,"outputFiles":"dist/human.js"}
|
||||
2021-05-05 10:06:57 [35mSTATE:[39m Build for: browserBundle type: esm: {"imports":35,"importBytes":1523366,"outputBytes":1337191,"outputFiles":"dist/human.esm.js"}
|
||||
2021-05-05 10:06:57 [36mINFO: [39m Generate types: ["src/human.ts"]
|
||||
2021-05-05 10:07:01 [36mINFO: [39m Update Change log: ["/home/vlado/dev/human/CHANGELOG.md"]
|
||||
2021-05-05 10:07:01 [36mINFO: [39m Generate TypeDocs: ["src/human.ts"]
|
||||
2021-05-11 07:50:56 [36mINFO: [39m @vladmandic/human version 1.8.4
|
||||
2021-05-11 07:50:56 [36mINFO: [39m User: vlado Platform: linux Arch: x64 Node: v16.0.0
|
||||
2021-05-11 07:50:56 [36mINFO: [39m Build: file startup all type: production config: {"minifyWhitespace":true,"minifyIdentifiers":true,"minifySyntax":true}
|
||||
2021-05-11 07:50:56 [35mSTATE:[39m Build for: node type: tfjs: {"imports":1,"importBytes":39,"outputBytes":1284,"outputFiles":"dist/tfjs.esm.js"}
|
||||
2021-05-11 07:50:56 [35mSTATE:[39m Build for: node type: node: {"imports":35,"importBytes":413382,"outputBytes":372832,"outputFiles":"dist/human.node.js"}
|
||||
2021-05-11 07:50:56 [35mSTATE:[39m Build for: nodeGPU type: tfjs: {"imports":1,"importBytes":43,"outputBytes":1292,"outputFiles":"dist/tfjs.esm.js"}
|
||||
2021-05-11 07:50:56 [35mSTATE:[39m Build for: nodeGPU type: node: {"imports":35,"importBytes":413390,"outputBytes":372836,"outputFiles":"dist/human.node-gpu.js"}
|
||||
2021-05-11 07:50:56 [35mSTATE:[39m Build for: nodeWASM type: tfjs: {"imports":1,"importBytes":81,"outputBytes":1359,"outputFiles":"dist/tfjs.esm.js"}
|
||||
2021-05-11 07:50:56 [35mSTATE:[39m Build for: nodeWASM type: node: {"imports":35,"importBytes":413457,"outputBytes":372908,"outputFiles":"dist/human.node-wasm.js"}
|
||||
2021-05-11 07:50:56 [35mSTATE:[39m Build for: browserNoBundle type: tfjs: {"imports":1,"importBytes":2488,"outputBytes":1394,"outputFiles":"dist/tfjs.esm.js"}
|
||||
2021-05-11 07:50:56 [35mSTATE:[39m Build for: browserNoBundle type: esm: {"imports":35,"importBytes":413492,"outputBytes":229716,"outputFiles":"dist/human.esm-nobundle.js"}
|
||||
2021-05-11 07:50:57 [35mSTATE:[39m Build for: browserBundle type: tfjs: {"modules":1274,"moduleBytes":4114813,"imports":7,"importBytes":2488,"outputBytes":1111318,"outputFiles":"dist/tfjs.esm.js"}
|
||||
2021-05-11 07:50:57 [35mSTATE:[39m Build for: browserBundle type: iife: {"imports":35,"importBytes":1523416,"outputBytes":1337370,"outputFiles":"dist/human.js"}
|
||||
2021-05-11 07:50:58 [35mSTATE:[39m Build for: browserBundle type: esm: {"imports":35,"importBytes":1523416,"outputBytes":1337362,"outputFiles":"dist/human.esm.js"}
|
||||
2021-05-11 07:50:58 [36mINFO: [39m Generate types: ["src/human.ts"]
|
||||
2021-05-11 07:51:03 [36mINFO: [39m Update Change log: ["/home/vlado/dev/human/CHANGELOG.md"]
|
||||
2021-05-11 07:51:03 [36mINFO: [39m Generate TypeDocs: ["src/human.ts"]
|
||||
|
|
|
@ -202,7 +202,7 @@ const config: Config = {
|
|||
backend: 'webgl', // select tfjs backend to use, leave empty to use default backend
|
||||
// can be 'webgl', 'wasm', 'cpu', or 'humangl' which is a custom version of webgl
|
||||
modelBasePath: '../models/', // base path for all models
|
||||
wasmPath: '../assets/', // path for wasm binariesm, only used for backend: wasm
|
||||
wasmPath: '../node_modules/@tensorflow/tfjs-backend-wasm/dist//', // path for wasm binaries, only used for backend: wasm
|
||||
debug: true, // print additional status messages to console
|
||||
async: true, // execute enabled models in parallel
|
||||
videoOptimized: true, // perform additional optimizations when input is video,
|
||||
|
|
|
@ -21,8 +21,8 @@ export function similarity(embedding1, embedding2, order = 2): number {
|
|||
// general minkowski distance, euclidean distance is limited case where order is 2
|
||||
const distance = embedding1
|
||||
.map((val, i) => (Math.abs(embedding1[i] - embedding2[i]) ** order)) // distance squared
|
||||
.reduce((sum, now) => (sum + now), 0) // sum all distances
|
||||
** (1 / order); // get root of
|
||||
.reduce((sum, now) => (sum + now), 0) // sum all distances into total
|
||||
** (1 / order); // get root of total distances
|
||||
const res = Math.max(Math.trunc(1000 * (1 - distance)) / 1000, 0);
|
||||
return res;
|
||||
}
|
||||
|
|
289
test/test.log
289
test/test.log
|
@ -1,169 +1,120 @@
|
|||
2021-05-05 10:05:29 [36mINFO: [39m @vladmandic/human version 1.8.3
|
||||
2021-05-05 10:05:29 [36mINFO: [39m User: vlado Platform: linux Arch: x64 Node: v16.0.0
|
||||
2021-05-05 10:05:29 [36mINFO: [39m tests: ["test-node.js","test-node-gpu.js","test-node-wasm.js"]
|
||||
2021-05-05 10:05:29 [36mINFO: [39m test-node.js start
|
||||
2021-05-05 10:05:30 [35mSTATE:[39m test-node.js passed: create human
|
||||
2021-05-05 10:05:30 [36mINFO: [39m test-node.js human version: 1.8.3
|
||||
2021-05-05 10:05:30 [36mINFO: [39m test-node.js platform: linux x64 agent: NodeJS v16.0.0
|
||||
2021-05-05 10:05:30 [36mINFO: [39m test-node.js tfjs version: 3.6.0
|
||||
2021-05-05 10:05:31 [35mSTATE:[39m test-node.js passed: set backend: tensorflow
|
||||
2021-05-05 10:05:31 [35mSTATE:[39m test-node.js passed: load models
|
||||
2021-05-05 10:05:31 [35mSTATE:[39m test-node.js result: defined models: 12 loaded models: 6
|
||||
2021-05-05 10:05:31 [35mSTATE:[39m test-node.js passed: warmup: none default
|
||||
2021-05-05 10:05:33 [35mSTATE:[39m test-node.js passed: warmup: face default
|
||||
2021-05-05 10:05:33 [32mDATA: [39m test-node.js result: face: 1 body: 1 hand: 0 gesture: 5 object: 1 {"confidence":1,"age":23.6,"gender":"female"} {"score":0.52,"class":"person"} {"score":0.96,"keypoints":5}
|
||||
2021-05-05 10:05:33 [32mDATA: [39m test-node.js result: performance: load: 440 total: 1540
|
||||
2021-05-05 10:05:34 [35mSTATE:[39m test-node.js passed: warmup: body default
|
||||
2021-05-05 10:05:34 [32mDATA: [39m test-node.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 3 {"confidence":1,"age":29.5,"gender":"female"} {"score":0.86,"class":"person"} {"score":0.92,"keypoints":17}
|
||||
2021-05-05 10:05:34 [32mDATA: [39m test-node.js result: performance: load: 440 total: 1455
|
||||
2021-05-05 10:05:34 [36mINFO: [39m test-node.js test body variants
|
||||
2021-05-05 10:05:35 [35mSTATE:[39m test-node.js passed: load image: assets/human-sample-body.jpg [1,1200,1200,3]
|
||||
2021-05-05 10:05:37 [35mSTATE:[39m test-node.js passed: detect: assets/human-sample-body.jpg posenet
|
||||
2021-05-05 10:05:37 [32mDATA: [39m test-node.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 3 {"confidence":1,"age":28.5,"gender":"female"} {"score":0.86,"class":"person"} {"score":0.91,"keypoints":17}
|
||||
2021-05-05 10:05:37 [32mDATA: [39m test-node.js result: performance: load: 440 total: 1494
|
||||
2021-05-05 10:05:38 [35mSTATE:[39m test-node.js passed: load image: assets/human-sample-body.jpg [1,1200,1200,3]
|
||||
2021-05-05 10:05:39 [35mSTATE:[39m test-node.js passed: detect: assets/human-sample-body.jpg blazepose
|
||||
2021-05-05 10:05:39 [32mDATA: [39m test-node.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 3 {"confidence":1,"age":28.5,"gender":"female"} {"score":0.86,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-05 10:05:39 [32mDATA: [39m test-node.js result: performance: load: 440 total: 1483
|
||||
2021-05-05 10:05:40 [35mSTATE:[39m test-node.js passed: detect: random default
|
||||
2021-05-05 10:05:40 [32mDATA: [39m test-node.js result: face: 0 body: 1 hand: 0 gesture: 1 object: 0 {} {} {"score":1,"keypoints":39}
|
||||
2021-05-05 10:05:40 [32mDATA: [39m test-node.js result: performance: load: 440 total: 666
|
||||
2021-05-05 10:05:40 [36mINFO: [39m test-node.js test: first instance
|
||||
2021-05-05 10:05:40 [35mSTATE:[39m test-node.js passed: load image: assets/sample-me.jpg [1,700,700,3]
|
||||
2021-05-05 10:05:42 [35mSTATE:[39m test-node.js passed: detect: assets/sample-me.jpg default
|
||||
2021-05-05 10:05:42 [32mDATA: [39m test-node.js result: face: 1 body: 1 hand: 0 gesture: 6 object: 2 {"confidence":1,"age":39.2,"gender":"male"} {"score":0.7,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-05 10:05:42 [32mDATA: [39m test-node.js result: performance: load: 440 total: 1531
|
||||
2021-05-05 10:05:42 [36mINFO: [39m test-node.js test: second instance
|
||||
2021-05-05 10:05:42 [35mSTATE:[39m test-node.js passed: load image: assets/sample-me.jpg [1,700,700,3]
|
||||
2021-05-05 10:05:43 [35mSTATE:[39m test-node.js passed: detect: assets/sample-me.jpg default
|
||||
2021-05-05 10:05:43 [32mDATA: [39m test-node.js result: face: 1 body: 1 hand: 0 gesture: 6 object: 2 {"confidence":1,"age":39.2,"gender":"male"} {"score":0.7,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-05 10:05:43 [32mDATA: [39m test-node.js result: performance: load: 5 total: 1326
|
||||
2021-05-05 10:05:43 [36mINFO: [39m test-node.js test: concurrent
|
||||
2021-05-05 10:05:43 [35mSTATE:[39m test-node.js passed: load image: assets/human-sample-face.jpg [1,256,256,3]
|
||||
2021-05-05 10:05:43 [35mSTATE:[39m test-node.js passed: load image: assets/human-sample-face.jpg [1,256,256,3]
|
||||
2021-05-05 10:05:44 [35mSTATE:[39m test-node.js passed: load image: assets/human-sample-body.jpg [1,1200,1200,3]
|
||||
2021-05-05 10:05:46 [35mSTATE:[39m test-node.js passed: load image: assets/human-sample-body.jpg [1,1200,1200,3]
|
||||
2021-05-05 10:05:51 [35mSTATE:[39m test-node.js passed: detect: assets/human-sample-face.jpg default
|
||||
2021-05-05 10:05:51 [32mDATA: [39m test-node.js result: face: 1 body: 1 hand: 0 gesture: 6 object: 1 {"confidence":1,"age":23.6,"gender":"female"} {"score":0.53,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-05 10:05:51 [32mDATA: [39m test-node.js result: performance: load: 440 total: 5170
|
||||
2021-05-05 10:05:51 [35mSTATE:[39m test-node.js passed: detect: assets/human-sample-face.jpg default
|
||||
2021-05-05 10:05:51 [32mDATA: [39m test-node.js result: face: 1 body: 1 hand: 0 gesture: 6 object: 1 {"confidence":1,"age":23.6,"gender":"female"} {"score":0.53,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-05 10:05:51 [32mDATA: [39m test-node.js result: performance: load: 5 total: 5170
|
||||
2021-05-05 10:05:51 [35mSTATE:[39m test-node.js passed: detect: assets/human-sample-body.jpg default
|
||||
2021-05-05 10:05:51 [32mDATA: [39m test-node.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 3 {"confidence":1,"age":28.5,"gender":"female"} {"score":0.86,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-05 10:05:51 [32mDATA: [39m test-node.js result: performance: load: 440 total: 5170
|
||||
2021-05-05 10:05:51 [35mSTATE:[39m test-node.js passed: detect: assets/human-sample-body.jpg default
|
||||
2021-05-05 10:05:51 [32mDATA: [39m test-node.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 3 {"confidence":1,"age":28.5,"gender":"female"} {"score":0.86,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-05 10:05:51 [32mDATA: [39m test-node.js result: performance: load: 5 total: 5170
|
||||
2021-05-05 10:05:51 [36mINFO: [39m test-node.js test complete: 20244 ms
|
||||
2021-05-05 10:05:51 [36mINFO: [39m test-node-gpu.js start
|
||||
2021-05-05 10:05:52 [33mWARN: [39m test-node-gpu.js stderr: 2021-05-05 10:05:52.364035: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory
|
||||
2021-05-05 10:05:52 [33mWARN: [39m test-node-gpu.js stderr: 2021-05-05 10:05:52.619918: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory
|
||||
2021-05-05 10:05:52 [33mWARN: [39m test-node-gpu.js stderr: 2021-05-05 10:05:52.619948: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (wyse): /proc/driver/nvidia/version does not exist
|
||||
2021-05-05 10:05:52 [35mSTATE:[39m test-node-gpu.js passed: create human
|
||||
2021-05-05 10:05:52 [36mINFO: [39m test-node-gpu.js human version: 1.8.3
|
||||
2021-05-05 10:05:52 [36mINFO: [39m test-node-gpu.js platform: linux x64 agent: NodeJS v16.0.0
|
||||
2021-05-05 10:05:52 [36mINFO: [39m test-node-gpu.js tfjs version: 3.6.0
|
||||
2021-05-05 10:05:53 [35mSTATE:[39m test-node-gpu.js passed: set backend: tensorflow
|
||||
2021-05-05 10:05:53 [35mSTATE:[39m test-node-gpu.js passed: load models
|
||||
2021-05-05 10:05:53 [35mSTATE:[39m test-node-gpu.js result: defined models: 12 loaded models: 6
|
||||
2021-05-05 10:05:53 [35mSTATE:[39m test-node-gpu.js passed: warmup: none default
|
||||
2021-05-05 10:05:54 [35mSTATE:[39m test-node-gpu.js passed: warmup: face default
|
||||
2021-05-05 10:05:54 [32mDATA: [39m test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 5 object: 1 {"confidence":1,"age":23.6,"gender":"female"} {"score":0.52,"class":"person"} {"score":0.96,"keypoints":5}
|
||||
2021-05-05 10:05:54 [32mDATA: [39m test-node-gpu.js result: performance: load: 323 total: 1631
|
||||
2021-05-05 10:05:56 [35mSTATE:[39m test-node-gpu.js passed: warmup: body default
|
||||
2021-05-05 10:05:56 [32mDATA: [39m test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 3 {"confidence":1,"age":29.5,"gender":"female"} {"score":0.86,"class":"person"} {"score":0.92,"keypoints":17}
|
||||
2021-05-05 10:05:56 [32mDATA: [39m test-node-gpu.js result: performance: load: 323 total: 1407
|
||||
2021-05-05 10:05:56 [36mINFO: [39m test-node-gpu.js test body variants
|
||||
2021-05-05 10:05:57 [35mSTATE:[39m test-node-gpu.js passed: load image: assets/human-sample-body.jpg [1,1200,1200,3]
|
||||
2021-05-05 10:05:58 [35mSTATE:[39m test-node-gpu.js passed: detect: assets/human-sample-body.jpg posenet
|
||||
2021-05-05 10:05:58 [32mDATA: [39m test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 3 {"confidence":1,"age":28.5,"gender":"female"} {"score":0.86,"class":"person"} {"score":0.91,"keypoints":17}
|
||||
2021-05-05 10:05:58 [32mDATA: [39m test-node-gpu.js result: performance: load: 323 total: 1712
|
||||
2021-05-05 10:05:59 [35mSTATE:[39m test-node-gpu.js passed: load image: assets/human-sample-body.jpg [1,1200,1200,3]
|
||||
2021-05-05 10:06:01 [35mSTATE:[39m test-node-gpu.js passed: detect: assets/human-sample-body.jpg blazepose
|
||||
2021-05-05 10:06:01 [32mDATA: [39m test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 3 {"confidence":1,"age":28.5,"gender":"female"} {"score":0.86,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-05 10:06:01 [32mDATA: [39m test-node-gpu.js result: performance: load: 323 total: 1407
|
||||
2021-05-05 10:06:02 [35mSTATE:[39m test-node-gpu.js passed: detect: random default
|
||||
2021-05-05 10:06:02 [32mDATA: [39m test-node-gpu.js result: face: 0 body: 1 hand: 0 gesture: 1 object: 0 {} {} {"score":1,"keypoints":39}
|
||||
2021-05-05 10:06:02 [32mDATA: [39m test-node-gpu.js result: performance: load: 323 total: 626
|
||||
2021-05-05 10:06:02 [36mINFO: [39m test-node-gpu.js test: first instance
|
||||
2021-05-05 10:06:02 [35mSTATE:[39m test-node-gpu.js passed: load image: assets/sample-me.jpg [1,700,700,3]
|
||||
2021-05-05 10:06:03 [35mSTATE:[39m test-node-gpu.js passed: detect: assets/sample-me.jpg default
|
||||
2021-05-05 10:06:03 [32mDATA: [39m test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 6 object: 2 {"confidence":1,"age":39.2,"gender":"male"} {"score":0.7,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-05 10:06:03 [32mDATA: [39m test-node-gpu.js result: performance: load: 323 total: 1334
|
||||
2021-05-05 10:06:03 [36mINFO: [39m test-node-gpu.js test: second instance
|
||||
2021-05-05 10:06:04 [35mSTATE:[39m test-node-gpu.js passed: load image: assets/sample-me.jpg [1,700,700,3]
|
||||
2021-05-05 10:06:05 [35mSTATE:[39m test-node-gpu.js passed: detect: assets/sample-me.jpg default
|
||||
2021-05-05 10:06:05 [32mDATA: [39m test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 6 object: 2 {"confidence":1,"age":39.2,"gender":"male"} {"score":0.7,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-05 10:06:05 [32mDATA: [39m test-node-gpu.js result: performance: load: 2 total: 1247
|
||||
2021-05-05 10:06:05 [36mINFO: [39m test-node-gpu.js test: concurrent
|
||||
2021-05-05 10:06:05 [35mSTATE:[39m test-node-gpu.js passed: load image: assets/human-sample-face.jpg [1,256,256,3]
|
||||
2021-05-05 10:06:05 [35mSTATE:[39m test-node-gpu.js passed: load image: assets/human-sample-face.jpg [1,256,256,3]
|
||||
2021-05-05 10:06:06 [35mSTATE:[39m test-node-gpu.js passed: load image: assets/human-sample-body.jpg [1,1200,1200,3]
|
||||
2021-05-05 10:06:07 [35mSTATE:[39m test-node-gpu.js passed: load image: assets/human-sample-body.jpg [1,1200,1200,3]
|
||||
2021-05-05 10:06:12 [35mSTATE:[39m test-node-gpu.js passed: detect: assets/human-sample-face.jpg default
|
||||
2021-05-05 10:06:12 [32mDATA: [39m test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 6 object: 1 {"confidence":1,"age":23.6,"gender":"female"} {"score":0.53,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-05 10:06:12 [32mDATA: [39m test-node-gpu.js result: performance: load: 323 total: 4919
|
||||
2021-05-05 10:06:12 [35mSTATE:[39m test-node-gpu.js passed: detect: assets/human-sample-face.jpg default
|
||||
2021-05-05 10:06:12 [32mDATA: [39m test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 6 object: 1 {"confidence":1,"age":23.6,"gender":"female"} {"score":0.53,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-05 10:06:12 [32mDATA: [39m test-node-gpu.js result: performance: load: 2 total: 4919
|
||||
2021-05-05 10:06:12 [35mSTATE:[39m test-node-gpu.js passed: detect: assets/human-sample-body.jpg default
|
||||
2021-05-05 10:06:12 [32mDATA: [39m test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 3 {"confidence":1,"age":28.5,"gender":"female"} {"score":0.86,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-05 10:06:12 [32mDATA: [39m test-node-gpu.js result: performance: load: 323 total: 4919
|
||||
2021-05-05 10:06:12 [35mSTATE:[39m test-node-gpu.js passed: detect: assets/human-sample-body.jpg default
|
||||
2021-05-05 10:06:12 [32mDATA: [39m test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 3 {"confidence":1,"age":28.5,"gender":"female"} {"score":0.86,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-05 10:06:12 [32mDATA: [39m test-node-gpu.js result: performance: load: 2 total: 4919
|
||||
2021-05-05 10:06:12 [36mINFO: [39m test-node-gpu.js test complete: 19760 ms
|
||||
2021-05-05 10:06:12 [36mINFO: [39m test-node-wasm.js start
|
||||
2021-05-05 10:06:12 [35mSTATE:[39m test-node-wasm.js passed: model server: http://localhost:10030/models/
|
||||
2021-05-05 10:06:12 [35mSTATE:[39m test-node-wasm.js passed: create human
|
||||
2021-05-05 10:06:12 [36mINFO: [39m test-node-wasm.js human version: 1.8.3
|
||||
2021-05-05 10:06:12 [36mINFO: [39m test-node-wasm.js platform: linux x64 agent: NodeJS v16.0.0
|
||||
2021-05-05 10:06:12 [36mINFO: [39m test-node-wasm.js tfjs version: 3.6.0
|
||||
2021-05-05 10:06:13 [35mSTATE:[39m test-node-wasm.js passed: set backend: wasm
|
||||
2021-05-05 10:06:13 [35mSTATE:[39m test-node-wasm.js passed: load models
|
||||
2021-05-05 10:06:13 [35mSTATE:[39m test-node-wasm.js result: defined models: 12 loaded models: 5
|
||||
2021-05-05 10:06:13 [35mSTATE:[39m test-node-wasm.js passed: warmup: none default
|
||||
2021-05-05 10:06:13 [31mERROR:[39m test-node-wasm.js failed: warmup: face default
|
||||
2021-05-05 10:06:13 [31mERROR:[39m test-node-wasm.js failed: warmup: body default
|
||||
2021-05-05 10:06:13 [36mINFO: [39m test-node-wasm.js test body variants
|
||||
2021-05-05 10:06:15 [35mSTATE:[39m test-node-wasm.js passed: load image: assets/human-sample-body.jpg [1,1200,1200,3]
|
||||
2021-05-05 10:06:18 [35mSTATE:[39m test-node-wasm.js passed: detect: assets/human-sample-body.jpg posenet
|
||||
2021-05-05 10:06:18 [32mDATA: [39m test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 0 {"confidence":1,"age":28.5,"gender":"female"} {} {"score":0.91,"keypoints":17}
|
||||
2021-05-05 10:06:18 [32mDATA: [39m test-node-wasm.js result: performance: load: 662 total: 3106
|
||||
2021-05-05 10:06:20 [35mSTATE:[39m test-node-wasm.js passed: load image: assets/human-sample-body.jpg [1,1200,1200,3]
|
||||
2021-05-05 10:06:23 [35mSTATE:[39m test-node-wasm.js passed: detect: assets/human-sample-body.jpg blazepose
|
||||
2021-05-05 10:06:23 [32mDATA: [39m test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 0 {"confidence":1,"age":28.5,"gender":"female"} {} {"score":1,"keypoints":39}
|
||||
2021-05-05 10:06:23 [32mDATA: [39m test-node-wasm.js result: performance: load: 662 total: 2724
|
||||
2021-05-05 10:06:25 [35mSTATE:[39m test-node-wasm.js passed: detect: random default
|
||||
2021-05-05 10:06:25 [32mDATA: [39m test-node-wasm.js result: face: 0 body: 1 hand: 0 gesture: 1 object: 0 {} {} {"score":1,"keypoints":39}
|
||||
2021-05-05 10:06:25 [32mDATA: [39m test-node-wasm.js result: performance: load: 662 total: 1712
|
||||
2021-05-05 10:06:25 [36mINFO: [39m test-node-wasm.js test: first instance
|
||||
2021-05-05 10:06:25 [35mSTATE:[39m test-node-wasm.js passed: load image: assets/sample-me.jpg [1,700,700,3]
|
||||
2021-05-05 10:06:28 [35mSTATE:[39m test-node-wasm.js passed: detect: assets/sample-me.jpg default
|
||||
2021-05-05 10:06:28 [32mDATA: [39m test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 6 object: 0 {"confidence":1,"age":39.2,"gender":"male"} {} {"score":1,"keypoints":39}
|
||||
2021-05-05 10:06:28 [32mDATA: [39m test-node-wasm.js result: performance: load: 662 total: 2380
|
||||
2021-05-05 10:06:28 [36mINFO: [39m test-node-wasm.js test: second instance
|
||||
2021-05-05 10:06:28 [35mSTATE:[39m test-node-wasm.js passed: load image: assets/sample-me.jpg [1,700,700,3]
|
||||
2021-05-05 10:06:31 [35mSTATE:[39m test-node-wasm.js passed: detect: assets/sample-me.jpg default
|
||||
2021-05-05 10:06:31 [32mDATA: [39m test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 6 object: 0 {"confidence":1,"age":39.2,"gender":"male"} {} {"score":1,"keypoints":39}
|
||||
2021-05-05 10:06:31 [32mDATA: [39m test-node-wasm.js result: performance: load: 5 total: 2386
|
||||
2021-05-05 10:06:31 [36mINFO: [39m test-node-wasm.js test: concurrent
|
||||
2021-05-05 10:06:31 [35mSTATE:[39m test-node-wasm.js passed: load image: assets/human-sample-face.jpg [1,256,256,3]
|
||||
2021-05-05 10:06:31 [35mSTATE:[39m test-node-wasm.js passed: load image: assets/human-sample-face.jpg [1,256,256,3]
|
||||
2021-05-05 10:06:33 [35mSTATE:[39m test-node-wasm.js passed: load image: assets/human-sample-body.jpg [1,1200,1200,3]
|
||||
2021-05-05 10:06:35 [35mSTATE:[39m test-node-wasm.js passed: load image: assets/human-sample-body.jpg [1,1200,1200,3]
|
||||
2021-05-05 10:06:44 [35mSTATE:[39m test-node-wasm.js passed: detect: assets/human-sample-face.jpg default
|
||||
2021-05-05 10:06:44 [32mDATA: [39m test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 6 object: 0 {"confidence":1,"age":23.6,"gender":"female"} {} {"score":1,"keypoints":39}
|
||||
2021-05-05 10:06:44 [32mDATA: [39m test-node-wasm.js result: performance: load: 662 total: 9069
|
||||
2021-05-05 10:06:44 [35mSTATE:[39m test-node-wasm.js passed: detect: assets/human-sample-face.jpg default
|
||||
2021-05-05 10:06:44 [32mDATA: [39m test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 6 object: 0 {"confidence":1,"age":23.6,"gender":"female"} {} {"score":1,"keypoints":39}
|
||||
2021-05-05 10:06:44 [32mDATA: [39m test-node-wasm.js result: performance: load: 5 total: 9069
|
||||
2021-05-05 10:06:44 [35mSTATE:[39m test-node-wasm.js passed: detect: assets/human-sample-body.jpg default
|
||||
2021-05-05 10:06:44 [32mDATA: [39m test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 0 {"confidence":1,"age":28.5,"gender":"female"} {} {"score":1,"keypoints":39}
|
||||
2021-05-05 10:06:44 [32mDATA: [39m test-node-wasm.js result: performance: load: 662 total: 9069
|
||||
2021-05-05 10:06:44 [35mSTATE:[39m test-node-wasm.js passed: detect: assets/human-sample-body.jpg default
|
||||
2021-05-05 10:06:44 [32mDATA: [39m test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 0 {"confidence":1,"age":28.5,"gender":"female"} {} {"score":1,"keypoints":39}
|
||||
2021-05-05 10:06:44 [32mDATA: [39m test-node-wasm.js result: performance: load: 5 total: 9069
|
||||
2021-05-05 10:06:44 [36mINFO: [39m test-node-wasm.js test complete: 31310 ms
|
||||
2021-05-05 10:06:44 [36mINFO: [39m status: {"passed":68,"failed":2}
|
||||
2021-05-11 07:51:30 [36mINFO: [39m @vladmandic/human version 1.8.4
|
||||
2021-05-11 07:51:30 [36mINFO: [39m User: vlado Platform: linux Arch: x64 Node: v16.0.0
|
||||
2021-05-11 07:51:30 [36mINFO: [39m tests: ["test-node.js","test-node-gpu.js","test-node-wasm.js"]
|
||||
2021-05-11 07:51:30 [36mINFO: [39m test-node.js start
|
||||
2021-05-11 07:51:30 [35mSTATE:[39m test-node.js passed: create human
|
||||
2021-05-11 07:51:30 [36mINFO: [39m test-node.js human version: 1.8.4
|
||||
2021-05-11 07:51:30 [36mINFO: [39m test-node.js platform: linux x64 agent: NodeJS v16.0.0
|
||||
2021-05-11 07:51:30 [36mINFO: [39m test-node.js tfjs version: 3.6.0
|
||||
2021-05-11 07:51:31 [35mSTATE:[39m test-node.js passed: set backend: tensorflow
|
||||
2021-05-11 07:51:31 [35mSTATE:[39m test-node.js passed: load models
|
||||
2021-05-11 07:51:31 [35mSTATE:[39m test-node.js result: defined models: 12 loaded models: 6
|
||||
2021-05-11 07:51:31 [35mSTATE:[39m test-node.js passed: warmup: none default
|
||||
2021-05-11 07:51:32 [35mSTATE:[39m test-node.js passed: warmup: face default
|
||||
2021-05-11 07:51:32 [32mDATA: [39m test-node.js result: face: 1 body: 1 hand: 0 gesture: 5 object: 1 {"confidence":1,"age":23.6,"gender":"female"} {"score":0.52,"class":"person"} {"score":0.96,"keypoints":5}
|
||||
2021-05-11 07:51:32 [32mDATA: [39m test-node.js result: performance: load: 326 total: 1396
|
||||
2021-05-11 07:51:34 [35mSTATE:[39m test-node.js passed: warmup: body default
|
||||
2021-05-11 07:51:34 [32mDATA: [39m test-node.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 3 {"confidence":1,"age":29.5,"gender":"female"} {"score":0.86,"class":"person"} {"score":0.92,"keypoints":17}
|
||||
2021-05-11 07:51:34 [32mDATA: [39m test-node.js result: performance: load: 326 total: 1408
|
||||
2021-05-11 07:51:34 [36mINFO: [39m test-node.js test body variants
|
||||
2021-05-11 07:51:35 [35mSTATE:[39m test-node.js passed: load image: assets/human-sample-body.jpg [1,1200,1200,3]
|
||||
2021-05-11 07:51:36 [35mSTATE:[39m test-node.js passed: detect: assets/human-sample-body.jpg posenet
|
||||
2021-05-11 07:51:36 [32mDATA: [39m test-node.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 3 {"confidence":1,"age":28.5,"gender":"female"} {"score":0.86,"class":"person"} {"score":0.91,"keypoints":17}
|
||||
2021-05-11 07:51:36 [32mDATA: [39m test-node.js result: performance: load: 326 total: 1449
|
||||
2021-05-11 07:51:37 [35mSTATE:[39m test-node.js passed: load image: assets/human-sample-body.jpg [1,1200,1200,3]
|
||||
2021-05-11 07:51:39 [35mSTATE:[39m test-node.js passed: detect: assets/human-sample-body.jpg blazepose
|
||||
2021-05-11 07:51:39 [32mDATA: [39m test-node.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 3 {"confidence":1,"age":28.5,"gender":"female"} {"score":0.86,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-11 07:51:39 [32mDATA: [39m test-node.js result: performance: load: 326 total: 1424
|
||||
2021-05-11 07:51:39 [35mSTATE:[39m test-node.js passed: detect: random default
|
||||
2021-05-11 07:51:39 [32mDATA: [39m test-node.js result: face: 0 body: 1 hand: 0 gesture: 1 object: 0 {} {} {"score":1,"keypoints":39}
|
||||
2021-05-11 07:51:39 [32mDATA: [39m test-node.js result: performance: load: 326 total: 644
|
||||
2021-05-11 07:51:39 [36mINFO: [39m test-node.js test: first instance
|
||||
2021-05-11 07:51:40 [35mSTATE:[39m test-node.js passed: load image: assets/sample-me.jpg [1,700,700,3]
|
||||
2021-05-11 07:51:41 [35mSTATE:[39m test-node.js passed: detect: assets/sample-me.jpg default
|
||||
2021-05-11 07:51:41 [32mDATA: [39m test-node.js result: face: 1 body: 1 hand: 0 gesture: 6 object: 2 {"confidence":1,"age":39.2,"gender":"male"} {"score":0.7,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-11 07:51:41 [32mDATA: [39m test-node.js result: performance: load: 326 total: 1403
|
||||
2021-05-11 07:51:41 [36mINFO: [39m test-node.js test: second instance
|
||||
2021-05-11 07:51:41 [35mSTATE:[39m test-node.js passed: load image: assets/sample-me.jpg [1,700,700,3]
|
||||
2021-05-11 07:51:43 [35mSTATE:[39m test-node.js passed: detect: assets/sample-me.jpg default
|
||||
2021-05-11 07:51:43 [32mDATA: [39m test-node.js result: face: 1 body: 1 hand: 0 gesture: 6 object: 2 {"confidence":1,"age":39.2,"gender":"male"} {"score":0.7,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-11 07:51:43 [32mDATA: [39m test-node.js result: performance: load: 2 total: 1289
|
||||
2021-05-11 07:51:43 [36mINFO: [39m test-node.js test: concurrent
|
||||
2021-05-11 07:51:43 [35mSTATE:[39m test-node.js passed: load image: assets/human-sample-face.jpg [1,256,256,3]
|
||||
2021-05-11 07:51:43 [35mSTATE:[39m test-node.js passed: load image: assets/human-sample-face.jpg [1,256,256,3]
|
||||
2021-05-11 07:51:44 [35mSTATE:[39m test-node.js passed: load image: assets/human-sample-body.jpg [1,1200,1200,3]
|
||||
2021-05-11 07:51:45 [35mSTATE:[39m test-node.js passed: load image: assets/human-sample-body.jpg [1,1200,1200,3]
|
||||
2021-05-11 07:51:50 [35mSTATE:[39m test-node.js passed: detect: assets/human-sample-face.jpg default
|
||||
2021-05-11 07:51:50 [32mDATA: [39m test-node.js result: face: 1 body: 1 hand: 0 gesture: 6 object: 1 {"confidence":1,"age":23.6,"gender":"female"} {"score":0.53,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-11 07:51:50 [32mDATA: [39m test-node.js result: performance: load: 326 total: 5531
|
||||
2021-05-11 07:51:50 [35mSTATE:[39m test-node.js passed: detect: assets/human-sample-face.jpg default
|
||||
2021-05-11 07:51:50 [32mDATA: [39m test-node.js result: face: 1 body: 1 hand: 0 gesture: 6 object: 1 {"confidence":1,"age":23.6,"gender":"female"} {"score":0.53,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-11 07:51:50 [32mDATA: [39m test-node.js result: performance: load: 2 total: 5531
|
||||
2021-05-11 07:51:50 [35mSTATE:[39m test-node.js passed: detect: assets/human-sample-body.jpg default
|
||||
2021-05-11 07:51:50 [32mDATA: [39m test-node.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 3 {"confidence":1,"age":28.5,"gender":"female"} {"score":0.86,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-11 07:51:50 [32mDATA: [39m test-node.js result: performance: load: 326 total: 5531
|
||||
2021-05-11 07:51:50 [35mSTATE:[39m test-node.js passed: detect: assets/human-sample-body.jpg default
|
||||
2021-05-11 07:51:50 [32mDATA: [39m test-node.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 3 {"confidence":1,"age":28.5,"gender":"female"} {"score":0.86,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-11 07:51:50 [32mDATA: [39m test-node.js result: performance: load: 2 total: 5531
|
||||
2021-05-11 07:51:50 [36mINFO: [39m test-node.js test complete: 19958 ms
|
||||
2021-05-11 07:51:50 [36mINFO: [39m test-node-gpu.js start
|
||||
2021-05-11 07:51:51 [33mWARN: [39m test-node-gpu.js stderr: 2021-05-11 07:51:51.375373: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory
|
||||
2021-05-11 07:51:51 [33mWARN: [39m test-node-gpu.js stderr: 2021-05-11 07:51:51.427921: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory
|
||||
2021-05-11 07:51:51 [33mWARN: [39m test-node-gpu.js stderr: 2021-05-11 07:51:51.428099: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:156] kernel driver does not appear to be running on this host (wyse): /proc/driver/nvidia/version does not exist
|
||||
2021-05-11 07:51:51 [35mSTATE:[39m test-node-gpu.js passed: create human
|
||||
2021-05-11 07:51:51 [36mINFO: [39m test-node-gpu.js human version: 1.8.4
|
||||
2021-05-11 07:51:51 [36mINFO: [39m test-node-gpu.js platform: linux x64 agent: NodeJS v16.0.0
|
||||
2021-05-11 07:51:51 [36mINFO: [39m test-node-gpu.js tfjs version: 3.6.0
|
||||
2021-05-11 07:51:51 [35mSTATE:[39m test-node-gpu.js passed: set backend: tensorflow
|
||||
2021-05-11 07:51:51 [35mSTATE:[39m test-node-gpu.js passed: load models
|
||||
2021-05-11 07:51:51 [35mSTATE:[39m test-node-gpu.js result: defined models: 12 loaded models: 6
|
||||
2021-05-11 07:51:51 [35mSTATE:[39m test-node-gpu.js passed: warmup: none default
|
||||
2021-05-11 07:51:53 [35mSTATE:[39m test-node-gpu.js passed: warmup: face default
|
||||
2021-05-11 07:51:53 [32mDATA: [39m test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 5 object: 1 {"confidence":1,"age":23.6,"gender":"female"} {"score":0.52,"class":"person"} {"score":0.96,"keypoints":5}
|
||||
2021-05-11 07:51:53 [32mDATA: [39m test-node-gpu.js result: performance: load: 323 total: 1404
|
||||
2021-05-11 07:51:54 [35mSTATE:[39m test-node-gpu.js passed: warmup: body default
|
||||
2021-05-11 07:51:54 [32mDATA: [39m test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 3 {"confidence":1,"age":29.5,"gender":"female"} {"score":0.86,"class":"person"} {"score":0.92,"keypoints":17}
|
||||
2021-05-11 07:51:54 [32mDATA: [39m test-node-gpu.js result: performance: load: 323 total: 1454
|
||||
2021-05-11 07:51:54 [36mINFO: [39m test-node-gpu.js test body variants
|
||||
2021-05-11 07:51:55 [35mSTATE:[39m test-node-gpu.js passed: load image: assets/human-sample-body.jpg [1,1200,1200,3]
|
||||
2021-05-11 07:51:57 [35mSTATE:[39m test-node-gpu.js passed: detect: assets/human-sample-body.jpg posenet
|
||||
2021-05-11 07:51:57 [32mDATA: [39m test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 3 {"confidence":1,"age":28.5,"gender":"female"} {"score":0.86,"class":"person"} {"score":0.91,"keypoints":17}
|
||||
2021-05-11 07:51:57 [32mDATA: [39m test-node-gpu.js result: performance: load: 323 total: 1449
|
||||
2021-05-11 07:51:58 [35mSTATE:[39m test-node-gpu.js passed: load image: assets/human-sample-body.jpg [1,1200,1200,3]
|
||||
2021-05-11 07:51:59 [35mSTATE:[39m test-node-gpu.js passed: detect: assets/human-sample-body.jpg blazepose
|
||||
2021-05-11 07:51:59 [32mDATA: [39m test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 3 {"confidence":1,"age":28.5,"gender":"female"} {"score":0.86,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-11 07:51:59 [32mDATA: [39m test-node-gpu.js result: performance: load: 323 total: 1370
|
||||
2021-05-11 07:52:00 [35mSTATE:[39m test-node-gpu.js passed: detect: random default
|
||||
2021-05-11 07:52:00 [32mDATA: [39m test-node-gpu.js result: face: 0 body: 1 hand: 0 gesture: 1 object: 0 {} {} {"score":1,"keypoints":39}
|
||||
2021-05-11 07:52:00 [32mDATA: [39m test-node-gpu.js result: performance: load: 323 total: 671
|
||||
2021-05-11 07:52:00 [36mINFO: [39m test-node-gpu.js test: first instance
|
||||
2021-05-11 07:52:00 [35mSTATE:[39m test-node-gpu.js passed: load image: assets/sample-me.jpg [1,700,700,3]
|
||||
2021-05-11 07:52:02 [35mSTATE:[39m test-node-gpu.js passed: detect: assets/sample-me.jpg default
|
||||
2021-05-11 07:52:02 [32mDATA: [39m test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 6 object: 2 {"confidence":1,"age":39.2,"gender":"male"} {"score":0.7,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-11 07:52:02 [32mDATA: [39m test-node-gpu.js result: performance: load: 323 total: 1372
|
||||
2021-05-11 07:52:02 [36mINFO: [39m test-node-gpu.js test: second instance
|
||||
2021-05-11 07:52:02 [35mSTATE:[39m test-node-gpu.js passed: load image: assets/sample-me.jpg [1,700,700,3]
|
||||
2021-05-11 07:52:03 [35mSTATE:[39m test-node-gpu.js passed: detect: assets/sample-me.jpg default
|
||||
2021-05-11 07:52:03 [32mDATA: [39m test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 6 object: 2 {"confidence":1,"age":39.2,"gender":"male"} {"score":0.7,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-11 07:52:03 [32mDATA: [39m test-node-gpu.js result: performance: load: 6 total: 1446
|
||||
2021-05-11 07:52:03 [36mINFO: [39m test-node-gpu.js test: concurrent
|
||||
2021-05-11 07:52:04 [35mSTATE:[39m test-node-gpu.js passed: load image: assets/human-sample-face.jpg [1,256,256,3]
|
||||
2021-05-11 07:52:04 [35mSTATE:[39m test-node-gpu.js passed: load image: assets/human-sample-face.jpg [1,256,256,3]
|
||||
2021-05-11 07:52:05 [35mSTATE:[39m test-node-gpu.js passed: load image: assets/human-sample-body.jpg [1,1200,1200,3]
|
||||
2021-05-11 07:52:06 [35mSTATE:[39m test-node-gpu.js passed: load image: assets/human-sample-body.jpg [1,1200,1200,3]
|
||||
2021-05-11 07:52:11 [35mSTATE:[39m test-node-gpu.js passed: detect: assets/human-sample-face.jpg default
|
||||
2021-05-11 07:52:11 [32mDATA: [39m test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 6 object: 1 {"confidence":1,"age":23.6,"gender":"female"} {"score":0.53,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-11 07:52:11 [32mDATA: [39m test-node-gpu.js result: performance: load: 323 total: 5056
|
||||
2021-05-11 07:52:11 [35mSTATE:[39m test-node-gpu.js passed: detect: assets/human-sample-face.jpg default
|
||||
2021-05-11 07:52:11 [32mDATA: [39m test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 6 object: 1 {"confidence":1,"age":23.6,"gender":"female"} {"score":0.53,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-11 07:52:11 [32mDATA: [39m test-node-gpu.js result: performance: load: 6 total: 5056
|
||||
2021-05-11 07:52:11 [35mSTATE:[39m test-node-gpu.js passed: detect: assets/human-sample-body.jpg default
|
||||
2021-05-11 07:52:11 [32mDATA: [39m test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 3 {"confidence":1,"age":28.5,"gender":"female"} {"score":0.86,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-11 07:52:11 [32mDATA: [39m test-node-gpu.js result: performance: load: 323 total: 5056
|
||||
2021-05-11 07:52:11 [35mSTATE:[39m test-node-gpu.js passed: detect: assets/human-sample-body.jpg default
|
||||
2021-05-11 07:52:11 [32mDATA: [39m test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 3 {"confidence":1,"age":28.5,"gender":"female"} {"score":0.86,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-11 07:52:11 [32mDATA: [39m test-node-gpu.js result: performance: load: 6 total: 5056
|
||||
2021-05-11 07:52:11 [36mINFO: [39m test-node-gpu.js test complete: 19594 ms
|
||||
2021-05-11 07:52:11 [36mINFO: [39m test-node-wasm.js start
|
||||
2021-05-11 07:52:11 [31mERROR:[39m test-node-wasm.js failed: model server: request to http://localhost:10030/models/ failed, reason: connect ECONNREFUSED 127.0.0.1:10030
|
||||
2021-05-11 07:52:11 [31mERROR:[39m test-node-wasm.js aborting test
|
||||
2021-05-11 07:52:11 [36mINFO: [39m status: {"passed":46,"failed":1}
|
||||
|
|
Loading…
Reference in New Issue