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
|
# @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**
|
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>**
|
Author: **Vladimir Mandic <mandic00@live.com>**
|
||||||
|
@ -9,11 +9,15 @@ Repository: **<git+https://github.com/vladmandic/human.git>**
|
||||||
|
|
||||||
## Changelog
|
## 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
|
### **1.8.3** 2021/05/05 mandic00@live.com
|
||||||
|
|
||||||
|
- switch posenet weights
|
||||||
### **origin/main** 2021/05/04 mandic00@live.com
|
|
||||||
|
|
||||||
|
|
||||||
### **1.8.2** 2021/05/04 mandic00@live.com
|
### **1.8.2** 2021/05/04 mandic00@live.com
|
||||||
|
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
51412
demo/helpers/three.js
51412
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
|
// must strip canvas from return value as it cannot be transfered from worker thread
|
||||||
if (result.canvas) result.canvas = null;
|
if (result.canvas) result.canvas = null;
|
||||||
|
// @ts-ignore tslint wrong type matching for worker
|
||||||
postMessage({ result });
|
postMessage({ result });
|
||||||
busy = false;
|
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 __create = Object.create;
|
||||||
var __defProp = Object.defineProperty;
|
var __defProp = Object.defineProperty;
|
||||||
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
||||||
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
||||||
var __getProtoOf = Object.getPrototypeOf;
|
var __getProtoOf = Object.getPrototypeOf;
|
||||||
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
||||||
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
||||||
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
||||||
var __markAsModule = (target) => __defProp(target, "__esModule", {value: true});
|
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) => {
|
var __export = (target, all2) => {
|
||||||
for (var name in all2)
|
for (var name in all2)
|
||||||
__defProp(target, name, {get: all2[name], enumerable: true});
|
__defProp(target, name, {get: all2[name], enumerable: true});
|
||||||
|
@ -36,6 +38,11 @@ var __privateGet = (obj, member, getter) => {
|
||||||
__accessCheck(obj, member, "read from private field");
|
__accessCheck(obj, member, "read from private field");
|
||||||
return getter ? getter.call(obj) : member.get(obj);
|
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) => {
|
var __privateSet = (obj, member, value, setter) => {
|
||||||
__accessCheck(obj, member, "write to private field");
|
__accessCheck(obj, member, "write to private field");
|
||||||
setter ? setter.call(obj, value) : member.set(obj, value);
|
setter ? setter.call(obj, value) : member.set(obj, value);
|
||||||
|
@ -43,23 +50,29 @@ var __privateSet = (obj, member, value, setter) => {
|
||||||
};
|
};
|
||||||
|
|
||||||
// dist/tfjs.esm.js
|
// dist/tfjs.esm.js
|
||||||
var require_tfjs_esm = __commonJS((exports) => {
|
var require_tfjs_esm = __commonJS({
|
||||||
var s = Object.create;
|
"dist/tfjs.esm.js"(exports) {
|
||||||
var t = Object.defineProperty;
|
var __create2 = Object.create;
|
||||||
var d = Object.getPrototypeOf;
|
var __defProp2 = Object.defineProperty;
|
||||||
var g = Object.prototype.hasOwnProperty;
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
||||||
var j = Object.getOwnPropertyNames;
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
||||||
var l = Object.getOwnPropertyDescriptor;
|
var __getProtoOf2 = Object.getPrototypeOf;
|
||||||
var p = (o) => t(o, "__esModule", {value: true});
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
||||||
var r = (o, e, n) => {
|
var __markAsModule2 = (target) => __defProp2(target, "__esModule", {value: true});
|
||||||
if (e && typeof e == "object" || typeof e == "function")
|
var __reExport2 = (target, module22, desc) => {
|
||||||
for (let f of j(e))
|
if (module22 && typeof module22 === "object" || typeof module22 === "function") {
|
||||||
!g.call(o, f) && f !== "default" && t(o, f, {get: () => e[f], enumerable: !(n = l(e, f)) || n.enumerable});
|
for (let key of __getOwnPropNames2(module22))
|
||||||
return o;
|
if (!__hasOwnProp2.call(target, key) && key !== "default")
|
||||||
};
|
__defProp2(target, key, {get: () => module22[key], enumerable: !(desc = __getOwnPropDesc2(module22, key)) || desc.enumerable});
|
||||||
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);
|
return target;
|
||||||
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
|
// src/human.ts
|
||||||
|
@ -110,7 +123,7 @@ function mergeDeep(...objects) {
|
||||||
var config = {
|
var config = {
|
||||||
backend: "webgl",
|
backend: "webgl",
|
||||||
modelBasePath: "../models/",
|
modelBasePath: "../models/",
|
||||||
wasmPath: "../assets/",
|
wasmPath: "../node_modules/@tensorflow/tfjs-backend-wasm/dist//",
|
||||||
debug: true,
|
debug: true,
|
||||||
async: true,
|
async: true,
|
||||||
videoOptimized: true,
|
videoOptimized: true,
|
||||||
|
@ -19512,16 +19525,16 @@ lBhEMohlFerLlBjEMohMVTEARDKCITsAk2AEgAAAkAAAAAAAAAAAAAAAAAAAAAAAASAAAAAAAAD/
|
||||||
2Q==`;
|
2Q==`;
|
||||||
|
|
||||||
// package.json
|
// package.json
|
||||||
var version = "1.8.3";
|
var version = "1.8.4";
|
||||||
|
|
||||||
// src/human.ts
|
// src/human.ts
|
||||||
var _numTensors, _analyzeMemoryLeaks, _checkSanity, _firstRun, _sanity, _checkBackend, _warmupBitmap, _warmupCanvas, _warmupNode;
|
var _numTensors, _analyzeMemoryLeaks, _checkSanity, _firstRun, _sanity, _checkBackend, _warmupBitmap, _warmupCanvas, _warmupNode;
|
||||||
var Human = class {
|
var Human = class {
|
||||||
constructor(userConfig = {}) {
|
constructor(userConfig = {}) {
|
||||||
_numTensors.set(this, void 0);
|
__privateAdd(this, _numTensors, void 0);
|
||||||
_analyzeMemoryLeaks.set(this, void 0);
|
__privateAdd(this, _analyzeMemoryLeaks, void 0);
|
||||||
_checkSanity.set(this, void 0);
|
__privateAdd(this, _checkSanity, void 0);
|
||||||
_firstRun.set(this, void 0);
|
__privateAdd(this, _firstRun, void 0);
|
||||||
this.analyze = (...msg) => {
|
this.analyze = (...msg) => {
|
||||||
if (!__privateGet(this, _analyzeMemoryLeaks))
|
if (!__privateGet(this, _analyzeMemoryLeaks))
|
||||||
return;
|
return;
|
||||||
|
@ -19532,7 +19545,7 @@ var Human = class {
|
||||||
if (leaked !== 0)
|
if (leaked !== 0)
|
||||||
log(...msg, leaked);
|
log(...msg, leaked);
|
||||||
};
|
};
|
||||||
_sanity.set(this, (input) => {
|
__privateAdd(this, _sanity, (input) => {
|
||||||
if (!__privateGet(this, _checkSanity))
|
if (!__privateGet(this, _checkSanity))
|
||||||
return null;
|
return null;
|
||||||
if (!input)
|
if (!input)
|
||||||
|
@ -19546,7 +19559,7 @@ var Human = class {
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
});
|
});
|
||||||
_checkBackend.set(this, async (force = false) => {
|
__privateAdd(this, _checkBackend, async (force = false) => {
|
||||||
var _a;
|
var _a;
|
||||||
if (this.config.backend && this.config.backend.length > 0 && force || this.tf.getBackend() !== this.config.backend) {
|
if (this.config.backend && this.config.backend.length > 0 && force || this.tf.getBackend() !== this.config.backend) {
|
||||||
const timeStamp = now();
|
const timeStamp = now();
|
||||||
|
@ -19598,7 +19611,7 @@ var Human = class {
|
||||||
this.perf.backend = Math.trunc(now() - timeStamp);
|
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());
|
const b64toBlob = (base64, type = "application/octet-stream") => fetch(`data:${type};base64,${base64}`).then((res2) => res2.blob());
|
||||||
let blob;
|
let blob;
|
||||||
let res;
|
let res;
|
||||||
|
@ -19619,7 +19632,7 @@ var Human = class {
|
||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
});
|
});
|
||||||
_warmupCanvas.set(this, async () => new Promise((resolve) => {
|
__privateAdd(this, _warmupCanvas, async () => new Promise((resolve) => {
|
||||||
let src;
|
let src;
|
||||||
let size = 0;
|
let size = 0;
|
||||||
switch (this.config.warmup) {
|
switch (this.config.warmup) {
|
||||||
|
@ -19650,7 +19663,7 @@ var Human = class {
|
||||||
else
|
else
|
||||||
resolve(null);
|
resolve(null);
|
||||||
}));
|
}));
|
||||||
_warmupNode.set(this, async () => {
|
__privateAdd(this, _warmupNode, async () => {
|
||||||
const atob = (str) => Buffer.from(str, "base64");
|
const atob = (str) => Buffer.from(str, "base64");
|
||||||
let img;
|
let img;
|
||||||
if (this.config.warmup === "face")
|
if (this.config.warmup === "face")
|
||||||
|
@ -19660,8 +19673,8 @@ var Human = class {
|
||||||
if (!img)
|
if (!img)
|
||||||
return null;
|
return null;
|
||||||
let res;
|
let res;
|
||||||
if (typeof tf16.node !== "undefined") {
|
if (typeof tf16["node"] !== "undefined") {
|
||||||
const data = tf16.node.decodeJpeg(img);
|
const data = tf16["node"].decodeJpeg(img);
|
||||||
const expanded = data.expandDims(0);
|
const expanded = data.expandDims(0);
|
||||||
this.tf.dispose(data);
|
this.tf.dispose(data);
|
||||||
res = await this.detect(expanded, this.config);
|
res = await this.detect(expanded, this.config);
|
||||||
|
|
|
@ -7,12 +7,14 @@
|
||||||
|
|
||||||
var __create = Object.create;
|
var __create = Object.create;
|
||||||
var __defProp = Object.defineProperty;
|
var __defProp = Object.defineProperty;
|
||||||
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
||||||
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
||||||
var __getProtoOf = Object.getPrototypeOf;
|
var __getProtoOf = Object.getPrototypeOf;
|
||||||
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
||||||
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
||||||
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
||||||
var __markAsModule = (target) => __defProp(target, "__esModule", {value: true});
|
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) => {
|
var __export = (target, all2) => {
|
||||||
for (var name in all2)
|
for (var name in all2)
|
||||||
__defProp(target, name, {get: all2[name], enumerable: true});
|
__defProp(target, name, {get: all2[name], enumerable: true});
|
||||||
|
@ -36,6 +38,11 @@ var __privateGet = (obj, member, getter) => {
|
||||||
__accessCheck(obj, member, "read from private field");
|
__accessCheck(obj, member, "read from private field");
|
||||||
return getter ? getter.call(obj) : member.get(obj);
|
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) => {
|
var __privateSet = (obj, member, value, setter) => {
|
||||||
__accessCheck(obj, member, "write to private field");
|
__accessCheck(obj, member, "write to private field");
|
||||||
setter ? setter.call(obj, value) : member.set(obj, value);
|
setter ? setter.call(obj, value) : member.set(obj, value);
|
||||||
|
@ -43,24 +50,30 @@ var __privateSet = (obj, member, value, setter) => {
|
||||||
};
|
};
|
||||||
|
|
||||||
// dist/tfjs.esm.js
|
// dist/tfjs.esm.js
|
||||||
var require_tfjs_esm = __commonJS((exports) => {
|
var require_tfjs_esm = __commonJS({
|
||||||
var w = Object.create;
|
"dist/tfjs.esm.js"(exports) {
|
||||||
var e = Object.defineProperty;
|
var __create2 = Object.create;
|
||||||
var a = Object.getPrototypeOf;
|
var __defProp2 = Object.defineProperty;
|
||||||
var j = Object.prototype.hasOwnProperty;
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
||||||
var l = Object.getOwnPropertyNames;
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
||||||
var p = Object.getOwnPropertyDescriptor;
|
var __getProtoOf2 = Object.getPrototypeOf;
|
||||||
var m = (o) => e(o, "__esModule", {value: true});
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
||||||
var f = (o, r, s) => {
|
var __markAsModule2 = (target) => __defProp2(target, "__esModule", {value: true});
|
||||||
if (r && typeof r == "object" || typeof r == "function")
|
var __reExport2 = (target, module22, desc) => {
|
||||||
for (let t of l(r))
|
if (module22 && typeof module22 === "object" || typeof module22 === "function") {
|
||||||
!j.call(o, t) && t !== "default" && e(o, t, {get: () => r[t], enumerable: !(s = p(r, t)) || s.enumerable});
|
for (let key of __getOwnPropNames2(module22))
|
||||||
return o;
|
if (!__hasOwnProp2.call(target, key) && key !== "default")
|
||||||
};
|
__defProp2(target, key, {get: () => module22[key], enumerable: !(desc = __getOwnPropDesc2(module22, key)) || desc.enumerable});
|
||||||
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);
|
return target;
|
||||||
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
|
// src/human.ts
|
||||||
|
@ -111,7 +124,7 @@ function mergeDeep(...objects) {
|
||||||
var config = {
|
var config = {
|
||||||
backend: "webgl",
|
backend: "webgl",
|
||||||
modelBasePath: "../models/",
|
modelBasePath: "../models/",
|
||||||
wasmPath: "../assets/",
|
wasmPath: "../node_modules/@tensorflow/tfjs-backend-wasm/dist//",
|
||||||
debug: true,
|
debug: true,
|
||||||
async: true,
|
async: true,
|
||||||
videoOptimized: true,
|
videoOptimized: true,
|
||||||
|
@ -19513,16 +19526,16 @@ lBhEMohlFerLlBjEMohMVTEARDKCITsAk2AEgAAAkAAAAAAAAAAAAAAAAAAAAAAAASAAAAAAAAD/
|
||||||
2Q==`;
|
2Q==`;
|
||||||
|
|
||||||
// package.json
|
// package.json
|
||||||
var version = "1.8.3";
|
var version = "1.8.4";
|
||||||
|
|
||||||
// src/human.ts
|
// src/human.ts
|
||||||
var _numTensors, _analyzeMemoryLeaks, _checkSanity, _firstRun, _sanity, _checkBackend, _warmupBitmap, _warmupCanvas, _warmupNode;
|
var _numTensors, _analyzeMemoryLeaks, _checkSanity, _firstRun, _sanity, _checkBackend, _warmupBitmap, _warmupCanvas, _warmupNode;
|
||||||
var Human = class {
|
var Human = class {
|
||||||
constructor(userConfig = {}) {
|
constructor(userConfig = {}) {
|
||||||
_numTensors.set(this, void 0);
|
__privateAdd(this, _numTensors, void 0);
|
||||||
_analyzeMemoryLeaks.set(this, void 0);
|
__privateAdd(this, _analyzeMemoryLeaks, void 0);
|
||||||
_checkSanity.set(this, void 0);
|
__privateAdd(this, _checkSanity, void 0);
|
||||||
_firstRun.set(this, void 0);
|
__privateAdd(this, _firstRun, void 0);
|
||||||
this.analyze = (...msg) => {
|
this.analyze = (...msg) => {
|
||||||
if (!__privateGet(this, _analyzeMemoryLeaks))
|
if (!__privateGet(this, _analyzeMemoryLeaks))
|
||||||
return;
|
return;
|
||||||
|
@ -19533,7 +19546,7 @@ var Human = class {
|
||||||
if (leaked !== 0)
|
if (leaked !== 0)
|
||||||
log(...msg, leaked);
|
log(...msg, leaked);
|
||||||
};
|
};
|
||||||
_sanity.set(this, (input) => {
|
__privateAdd(this, _sanity, (input) => {
|
||||||
if (!__privateGet(this, _checkSanity))
|
if (!__privateGet(this, _checkSanity))
|
||||||
return null;
|
return null;
|
||||||
if (!input)
|
if (!input)
|
||||||
|
@ -19547,7 +19560,7 @@ var Human = class {
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
});
|
});
|
||||||
_checkBackend.set(this, async (force = false) => {
|
__privateAdd(this, _checkBackend, async (force = false) => {
|
||||||
var _a;
|
var _a;
|
||||||
if (this.config.backend && this.config.backend.length > 0 && force || this.tf.getBackend() !== this.config.backend) {
|
if (this.config.backend && this.config.backend.length > 0 && force || this.tf.getBackend() !== this.config.backend) {
|
||||||
const timeStamp = now();
|
const timeStamp = now();
|
||||||
|
@ -19599,7 +19612,7 @@ var Human = class {
|
||||||
this.perf.backend = Math.trunc(now() - timeStamp);
|
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());
|
const b64toBlob = (base64, type = "application/octet-stream") => fetch(`data:${type};base64,${base64}`).then((res2) => res2.blob());
|
||||||
let blob;
|
let blob;
|
||||||
let res;
|
let res;
|
||||||
|
@ -19620,7 +19633,7 @@ var Human = class {
|
||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
});
|
});
|
||||||
_warmupCanvas.set(this, async () => new Promise((resolve) => {
|
__privateAdd(this, _warmupCanvas, async () => new Promise((resolve) => {
|
||||||
let src;
|
let src;
|
||||||
let size = 0;
|
let size = 0;
|
||||||
switch (this.config.warmup) {
|
switch (this.config.warmup) {
|
||||||
|
@ -19651,7 +19664,7 @@ var Human = class {
|
||||||
else
|
else
|
||||||
resolve(null);
|
resolve(null);
|
||||||
}));
|
}));
|
||||||
_warmupNode.set(this, async () => {
|
__privateAdd(this, _warmupNode, async () => {
|
||||||
const atob = (str) => Buffer.from(str, "base64");
|
const atob = (str) => Buffer.from(str, "base64");
|
||||||
let img;
|
let img;
|
||||||
if (this.config.warmup === "face")
|
if (this.config.warmup === "face")
|
||||||
|
@ -19661,8 +19674,8 @@ var Human = class {
|
||||||
if (!img)
|
if (!img)
|
||||||
return null;
|
return null;
|
||||||
let res;
|
let res;
|
||||||
if (typeof tf16.node !== "undefined") {
|
if (typeof tf16["node"] !== "undefined") {
|
||||||
const data = tf16.node.decodeJpeg(img);
|
const data = tf16["node"].decodeJpeg(img);
|
||||||
const expanded = data.expandDims(0);
|
const expanded = data.expandDims(0);
|
||||||
this.tf.dispose(data);
|
this.tf.dispose(data);
|
||||||
res = await this.detect(expanded, this.config);
|
res = await this.detect(expanded, this.config);
|
||||||
|
|
|
@ -7,12 +7,14 @@
|
||||||
|
|
||||||
var __create = Object.create;
|
var __create = Object.create;
|
||||||
var __defProp = Object.defineProperty;
|
var __defProp = Object.defineProperty;
|
||||||
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
||||||
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
||||||
var __getProtoOf = Object.getPrototypeOf;
|
var __getProtoOf = Object.getPrototypeOf;
|
||||||
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
||||||
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
||||||
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
||||||
var __markAsModule = (target) => __defProp(target, "__esModule", {value: true});
|
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) => {
|
var __export = (target, all2) => {
|
||||||
for (var name in all2)
|
for (var name in all2)
|
||||||
__defProp(target, name, {get: all2[name], enumerable: true});
|
__defProp(target, name, {get: all2[name], enumerable: true});
|
||||||
|
@ -36,6 +38,11 @@ var __privateGet = (obj, member, getter) => {
|
||||||
__accessCheck(obj, member, "read from private field");
|
__accessCheck(obj, member, "read from private field");
|
||||||
return getter ? getter.call(obj) : member.get(obj);
|
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) => {
|
var __privateSet = (obj, member, value, setter) => {
|
||||||
__accessCheck(obj, member, "write to private field");
|
__accessCheck(obj, member, "write to private field");
|
||||||
setter ? setter.call(obj, value) : member.set(obj, value);
|
setter ? setter.call(obj, value) : member.set(obj, value);
|
||||||
|
@ -43,23 +50,29 @@ var __privateSet = (obj, member, value, setter) => {
|
||||||
};
|
};
|
||||||
|
|
||||||
// dist/tfjs.esm.js
|
// dist/tfjs.esm.js
|
||||||
var require_tfjs_esm = __commonJS((exports) => {
|
var require_tfjs_esm = __commonJS({
|
||||||
var d = Object.create;
|
"dist/tfjs.esm.js"(exports) {
|
||||||
var t = Object.defineProperty;
|
var __create2 = Object.create;
|
||||||
var j = Object.getPrototypeOf;
|
var __defProp2 = Object.defineProperty;
|
||||||
var l = Object.prototype.hasOwnProperty;
|
var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
|
||||||
var m = Object.getOwnPropertyNames;
|
var __getOwnPropNames2 = Object.getOwnPropertyNames;
|
||||||
var p = Object.getOwnPropertyDescriptor;
|
var __getProtoOf2 = Object.getPrototypeOf;
|
||||||
var s = (o) => t(o, "__esModule", {value: true});
|
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
||||||
var r = (o, e, n) => {
|
var __markAsModule2 = (target) => __defProp2(target, "__esModule", {value: true});
|
||||||
if (e && typeof e == "object" || typeof e == "function")
|
var __reExport2 = (target, module22, desc) => {
|
||||||
for (let f of m(e))
|
if (module22 && typeof module22 === "object" || typeof module22 === "function") {
|
||||||
!l.call(o, f) && f !== "default" && t(o, f, {get: () => e[f], enumerable: !(n = p(e, f)) || n.enumerable});
|
for (let key of __getOwnPropNames2(module22))
|
||||||
return o;
|
if (!__hasOwnProp2.call(target, key) && key !== "default")
|
||||||
};
|
__defProp2(target, key, {get: () => module22[key], enumerable: !(desc = __getOwnPropDesc2(module22, key)) || desc.enumerable});
|
||||||
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);
|
return target;
|
||||||
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
|
// src/human.ts
|
||||||
|
@ -110,7 +123,7 @@ function mergeDeep(...objects) {
|
||||||
var config = {
|
var config = {
|
||||||
backend: "webgl",
|
backend: "webgl",
|
||||||
modelBasePath: "../models/",
|
modelBasePath: "../models/",
|
||||||
wasmPath: "../assets/",
|
wasmPath: "../node_modules/@tensorflow/tfjs-backend-wasm/dist//",
|
||||||
debug: true,
|
debug: true,
|
||||||
async: true,
|
async: true,
|
||||||
videoOptimized: true,
|
videoOptimized: true,
|
||||||
|
@ -19512,16 +19525,16 @@ lBhEMohlFerLlBjEMohMVTEARDKCITsAk2AEgAAAkAAAAAAAAAAAAAAAAAAAAAAAASAAAAAAAAD/
|
||||||
2Q==`;
|
2Q==`;
|
||||||
|
|
||||||
// package.json
|
// package.json
|
||||||
var version = "1.8.3";
|
var version = "1.8.4";
|
||||||
|
|
||||||
// src/human.ts
|
// src/human.ts
|
||||||
var _numTensors, _analyzeMemoryLeaks, _checkSanity, _firstRun, _sanity, _checkBackend, _warmupBitmap, _warmupCanvas, _warmupNode;
|
var _numTensors, _analyzeMemoryLeaks, _checkSanity, _firstRun, _sanity, _checkBackend, _warmupBitmap, _warmupCanvas, _warmupNode;
|
||||||
var Human = class {
|
var Human = class {
|
||||||
constructor(userConfig = {}) {
|
constructor(userConfig = {}) {
|
||||||
_numTensors.set(this, void 0);
|
__privateAdd(this, _numTensors, void 0);
|
||||||
_analyzeMemoryLeaks.set(this, void 0);
|
__privateAdd(this, _analyzeMemoryLeaks, void 0);
|
||||||
_checkSanity.set(this, void 0);
|
__privateAdd(this, _checkSanity, void 0);
|
||||||
_firstRun.set(this, void 0);
|
__privateAdd(this, _firstRun, void 0);
|
||||||
this.analyze = (...msg) => {
|
this.analyze = (...msg) => {
|
||||||
if (!__privateGet(this, _analyzeMemoryLeaks))
|
if (!__privateGet(this, _analyzeMemoryLeaks))
|
||||||
return;
|
return;
|
||||||
|
@ -19532,7 +19545,7 @@ var Human = class {
|
||||||
if (leaked !== 0)
|
if (leaked !== 0)
|
||||||
log(...msg, leaked);
|
log(...msg, leaked);
|
||||||
};
|
};
|
||||||
_sanity.set(this, (input) => {
|
__privateAdd(this, _sanity, (input) => {
|
||||||
if (!__privateGet(this, _checkSanity))
|
if (!__privateGet(this, _checkSanity))
|
||||||
return null;
|
return null;
|
||||||
if (!input)
|
if (!input)
|
||||||
|
@ -19546,7 +19559,7 @@ var Human = class {
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
});
|
});
|
||||||
_checkBackend.set(this, async (force = false) => {
|
__privateAdd(this, _checkBackend, async (force = false) => {
|
||||||
var _a;
|
var _a;
|
||||||
if (this.config.backend && this.config.backend.length > 0 && force || this.tf.getBackend() !== this.config.backend) {
|
if (this.config.backend && this.config.backend.length > 0 && force || this.tf.getBackend() !== this.config.backend) {
|
||||||
const timeStamp = now();
|
const timeStamp = now();
|
||||||
|
@ -19598,7 +19611,7 @@ var Human = class {
|
||||||
this.perf.backend = Math.trunc(now() - timeStamp);
|
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());
|
const b64toBlob = (base64, type = "application/octet-stream") => fetch(`data:${type};base64,${base64}`).then((res2) => res2.blob());
|
||||||
let blob;
|
let blob;
|
||||||
let res;
|
let res;
|
||||||
|
@ -19619,7 +19632,7 @@ var Human = class {
|
||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
});
|
});
|
||||||
_warmupCanvas.set(this, async () => new Promise((resolve) => {
|
__privateAdd(this, _warmupCanvas, async () => new Promise((resolve) => {
|
||||||
let src;
|
let src;
|
||||||
let size = 0;
|
let size = 0;
|
||||||
switch (this.config.warmup) {
|
switch (this.config.warmup) {
|
||||||
|
@ -19650,7 +19663,7 @@ var Human = class {
|
||||||
else
|
else
|
||||||
resolve(null);
|
resolve(null);
|
||||||
}));
|
}));
|
||||||
_warmupNode.set(this, async () => {
|
__privateAdd(this, _warmupNode, async () => {
|
||||||
const atob = (str) => Buffer.from(str, "base64");
|
const atob = (str) => Buffer.from(str, "base64");
|
||||||
let img;
|
let img;
|
||||||
if (this.config.warmup === "face")
|
if (this.config.warmup === "face")
|
||||||
|
@ -19660,8 +19673,8 @@ var Human = class {
|
||||||
if (!img)
|
if (!img)
|
||||||
return null;
|
return null;
|
||||||
let res;
|
let res;
|
||||||
if (typeof tf16.node !== "undefined") {
|
if (typeof tf16["node"] !== "undefined") {
|
||||||
const data = tf16.node.decodeJpeg(img);
|
const data = tf16["node"].decodeJpeg(img);
|
||||||
const expanded = data.expandDims(0);
|
const expanded = data.expandDims(0);
|
||||||
this.tf.dispose(data);
|
this.tf.dispose(data);
|
||||||
res = await this.detect(expanded, this.config);
|
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
|
@ -4,11 +4,18 @@
|
||||||
"convertedBy": "https://github.com/vladmandic",
|
"convertedBy": "https://github.com/vladmandic",
|
||||||
"userDefinedMetadata":
|
"userDefinedMetadata":
|
||||||
{
|
{
|
||||||
"signature":
|
"signature":
|
||||||
|
{
|
||||||
|
"inputs":
|
||||||
{
|
{
|
||||||
"inputs": {"input:0":{"name":"input:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"256"},{"size":"256"},{"size":"3"}]}}},
|
"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"}]}}}
|
},
|
||||||
|
"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":
|
"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"}}}
|
{"name":"Identity_1","op":"Identity","input":["StatefulPartitionedCall/functional_1/tf_op_layer_classificators_2/classificators_2"],"attr":{"T":{"type":"DT_FLOAT"}}}
|
||||||
],
|
],
|
||||||
"library": {},
|
"library": {},
|
||||||
"versions":
|
"versions": {}
|
||||||
{
|
|
||||||
"producer": 440
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"weightsManifest":
|
"weightsManifest":
|
||||||
[
|
[
|
||||||
|
|
|
@ -2,18 +2,21 @@
|
||||||
"format": "graph-model",
|
"format": "graph-model",
|
||||||
"generatedBy": "https://github.com/google/mediapipe",
|
"generatedBy": "https://github.com/google/mediapipe",
|
||||||
"convertedBy": "https://github.com/vladmandic",
|
"convertedBy": "https://github.com/vladmandic",
|
||||||
"signature":
|
"userDefinedMetadata":
|
||||||
{
|
{
|
||||||
|
"signature":
|
||||||
|
{
|
||||||
"inputs":
|
"inputs":
|
||||||
{
|
{
|
||||||
"input_1:0": {"name":"input_1:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"256"},{"size":"256"},{"size":"3"}]}}
|
"input_1:0": {"name":"input_1:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"256"},{"size":"256"},{"size":"3"}]}}
|
||||||
},
|
},
|
||||||
"outputs":
|
"outputs":
|
||||||
{
|
{
|
||||||
"ld_3d:0": {"name":"ld_3d:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"195"}]}},
|
"ld_3d:0": {"name":"ld_3d:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"195"}]}},
|
||||||
"output_segmentation:0": {"name":"output_segmentation:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"128"},{"size":"128"},{"size":"1"}]}},
|
"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"}]}}
|
"output_poseflag:0": {"name":"output_poseflag:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"1"}]}}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"modelTopology":
|
"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"}}}
|
{"name":"output_poseflag","op":"Reshape","input":["activation_poseflag","output_poseflag/shape"],"attr":{"Tshape":{"type":"DT_INT32"},"T":{"type":"DT_FLOAT"}}}
|
||||||
],
|
],
|
||||||
"library": {},
|
"library": {},
|
||||||
"versions":
|
"versions": {}
|
||||||
{
|
|
||||||
"producer": 561
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"weightsManifest":
|
"weightsManifest":
|
||||||
[
|
[
|
||||||
|
|
|
@ -4,11 +4,17 @@
|
||||||
"convertedBy": "https://github.com/vladmandic",
|
"convertedBy": "https://github.com/vladmandic",
|
||||||
"userDefinedMetadata":
|
"userDefinedMetadata":
|
||||||
{
|
{
|
||||||
"signature":
|
"signature":
|
||||||
|
{
|
||||||
|
"inputs":
|
||||||
{
|
{
|
||||||
"inputs": {"input_1:0":{"name":"input_1:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"-1"},{"size":"64"},{"size":"64"},{"size":"1"}]}}},
|
"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"}]}}}
|
},
|
||||||
|
"outputs":
|
||||||
|
{
|
||||||
|
"Identity:0":{"name":"Identity:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"-1"},{"size":"7"}]}}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"modelTopology":
|
"modelTopology":
|
||||||
{
|
{
|
||||||
|
@ -61,10 +67,7 @@
|
||||||
{"name":"Identity","op":"Identity","input":["StatefulPartitionedCall/model_1/predictions/Softmax"],"attr":{"T":{"type":"DT_FLOAT"}}}
|
{"name":"Identity","op":"Identity","input":["StatefulPartitionedCall/model_1/predictions/Softmax"],"attr":{"T":{"type":"DT_FLOAT"}}}
|
||||||
],
|
],
|
||||||
"library": {},
|
"library": {},
|
||||||
"versions":
|
"versions": {}
|
||||||
{
|
|
||||||
"producer": 440
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"weightsManifest":
|
"weightsManifest":
|
||||||
[
|
[
|
||||||
|
|
|
@ -4,11 +4,19 @@
|
||||||
"convertedBy": "https://github.com/vladmandic",
|
"convertedBy": "https://github.com/vladmandic",
|
||||||
"userDefinedMetadata":
|
"userDefinedMetadata":
|
||||||
{
|
{
|
||||||
"signature":
|
"signature":
|
||||||
|
{
|
||||||
|
"inputs":
|
||||||
{
|
{
|
||||||
"inputs": {"input_1:0":{"name":"input_1:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"192"},{"size":"192"},{"size":"3"}]}}},
|
"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"}]}}}
|
},
|
||||||
|
"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":
|
"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","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"}}}
|
{"name":"Identity_1","op":"Identity","input":["StatefulPartitionedCall/model/output_contours/Reshape","^Func/StatefulPartitionedCall/output_control_node/_204"],"attr":{"T":{"type":"DT_FLOAT"}}}
|
||||||
],
|
],
|
||||||
"versions":
|
"library": {},
|
||||||
{
|
"versions": {}
|
||||||
"producer": 134
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"weightsManifest":
|
"weightsManifest":
|
||||||
[
|
[
|
||||||
|
|
|
@ -4,15 +4,16 @@
|
||||||
"convertedBy": "https://github.com/vladmandic",
|
"convertedBy": "https://github.com/vladmandic",
|
||||||
"signature":
|
"signature":
|
||||||
{
|
{
|
||||||
"inputs": {
|
"inputs":
|
||||||
"input_1": { "name": "input_1", "dtype": "DT_FLOAT", "tensorShape":{"dim":[{"size":"-1"},{"size":"224"},{"size":"224"},{"size":"3"}]} }
|
{
|
||||||
},
|
"input_1": { "name": "input_1", "dtype": "DT_FLOAT", "tensorShape":{"dim":[{"size":"-1"},{"size":"224"},{"size":"224"},{"size":"3"}]} }
|
||||||
"outputs":
|
},
|
||||||
{
|
"outputs":
|
||||||
"gender_pred/Sigmoid:0": {"name":"gender_pred/Sigmoid:0", "dtype":"DT_FLOAT", "tensorShape":{"dim":[{"size":"1"},{"size":"1"}]} },
|
{
|
||||||
"global_pooling/Mean": {"name":"global_pooling/Mean", "dtype":"DT_FLOAT", "tensorShape":{"dim":[{"size":"1"},{"size":"1024"}]} },
|
"gender_pred/Sigmoid:0": {"name":"gender_pred/Sigmoid:0", "dtype":"DT_FLOAT", "tensorShape":{"dim":[{"size":"1"},{"size":"1"}]} },
|
||||||
"age_pred/Softmax:0": {"name":"age_pred/Softmax:0", "dtype":"DT_FLOAT", "tensorShape":{"dim":[{"size":"1"},{"size":"100"}]} }
|
"global_pooling/Mean": {"name":"global_pooling/Mean", "dtype":"DT_FLOAT", "tensorShape":{"dim":[{"size":"1"},{"size":"1024"}]} },
|
||||||
}
|
"age_pred/Softmax:0": {"name":"age_pred/Softmax:0", "dtype":"DT_FLOAT", "tensorShape":{"dim":[{"size":"1"},{"size":"100"}]} }
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"modelTopology":
|
"modelTopology":
|
||||||
{
|
{
|
||||||
|
|
|
@ -4,11 +4,17 @@
|
||||||
"convertedBy": "https://github.com/vladmandic",
|
"convertedBy": "https://github.com/vladmandic",
|
||||||
"userDefinedMetadata":
|
"userDefinedMetadata":
|
||||||
{
|
{
|
||||||
"signature":
|
"signature":
|
||||||
|
{
|
||||||
|
"inputs":
|
||||||
{
|
{
|
||||||
"inputs": {"input:0":{"name":"input:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"256"},{"size":"256"},{"size":"3"}]}}},
|
"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"}]}}}
|
},
|
||||||
|
"outputs":
|
||||||
|
{
|
||||||
|
"Identity:0":{"name":"Identity:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"2944"},{"size":"19"}]}}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"modelTopology":
|
"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":"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"}}}
|
{"name":"Identity","op":"Identity","input":["StatefulPartitionedCall/model/objects/concat"],"attr":{"T":{"type":"DT_FLOAT"}}}
|
||||||
],
|
],
|
||||||
"versions":
|
"library": {},
|
||||||
{
|
"versions": {}
|
||||||
"producer": 134,
|
|
||||||
"minConsumer": 12
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"weightsManifest":
|
"weightsManifest":
|
||||||
[
|
[
|
||||||
|
|
|
@ -4,11 +4,18 @@
|
||||||
"convertedBy": "https://github.com/vladmandic",
|
"convertedBy": "https://github.com/vladmandic",
|
||||||
"userDefinedMetadata":
|
"userDefinedMetadata":
|
||||||
{
|
{
|
||||||
"signature":
|
"signature":
|
||||||
|
{
|
||||||
|
"inputs":
|
||||||
{
|
{
|
||||||
"inputs": {"input_1:0":{"name":"input_1:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"256"},{"size":"256"},{"size":"3"}]}}},
|
"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"}]}}}
|
},
|
||||||
|
"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":
|
"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","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"}}}
|
{"name":"Identity_1","op":"Identity","input":["StatefulPartitionedCall/model/output_handflag/Reshape","^Func/StatefulPartitionedCall/output_control_node/_285"],"attr":{"T":{"type":"DT_FLOAT"}}}
|
||||||
],
|
],
|
||||||
"versions":
|
"library": {},
|
||||||
{
|
"versions": {}
|
||||||
"producer": 134
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"weightsManifest":
|
"weightsManifest":
|
||||||
[
|
[
|
||||||
|
|
|
@ -4,11 +4,17 @@
|
||||||
"convertedBy": "https://github.com/vladmandic",
|
"convertedBy": "https://github.com/vladmandic",
|
||||||
"userDefinedMetadata":
|
"userDefinedMetadata":
|
||||||
{
|
{
|
||||||
"signature":
|
"signature":
|
||||||
|
{
|
||||||
|
"inputs":
|
||||||
{
|
{
|
||||||
"inputs": {"input_1:0":{"name":"input_1:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"-1"},{"size":"64"},{"size":"64"},{"size":"3"}]}}},
|
"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"}]}}}
|
},
|
||||||
|
"outputs":
|
||||||
|
{
|
||||||
|
"Identity:0":{"name":"Identity:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"-1"},{"size":"1"},{"size":"1"},{"size":"228"}]}}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"modelTopology":
|
"modelTopology":
|
||||||
{
|
{
|
||||||
|
|
|
@ -4,19 +4,19 @@
|
||||||
"convertedBy": "https://github.com/vladmandic",
|
"convertedBy": "https://github.com/vladmandic",
|
||||||
"signature":
|
"signature":
|
||||||
{
|
{
|
||||||
"inputs":
|
"inputs":
|
||||||
{
|
{
|
||||||
"input_1:0": {"name":"input_1:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"3"},{"size":"416"},{"size":"416"}]}}
|
"input_1:0": {"name":"input_1:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"3"},{"size":"416"},{"size":"416"}]}}
|
||||||
},
|
},
|
||||||
"outputs":
|
"outputs":
|
||||||
{
|
{
|
||||||
"Identity_2:0": {"name":"Identity_2:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"169"},{"size":"80"}]}},
|
"Identity_2:0": {"name":"Identity_2:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"169"},{"size":"80"}]}},
|
||||||
"Identity_5:0": {"name":"Identity_5:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"169"},{"size":"44"}]}},
|
"Identity_5:0": {"name":"Identity_5:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"169"},{"size":"44"}]}},
|
||||||
"Identity_1:0": {"name":"Identity_1:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"676"},{"size":"80"}]}},
|
"Identity_1:0": {"name":"Identity_1:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"676"},{"size":"80"}]}},
|
||||||
"Identity:0": {"name":"Identity:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"2704"},{"size":"80"}]}},
|
"Identity:0": {"name":"Identity:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"2704"},{"size":"80"}]}},
|
||||||
"Identity_4:0": {"name":"Identity_4:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"676"},{"size":"44"}]}},
|
"Identity_4:0": {"name":"Identity_4:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"676"},{"size":"44"}]}},
|
||||||
"Identity_3:0": {"name":"Identity_3:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"2704"},{"size":"44"}]}}
|
"Identity_3:0": {"name":"Identity_3:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"2704"},{"size":"44"}]}}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"modelTopology":
|
"modelTopology":
|
||||||
{
|
{
|
||||||
|
@ -513,10 +513,7 @@
|
||||||
{"name":"Identity_2","op":"Identity","input":["PartitionedCall/onnx_tf_prefix_Transpose_179"],"attr":{"T":{"type":"DT_FLOAT"}}}
|
{"name":"Identity_2","op":"Identity","input":["PartitionedCall/onnx_tf_prefix_Transpose_179"],"attr":{"T":{"type":"DT_FLOAT"}}}
|
||||||
],
|
],
|
||||||
"library": {},
|
"library": {},
|
||||||
"versions":
|
"versions": {}
|
||||||
{
|
|
||||||
"producer": 561
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"weightsManifest":
|
"weightsManifest":
|
||||||
[
|
[
|
||||||
|
|
|
@ -4,17 +4,17 @@
|
||||||
"convertedBy": "https://github.com/vladmandic",
|
"convertedBy": "https://github.com/vladmandic",
|
||||||
"signature":
|
"signature":
|
||||||
{
|
{
|
||||||
"inputs":
|
"inputs":
|
||||||
{
|
{
|
||||||
"image:0": {"name":"image:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"385"},{"size":"385"},{"size":"3"}]}}
|
"image:0": {"name":"image:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"385"},{"size":"385"},{"size":"3"}]}}
|
||||||
},
|
},
|
||||||
"outputs":
|
"outputs":
|
||||||
{
|
{
|
||||||
"MobilenetV1/displacement_fwd_2/BiasAdd:0": {"name":"MobilenetV1/displacement_fwd_2/BiasAdd:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"25"},{"size":"25"},{"size":"32"}]}},
|
"MobilenetV1/displacement_fwd_2/BiasAdd:0": {"name":"MobilenetV1/displacement_fwd_2/BiasAdd:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"25"},{"size":"25"},{"size":"32"}]}},
|
||||||
"MobilenetV1/heatmap_2/BiasAdd:0": {"name":"MobilenetV1/heatmap_2/BiasAdd:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"25"},{"size":"25"},{"size":"17"}]}},
|
"MobilenetV1/heatmap_2/BiasAdd:0": {"name":"MobilenetV1/heatmap_2/BiasAdd:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"25"},{"size":"25"},{"size":"17"}]}},
|
||||||
"MobilenetV1/displacement_bwd_2/BiasAdd:0": {"name":"MobilenetV1/displacement_bwd_2/BiasAdd:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"25"},{"size":"25"},{"size":"32"}]}},
|
"MobilenetV1/displacement_bwd_2/BiasAdd:0": {"name":"MobilenetV1/displacement_bwd_2/BiasAdd:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"25"},{"size":"25"},{"size":"32"}]}},
|
||||||
"MobilenetV1/offset_2/BiasAdd:0": {"name":"MobilenetV1/offset_2/BiasAdd:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"25"},{"size":"25"},{"size":"34"}]}}
|
"MobilenetV1/offset_2/BiasAdd:0": {"name":"MobilenetV1/offset_2/BiasAdd:0","dtype":"DT_FLOAT","tensorShape":{"dim":[{"size":"1"},{"size":"25"},{"size":"25"},{"size":"34"}]}}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"modelTopology":
|
"modelTopology":
|
||||||
{
|
{
|
||||||
|
@ -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"}}}
|
{"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": {},
|
"library": {},
|
||||||
"versions":
|
"versions": {}
|
||||||
{
|
|
||||||
"producer": 561
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"weightsManifest":
|
"weightsManifest":
|
||||||
[
|
[
|
||||||
|
|
|
@ -69,6 +69,9 @@ const targets = {
|
||||||
outfile: 'dist/tfjs.esm.js',
|
outfile: 'dist/tfjs.esm.js',
|
||||||
external: ['@tensorflow'],
|
external: ['@tensorflow'],
|
||||||
sourcemap: false,
|
sourcemap: false,
|
||||||
|
minifyWhitespace: false,
|
||||||
|
minifyIdentifiers: false,
|
||||||
|
minifySyntax: false,
|
||||||
},
|
},
|
||||||
node: {
|
node: {
|
||||||
platform: 'node',
|
platform: 'node',
|
||||||
|
@ -90,6 +93,9 @@ const targets = {
|
||||||
outfile: 'dist/tfjs.esm.js',
|
outfile: 'dist/tfjs.esm.js',
|
||||||
external: ['@tensorflow'],
|
external: ['@tensorflow'],
|
||||||
sourcemap: false,
|
sourcemap: false,
|
||||||
|
minifyWhitespace: false,
|
||||||
|
minifyIdentifiers: false,
|
||||||
|
minifySyntax: false,
|
||||||
},
|
},
|
||||||
node: {
|
node: {
|
||||||
platform: 'node',
|
platform: 'node',
|
||||||
|
@ -111,6 +117,9 @@ const targets = {
|
||||||
outfile: 'dist/tfjs.esm.js',
|
outfile: 'dist/tfjs.esm.js',
|
||||||
external: ['@tensorflow'],
|
external: ['@tensorflow'],
|
||||||
sourcemap: false,
|
sourcemap: false,
|
||||||
|
minifyWhitespace: false,
|
||||||
|
minifyIdentifiers: false,
|
||||||
|
minifySyntax: false,
|
||||||
},
|
},
|
||||||
node: {
|
node: {
|
||||||
platform: 'node',
|
platform: 'node',
|
||||||
|
@ -159,7 +168,7 @@ const targets = {
|
||||||
entryPoints: ['src/human.ts'],
|
entryPoints: ['src/human.ts'],
|
||||||
outfile: 'dist/human.js',
|
outfile: 'dist/human.js',
|
||||||
external: ['fs', 'buffer', 'util', 'os'],
|
external: ['fs', 'buffer', 'util', 'os'],
|
||||||
sourcemap: true,
|
sourcemap: false,
|
||||||
},
|
},
|
||||||
esm: {
|
esm: {
|
||||||
platform: 'browser',
|
platform: 'browser',
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
2021-05-05 10:06:54 [36mINFO: [39m @vladmandic/human version 1.8.3
|
2021-05-11 07:50:56 [36mINFO: [39m @vladmandic/human version 1.8.4
|
||||||
2021-05-05 10:06:54 [36mINFO: [39m User: vlado Platform: linux Arch: x64 Node: v16.0.0
|
2021-05-11 07:50:56 [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-11 07:50:56 [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-11 07:50:56 [35mSTATE:[39m Build for: node type: tfjs: {"imports":1,"importBytes":39,"outputBytes":1284,"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-11 07:50:56 [35mSTATE:[39m Build for: node type: node: {"imports":35,"importBytes":413382,"outputBytes":372832,"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-11 07:50:56 [35mSTATE:[39m Build for: nodeGPU type: tfjs: {"imports":1,"importBytes":43,"outputBytes":1292,"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-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-05 10:06:54 [35mSTATE:[39m Build for: nodeWASM type: tfjs: {"imports":1,"importBytes":81,"outputBytes":746,"outputFiles":"dist/tfjs.esm.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-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-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-05 10:06:55 [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: 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-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-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-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-05 10:06:56 [35mSTATE:[39m Build for: browserBundle type: iife: {"imports":35,"importBytes":1523366,"outputBytes":1337233,"outputFiles":"dist/human.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-05 10:06:57 [35mSTATE:[39m Build for: browserBundle type: esm: {"imports":35,"importBytes":1523366,"outputBytes":1337191,"outputFiles":"dist/human.esm.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-05 10:06:57 [36mINFO: [39m Generate types: ["src/human.ts"]
|
2021-05-11 07:50:58 [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-11 07:51:03 [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: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
|
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
|
// can be 'webgl', 'wasm', 'cpu', or 'humangl' which is a custom version of webgl
|
||||||
modelBasePath: '../models/', // base path for all models
|
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
|
debug: true, // print additional status messages to console
|
||||||
async: true, // execute enabled models in parallel
|
async: true, // execute enabled models in parallel
|
||||||
videoOptimized: true, // perform additional optimizations when input is video,
|
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
|
// general minkowski distance, euclidean distance is limited case where order is 2
|
||||||
const distance = embedding1
|
const distance = embedding1
|
||||||
.map((val, i) => (Math.abs(embedding1[i] - embedding2[i]) ** order)) // distance squared
|
.map((val, i) => (Math.abs(embedding1[i] - embedding2[i]) ** order)) // distance squared
|
||||||
.reduce((sum, now) => (sum + now), 0) // sum all distances
|
.reduce((sum, now) => (sum + now), 0) // sum all distances into total
|
||||||
** (1 / order); // get root of
|
** (1 / order); // get root of total distances
|
||||||
const res = Math.max(Math.trunc(1000 * (1 - distance)) / 1000, 0);
|
const res = Math.max(Math.trunc(1000 * (1 - distance)) / 1000, 0);
|
||||||
return res;
|
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-11 07:51:30 [36mINFO: [39m @vladmandic/human version 1.8.4
|
||||||
2021-05-05 10:05:29 [36mINFO: [39m User: vlado Platform: linux Arch: x64 Node: v16.0.0
|
2021-05-11 07:51:30 [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-11 07:51:30 [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-11 07:51:30 [36mINFO: [39m test-node.js start
|
||||||
2021-05-05 10:05:30 [35mSTATE:[39m test-node.js passed: create human
|
2021-05-11 07:51: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-11 07:51:30 [36mINFO: [39m test-node.js human version: 1.8.4
|
||||||
2021-05-05 10:05: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 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-11 07:51: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-11 07:51: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-11 07:51: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-11 07:51: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-11 07:51: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-11 07:51:32 [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-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-05 10:05:33 [32mDATA: [39m test-node.js result: performance: load: 440 total: 1540
|
2021-05-11 07:51:32 [32mDATA: [39m test-node.js result: performance: load: 326 total: 1396
|
||||||
2021-05-05 10:05:34 [35mSTATE:[39m test-node.js passed: warmup: body default
|
2021-05-11 07:51: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-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-05 10:05:34 [32mDATA: [39m test-node.js result: performance: load: 440 total: 1455
|
2021-05-11 07:51:34 [32mDATA: [39m test-node.js result: performance: load: 326 total: 1408
|
||||||
2021-05-05 10:05:34 [36mINFO: [39m test-node.js test body variants
|
2021-05-11 07:51: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-11 07:51: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-11 07:51:36 [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-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-05 10:05:37 [32mDATA: [39m test-node.js result: performance: load: 440 total: 1494
|
2021-05-11 07:51:36 [32mDATA: [39m test-node.js result: performance: load: 326 total: 1449
|
||||||
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-11 07:51:37 [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-11 07:51: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-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-05 10:05:39 [32mDATA: [39m test-node.js result: performance: load: 440 total: 1483
|
2021-05-11 07:51:39 [32mDATA: [39m test-node.js result: performance: load: 326 total: 1424
|
||||||
2021-05-05 10:05:40 [35mSTATE:[39m test-node.js passed: detect: random default
|
2021-05-11 07:51:39 [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-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-05 10:05:40 [32mDATA: [39m test-node.js result: performance: load: 440 total: 666
|
2021-05-11 07:51:39 [32mDATA: [39m test-node.js result: performance: load: 326 total: 644
|
||||||
2021-05-05 10:05:40 [36mINFO: [39m test-node.js test: first instance
|
2021-05-11 07:51:39 [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-11 07:51: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-11 07:51:41 [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-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-05 10:05:42 [32mDATA: [39m test-node.js result: performance: load: 440 total: 1531
|
2021-05-11 07:51:41 [32mDATA: [39m test-node.js result: performance: load: 326 total: 1403
|
||||||
2021-05-05 10:05:42 [36mINFO: [39m test-node.js test: second instance
|
2021-05-11 07:51:41 [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-11 07:51:41 [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-11 07:51: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-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-05 10:05:43 [32mDATA: [39m test-node.js result: performance: load: 5 total: 1326
|
2021-05-11 07:51:43 [32mDATA: [39m test-node.js result: performance: load: 2 total: 1289
|
||||||
2021-05-05 10:05:43 [36mINFO: [39m test-node.js test: concurrent
|
2021-05-11 07:51: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-11 07:51: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-11 07:51: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-11 07:51: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-11 07:51:45 [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-11 07:51:50 [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-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-05 10:05:51 [32mDATA: [39m test-node.js result: performance: load: 440 total: 5170
|
2021-05-11 07:51:50 [32mDATA: [39m test-node.js result: performance: load: 326 total: 5531
|
||||||
2021-05-05 10:05:51 [35mSTATE:[39m test-node.js passed: detect: assets/human-sample-face.jpg default
|
2021-05-11 07:51:50 [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-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-05 10:05:51 [32mDATA: [39m test-node.js result: performance: load: 5 total: 5170
|
2021-05-11 07:51:50 [32mDATA: [39m test-node.js result: performance: load: 2 total: 5531
|
||||||
2021-05-05 10:05:51 [35mSTATE:[39m test-node.js passed: detect: assets/human-sample-body.jpg default
|
2021-05-11 07:51:50 [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-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-05 10:05:51 [32mDATA: [39m test-node.js result: performance: load: 440 total: 5170
|
2021-05-11 07:51:50 [32mDATA: [39m test-node.js result: performance: load: 326 total: 5531
|
||||||
2021-05-05 10:05:51 [35mSTATE:[39m test-node.js passed: detect: assets/human-sample-body.jpg default
|
2021-05-11 07:51:50 [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-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-05 10:05:51 [32mDATA: [39m test-node.js result: performance: load: 5 total: 5170
|
2021-05-11 07:51:50 [32mDATA: [39m test-node.js result: performance: load: 2 total: 5531
|
||||||
2021-05-05 10:05:51 [36mINFO: [39m test-node.js test complete: 20244 ms
|
2021-05-11 07:51:50 [36mINFO: [39m test-node.js test complete: 19958 ms
|
||||||
2021-05-05 10:05:51 [36mINFO: [39m test-node-gpu.js start
|
2021-05-11 07:51:50 [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-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-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-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-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-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-05 10:05:52 [35mSTATE:[39m test-node-gpu.js passed: create human
|
2021-05-11 07:51:51 [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-11 07:51:51 [36mINFO: [39m test-node-gpu.js human version: 1.8.4
|
||||||
2021-05-05 10:05:52 [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 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-11 07:51:51 [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-11 07:51:51 [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-11 07:51:51 [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-11 07:51:51 [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-11 07:51:51 [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-11 07:51:53 [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-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-05 10:05:54 [32mDATA: [39m test-node-gpu.js result: performance: load: 323 total: 1631
|
2021-05-11 07:51:53 [32mDATA: [39m test-node-gpu.js result: performance: load: 323 total: 1404
|
||||||
2021-05-05 10:05:56 [35mSTATE:[39m test-node-gpu.js passed: warmup: body default
|
2021-05-11 07:51:54 [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-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-05 10:05:56 [32mDATA: [39m test-node-gpu.js result: performance: load: 323 total: 1407
|
2021-05-11 07:51:54 [32mDATA: [39m test-node-gpu.js result: performance: load: 323 total: 1454
|
||||||
2021-05-05 10:05:56 [36mINFO: [39m test-node-gpu.js test body variants
|
2021-05-11 07:51:54 [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-11 07:51:55 [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-11 07:51:57 [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-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-05 10:05:58 [32mDATA: [39m test-node-gpu.js result: performance: load: 323 total: 1712
|
2021-05-11 07:51:57 [32mDATA: [39m test-node-gpu.js result: performance: load: 323 total: 1449
|
||||||
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-11 07:51:58 [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-11 07:51:59 [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-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-05 10:06:01 [32mDATA: [39m test-node-gpu.js result: performance: load: 323 total: 1407
|
2021-05-11 07:51:59 [32mDATA: [39m test-node-gpu.js result: performance: load: 323 total: 1370
|
||||||
2021-05-05 10:06:02 [35mSTATE:[39m test-node-gpu.js passed: detect: random default
|
2021-05-11 07:52:00 [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-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-05 10:06:02 [32mDATA: [39m test-node-gpu.js result: performance: load: 323 total: 626
|
2021-05-11 07:52:00 [32mDATA: [39m test-node-gpu.js result: performance: load: 323 total: 671
|
||||||
2021-05-05 10:06:02 [36mINFO: [39m test-node-gpu.js test: first instance
|
2021-05-11 07:52:00 [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-11 07:52:00 [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-11 07:52:02 [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-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-05 10:06:03 [32mDATA: [39m test-node-gpu.js result: performance: load: 323 total: 1334
|
2021-05-11 07:52:02 [32mDATA: [39m test-node-gpu.js result: performance: load: 323 total: 1372
|
||||||
2021-05-05 10:06:03 [36mINFO: [39m test-node-gpu.js test: second instance
|
2021-05-11 07:52:02 [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-11 07:52:02 [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-11 07:52:03 [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-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-05 10:06:05 [32mDATA: [39m test-node-gpu.js result: performance: load: 2 total: 1247
|
2021-05-11 07:52:03 [32mDATA: [39m test-node-gpu.js result: performance: load: 6 total: 1446
|
||||||
2021-05-05 10:06:05 [36mINFO: [39m test-node-gpu.js test: concurrent
|
2021-05-11 07:52:03 [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-11 07:52:04 [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-11 07:52:04 [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-11 07:52:05 [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-11 07:52:06 [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-11 07:52:11 [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-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-05 10:06:12 [32mDATA: [39m test-node-gpu.js result: performance: load: 323 total: 4919
|
2021-05-11 07:52:11 [32mDATA: [39m test-node-gpu.js result: performance: load: 323 total: 5056
|
||||||
2021-05-05 10:06:12 [35mSTATE:[39m test-node-gpu.js passed: detect: assets/human-sample-face.jpg default
|
2021-05-11 07:52:11 [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-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-05 10:06:12 [32mDATA: [39m test-node-gpu.js result: performance: load: 2 total: 4919
|
2021-05-11 07:52:11 [32mDATA: [39m test-node-gpu.js result: performance: load: 6 total: 5056
|
||||||
2021-05-05 10:06:12 [35mSTATE:[39m test-node-gpu.js passed: detect: assets/human-sample-body.jpg default
|
2021-05-11 07:52:11 [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-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-05 10:06:12 [32mDATA: [39m test-node-gpu.js result: performance: load: 323 total: 4919
|
2021-05-11 07:52:11 [32mDATA: [39m test-node-gpu.js result: performance: load: 323 total: 5056
|
||||||
2021-05-05 10:06:12 [35mSTATE:[39m test-node-gpu.js passed: detect: assets/human-sample-body.jpg default
|
2021-05-11 07:52:11 [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-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-05 10:06:12 [32mDATA: [39m test-node-gpu.js result: performance: load: 2 total: 4919
|
2021-05-11 07:52:11 [32mDATA: [39m test-node-gpu.js result: performance: load: 6 total: 5056
|
||||||
2021-05-05 10:06:12 [36mINFO: [39m test-node-gpu.js test complete: 19760 ms
|
2021-05-11 07:52:11 [36mINFO: [39m test-node-gpu.js test complete: 19594 ms
|
||||||
2021-05-05 10:06:12 [36mINFO: [39m test-node-wasm.js start
|
2021-05-11 07:52:11 [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-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-05 10:06:12 [35mSTATE:[39m test-node-wasm.js passed: create human
|
2021-05-11 07:52:11 [31mERROR:[39m test-node-wasm.js aborting test
|
||||||
2021-05-05 10:06:12 [36mINFO: [39m test-node-wasm.js human version: 1.8.3
|
2021-05-11 07:52:11 [36mINFO: [39m status: {"passed":46,"failed":1}
|
||||||
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}
|
|
||||||
|
|
Loading…
Reference in New Issue