mirror of https://github.com/vladmandic/human
rebuild all for release
parent
beb099e911
commit
4c14bcd80e
|
@ -1,6 +1,6 @@
|
|||
# @vladmandic/human
|
||||
|
||||
Version: **1.9.1**
|
||||
Version: **1.9.2**
|
||||
Description: **Human: AI-powered 3D Face Detection & Rotation Tracking, Face Description & Recognition, Body Pose Tracking, 3D Hand & Finger Tracking, Iris Analysis, Age & Gender & Emotion Prediction, Gesture Recognition**
|
||||
|
||||
Author: **Vladimir Mandic <mandic00@live.com>**
|
||||
|
@ -9,7 +9,12 @@ Repository: **<git+https://github.com/vladmandic/human.git>**
|
|||
|
||||
## Changelog
|
||||
|
||||
### **HEAD -> main** 2021/05/21 mandic00@live.com
|
||||
### **1.9.2** 2021/05/22 mandic00@live.com
|
||||
|
||||
- add id and boxraw on missing objects
|
||||
- restructure results strong typing
|
||||
|
||||
### **origin/main** 2021/05/21 mandic00@live.com
|
||||
|
||||
|
||||
### **1.9.1** 2021/05/21 mandic00@live.com
|
||||
|
|
2
TODO.md
2
TODO.md
|
@ -6,7 +6,7 @@ N/A
|
|||
|
||||
## Exploring Features
|
||||
|
||||
- Output interpolation for draw
|
||||
- drawOptions.bufferedOutput: Output interpolation for draw
|
||||
|
||||
## Explore Models
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -9,7 +9,7 @@ import webRTC from './helpers/webrtc.js';
|
|||
let human;
|
||||
|
||||
const userConfig = {
|
||||
warmup: 'full',
|
||||
warmup: 'none',
|
||||
/*
|
||||
backend: 'webgl',
|
||||
async: false,
|
||||
|
@ -47,6 +47,7 @@ const ui = {
|
|||
modelsPreload: true, // preload human models on startup
|
||||
modelsWarmup: true, // warmup human models on startup
|
||||
buffered: true, // should output be buffered between frames
|
||||
iconSize: '48px', // ui icon sizes
|
||||
|
||||
// internal variables
|
||||
busy: false, // internal camera busy flag
|
||||
|
@ -222,11 +223,14 @@ async function drawResults(input) {
|
|||
}
|
||||
|
||||
// draw all results
|
||||
human.draw.all(canvas, result);
|
||||
/* use individual functions
|
||||
human.draw.face(canvas, result.face);
|
||||
human.draw.body(canvas, result.body);
|
||||
human.draw.hand(canvas, result.hand);
|
||||
human.draw.object(canvas, result.object);
|
||||
human.draw.gesture(canvas, result.gesture);
|
||||
*/
|
||||
await calcSimmilariry(result);
|
||||
|
||||
// update log
|
||||
|
@ -653,6 +657,8 @@ async function main() {
|
|||
|
||||
log('demo starting ...');
|
||||
|
||||
document.documentElement.style.setProperty('--icon-size', ui.iconSize);
|
||||
|
||||
// parse url search params
|
||||
const params = new URLSearchParams(location.search);
|
||||
log('url options:', params.toString());
|
||||
|
|
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
|
@ -18401,10 +18401,11 @@ var options = {
|
|||
fillPolygons: false,
|
||||
useDepth: true,
|
||||
useCurves: false,
|
||||
bufferedOutput: true,
|
||||
bufferedOutput: false,
|
||||
useRawBoxes: false,
|
||||
calculateHandBox: true
|
||||
};
|
||||
var bufferedResult;
|
||||
function point(ctx, x, y, z = 0, localOptions) {
|
||||
ctx.fillStyle = localOptions.useDepth && z ? `rgba(${127.5 + 2 * z}, ${127.5 - 2 * z}, 255, 0.3)` : localOptions.color;
|
||||
ctx.beginPath();
|
||||
|
@ -18587,7 +18588,6 @@ async function face2(inCanvas2, result, drawOptions) {
|
|||
}
|
||||
}
|
||||
}
|
||||
var lastDrawnPose = [];
|
||||
async function body2(inCanvas2, result, drawOptions) {
|
||||
var _a;
|
||||
const localOptions = mergeDeep(options, drawOptions);
|
||||
|
@ -18600,8 +18600,6 @@ async function body2(inCanvas2, result, drawOptions) {
|
|||
return;
|
||||
ctx.lineJoin = "round";
|
||||
for (let i = 0; i < result.length; i++) {
|
||||
if (!lastDrawnPose[i] && localOptions.bufferedOutput)
|
||||
lastDrawnPose[i] = { ...result[i] };
|
||||
ctx.strokeStyle = localOptions.color;
|
||||
ctx.fillStyle = localOptions.color;
|
||||
ctx.lineWidth = localOptions.lineWidth;
|
||||
|
@ -18620,15 +18618,9 @@ async function body2(inCanvas2, result, drawOptions) {
|
|||
if (localOptions.drawPoints) {
|
||||
for (let pt = 0; pt < result[i].keypoints.length; pt++) {
|
||||
ctx.fillStyle = localOptions.useDepth && result[i].keypoints[pt].position.z ? `rgba(${127.5 + 2 * result[i].keypoints[pt].position.z}, ${127.5 - 2 * result[i].keypoints[pt].position.z}, 255, 0.5)` : localOptions.color;
|
||||
if (localOptions.bufferedOutput) {
|
||||
lastDrawnPose[i].keypoints[pt][0] = (lastDrawnPose[i].keypoints[pt][0] + result[i].keypoints[pt].position.x) / 2;
|
||||
lastDrawnPose[i].keypoints[pt][1] = (lastDrawnPose[i].keypoints[pt][1] + result[i].keypoints[pt].position.y) / 2;
|
||||
point(ctx, lastDrawnPose[i].keypoints[pt][0], lastDrawnPose[i].keypoints[pt][1], 0, localOptions);
|
||||
} else {
|
||||
point(ctx, result[i].keypoints[pt].position.x, result[i].keypoints[pt].position.y, 0, localOptions);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (localOptions.drawLabels) {
|
||||
ctx.font = localOptions.font;
|
||||
if (result[i].keypoints) {
|
||||
|
@ -18866,11 +18858,17 @@ async function all(inCanvas2, result, drawOptions) {
|
|||
return;
|
||||
if (!(inCanvas2 instanceof HTMLCanvasElement))
|
||||
return;
|
||||
face2(inCanvas2, result.face, localOptions);
|
||||
body2(inCanvas2, result.body, localOptions);
|
||||
hand2(inCanvas2, result.hand, localOptions);
|
||||
gesture(inCanvas2, result.gesture, localOptions);
|
||||
object(inCanvas2, result.object, localOptions);
|
||||
if (localOptions.bufferedOutput) {
|
||||
if (result.timestamp !== (bufferedResult == null ? void 0 : bufferedResult.timestamp))
|
||||
bufferedResult = result;
|
||||
} else {
|
||||
bufferedResult = result;
|
||||
}
|
||||
face2(inCanvas2, bufferedResult.face, localOptions);
|
||||
body2(inCanvas2, bufferedResult.body, localOptions);
|
||||
hand2(inCanvas2, bufferedResult.hand, localOptions);
|
||||
gesture(inCanvas2, bufferedResult.gesture, localOptions);
|
||||
object(inCanvas2, bufferedResult.object, localOptions);
|
||||
}
|
||||
|
||||
// src/sample.ts
|
||||
|
@ -19597,7 +19595,7 @@ lBhEMohlFerLlBjEMohMVTEARDKCITsAk2AEgAAAkAAAAAAAAAAAAAAAAAAAAAAAASAAAAAAAAD/
|
|||
2Q==`;
|
||||
|
||||
// package.json
|
||||
var version = "1.9.1";
|
||||
var version = "1.9.2";
|
||||
|
||||
// src/human.ts
|
||||
var _numTensors, _analyzeMemoryLeaks, _checkSanity, _firstRun, _lastInputSum, _lastCacheDiff, _sanity, _checkBackend, _skipFrame, _warmupBitmap, _warmupCanvas, _warmupNode;
|
||||
|
|
|
@ -18402,10 +18402,11 @@ var options = {
|
|||
fillPolygons: false,
|
||||
useDepth: true,
|
||||
useCurves: false,
|
||||
bufferedOutput: true,
|
||||
bufferedOutput: false,
|
||||
useRawBoxes: false,
|
||||
calculateHandBox: true
|
||||
};
|
||||
var bufferedResult;
|
||||
function point(ctx, x, y, z = 0, localOptions) {
|
||||
ctx.fillStyle = localOptions.useDepth && z ? `rgba(${127.5 + 2 * z}, ${127.5 - 2 * z}, 255, 0.3)` : localOptions.color;
|
||||
ctx.beginPath();
|
||||
|
@ -18588,7 +18589,6 @@ async function face2(inCanvas2, result, drawOptions) {
|
|||
}
|
||||
}
|
||||
}
|
||||
var lastDrawnPose = [];
|
||||
async function body2(inCanvas2, result, drawOptions) {
|
||||
var _a;
|
||||
const localOptions = mergeDeep(options, drawOptions);
|
||||
|
@ -18601,8 +18601,6 @@ async function body2(inCanvas2, result, drawOptions) {
|
|||
return;
|
||||
ctx.lineJoin = "round";
|
||||
for (let i = 0; i < result.length; i++) {
|
||||
if (!lastDrawnPose[i] && localOptions.bufferedOutput)
|
||||
lastDrawnPose[i] = { ...result[i] };
|
||||
ctx.strokeStyle = localOptions.color;
|
||||
ctx.fillStyle = localOptions.color;
|
||||
ctx.lineWidth = localOptions.lineWidth;
|
||||
|
@ -18621,15 +18619,9 @@ async function body2(inCanvas2, result, drawOptions) {
|
|||
if (localOptions.drawPoints) {
|
||||
for (let pt = 0; pt < result[i].keypoints.length; pt++) {
|
||||
ctx.fillStyle = localOptions.useDepth && result[i].keypoints[pt].position.z ? `rgba(${127.5 + 2 * result[i].keypoints[pt].position.z}, ${127.5 - 2 * result[i].keypoints[pt].position.z}, 255, 0.5)` : localOptions.color;
|
||||
if (localOptions.bufferedOutput) {
|
||||
lastDrawnPose[i].keypoints[pt][0] = (lastDrawnPose[i].keypoints[pt][0] + result[i].keypoints[pt].position.x) / 2;
|
||||
lastDrawnPose[i].keypoints[pt][1] = (lastDrawnPose[i].keypoints[pt][1] + result[i].keypoints[pt].position.y) / 2;
|
||||
point(ctx, lastDrawnPose[i].keypoints[pt][0], lastDrawnPose[i].keypoints[pt][1], 0, localOptions);
|
||||
} else {
|
||||
point(ctx, result[i].keypoints[pt].position.x, result[i].keypoints[pt].position.y, 0, localOptions);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (localOptions.drawLabels) {
|
||||
ctx.font = localOptions.font;
|
||||
if (result[i].keypoints) {
|
||||
|
@ -18867,11 +18859,17 @@ async function all(inCanvas2, result, drawOptions) {
|
|||
return;
|
||||
if (!(inCanvas2 instanceof HTMLCanvasElement))
|
||||
return;
|
||||
face2(inCanvas2, result.face, localOptions);
|
||||
body2(inCanvas2, result.body, localOptions);
|
||||
hand2(inCanvas2, result.hand, localOptions);
|
||||
gesture(inCanvas2, result.gesture, localOptions);
|
||||
object(inCanvas2, result.object, localOptions);
|
||||
if (localOptions.bufferedOutput) {
|
||||
if (result.timestamp !== (bufferedResult == null ? void 0 : bufferedResult.timestamp))
|
||||
bufferedResult = result;
|
||||
} else {
|
||||
bufferedResult = result;
|
||||
}
|
||||
face2(inCanvas2, bufferedResult.face, localOptions);
|
||||
body2(inCanvas2, bufferedResult.body, localOptions);
|
||||
hand2(inCanvas2, bufferedResult.hand, localOptions);
|
||||
gesture(inCanvas2, bufferedResult.gesture, localOptions);
|
||||
object(inCanvas2, bufferedResult.object, localOptions);
|
||||
}
|
||||
|
||||
// src/sample.ts
|
||||
|
@ -19598,7 +19596,7 @@ lBhEMohlFerLlBjEMohMVTEARDKCITsAk2AEgAAAkAAAAAAAAAAAAAAAAAAAAAAAASAAAAAAAAD/
|
|||
2Q==`;
|
||||
|
||||
// package.json
|
||||
var version = "1.9.1";
|
||||
var version = "1.9.2";
|
||||
|
||||
// src/human.ts
|
||||
var _numTensors, _analyzeMemoryLeaks, _checkSanity, _firstRun, _lastInputSum, _lastCacheDiff, _sanity, _checkBackend, _skipFrame, _warmupBitmap, _warmupCanvas, _warmupNode;
|
||||
|
|
|
@ -18401,10 +18401,11 @@ var options = {
|
|||
fillPolygons: false,
|
||||
useDepth: true,
|
||||
useCurves: false,
|
||||
bufferedOutput: true,
|
||||
bufferedOutput: false,
|
||||
useRawBoxes: false,
|
||||
calculateHandBox: true
|
||||
};
|
||||
var bufferedResult;
|
||||
function point(ctx, x, y, z = 0, localOptions) {
|
||||
ctx.fillStyle = localOptions.useDepth && z ? `rgba(${127.5 + 2 * z}, ${127.5 - 2 * z}, 255, 0.3)` : localOptions.color;
|
||||
ctx.beginPath();
|
||||
|
@ -18587,7 +18588,6 @@ async function face2(inCanvas2, result, drawOptions) {
|
|||
}
|
||||
}
|
||||
}
|
||||
var lastDrawnPose = [];
|
||||
async function body2(inCanvas2, result, drawOptions) {
|
||||
var _a;
|
||||
const localOptions = mergeDeep(options, drawOptions);
|
||||
|
@ -18600,8 +18600,6 @@ async function body2(inCanvas2, result, drawOptions) {
|
|||
return;
|
||||
ctx.lineJoin = "round";
|
||||
for (let i = 0; i < result.length; i++) {
|
||||
if (!lastDrawnPose[i] && localOptions.bufferedOutput)
|
||||
lastDrawnPose[i] = { ...result[i] };
|
||||
ctx.strokeStyle = localOptions.color;
|
||||
ctx.fillStyle = localOptions.color;
|
||||
ctx.lineWidth = localOptions.lineWidth;
|
||||
|
@ -18620,15 +18618,9 @@ async function body2(inCanvas2, result, drawOptions) {
|
|||
if (localOptions.drawPoints) {
|
||||
for (let pt = 0; pt < result[i].keypoints.length; pt++) {
|
||||
ctx.fillStyle = localOptions.useDepth && result[i].keypoints[pt].position.z ? `rgba(${127.5 + 2 * result[i].keypoints[pt].position.z}, ${127.5 - 2 * result[i].keypoints[pt].position.z}, 255, 0.5)` : localOptions.color;
|
||||
if (localOptions.bufferedOutput) {
|
||||
lastDrawnPose[i].keypoints[pt][0] = (lastDrawnPose[i].keypoints[pt][0] + result[i].keypoints[pt].position.x) / 2;
|
||||
lastDrawnPose[i].keypoints[pt][1] = (lastDrawnPose[i].keypoints[pt][1] + result[i].keypoints[pt].position.y) / 2;
|
||||
point(ctx, lastDrawnPose[i].keypoints[pt][0], lastDrawnPose[i].keypoints[pt][1], 0, localOptions);
|
||||
} else {
|
||||
point(ctx, result[i].keypoints[pt].position.x, result[i].keypoints[pt].position.y, 0, localOptions);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (localOptions.drawLabels) {
|
||||
ctx.font = localOptions.font;
|
||||
if (result[i].keypoints) {
|
||||
|
@ -18866,11 +18858,17 @@ async function all(inCanvas2, result, drawOptions) {
|
|||
return;
|
||||
if (!(inCanvas2 instanceof HTMLCanvasElement))
|
||||
return;
|
||||
face2(inCanvas2, result.face, localOptions);
|
||||
body2(inCanvas2, result.body, localOptions);
|
||||
hand2(inCanvas2, result.hand, localOptions);
|
||||
gesture(inCanvas2, result.gesture, localOptions);
|
||||
object(inCanvas2, result.object, localOptions);
|
||||
if (localOptions.bufferedOutput) {
|
||||
if (result.timestamp !== (bufferedResult == null ? void 0 : bufferedResult.timestamp))
|
||||
bufferedResult = result;
|
||||
} else {
|
||||
bufferedResult = result;
|
||||
}
|
||||
face2(inCanvas2, bufferedResult.face, localOptions);
|
||||
body2(inCanvas2, bufferedResult.body, localOptions);
|
||||
hand2(inCanvas2, bufferedResult.hand, localOptions);
|
||||
gesture(inCanvas2, bufferedResult.gesture, localOptions);
|
||||
object(inCanvas2, bufferedResult.object, localOptions);
|
||||
}
|
||||
|
||||
// src/sample.ts
|
||||
|
@ -19597,7 +19595,7 @@ lBhEMohlFerLlBjEMohMVTEARDKCITsAk2AEgAAAkAAAAAAAAAAAAAAAAAAAAAAAASAAAAAAAAD/
|
|||
2Q==`;
|
||||
|
||||
// package.json
|
||||
var version = "1.9.1";
|
||||
var version = "1.9.2";
|
||||
|
||||
// src/human.ts
|
||||
var _numTensors, _analyzeMemoryLeaks, _checkSanity, _firstRun, _lastInputSum, _lastCacheDiff, _sanity, _checkBackend, _skipFrame, _warmupBitmap, _warmupCanvas, _warmupNode;
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
102
server/build.log
102
server/build.log
|
@ -1,85 +1,17 @@
|
|||
2021-05-21 06:52:07 [36mINFO: [39m @vladmandic/human version 1.9.1
|
||||
2021-05-21 06:52:07 [36mINFO: [39m User: vlado Platform: linux Arch: x64 Node: v16.0.0
|
||||
2021-05-21 06:52:07 [36mINFO: [39m Build: file startup all type: production config: {"minifyWhitespace":true,"minifyIdentifiers":true,"minifySyntax":true}
|
||||
2021-05-21 06:52:07 [35mSTATE:[39m Build for: node type: tfjs: {"imports":1,"importBytes":39,"outputBytes":1292,"outputFiles":"dist/tfjs.esm.js"}
|
||||
2021-05-21 06:52:07 [35mSTATE:[39m Build for: node type: node: {"imports":36,"importBytes":418558,"outputBytes":377904,"outputFiles":"dist/human.node.js"}
|
||||
2021-05-21 06:52:07 [35mSTATE:[39m Build for: nodeGPU type: tfjs: {"imports":1,"importBytes":43,"outputBytes":1300,"outputFiles":"dist/tfjs.esm.js"}
|
||||
2021-05-21 06:52:07 [35mSTATE:[39m Build for: nodeGPU type: node: {"imports":36,"importBytes":418566,"outputBytes":377908,"outputFiles":"dist/human.node-gpu.js"}
|
||||
2021-05-21 06:52:07 [35mSTATE:[39m Build for: nodeWASM type: tfjs: {"imports":1,"importBytes":81,"outputBytes":1367,"outputFiles":"dist/tfjs.esm.js"}
|
||||
2021-05-21 06:52:07 [35mSTATE:[39m Build for: nodeWASM type: node: {"imports":36,"importBytes":418633,"outputBytes":377980,"outputFiles":"dist/human.node-wasm.js"}
|
||||
2021-05-21 06:52:07 [35mSTATE:[39m Build for: browserNoBundle type: tfjs: {"imports":1,"importBytes":2488,"outputBytes":1394,"outputFiles":"dist/tfjs.esm.js"}
|
||||
2021-05-21 06:52:07 [35mSTATE:[39m Build for: browserNoBundle type: esm: {"imports":36,"importBytes":418660,"outputBytes":232241,"outputFiles":"dist/human.esm-nobundle.js"}
|
||||
2021-05-21 06:52:08 [35mSTATE:[39m Build for: browserBundle type: tfjs: {"modules":1274,"moduleBytes":4114813,"imports":7,"importBytes":2488,"outputBytes":1111414,"outputFiles":"dist/tfjs.esm.js"}
|
||||
2021-05-21 06:52:08 [35mSTATE:[39m Build for: browserBundle type: iife: {"imports":36,"importBytes":1528680,"outputBytes":1340102,"outputFiles":"dist/human.js"}
|
||||
2021-05-21 06:52:08 [35mSTATE:[39m Build for: browserBundle type: esm: {"imports":36,"importBytes":1528680,"outputBytes":1340094,"outputFiles":"dist/human.esm.js"}
|
||||
2021-05-21 06:52:08 [36mINFO: [39m Generate types: ["src/human.ts"]
|
||||
2021-05-21 06:52:13 [36mINFO: [39m Update Change log: ["/home/vlado/dev/human/CHANGELOG.md"]
|
||||
2021-05-21 06:52:13 [36mINFO: [39m Generate TypeDocs: ["src/human.ts"]
|
||||
2021-05-22 11:04:54 [36mINFO: [39m @vladmandic/human version 1.9.1
|
||||
2021-05-22 11:04:54 [36mINFO: [39m User: vlado Platform: linux Arch: x64 Node: v16.0.0
|
||||
2021-05-22 11:04:54 [36mINFO: [39m Build: file startup all type: production config: {"minifyWhitespace":true,"minifyIdentifiers":true,"minifySyntax":true}
|
||||
2021-05-22 11:04:54 [35mSTATE:[39m Build for: node type: tfjs: {"imports":1,"importBytes":39,"outputBytes":1292,"outputFiles":"dist/tfjs.esm.js"}
|
||||
2021-05-22 11:04:54 [35mSTATE:[39m Build for: node type: node: {"imports":36,"importBytes":418552,"outputBytes":377897,"outputFiles":"dist/human.node.js"}
|
||||
2021-05-22 11:04:54 [35mSTATE:[39m Build for: nodeGPU type: tfjs: {"imports":1,"importBytes":43,"outputBytes":1300,"outputFiles":"dist/tfjs.esm.js"}
|
||||
2021-05-22 11:04:54 [35mSTATE:[39m Build for: nodeGPU type: node: {"imports":36,"importBytes":418560,"outputBytes":377901,"outputFiles":"dist/human.node-gpu.js"}
|
||||
2021-05-22 11:04:54 [35mSTATE:[39m Build for: nodeWASM type: tfjs: {"imports":1,"importBytes":81,"outputBytes":1367,"outputFiles":"dist/tfjs.esm.js"}
|
||||
2021-05-22 11:04:54 [35mSTATE:[39m Build for: nodeWASM type: node: {"imports":36,"importBytes":418627,"outputBytes":377973,"outputFiles":"dist/human.node-wasm.js"}
|
||||
2021-05-22 11:04:54 [35mSTATE:[39m Build for: browserNoBundle type: tfjs: {"imports":1,"importBytes":2488,"outputBytes":1394,"outputFiles":"dist/tfjs.esm.js"}
|
||||
2021-05-22 11:04:54 [35mSTATE:[39m Build for: browserNoBundle type: esm: {"imports":36,"importBytes":418654,"outputBytes":232241,"outputFiles":"dist/human.esm-nobundle.js"}
|
||||
2021-05-22 11:04:55 [35mSTATE:[39m Build for: browserBundle type: tfjs: {"modules":1274,"moduleBytes":4114813,"imports":7,"importBytes":2488,"outputBytes":1111414,"outputFiles":"dist/tfjs.esm.js"}
|
||||
2021-05-22 11:04:56 [35mSTATE:[39m Build for: browserBundle type: iife: {"imports":36,"importBytes":1528674,"outputBytes":1340102,"outputFiles":"dist/human.js"}
|
||||
2021-05-22 11:04:56 [35mSTATE:[39m Build for: browserBundle type: esm: {"imports":36,"importBytes":1528674,"outputBytes":1340094,"outputFiles":"dist/human.esm.js"}
|
||||
2021-05-22 11:04:56 [36mINFO: [39m Generate types: ["src/human.ts"]
|
||||
2021-05-22 11:05:02 [36mINFO: [39m Update Change log: ["/home/vlado/dev/human/CHANGELOG.md"]
|
||||
2021-05-22 11:05:02 [36mINFO: [39m Generate TypeDocs: ["src/human.ts"]
|
||||
2021-05-22 11:08:48 [36mINFO: [39m @vladmandic/human version 1.9.1
|
||||
2021-05-22 11:08:48 [36mINFO: [39m User: vlado Platform: linux Arch: x64 Node: v16.0.0
|
||||
2021-05-22 11:08:48 [36mINFO: [39m Build: file startup all type: production config: {"minifyWhitespace":true,"minifyIdentifiers":true,"minifySyntax":true}
|
||||
2021-05-22 11:08:48 [35mSTATE:[39m Build for: node type: tfjs: {"imports":1,"importBytes":39,"outputBytes":1292,"outputFiles":"dist/tfjs.esm.js"}
|
||||
2021-05-22 11:08:48 [35mSTATE:[39m Build for: node type: node: {"imports":36,"importBytes":418552,"outputBytes":377897,"outputFiles":"dist/human.node.js"}
|
||||
2021-05-22 11:08:48 [35mSTATE:[39m Build for: nodeGPU type: tfjs: {"imports":1,"importBytes":43,"outputBytes":1300,"outputFiles":"dist/tfjs.esm.js"}
|
||||
2021-05-22 11:08:48 [35mSTATE:[39m Build for: nodeGPU type: node: {"imports":36,"importBytes":418560,"outputBytes":377901,"outputFiles":"dist/human.node-gpu.js"}
|
||||
2021-05-22 11:08:48 [35mSTATE:[39m Build for: nodeWASM type: tfjs: {"imports":1,"importBytes":81,"outputBytes":1367,"outputFiles":"dist/tfjs.esm.js"}
|
||||
2021-05-22 11:08:48 [35mSTATE:[39m Build for: nodeWASM type: node: {"imports":36,"importBytes":418627,"outputBytes":377973,"outputFiles":"dist/human.node-wasm.js"}
|
||||
2021-05-22 11:08:48 [35mSTATE:[39m Build for: browserNoBundle type: tfjs: {"imports":1,"importBytes":2488,"outputBytes":1394,"outputFiles":"dist/tfjs.esm.js"}
|
||||
2021-05-22 11:08:48 [35mSTATE:[39m Build for: browserNoBundle type: esm: {"imports":36,"importBytes":418654,"outputBytes":232241,"outputFiles":"dist/human.esm-nobundle.js"}
|
||||
2021-05-22 11:08:49 [35mSTATE:[39m Build for: browserBundle type: tfjs: {"modules":1274,"moduleBytes":4114813,"imports":7,"importBytes":2488,"outputBytes":1111414,"outputFiles":"dist/tfjs.esm.js"}
|
||||
2021-05-22 11:08:49 [35mSTATE:[39m Build for: browserBundle type: iife: {"imports":36,"importBytes":1528674,"outputBytes":1340102,"outputFiles":"dist/human.js"}
|
||||
2021-05-22 11:08:50 [35mSTATE:[39m Build for: browserBundle type: esm: {"imports":36,"importBytes":1528674,"outputBytes":1340094,"outputFiles":"dist/human.esm.js"}
|
||||
2021-05-22 11:08:50 [36mINFO: [39m Generate types: ["src/human.ts"]
|
||||
2021-05-22 11:08:56 [36mINFO: [39m Update Change log: ["/home/vlado/dev/human/CHANGELOG.md"]
|
||||
2021-05-22 11:08:56 [36mINFO: [39m Generate TypeDocs: ["src/human.ts"]
|
||||
2021-05-22 11:09:59 [36mINFO: [39m @vladmandic/human version 1.9.1
|
||||
2021-05-22 11:09:59 [36mINFO: [39m User: vlado Platform: linux Arch: x64 Node: v16.0.0
|
||||
2021-05-22 11:09:59 [36mINFO: [39m Build: file startup all type: production config: {"minifyWhitespace":true,"minifyIdentifiers":true,"minifySyntax":true}
|
||||
2021-05-22 11:09:59 [35mSTATE:[39m Build for: node type: tfjs: {"imports":1,"importBytes":39,"outputBytes":1292,"outputFiles":"dist/tfjs.esm.js"}
|
||||
2021-05-22 11:09:59 [35mSTATE:[39m Build for: node type: node: {"imports":36,"importBytes":418552,"outputBytes":377897,"outputFiles":"dist/human.node.js"}
|
||||
2021-05-22 11:09:59 [35mSTATE:[39m Build for: nodeGPU type: tfjs: {"imports":1,"importBytes":43,"outputBytes":1300,"outputFiles":"dist/tfjs.esm.js"}
|
||||
2021-05-22 11:09:59 [35mSTATE:[39m Build for: nodeGPU type: node: {"imports":36,"importBytes":418560,"outputBytes":377901,"outputFiles":"dist/human.node-gpu.js"}
|
||||
2021-05-22 11:10:00 [35mSTATE:[39m Build for: nodeWASM type: tfjs: {"imports":1,"importBytes":81,"outputBytes":1367,"outputFiles":"dist/tfjs.esm.js"}
|
||||
2021-05-22 11:10:00 [35mSTATE:[39m Build for: nodeWASM type: node: {"imports":36,"importBytes":418627,"outputBytes":377973,"outputFiles":"dist/human.node-wasm.js"}
|
||||
2021-05-22 11:10:00 [35mSTATE:[39m Build for: browserNoBundle type: tfjs: {"imports":1,"importBytes":2488,"outputBytes":1394,"outputFiles":"dist/tfjs.esm.js"}
|
||||
2021-05-22 11:10:00 [35mSTATE:[39m Build for: browserNoBundle type: esm: {"imports":36,"importBytes":418654,"outputBytes":232241,"outputFiles":"dist/human.esm-nobundle.js"}
|
||||
2021-05-22 11:10:00 [35mSTATE:[39m Build for: browserBundle type: tfjs: {"modules":1274,"moduleBytes":4114813,"imports":7,"importBytes":2488,"outputBytes":1111414,"outputFiles":"dist/tfjs.esm.js"}
|
||||
2021-05-22 11:10:01 [35mSTATE:[39m Build for: browserBundle type: iife: {"imports":36,"importBytes":1528674,"outputBytes":1340102,"outputFiles":"dist/human.js"}
|
||||
2021-05-22 11:10:01 [35mSTATE:[39m Build for: browserBundle type: esm: {"imports":36,"importBytes":1528674,"outputBytes":1340094,"outputFiles":"dist/human.esm.js"}
|
||||
2021-05-22 11:10:01 [36mINFO: [39m Generate types: ["src/human.ts"]
|
||||
2021-05-22 11:10:07 [36mINFO: [39m Update Change log: ["/home/vlado/dev/human/CHANGELOG.md"]
|
||||
2021-05-22 11:10:07 [36mINFO: [39m Generate TypeDocs: ["src/human.ts"]
|
||||
2021-05-22 11:27:28 [36mINFO: [39m @vladmandic/human version 1.9.1
|
||||
2021-05-22 11:27:28 [36mINFO: [39m User: vlado Platform: linux Arch: x64 Node: v16.0.0
|
||||
2021-05-22 11:27:28 [36mINFO: [39m Build: file startup all type: production config: {"minifyWhitespace":true,"minifyIdentifiers":true,"minifySyntax":true}
|
||||
2021-05-22 11:27:28 [35mSTATE:[39m Build for: node type: tfjs: {"imports":1,"importBytes":39,"outputBytes":1292,"outputFiles":"dist/tfjs.esm.js"}
|
||||
2021-05-22 11:27:28 [35mSTATE:[39m Build for: node type: node: {"imports":36,"importBytes":418710,"outputBytes":377974,"outputFiles":"dist/human.node.js"}
|
||||
2021-05-22 11:27:28 [35mSTATE:[39m Build for: nodeGPU type: tfjs: {"imports":1,"importBytes":43,"outputBytes":1300,"outputFiles":"dist/tfjs.esm.js"}
|
||||
2021-05-22 11:27:28 [35mSTATE:[39m Build for: nodeGPU type: node: {"imports":36,"importBytes":418718,"outputBytes":377978,"outputFiles":"dist/human.node-gpu.js"}
|
||||
2021-05-22 11:27:28 [35mSTATE:[39m Build for: nodeWASM type: tfjs: {"imports":1,"importBytes":81,"outputBytes":1367,"outputFiles":"dist/tfjs.esm.js"}
|
||||
2021-05-22 11:27:28 [35mSTATE:[39m Build for: nodeWASM type: node: {"imports":36,"importBytes":418785,"outputBytes":378050,"outputFiles":"dist/human.node-wasm.js"}
|
||||
2021-05-22 11:27:28 [35mSTATE:[39m Build for: browserNoBundle type: tfjs: {"imports":1,"importBytes":2488,"outputBytes":1394,"outputFiles":"dist/tfjs.esm.js"}
|
||||
2021-05-22 11:27:28 [35mSTATE:[39m Build for: browserNoBundle type: esm: {"imports":36,"importBytes":418812,"outputBytes":232243,"outputFiles":"dist/human.esm-nobundle.js"}
|
||||
2021-05-22 11:27:29 [35mSTATE:[39m Build for: browserBundle type: tfjs: {"modules":1274,"moduleBytes":4114813,"imports":7,"importBytes":2488,"outputBytes":1111414,"outputFiles":"dist/tfjs.esm.js"}
|
||||
2021-05-22 11:27:29 [35mSTATE:[39m Build for: browserBundle type: iife: {"imports":36,"importBytes":1528832,"outputBytes":1340104,"outputFiles":"dist/human.js"}
|
||||
2021-05-22 11:27:30 [35mSTATE:[39m Build for: browserBundle type: esm: {"imports":36,"importBytes":1528832,"outputBytes":1340096,"outputFiles":"dist/human.esm.js"}
|
||||
2021-05-22 11:27:30 [36mINFO: [39m Generate types: ["src/human.ts"]
|
||||
2021-05-22 11:27:35 [36mINFO: [39m Update Change log: ["/home/vlado/dev/human/CHANGELOG.md"]
|
||||
2021-05-22 11:27:35 [36mINFO: [39m Generate TypeDocs: ["src/human.ts"]
|
||||
2021-05-22 13:15:16 [36mINFO: [39m @vladmandic/human version 1.9.2
|
||||
2021-05-22 13:15:16 [36mINFO: [39m User: vlado Platform: linux Arch: x64 Node: v16.0.0
|
||||
2021-05-22 13:15:16 [36mINFO: [39m Build: file startup all type: production config: {"minifyWhitespace":true,"minifyIdentifiers":true,"minifySyntax":true}
|
||||
2021-05-22 13:15:16 [35mSTATE:[39m Build for: node type: tfjs: {"imports":1,"importBytes":39,"outputBytes":1292,"outputFiles":"dist/tfjs.esm.js"}
|
||||
2021-05-22 13:15:16 [35mSTATE:[39m Build for: node type: node: {"imports":36,"importBytes":418395,"outputBytes":378042,"outputFiles":"dist/human.node.js"}
|
||||
2021-05-22 13:15:16 [35mSTATE:[39m Build for: nodeGPU type: tfjs: {"imports":1,"importBytes":43,"outputBytes":1300,"outputFiles":"dist/tfjs.esm.js"}
|
||||
2021-05-22 13:15:16 [35mSTATE:[39m Build for: nodeGPU type: node: {"imports":36,"importBytes":418403,"outputBytes":378046,"outputFiles":"dist/human.node-gpu.js"}
|
||||
2021-05-22 13:15:16 [35mSTATE:[39m Build for: nodeWASM type: tfjs: {"imports":1,"importBytes":81,"outputBytes":1367,"outputFiles":"dist/tfjs.esm.js"}
|
||||
2021-05-22 13:15:16 [35mSTATE:[39m Build for: nodeWASM type: node: {"imports":36,"importBytes":418470,"outputBytes":378118,"outputFiles":"dist/human.node-wasm.js"}
|
||||
2021-05-22 13:15:16 [35mSTATE:[39m Build for: browserNoBundle type: tfjs: {"imports":1,"importBytes":2488,"outputBytes":1394,"outputFiles":"dist/tfjs.esm.js"}
|
||||
2021-05-22 13:15:16 [35mSTATE:[39m Build for: browserNoBundle type: esm: {"imports":36,"importBytes":418497,"outputBytes":232255,"outputFiles":"dist/human.esm-nobundle.js"}
|
||||
2021-05-22 13:15:17 [35mSTATE:[39m Build for: browserBundle type: tfjs: {"modules":1274,"moduleBytes":4114813,"imports":7,"importBytes":2488,"outputBytes":1111414,"outputFiles":"dist/tfjs.esm.js"}
|
||||
2021-05-22 13:15:17 [35mSTATE:[39m Build for: browserBundle type: iife: {"imports":36,"importBytes":1528517,"outputBytes":1340115,"outputFiles":"dist/human.js"}
|
||||
2021-05-22 13:15:17 [35mSTATE:[39m Build for: browserBundle type: esm: {"imports":36,"importBytes":1528517,"outputBytes":1340107,"outputFiles":"dist/human.esm.js"}
|
||||
2021-05-22 13:15:17 [36mINFO: [39m Generate types: ["src/human.ts"]
|
||||
2021-05-22 13:15:23 [36mINFO: [39m Update Change log: ["/home/vlado/dev/human/CHANGELOG.md"]
|
||||
2021-05-22 13:15:23 [36mINFO: [39m Generate TypeDocs: ["src/human.ts"]
|
||||
|
|
|
@ -60,11 +60,13 @@ export const options: DrawOptions = {
|
|||
fillPolygons: <Boolean>false,
|
||||
useDepth: <Boolean>true,
|
||||
useCurves: <Boolean>false,
|
||||
bufferedOutput: <Boolean>true,
|
||||
bufferedOutput: <Boolean>false, // not yet implemented
|
||||
useRawBoxes: <Boolean>false,
|
||||
calculateHandBox: <Boolean>true,
|
||||
};
|
||||
|
||||
let bufferedResult: Result;
|
||||
|
||||
function point(ctx, x, y, z = 0, localOptions) {
|
||||
ctx.fillStyle = localOptions.useDepth && z ? `rgba(${127.5 + (2 * z)}, ${127.5 - (2 * z)}, 255, 0.3)` : localOptions.color;
|
||||
ctx.beginPath();
|
||||
|
@ -241,7 +243,6 @@ export async function face(inCanvas: HTMLCanvasElement, result: Array<Face>, dra
|
|||
}
|
||||
}
|
||||
|
||||
const lastDrawnPose:any[] = [];
|
||||
export async function body(inCanvas: HTMLCanvasElement, result: Array<Body>, drawOptions?: DrawOptions) {
|
||||
const localOptions = mergeDeep(options, drawOptions);
|
||||
if (!result || !inCanvas) return;
|
||||
|
@ -250,7 +251,6 @@ export async function body(inCanvas: HTMLCanvasElement, result: Array<Body>, dra
|
|||
if (!ctx) return;
|
||||
ctx.lineJoin = 'round';
|
||||
for (let i = 0; i < result.length; i++) {
|
||||
if (!lastDrawnPose[i] && localOptions.bufferedOutput) lastDrawnPose[i] = { ...result[i] };
|
||||
ctx.strokeStyle = localOptions.color;
|
||||
ctx.fillStyle = localOptions.color;
|
||||
ctx.lineWidth = localOptions.lineWidth;
|
||||
|
@ -272,15 +272,9 @@ export async function body(inCanvas: HTMLCanvasElement, result: Array<Body>, dra
|
|||
if (localOptions.drawPoints) {
|
||||
for (let pt = 0; pt < result[i].keypoints.length; pt++) {
|
||||
ctx.fillStyle = localOptions.useDepth && result[i].keypoints[pt].position.z ? `rgba(${127.5 + (2 * result[i].keypoints[pt].position.z)}, ${127.5 - (2 * result[i].keypoints[pt].position.z)}, 255, 0.5)` : localOptions.color;
|
||||
if (localOptions.bufferedOutput) {
|
||||
lastDrawnPose[i].keypoints[pt][0] = (lastDrawnPose[i].keypoints[pt][0] + result[i].keypoints[pt].position.x) / 2;
|
||||
lastDrawnPose[i].keypoints[pt][1] = (lastDrawnPose[i].keypoints[pt][1] + result[i].keypoints[pt].position.y) / 2;
|
||||
point(ctx, lastDrawnPose[i].keypoints[pt][0], lastDrawnPose[i].keypoints[pt][1], 0, localOptions);
|
||||
} else {
|
||||
point(ctx, result[i].keypoints[pt].position.x, result[i].keypoints[pt].position.y, 0, localOptions);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (localOptions.drawLabels) {
|
||||
ctx.font = localOptions.font;
|
||||
if (result[i].keypoints) {
|
||||
|
@ -486,9 +480,14 @@ export async function all(inCanvas: HTMLCanvasElement, result: Result, drawOptio
|
|||
const localOptions = mergeDeep(options, drawOptions);
|
||||
if (!result || !inCanvas) return;
|
||||
if (!(inCanvas instanceof HTMLCanvasElement)) return;
|
||||
face(inCanvas, result.face, localOptions);
|
||||
body(inCanvas, result.body, localOptions);
|
||||
hand(inCanvas, result.hand, localOptions);
|
||||
gesture(inCanvas, result.gesture, localOptions);
|
||||
object(inCanvas, result.object, localOptions);
|
||||
if (localOptions.bufferedOutput) {
|
||||
if (result.timestamp !== bufferedResult?.timestamp) bufferedResult = result;
|
||||
} else {
|
||||
bufferedResult = result;
|
||||
}
|
||||
face(inCanvas, bufferedResult.face, localOptions);
|
||||
body(inCanvas, bufferedResult.body, localOptions);
|
||||
hand(inCanvas, bufferedResult.hand, localOptions);
|
||||
gesture(inCanvas, bufferedResult.gesture, localOptions);
|
||||
object(inCanvas, bufferedResult.object, localOptions);
|
||||
}
|
||||
|
|
|
@ -77,7 +77,7 @@ export interface Body {
|
|||
part: string,
|
||||
position: { x: number, y: number, z: number },
|
||||
score: number,
|
||||
presence: number,
|
||||
presence?: number,
|
||||
}>
|
||||
}
|
||||
|
||||
|
|
289
test/test.log
289
test/test.log
|
@ -1,169 +1,120 @@
|
|||
2021-05-21 06:52:36 [36mINFO: [39m @vladmandic/human version 1.9.1
|
||||
2021-05-21 06:52:36 [36mINFO: [39m User: vlado Platform: linux Arch: x64 Node: v16.0.0
|
||||
2021-05-21 06:52:36 [36mINFO: [39m tests: ["test-node.js","test-node-gpu.js","test-node-wasm.js"]
|
||||
2021-05-21 06:52:36 [36mINFO: [39m test-node.js start
|
||||
2021-05-21 06:52:37 [35mSTATE:[39m test-node.js passed: create human
|
||||
2021-05-21 06:52:37 [36mINFO: [39m test-node.js human version: 1.9.1
|
||||
2021-05-21 06:52:37 [36mINFO: [39m test-node.js platform: linux x64 agent: NodeJS v16.0.0
|
||||
2021-05-21 06:52:37 [36mINFO: [39m test-node.js tfjs version: 3.6.0
|
||||
2021-05-21 06:52:38 [35mSTATE:[39m test-node.js passed: set backend: tensorflow
|
||||
2021-05-21 06:52:38 [35mSTATE:[39m test-node.js passed: load models
|
||||
2021-05-21 06:52:38 [35mSTATE:[39m test-node.js result: defined models: 13 loaded models: 6
|
||||
2021-05-21 06:52:38 [35mSTATE:[39m test-node.js passed: warmup: none default
|
||||
2021-05-21 06:52:39 [35mSTATE:[39m test-node.js passed: warmup: face default
|
||||
2021-05-21 06:52:39 [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.8246909379959106,"class":"person"} {"score":0.96,"keypoints":5}
|
||||
2021-05-21 06:52:39 [32mDATA: [39m test-node.js result: performance: load: 376 total: 1674
|
||||
2021-05-21 06:52:41 [35mSTATE:[39m test-node.js passed: warmup: body default
|
||||
2021-05-21 06:52:41 [32mDATA: [39m test-node.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 1 {"confidence":1,"age":29.5,"gender":"female"} {"score":0.7261000871658325,"class":"person"} {"score":0.92,"keypoints":17}
|
||||
2021-05-21 06:52:41 [32mDATA: [39m test-node.js result: performance: load: 376 total: 1566
|
||||
2021-05-21 06:52:41 [36mINFO: [39m test-node.js test body variants
|
||||
2021-05-21 06:52:42 [35mSTATE:[39m test-node.js passed: load image: assets/human-sample-body.jpg [1,1200,1200,3]
|
||||
2021-05-21 06:52:43 [35mSTATE:[39m test-node.js passed: detect: assets/human-sample-body.jpg posenet
|
||||
2021-05-21 06:52:43 [32mDATA: [39m test-node.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 1 {"confidence":1} {"score":0.7261000871658325,"class":"person"} {"score":0.91,"keypoints":17}
|
||||
2021-05-21 06:52:43 [32mDATA: [39m test-node.js result: performance: load: 376 total: 1053
|
||||
2021-05-21 06:52:44 [35mSTATE:[39m test-node.js passed: load image: assets/human-sample-body.jpg [1,1200,1200,3]
|
||||
2021-05-21 06:52:45 [35mSTATE:[39m test-node.js passed: detect: assets/human-sample-body.jpg blazepose
|
||||
2021-05-21 06:52:45 [32mDATA: [39m test-node.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 1 {"confidence":1} {"score":0.7261000871658325,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-21 06:52:45 [32mDATA: [39m test-node.js result: performance: load: 376 total: 480
|
||||
2021-05-21 06:52:46 [35mSTATE:[39m test-node.js passed: detect: random default
|
||||
2021-05-21 06:52:46 [32mDATA: [39m test-node.js result: face: 0 body: 1 hand: 0 gesture: 1 object: 0 {} {} {"score":1,"keypoints":39}
|
||||
2021-05-21 06:52:46 [32mDATA: [39m test-node.js result: performance: load: 376 total: 844
|
||||
2021-05-21 06:52:46 [36mINFO: [39m test-node.js test: first instance
|
||||
2021-05-21 06:52:46 [35mSTATE:[39m test-node.js passed: load image: assets/sample-me.jpg [1,700,700,3]
|
||||
2021-05-21 06:52:47 [35mSTATE:[39m test-node.js passed: detect: assets/sample-me.jpg default
|
||||
2021-05-21 06:52:47 [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.6820425987243652,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-21 06:52:47 [32mDATA: [39m test-node.js result: performance: load: 376 total: 1560
|
||||
2021-05-21 06:52:47 [36mINFO: [39m test-node.js test: second instance
|
||||
2021-05-21 06:52:48 [35mSTATE:[39m test-node.js passed: load image: assets/sample-me.jpg [1,700,700,3]
|
||||
2021-05-21 06:52:49 [35mSTATE:[39m test-node.js passed: detect: assets/sample-me.jpg default
|
||||
2021-05-21 06:52:49 [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.6820425987243652,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-21 06:52:49 [32mDATA: [39m test-node.js result: performance: load: 4 total: 1398
|
||||
2021-05-21 06:52:49 [36mINFO: [39m test-node.js test: concurrent
|
||||
2021-05-21 06:52:49 [35mSTATE:[39m test-node.js passed: load image: assets/human-sample-face.jpg [1,256,256,3]
|
||||
2021-05-21 06:52:49 [35mSTATE:[39m test-node.js passed: load image: assets/human-sample-face.jpg [1,256,256,3]
|
||||
2021-05-21 06:52:50 [35mSTATE:[39m test-node.js passed: load image: assets/human-sample-body.jpg [1,1200,1200,3]
|
||||
2021-05-21 06:52:51 [35mSTATE:[39m test-node.js passed: load image: assets/human-sample-body.jpg [1,1200,1200,3]
|
||||
2021-05-21 06:52:57 [35mSTATE:[39m test-node.js passed: detect: assets/human-sample-face.jpg default
|
||||
2021-05-21 06:52:57 [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.8257162570953369,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-21 06:52:57 [32mDATA: [39m test-node.js result: performance: load: 376 total: 5549
|
||||
2021-05-21 06:52:57 [35mSTATE:[39m test-node.js passed: detect: assets/human-sample-face.jpg default
|
||||
2021-05-21 06:52:57 [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.8257162570953369,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-21 06:52:57 [32mDATA: [39m test-node.js result: performance: load: 4 total: 5549
|
||||
2021-05-21 06:52:57 [35mSTATE:[39m test-node.js passed: detect: assets/human-sample-body.jpg default
|
||||
2021-05-21 06:52:57 [32mDATA: [39m test-node.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 1 {"confidence":1,"age":28.5,"gender":"female"} {"score":0.7273815870285034,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-21 06:52:57 [32mDATA: [39m test-node.js result: performance: load: 376 total: 5549
|
||||
2021-05-21 06:52:57 [35mSTATE:[39m test-node.js passed: detect: assets/human-sample-body.jpg default
|
||||
2021-05-21 06:52:57 [32mDATA: [39m test-node.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 1 {"confidence":1,"age":28.5,"gender":"female"} {"score":0.7273815870285034,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-21 06:52:57 [32mDATA: [39m test-node.js result: performance: load: 4 total: 5549
|
||||
2021-05-21 06:52:57 [36mINFO: [39m test-node.js test complete: 19666 ms
|
||||
2021-05-21 06:52:57 [36mINFO: [39m test-node-gpu.js start
|
||||
2021-05-21 06:52:58 [33mWARN: [39m test-node-gpu.js stderr: 2021-05-21 06:52:58.204048: 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-21 06:52:58 [33mWARN: [39m test-node-gpu.js stderr: 2021-05-21 06:52:58.352815: 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-21 06:52:58 [33mWARN: [39m test-node-gpu.js stderr: 2021-05-21 06:52:58.352845: 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-21 06:52:58 [35mSTATE:[39m test-node-gpu.js passed: create human
|
||||
2021-05-21 06:52:58 [36mINFO: [39m test-node-gpu.js human version: 1.9.1
|
||||
2021-05-21 06:52:58 [36mINFO: [39m test-node-gpu.js platform: linux x64 agent: NodeJS v16.0.0
|
||||
2021-05-21 06:52:58 [36mINFO: [39m test-node-gpu.js tfjs version: 3.6.0
|
||||
2021-05-21 06:52:58 [35mSTATE:[39m test-node-gpu.js passed: set backend: tensorflow
|
||||
2021-05-21 06:52:58 [35mSTATE:[39m test-node-gpu.js passed: load models
|
||||
2021-05-21 06:52:58 [35mSTATE:[39m test-node-gpu.js result: defined models: 13 loaded models: 6
|
||||
2021-05-21 06:52:58 [35mSTATE:[39m test-node-gpu.js passed: warmup: none default
|
||||
2021-05-21 06:53:00 [35mSTATE:[39m test-node-gpu.js passed: warmup: face default
|
||||
2021-05-21 06:53:00 [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.8246909379959106,"class":"person"} {"score":0.96,"keypoints":5}
|
||||
2021-05-21 06:53:00 [32mDATA: [39m test-node-gpu.js result: performance: load: 312 total: 1787
|
||||
2021-05-21 06:53:02 [35mSTATE:[39m test-node-gpu.js passed: warmup: body default
|
||||
2021-05-21 06:53:02 [32mDATA: [39m test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 1 {"confidence":1,"age":29.5,"gender":"female"} {"score":0.7261000871658325,"class":"person"} {"score":0.92,"keypoints":17}
|
||||
2021-05-21 06:53:02 [32mDATA: [39m test-node-gpu.js result: performance: load: 312 total: 1600
|
||||
2021-05-21 06:53:02 [36mINFO: [39m test-node-gpu.js test body variants
|
||||
2021-05-21 06:53:03 [35mSTATE:[39m test-node-gpu.js passed: load image: assets/human-sample-body.jpg [1,1200,1200,3]
|
||||
2021-05-21 06:53:04 [35mSTATE:[39m test-node-gpu.js passed: detect: assets/human-sample-body.jpg posenet
|
||||
2021-05-21 06:53:04 [32mDATA: [39m test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 1 {"confidence":1} {"score":0.7261000871658325,"class":"person"} {"score":0.91,"keypoints":17}
|
||||
2021-05-21 06:53:04 [32mDATA: [39m test-node-gpu.js result: performance: load: 312 total: 1012
|
||||
2021-05-21 06:53:05 [35mSTATE:[39m test-node-gpu.js passed: load image: assets/human-sample-body.jpg [1,1200,1200,3]
|
||||
2021-05-21 06:53:05 [35mSTATE:[39m test-node-gpu.js passed: detect: assets/human-sample-body.jpg blazepose
|
||||
2021-05-21 06:53:05 [32mDATA: [39m test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 1 {"confidence":1} {"score":0.7261000871658325,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-21 06:53:05 [32mDATA: [39m test-node-gpu.js result: performance: load: 312 total: 469
|
||||
2021-05-21 06:53:06 [35mSTATE:[39m test-node-gpu.js passed: detect: random default
|
||||
2021-05-21 06:53:06 [32mDATA: [39m test-node-gpu.js result: face: 0 body: 1 hand: 0 gesture: 1 object: 1 {} {"score":0.7261000871658325,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-21 06:53:06 [32mDATA: [39m test-node-gpu.js result: performance: load: 312 total: 198
|
||||
2021-05-21 06:53:06 [36mINFO: [39m test-node-gpu.js test: first instance
|
||||
2021-05-21 06:53:06 [35mSTATE:[39m test-node-gpu.js passed: load image: assets/sample-me.jpg [1,700,700,3]
|
||||
2021-05-21 06:53:06 [35mSTATE:[39m test-node-gpu.js passed: detect: assets/sample-me.jpg default
|
||||
2021-05-21 06:53:06 [32mDATA: [39m test-node-gpu.js result: face: 0 body: 1 hand: 0 gesture: 1 object: 1 {} {"score":0.7261000871658325,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-21 06:53:06 [32mDATA: [39m test-node-gpu.js result: performance: load: 312 total: 184
|
||||
2021-05-21 06:53:06 [36mINFO: [39m test-node-gpu.js test: second instance
|
||||
2021-05-21 06:53:07 [35mSTATE:[39m test-node-gpu.js passed: load image: assets/sample-me.jpg [1,700,700,3]
|
||||
2021-05-21 06:53:08 [35mSTATE:[39m test-node-gpu.js passed: detect: assets/sample-me.jpg default
|
||||
2021-05-21 06:53:08 [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.6820425987243652,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-21 06:53:08 [32mDATA: [39m test-node-gpu.js result: performance: load: 2 total: 1498
|
||||
2021-05-21 06:53:08 [36mINFO: [39m test-node-gpu.js test: concurrent
|
||||
2021-05-21 06:53:08 [35mSTATE:[39m test-node-gpu.js passed: load image: assets/human-sample-face.jpg [1,256,256,3]
|
||||
2021-05-21 06:53:08 [35mSTATE:[39m test-node-gpu.js passed: load image: assets/human-sample-face.jpg [1,256,256,3]
|
||||
2021-05-21 06:53:09 [35mSTATE:[39m test-node-gpu.js passed: load image: assets/human-sample-body.jpg [1,1200,1200,3]
|
||||
2021-05-21 06:53:10 [35mSTATE:[39m test-node-gpu.js passed: load image: assets/human-sample-body.jpg [1,1200,1200,3]
|
||||
2021-05-21 06:53:16 [35mSTATE:[39m test-node-gpu.js passed: detect: assets/human-sample-face.jpg default
|
||||
2021-05-21 06:53:16 [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.8257162570953369,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-21 06:53:16 [32mDATA: [39m test-node-gpu.js result: performance: load: 312 total: 5825
|
||||
2021-05-21 06:53:16 [35mSTATE:[39m test-node-gpu.js passed: detect: assets/human-sample-face.jpg default
|
||||
2021-05-21 06:53:16 [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.8257162570953369,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-21 06:53:16 [32mDATA: [39m test-node-gpu.js result: performance: load: 2 total: 5825
|
||||
2021-05-21 06:53:16 [35mSTATE:[39m test-node-gpu.js passed: detect: assets/human-sample-body.jpg default
|
||||
2021-05-21 06:53:16 [32mDATA: [39m test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 1 {"confidence":1,"age":28.5,"gender":"female"} {"score":0.7273815870285034,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-21 06:53:16 [32mDATA: [39m test-node-gpu.js result: performance: load: 312 total: 5825
|
||||
2021-05-21 06:53:16 [35mSTATE:[39m test-node-gpu.js passed: detect: assets/human-sample-body.jpg default
|
||||
2021-05-21 06:53:16 [32mDATA: [39m test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 1 {"confidence":1,"age":28.5,"gender":"female"} {"score":0.7273815870285034,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-21 06:53:16 [32mDATA: [39m test-node-gpu.js result: performance: load: 2 total: 5825
|
||||
2021-05-21 06:53:16 [36mINFO: [39m test-node-gpu.js test complete: 18032 ms
|
||||
2021-05-21 06:53:16 [36mINFO: [39m test-node-wasm.js start
|
||||
2021-05-21 06:53:16 [35mSTATE:[39m test-node-wasm.js passed: model server: http://localhost:10030/models/
|
||||
2021-05-21 06:53:16 [35mSTATE:[39m test-node-wasm.js passed: create human
|
||||
2021-05-21 06:53:16 [36mINFO: [39m test-node-wasm.js human version: 1.9.1
|
||||
2021-05-21 06:53:16 [36mINFO: [39m test-node-wasm.js platform: linux x64 agent: NodeJS v16.0.0
|
||||
2021-05-21 06:53:16 [36mINFO: [39m test-node-wasm.js tfjs version: 3.6.0
|
||||
2021-05-21 06:53:17 [35mSTATE:[39m test-node-wasm.js passed: set backend: wasm
|
||||
2021-05-21 06:53:17 [35mSTATE:[39m test-node-wasm.js passed: load models
|
||||
2021-05-21 06:53:17 [35mSTATE:[39m test-node-wasm.js result: defined models: 13 loaded models: 5
|
||||
2021-05-21 06:53:17 [35mSTATE:[39m test-node-wasm.js passed: warmup: none default
|
||||
2021-05-21 06:53:17 [31mERROR:[39m test-node-wasm.js failed: warmup: face default
|
||||
2021-05-21 06:53:17 [31mERROR:[39m test-node-wasm.js failed: warmup: body default
|
||||
2021-05-21 06:53:17 [36mINFO: [39m test-node-wasm.js test body variants
|
||||
2021-05-21 06:53:19 [35mSTATE:[39m test-node-wasm.js passed: load image: assets/human-sample-body.jpg [1,1200,1200,3]
|
||||
2021-05-21 06:53:23 [35mSTATE:[39m test-node-wasm.js passed: detect: assets/human-sample-body.jpg posenet
|
||||
2021-05-21 06:53: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":0.91,"keypoints":17}
|
||||
2021-05-21 06:53:23 [32mDATA: [39m test-node-wasm.js result: performance: load: 859 total: 3195
|
||||
2021-05-21 06:53:25 [35mSTATE:[39m test-node-wasm.js passed: load image: assets/human-sample-body.jpg [1,1200,1200,3]
|
||||
2021-05-21 06:53:27 [35mSTATE:[39m test-node-wasm.js passed: detect: assets/human-sample-body.jpg blazepose
|
||||
2021-05-21 06:53:27 [32mDATA: [39m test-node-wasm.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 0 {"confidence":1} {} {"score":1,"keypoints":39}
|
||||
2021-05-21 06:53:27 [32mDATA: [39m test-node-wasm.js result: performance: load: 859 total: 2390
|
||||
2021-05-21 06:53:28 [35mSTATE:[39m test-node-wasm.js passed: detect: random default
|
||||
2021-05-21 06:53:28 [32mDATA: [39m test-node-wasm.js result: face: 0 body: 1 hand: 0 gesture: 1 object: 0 {} {} {"score":1,"keypoints":39}
|
||||
2021-05-21 06:53:28 [32mDATA: [39m test-node-wasm.js result: performance: load: 859 total: 385
|
||||
2021-05-21 06:53:28 [36mINFO: [39m test-node-wasm.js test: first instance
|
||||
2021-05-21 06:53:28 [35mSTATE:[39m test-node-wasm.js passed: load image: assets/sample-me.jpg [1,700,700,3]
|
||||
2021-05-21 06:53:29 [35mSTATE:[39m test-node-wasm.js passed: detect: assets/sample-me.jpg default
|
||||
2021-05-21 06:53:29 [32mDATA: [39m test-node-wasm.js result: face: 0 body: 1 hand: 0 gesture: 1 object: 0 {} {} {"score":1,"keypoints":39}
|
||||
2021-05-21 06:53:29 [32mDATA: [39m test-node-wasm.js result: performance: load: 859 total: 308
|
||||
2021-05-21 06:53:29 [36mINFO: [39m test-node-wasm.js test: second instance
|
||||
2021-05-21 06:53:29 [35mSTATE:[39m test-node-wasm.js passed: load image: assets/sample-me.jpg [1,700,700,3]
|
||||
2021-05-21 06:53:32 [35mSTATE:[39m test-node-wasm.js passed: detect: assets/sample-me.jpg default
|
||||
2021-05-21 06:53:32 [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-21 06:53:32 [32mDATA: [39m test-node-wasm.js result: performance: load: 3 total: 2456
|
||||
2021-05-21 06:53:32 [36mINFO: [39m test-node-wasm.js test: concurrent
|
||||
2021-05-21 06:53:32 [35mSTATE:[39m test-node-wasm.js passed: load image: assets/human-sample-face.jpg [1,256,256,3]
|
||||
2021-05-21 06:53:32 [35mSTATE:[39m test-node-wasm.js passed: load image: assets/human-sample-face.jpg [1,256,256,3]
|
||||
2021-05-21 06:53:34 [35mSTATE:[39m test-node-wasm.js passed: load image: assets/human-sample-body.jpg [1,1200,1200,3]
|
||||
2021-05-21 06:53:36 [35mSTATE:[39m test-node-wasm.js passed: load image: assets/human-sample-body.jpg [1,1200,1200,3]
|
||||
2021-05-21 06:53:45 [35mSTATE:[39m test-node-wasm.js passed: detect: assets/human-sample-face.jpg default
|
||||
2021-05-21 06:53:45 [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-21 06:53:45 [32mDATA: [39m test-node-wasm.js result: performance: load: 859 total: 9357
|
||||
2021-05-21 06:53:45 [35mSTATE:[39m test-node-wasm.js passed: detect: assets/human-sample-face.jpg default
|
||||
2021-05-21 06:53:45 [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-21 06:53:45 [32mDATA: [39m test-node-wasm.js result: performance: load: 3 total: 9357
|
||||
2021-05-21 06:53:45 [35mSTATE:[39m test-node-wasm.js passed: detect: assets/human-sample-body.jpg default
|
||||
2021-05-21 06:53:45 [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-21 06:53:45 [32mDATA: [39m test-node-wasm.js result: performance: load: 859 total: 9357
|
||||
2021-05-21 06:53:45 [35mSTATE:[39m test-node-wasm.js passed: detect: assets/human-sample-body.jpg default
|
||||
2021-05-21 06:53:45 [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-21 06:53:45 [32mDATA: [39m test-node-wasm.js result: performance: load: 3 total: 9357
|
||||
2021-05-21 06:53:45 [36mINFO: [39m test-node-wasm.js test complete: 28592 ms
|
||||
2021-05-21 06:53:45 [36mINFO: [39m status: {"passed":68,"failed":2}
|
||||
2021-05-22 13:15:45 [36mINFO: [39m @vladmandic/human version 1.9.2
|
||||
2021-05-22 13:15:45 [36mINFO: [39m User: vlado Platform: linux Arch: x64 Node: v16.0.0
|
||||
2021-05-22 13:15:45 [36mINFO: [39m tests: ["test-node.js","test-node-gpu.js","test-node-wasm.js"]
|
||||
2021-05-22 13:15:45 [36mINFO: [39m test-node.js start
|
||||
2021-05-22 13:15:47 [35mSTATE:[39m test-node.js passed: create human
|
||||
2021-05-22 13:15:47 [36mINFO: [39m test-node.js human version: 1.9.2
|
||||
2021-05-22 13:15:47 [36mINFO: [39m test-node.js platform: linux x64 agent: NodeJS v16.0.0
|
||||
2021-05-22 13:15:47 [36mINFO: [39m test-node.js tfjs version: 3.6.0
|
||||
2021-05-22 13:15:48 [35mSTATE:[39m test-node.js passed: set backend: tensorflow
|
||||
2021-05-22 13:15:48 [35mSTATE:[39m test-node.js passed: load models
|
||||
2021-05-22 13:15:48 [35mSTATE:[39m test-node.js result: defined models: 13 loaded models: 6
|
||||
2021-05-22 13:15:48 [35mSTATE:[39m test-node.js passed: warmup: none default
|
||||
2021-05-22 13:15:49 [35mSTATE:[39m test-node.js passed: warmup: face default
|
||||
2021-05-22 13:15:49 [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.8246909379959106,"class":"person"} {"score":0.96,"keypoints":5}
|
||||
2021-05-22 13:15:49 [32mDATA: [39m test-node.js result: performance: load: 316 total: 1750
|
||||
2021-05-22 13:15:51 [35mSTATE:[39m test-node.js passed: warmup: body default
|
||||
2021-05-22 13:15:51 [32mDATA: [39m test-node.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 1 {"confidence":1,"age":29.5,"gender":"female"} {"score":0.7261000871658325,"class":"person"} {"score":0.92,"keypoints":17}
|
||||
2021-05-22 13:15:51 [32mDATA: [39m test-node.js result: performance: load: 316 total: 1623
|
||||
2021-05-22 13:15:51 [36mINFO: [39m test-node.js test body variants
|
||||
2021-05-22 13:15:52 [35mSTATE:[39m test-node.js passed: load image: assets/human-sample-body.jpg [1,1200,1200,3]
|
||||
2021-05-22 13:15:53 [35mSTATE:[39m test-node.js passed: detect: assets/human-sample-body.jpg posenet
|
||||
2021-05-22 13:15:53 [32mDATA: [39m test-node.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 1 {"confidence":1} {"score":0.7261000871658325,"class":"person"} {"score":0.91,"keypoints":17}
|
||||
2021-05-22 13:15:53 [32mDATA: [39m test-node.js result: performance: load: 316 total: 986
|
||||
2021-05-22 13:15:54 [35mSTATE:[39m test-node.js passed: load image: assets/human-sample-body.jpg [1,1200,1200,3]
|
||||
2021-05-22 13:15:55 [35mSTATE:[39m test-node.js passed: detect: assets/human-sample-body.jpg blazepose
|
||||
2021-05-22 13:15:55 [32mDATA: [39m test-node.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 1 {"confidence":1} {"score":0.7261000871658325,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-22 13:15:55 [32mDATA: [39m test-node.js result: performance: load: 316 total: 447
|
||||
2021-05-22 13:15:56 [35mSTATE:[39m test-node.js passed: detect: random default
|
||||
2021-05-22 13:15:56 [32mDATA: [39m test-node.js result: face: 0 body: 1 hand: 0 gesture: 1 object: 0 {} {} {"score":1,"keypoints":39}
|
||||
2021-05-22 13:15:56 [32mDATA: [39m test-node.js result: performance: load: 316 total: 855
|
||||
2021-05-22 13:15:56 [36mINFO: [39m test-node.js test: first instance
|
||||
2021-05-22 13:15:56 [35mSTATE:[39m test-node.js passed: load image: assets/sample-me.jpg [1,700,700,3]
|
||||
2021-05-22 13:15:58 [35mSTATE:[39m test-node.js passed: detect: assets/sample-me.jpg default
|
||||
2021-05-22 13:15:58 [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.6820425987243652,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-22 13:15:58 [32mDATA: [39m test-node.js result: performance: load: 316 total: 1698
|
||||
2021-05-22 13:15:58 [36mINFO: [39m test-node.js test: second instance
|
||||
2021-05-22 13:15:58 [35mSTATE:[39m test-node.js passed: load image: assets/sample-me.jpg [1,700,700,3]
|
||||
2021-05-22 13:16:00 [35mSTATE:[39m test-node.js passed: detect: assets/sample-me.jpg default
|
||||
2021-05-22 13:16:00 [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.6820425987243652,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-22 13:16:00 [32mDATA: [39m test-node.js result: performance: load: 6 total: 1565
|
||||
2021-05-22 13:16:00 [36mINFO: [39m test-node.js test: concurrent
|
||||
2021-05-22 13:16:00 [35mSTATE:[39m test-node.js passed: load image: assets/human-sample-face.jpg [1,256,256,3]
|
||||
2021-05-22 13:16:00 [35mSTATE:[39m test-node.js passed: load image: assets/human-sample-face.jpg [1,256,256,3]
|
||||
2021-05-22 13:16:01 [35mSTATE:[39m test-node.js passed: load image: assets/human-sample-body.jpg [1,1200,1200,3]
|
||||
2021-05-22 13:16:02 [35mSTATE:[39m test-node.js passed: load image: assets/human-sample-body.jpg [1,1200,1200,3]
|
||||
2021-05-22 13:16:08 [35mSTATE:[39m test-node.js passed: detect: assets/human-sample-face.jpg default
|
||||
2021-05-22 13:16:08 [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.8257162570953369,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-22 13:16:08 [32mDATA: [39m test-node.js result: performance: load: 316 total: 5968
|
||||
2021-05-22 13:16:08 [35mSTATE:[39m test-node.js passed: detect: assets/human-sample-face.jpg default
|
||||
2021-05-22 13:16:08 [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.8257162570953369,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-22 13:16:08 [32mDATA: [39m test-node.js result: performance: load: 6 total: 5968
|
||||
2021-05-22 13:16:08 [35mSTATE:[39m test-node.js passed: detect: assets/human-sample-body.jpg default
|
||||
2021-05-22 13:16:08 [32mDATA: [39m test-node.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 1 {"confidence":1,"age":28.5,"gender":"female"} {"score":0.7273815870285034,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-22 13:16:08 [32mDATA: [39m test-node.js result: performance: load: 316 total: 5968
|
||||
2021-05-22 13:16:08 [35mSTATE:[39m test-node.js passed: detect: assets/human-sample-body.jpg default
|
||||
2021-05-22 13:16:08 [32mDATA: [39m test-node.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 1 {"confidence":1,"age":28.5,"gender":"female"} {"score":0.7273815870285034,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-22 13:16:08 [32mDATA: [39m test-node.js result: performance: load: 6 total: 5968
|
||||
2021-05-22 13:16:08 [36mINFO: [39m test-node.js test complete: 20457 ms
|
||||
2021-05-22 13:16:08 [36mINFO: [39m test-node-gpu.js start
|
||||
2021-05-22 13:16:09 [33mWARN: [39m test-node-gpu.js stderr: 2021-05-22 13:16:09.343674: 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-22 13:16:09 [33mWARN: [39m test-node-gpu.js stderr: 2021-05-22 13:16:09.549356: 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-22 13:16:09 [33mWARN: [39m test-node-gpu.js stderr: 2021-05-22 13:16:09.549556: 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-22 13:16:09 [35mSTATE:[39m test-node-gpu.js passed: create human
|
||||
2021-05-22 13:16:09 [36mINFO: [39m test-node-gpu.js human version: 1.9.2
|
||||
2021-05-22 13:16:09 [36mINFO: [39m test-node-gpu.js platform: linux x64 agent: NodeJS v16.0.0
|
||||
2021-05-22 13:16:09 [36mINFO: [39m test-node-gpu.js tfjs version: 3.6.0
|
||||
2021-05-22 13:16:10 [35mSTATE:[39m test-node-gpu.js passed: set backend: tensorflow
|
||||
2021-05-22 13:16:10 [35mSTATE:[39m test-node-gpu.js passed: load models
|
||||
2021-05-22 13:16:10 [35mSTATE:[39m test-node-gpu.js result: defined models: 13 loaded models: 6
|
||||
2021-05-22 13:16:10 [35mSTATE:[39m test-node-gpu.js passed: warmup: none default
|
||||
2021-05-22 13:16:11 [35mSTATE:[39m test-node-gpu.js passed: warmup: face default
|
||||
2021-05-22 13:16:11 [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.8246909379959106,"class":"person"} {"score":0.96,"keypoints":5}
|
||||
2021-05-22 13:16:11 [32mDATA: [39m test-node-gpu.js result: performance: load: 349 total: 1851
|
||||
2021-05-22 13:16:13 [35mSTATE:[39m test-node-gpu.js passed: warmup: body default
|
||||
2021-05-22 13:16:13 [32mDATA: [39m test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 1 {"confidence":1,"age":29.5,"gender":"female"} {"score":0.7261000871658325,"class":"person"} {"score":0.92,"keypoints":17}
|
||||
2021-05-22 13:16:13 [32mDATA: [39m test-node-gpu.js result: performance: load: 349 total: 1702
|
||||
2021-05-22 13:16:13 [36mINFO: [39m test-node-gpu.js test body variants
|
||||
2021-05-22 13:16:14 [35mSTATE:[39m test-node-gpu.js passed: load image: assets/human-sample-body.jpg [1,1200,1200,3]
|
||||
2021-05-22 13:16:15 [35mSTATE:[39m test-node-gpu.js passed: detect: assets/human-sample-body.jpg posenet
|
||||
2021-05-22 13:16:15 [32mDATA: [39m test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 1 {"confidence":1} {"score":0.7261000871658325,"class":"person"} {"score":0.91,"keypoints":17}
|
||||
2021-05-22 13:16:15 [32mDATA: [39m test-node-gpu.js result: performance: load: 349 total: 1075
|
||||
2021-05-22 13:16:16 [35mSTATE:[39m test-node-gpu.js passed: load image: assets/human-sample-body.jpg [1,1200,1200,3]
|
||||
2021-05-22 13:16:17 [35mSTATE:[39m test-node-gpu.js passed: detect: assets/human-sample-body.jpg blazepose
|
||||
2021-05-22 13:16:17 [32mDATA: [39m test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 1 {"confidence":1} {"score":0.7261000871658325,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-22 13:16:17 [32mDATA: [39m test-node-gpu.js result: performance: load: 349 total: 403
|
||||
2021-05-22 13:16:18 [35mSTATE:[39m test-node-gpu.js passed: detect: random default
|
||||
2021-05-22 13:16:18 [32mDATA: [39m test-node-gpu.js result: face: 0 body: 1 hand: 0 gesture: 1 object: 0 {} {} {"score":1,"keypoints":39}
|
||||
2021-05-22 13:16:18 [32mDATA: [39m test-node-gpu.js result: performance: load: 349 total: 865
|
||||
2021-05-22 13:16:18 [36mINFO: [39m test-node-gpu.js test: first instance
|
||||
2021-05-22 13:16:18 [35mSTATE:[39m test-node-gpu.js passed: load image: assets/sample-me.jpg [1,700,700,3]
|
||||
2021-05-22 13:16:20 [35mSTATE:[39m test-node-gpu.js passed: detect: assets/sample-me.jpg default
|
||||
2021-05-22 13:16:20 [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.6820425987243652,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-22 13:16:20 [32mDATA: [39m test-node-gpu.js result: performance: load: 349 total: 1689
|
||||
2021-05-22 13:16:20 [36mINFO: [39m test-node-gpu.js test: second instance
|
||||
2021-05-22 13:16:20 [35mSTATE:[39m test-node-gpu.js passed: load image: assets/sample-me.jpg [1,700,700,3]
|
||||
2021-05-22 13:16:22 [35mSTATE:[39m test-node-gpu.js passed: detect: assets/sample-me.jpg default
|
||||
2021-05-22 13:16:22 [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.6820425987243652,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-22 13:16:22 [32mDATA: [39m test-node-gpu.js result: performance: load: 4 total: 1609
|
||||
2021-05-22 13:16:22 [36mINFO: [39m test-node-gpu.js test: concurrent
|
||||
2021-05-22 13:16:22 [35mSTATE:[39m test-node-gpu.js passed: load image: assets/human-sample-face.jpg [1,256,256,3]
|
||||
2021-05-22 13:16:22 [35mSTATE:[39m test-node-gpu.js passed: load image: assets/human-sample-face.jpg [1,256,256,3]
|
||||
2021-05-22 13:16:23 [35mSTATE:[39m test-node-gpu.js passed: load image: assets/human-sample-body.jpg [1,1200,1200,3]
|
||||
2021-05-22 13:16:24 [35mSTATE:[39m test-node-gpu.js passed: load image: assets/human-sample-body.jpg [1,1200,1200,3]
|
||||
2021-05-22 13:16:30 [35mSTATE:[39m test-node-gpu.js passed: detect: assets/human-sample-face.jpg default
|
||||
2021-05-22 13:16:30 [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.8257162570953369,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-22 13:16:30 [32mDATA: [39m test-node-gpu.js result: performance: load: 349 total: 6142
|
||||
2021-05-22 13:16:30 [35mSTATE:[39m test-node-gpu.js passed: detect: assets/human-sample-face.jpg default
|
||||
2021-05-22 13:16:30 [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.8257162570953369,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-22 13:16:30 [32mDATA: [39m test-node-gpu.js result: performance: load: 4 total: 6142
|
||||
2021-05-22 13:16:30 [35mSTATE:[39m test-node-gpu.js passed: detect: assets/human-sample-body.jpg default
|
||||
2021-05-22 13:16:30 [32mDATA: [39m test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 1 {"confidence":1,"age":28.5,"gender":"female"} {"score":0.7273815870285034,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-22 13:16:30 [32mDATA: [39m test-node-gpu.js result: performance: load: 349 total: 6142
|
||||
2021-05-22 13:16:30 [35mSTATE:[39m test-node-gpu.js passed: detect: assets/human-sample-body.jpg default
|
||||
2021-05-22 13:16:30 [32mDATA: [39m test-node-gpu.js result: face: 1 body: 1 hand: 0 gesture: 3 object: 1 {"confidence":1,"age":28.5,"gender":"female"} {"score":0.7273815870285034,"class":"person"} {"score":1,"keypoints":39}
|
||||
2021-05-22 13:16:30 [32mDATA: [39m test-node-gpu.js result: performance: load: 4 total: 6142
|
||||
2021-05-22 13:16:30 [36mINFO: [39m test-node-gpu.js test complete: 20887 ms
|
||||
2021-05-22 13:16:30 [36mINFO: [39m test-node-wasm.js start
|
||||
2021-05-22 13:16:30 [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-22 13:16:30 [31mERROR:[39m test-node-wasm.js aborting test
|
||||
2021-05-22 13:16:31 [36mINFO: [39m status: {"passed":46,"failed":1}
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -875,7 +875,7 @@
|
|||
<a href="../interfaces/hand.html" class="tsd-kind-icon">Hand</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/object.html" class="tsd-kind-icon">Object</a>
|
||||
<a href="../interfaces/item.html" class="tsd-kind-icon">Item</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="../interfaces/result.html" class="tsd-kind-icon">Result</a>
|
||||
|
|
|
@ -79,7 +79,7 @@
|
|||
<li class="tsd-kind-interface"><a href="interfaces/drawoptions.html" class="tsd-kind-icon">Draw<wbr>Options</a></li>
|
||||
<li class="tsd-kind-interface"><a href="interfaces/face.html" class="tsd-kind-icon">Face</a></li>
|
||||
<li class="tsd-kind-interface"><a href="interfaces/hand.html" class="tsd-kind-icon">Hand</a></li>
|
||||
<li class="tsd-kind-interface"><a href="interfaces/object.html" class="tsd-kind-icon">Object</a></li>
|
||||
<li class="tsd-kind-interface"><a href="interfaces/item.html" class="tsd-kind-icon">Item</a></li>
|
||||
<li class="tsd-kind-interface"><a href="interfaces/result.html" class="tsd-kind-icon">Result</a></li>
|
||||
</ul>
|
||||
</section>
|
||||
|
@ -214,7 +214,7 @@
|
|||
<a href="interfaces/hand.html" class="tsd-kind-icon">Hand</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="interfaces/object.html" class="tsd-kind-icon">Object</a>
|
||||
<a href="interfaces/item.html" class="tsd-kind-icon">Item</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="interfaces/result.html" class="tsd-kind-icon">Result</a>
|
||||
|
|
|
@ -71,9 +71,10 @@
|
|||
<p>Array of individual results with one object per detected body
|
||||
Each results has:</p>
|
||||
<ul>
|
||||
<li>body id number</li>
|
||||
<li>id:body id number</li>
|
||||
<li>score: overall detection score</li>
|
||||
<li>box bounding box: x, y, width, height</li>
|
||||
<li>box: bounding box: x, y, width, height normalized to input image resolution</li>
|
||||
<li>boxRaw: bounding box: x, y, width, height normalized to 0..1</li>
|
||||
<li>keypoints: array of keypoints</li>
|
||||
<li>part: body part name</li>
|
||||
<li>position: body part position with x,y,z coordinates</li>
|
||||
|
@ -98,6 +99,7 @@
|
|||
<h3>Properties</h3>
|
||||
<ul class="tsd-index-list">
|
||||
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="body.html#box" class="tsd-kind-icon">box</a></li>
|
||||
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="body.html#boxraw" class="tsd-kind-icon">box<wbr>Raw</a></li>
|
||||
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="body.html#id" class="tsd-kind-icon">id</a></li>
|
||||
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="body.html#keypoints" class="tsd-kind-icon">keypoints</a></li>
|
||||
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="body.html#score" class="tsd-kind-icon">score</a></li>
|
||||
|
@ -110,11 +112,18 @@
|
|||
<h2>Properties</h2>
|
||||
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
|
||||
<a name="box" class="tsd-anchor"></a>
|
||||
<h3>box</h3>
|
||||
<h3><span class="tsd-flag ts-flagOptional">Optional</span> box</h3>
|
||||
<div class="tsd-signature tsd-kind-icon">box<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">[</span>x<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span>y<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span>width<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span>height<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">]</span></div>
|
||||
<aside class="tsd-sources">
|
||||
</aside>
|
||||
</section>
|
||||
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
|
||||
<a name="boxraw" class="tsd-anchor"></a>
|
||||
<h3><span class="tsd-flag ts-flagOptional">Optional</span> box<wbr>Raw</h3>
|
||||
<div class="tsd-signature tsd-kind-icon">box<wbr>Raw<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">[</span>x<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span>y<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span>width<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span>height<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">]</span></div>
|
||||
<aside class="tsd-sources">
|
||||
</aside>
|
||||
</section>
|
||||
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
|
||||
<a name="id" class="tsd-anchor"></a>
|
||||
<h3>id</h3>
|
||||
|
@ -125,7 +134,7 @@
|
|||
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
|
||||
<a name="keypoints" class="tsd-anchor"></a>
|
||||
<h3>keypoints</h3>
|
||||
<div class="tsd-signature tsd-kind-icon">keypoints<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span>part<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>position<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>x<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span>y<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span>z<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">; </span>presence<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span>score<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">[]</span></div>
|
||||
<div class="tsd-signature tsd-kind-icon">keypoints<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span>part<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>position<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>x<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span>y<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span>z<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">; </span>presence<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span>score<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">[]</span></div>
|
||||
<aside class="tsd-sources">
|
||||
</aside>
|
||||
</section>
|
||||
|
@ -162,6 +171,9 @@
|
|||
<li class=" tsd-kind-property tsd-parent-kind-interface">
|
||||
<a href="body.html#box" class="tsd-kind-icon">box</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-property tsd-parent-kind-interface">
|
||||
<a href="body.html#boxraw" class="tsd-kind-icon">box<wbr>Raw</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-property tsd-parent-kind-interface">
|
||||
<a href="body.html#id" class="tsd-kind-icon">id</a>
|
||||
</li>
|
||||
|
@ -188,7 +200,7 @@
|
|||
<a href="hand.html" class="tsd-kind-icon">Hand</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="object.html" class="tsd-kind-icon">Object</a>
|
||||
<a href="item.html" class="tsd-kind-icon">Item</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="result.html" class="tsd-kind-icon">Result</a>
|
||||
|
|
|
@ -722,7 +722,7 @@
|
|||
<a href="hand.html" class="tsd-kind-icon">Hand</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="object.html" class="tsd-kind-icon">Object</a>
|
||||
<a href="item.html" class="tsd-kind-icon">Item</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="result.html" class="tsd-kind-icon">Result</a>
|
||||
|
|
|
@ -348,7 +348,7 @@
|
|||
<a href="hand.html" class="tsd-kind-icon">Hand</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="object.html" class="tsd-kind-icon">Object</a>
|
||||
<a href="item.html" class="tsd-kind-icon">Item</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="result.html" class="tsd-kind-icon">Result</a>
|
||||
|
|
|
@ -73,21 +73,25 @@
|
|||
<p>Array of individual results with one object per detected face
|
||||
Each result has:</p>
|
||||
<ul>
|
||||
<li>overal detection confidence value</li>
|
||||
<li>box detection confidence value</li>
|
||||
<li>mesh detection confidence value</li>
|
||||
<li>box as array of [x, y, width, height], normalized to image resolution</li>
|
||||
<li>boxRaw as array of [x, y, width, height], normalized to range 0..1</li>
|
||||
<li>mesh as array of [x, y, z] points of face mesh, normalized to image resolution</li>
|
||||
<li>meshRaw as array of [x, y, z] points of face mesh, normalized to range 0..1</li>
|
||||
<li>annotations as array of annotated face mesh points</li>
|
||||
<li>age as value</li>
|
||||
<li>gender as value</li>
|
||||
<li>genderConfidence as value</li>
|
||||
<li>emotion as array of possible emotions with their individual scores</li>
|
||||
<li>iris as distance value</li>
|
||||
<li>angle as object with values for roll, yaw and pitch angles</li>
|
||||
<li>tensor as Tensor object which contains detected face</li>
|
||||
<li>id: face number</li>
|
||||
<li>confidence: overal detection confidence value</li>
|
||||
<li>boxConfidence: face box detection confidence value</li>
|
||||
<li>faceConfidence: face keypoints detection confidence value</li>
|
||||
<li>box: face bounding box as array of [x, y, width, height], normalized to image resolution</li>
|
||||
<li>boxRaw: face bounding box as array of [x, y, width, height], normalized to range 0..1</li>
|
||||
<li>mesh: face keypoints as array of [x, y, z] points of face mesh, normalized to image resolution</li>
|
||||
<li>meshRaw: face keypoints as array of [x, y, z] points of face mesh, normalized to range 0..1</li>
|
||||
<li>annotations: annotated face keypoints as array of annotated face mesh points</li>
|
||||
<li>age: age as value</li>
|
||||
<li>gender: gender as value</li>
|
||||
<li>genderConfidence: gender detection confidence as value</li>
|
||||
<li>emotion: emotions as array of possible emotions with their individual scores</li>
|
||||
<li>embedding: facial descriptor as array of numerical elements</li>
|
||||
<li>iris: iris distance from current viewpoint as distance value</li>
|
||||
<li>rotation: face rotiation that contains both angles and matrix used for 3d transformations</li>
|
||||
<li>angle: face angle as object with values for roll, yaw and pitch angles</li>
|
||||
<li>matrix: 3d transofrmation matrix as array of numeric values</li>
|
||||
<li>tensor: face tensor as Tensor object which contains detected face</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
|
@ -117,6 +121,7 @@
|
|||
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="face.html#faceconfidence" class="tsd-kind-icon">face<wbr>Confidence</a></li>
|
||||
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="face.html#gender" class="tsd-kind-icon">gender</a></li>
|
||||
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="face.html#genderconfidence" class="tsd-kind-icon">gender<wbr>Confidence</a></li>
|
||||
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="face.html#id" class="tsd-kind-icon">id</a></li>
|
||||
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="face.html#iris" class="tsd-kind-icon">iris</a></li>
|
||||
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="face.html#mesh" class="tsd-kind-icon">mesh</a></li>
|
||||
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="face.html#meshraw" class="tsd-kind-icon">mesh<wbr>Raw</a></li>
|
||||
|
@ -206,6 +211,13 @@
|
|||
<aside class="tsd-sources">
|
||||
</aside>
|
||||
</section>
|
||||
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
|
||||
<a name="id" class="tsd-anchor"></a>
|
||||
<h3>id</h3>
|
||||
<div class="tsd-signature tsd-kind-icon">id<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div>
|
||||
<aside class="tsd-sources">
|
||||
</aside>
|
||||
</section>
|
||||
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
|
||||
<a name="iris" class="tsd-anchor"></a>
|
||||
<h3>iris</h3>
|
||||
|
@ -230,7 +242,7 @@
|
|||
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
|
||||
<a name="rotation" class="tsd-anchor"></a>
|
||||
<h3>rotation</h3>
|
||||
<div class="tsd-signature tsd-kind-icon">rotation<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span>angle<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>pitch<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span>roll<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span>yaw<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">; </span>matrix<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> }</span></div>
|
||||
<div class="tsd-signature tsd-kind-icon">rotation<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span>angle<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>pitch<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span>roll<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span>yaw<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">; </span>matrix<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol"> }</span></div>
|
||||
<aside class="tsd-sources">
|
||||
</aside>
|
||||
<div class="tsd-type-declaration">
|
||||
|
@ -251,7 +263,7 @@
|
|||
</ul>
|
||||
</li>
|
||||
<li class="tsd-parameter">
|
||||
<h5>matrix<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">[]</span></h5>
|
||||
<h5>matrix<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">]</span></h5>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
@ -328,6 +340,9 @@
|
|||
<li class=" tsd-kind-property tsd-parent-kind-interface">
|
||||
<a href="face.html#genderconfidence" class="tsd-kind-icon">gender<wbr>Confidence</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-property tsd-parent-kind-interface">
|
||||
<a href="face.html#id" class="tsd-kind-icon">id</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-property tsd-parent-kind-interface">
|
||||
<a href="face.html#iris" class="tsd-kind-icon">iris</a>
|
||||
</li>
|
||||
|
@ -351,7 +366,7 @@
|
|||
<a href="hand.html" class="tsd-kind-icon">Hand</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="object.html" class="tsd-kind-icon">Object</a>
|
||||
<a href="item.html" class="tsd-kind-icon">Item</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="result.html" class="tsd-kind-icon">Result</a>
|
||||
|
|
|
@ -98,6 +98,7 @@
|
|||
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="hand.html#box" class="tsd-kind-icon">box</a></li>
|
||||
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="hand.html#boxraw" class="tsd-kind-icon">box<wbr>Raw</a></li>
|
||||
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="hand.html#confidence" class="tsd-kind-icon">confidence</a></li>
|
||||
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="hand.html#id" class="tsd-kind-icon">id</a></li>
|
||||
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="hand.html#landmarks" class="tsd-kind-icon">landmarks</a></li>
|
||||
</ul>
|
||||
</section>
|
||||
|
@ -109,7 +110,7 @@
|
|||
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
|
||||
<a name="annotations" class="tsd-anchor"></a>
|
||||
<h3>annotations</h3>
|
||||
<div class="tsd-signature tsd-kind-icon">annotations<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span>part<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>points<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">[]</span></div>
|
||||
<div class="tsd-signature tsd-kind-icon">annotations<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-symbol">{ </span>part<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">; </span>points<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> }</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">></span></div>
|
||||
<aside class="tsd-sources">
|
||||
</aside>
|
||||
</section>
|
||||
|
@ -134,6 +135,13 @@
|
|||
<aside class="tsd-sources">
|
||||
</aside>
|
||||
</section>
|
||||
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
|
||||
<a name="id" class="tsd-anchor"></a>
|
||||
<h3>id</h3>
|
||||
<div class="tsd-signature tsd-kind-icon">id<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div>
|
||||
<aside class="tsd-sources">
|
||||
</aside>
|
||||
</section>
|
||||
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
|
||||
<a name="landmarks" class="tsd-anchor"></a>
|
||||
<h3>landmarks</h3>
|
||||
|
@ -188,6 +196,9 @@
|
|||
<li class=" tsd-kind-property tsd-parent-kind-interface">
|
||||
<a href="hand.html#confidence" class="tsd-kind-icon">confidence</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-property tsd-parent-kind-interface">
|
||||
<a href="hand.html#id" class="tsd-kind-icon">id</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-property tsd-parent-kind-interface">
|
||||
<a href="hand.html#landmarks" class="tsd-kind-icon">landmarks</a>
|
||||
</li>
|
||||
|
@ -196,7 +207,7 @@
|
|||
</ul>
|
||||
<ul class="after-current">
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="object.html" class="tsd-kind-icon">Object</a>
|
||||
<a href="item.html" class="tsd-kind-icon">Item</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="result.html" class="tsd-kind-icon">Result</a>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>Object | @vladmandic/human</title>
|
||||
<title>Item | @vladmandic/human</title>
|
||||
<meta name="description" content="Documentation for @vladmandic/human">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="stylesheet" href="../assets/css/main.css">
|
||||
|
@ -53,10 +53,10 @@
|
|||
<a href="../index.html">@vladmandic/human</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="object.html">Object</a>
|
||||
<a href="item.html">Item</a>
|
||||
</li>
|
||||
</ul>
|
||||
<h1>Interface Object</h1>
|
||||
<h1>Interface Item</h1>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
@ -84,7 +84,7 @@
|
|||
<h3>Hierarchy</h3>
|
||||
<ul class="tsd-hierarchy">
|
||||
<li>
|
||||
<span class="target">Object</span>
|
||||
<span class="target">Item</span>
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
@ -95,14 +95,14 @@
|
|||
<section class="tsd-index-section ">
|
||||
<h3>Properties</h3>
|
||||
<ul class="tsd-index-list">
|
||||
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="object.html#box" class="tsd-kind-icon">box</a></li>
|
||||
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="object.html#boxraw" class="tsd-kind-icon">box<wbr>Raw</a></li>
|
||||
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="object.html#center" class="tsd-kind-icon">center</a></li>
|
||||
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="object.html#centerraw" class="tsd-kind-icon">center<wbr>Raw</a></li>
|
||||
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="object.html#class" class="tsd-kind-icon">class</a></li>
|
||||
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="object.html#label" class="tsd-kind-icon">label</a></li>
|
||||
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="object.html#score" class="tsd-kind-icon">score</a></li>
|
||||
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="object.html#stridesize" class="tsd-kind-icon">stride<wbr>Size</a></li>
|
||||
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="item.html#box" class="tsd-kind-icon">box</a></li>
|
||||
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="item.html#boxraw" class="tsd-kind-icon">box<wbr>Raw</a></li>
|
||||
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="item.html#center" class="tsd-kind-icon">center</a></li>
|
||||
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="item.html#centerraw" class="tsd-kind-icon">center<wbr>Raw</a></li>
|
||||
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="item.html#class" class="tsd-kind-icon">class</a></li>
|
||||
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="item.html#label" class="tsd-kind-icon">label</a></li>
|
||||
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="item.html#score" class="tsd-kind-icon">score</a></li>
|
||||
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="item.html#stridesize" class="tsd-kind-icon">stride<wbr>Size</a></li>
|
||||
</ul>
|
||||
</section>
|
||||
</div>
|
||||
|
@ -126,14 +126,14 @@
|
|||
</section>
|
||||
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
|
||||
<a name="center" class="tsd-anchor"></a>
|
||||
<h3>center</h3>
|
||||
<h3><span class="tsd-flag ts-flagOptional">Optional</span> center</h3>
|
||||
<div class="tsd-signature tsd-kind-icon">center<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">[]</span></div>
|
||||
<aside class="tsd-sources">
|
||||
</aside>
|
||||
</section>
|
||||
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
|
||||
<a name="centerraw" class="tsd-anchor"></a>
|
||||
<h3>center<wbr>Raw</h3>
|
||||
<h3><span class="tsd-flag ts-flagOptional">Optional</span> center<wbr>Raw</h3>
|
||||
<div class="tsd-signature tsd-kind-icon">center<wbr>Raw<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">[]</span></div>
|
||||
<aside class="tsd-sources">
|
||||
</aside>
|
||||
|
@ -161,7 +161,7 @@
|
|||
</section>
|
||||
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
|
||||
<a name="stridesize" class="tsd-anchor"></a>
|
||||
<h3>stride<wbr>Size</h3>
|
||||
<h3><span class="tsd-flag ts-flagOptional">Optional</span> stride<wbr>Size</h3>
|
||||
<div class="tsd-signature tsd-kind-icon">stride<wbr>Size<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div>
|
||||
<aside class="tsd-sources">
|
||||
</aside>
|
||||
|
@ -202,31 +202,31 @@
|
|||
</ul>
|
||||
<ul class="current">
|
||||
<li class="current tsd-kind-interface">
|
||||
<a href="object.html" class="tsd-kind-icon">Object</a>
|
||||
<a href="item.html" class="tsd-kind-icon">Item</a>
|
||||
<ul>
|
||||
<li class=" tsd-kind-property tsd-parent-kind-interface">
|
||||
<a href="object.html#box" class="tsd-kind-icon">box</a>
|
||||
<a href="item.html#box" class="tsd-kind-icon">box</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-property tsd-parent-kind-interface">
|
||||
<a href="object.html#boxraw" class="tsd-kind-icon">box<wbr>Raw</a>
|
||||
<a href="item.html#boxraw" class="tsd-kind-icon">box<wbr>Raw</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-property tsd-parent-kind-interface">
|
||||
<a href="object.html#center" class="tsd-kind-icon">center</a>
|
||||
<a href="item.html#center" class="tsd-kind-icon">center</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-property tsd-parent-kind-interface">
|
||||
<a href="object.html#centerraw" class="tsd-kind-icon">center<wbr>Raw</a>
|
||||
<a href="item.html#centerraw" class="tsd-kind-icon">center<wbr>Raw</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-property tsd-parent-kind-interface">
|
||||
<a href="object.html#class" class="tsd-kind-icon">class</a>
|
||||
<a href="item.html#class" class="tsd-kind-icon">class</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-property tsd-parent-kind-interface">
|
||||
<a href="object.html#label" class="tsd-kind-icon">label</a>
|
||||
<a href="item.html#label" class="tsd-kind-icon">label</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-property tsd-parent-kind-interface">
|
||||
<a href="object.html#score" class="tsd-kind-icon">score</a>
|
||||
<a href="item.html#score" class="tsd-kind-icon">score</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-property tsd-parent-kind-interface">
|
||||
<a href="object.html#stridesize" class="tsd-kind-icon">stride<wbr>Size</a>
|
||||
<a href="item.html#stridesize" class="tsd-kind-icon">stride<wbr>Size</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
|
@ -85,6 +85,7 @@
|
|||
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="result.html#hand" class="tsd-kind-icon">hand</a></li>
|
||||
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="result.html#object" class="tsd-kind-icon">object</a></li>
|
||||
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="result.html#performance" class="tsd-kind-icon">performance</a></li>
|
||||
<li class="tsd-kind-property tsd-parent-kind-interface"><a href="result.html#timestamp" class="tsd-kind-icon">timestamp</a></li>
|
||||
</ul>
|
||||
</section>
|
||||
</div>
|
||||
|
@ -150,12 +151,12 @@
|
|||
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
|
||||
<a name="object" class="tsd-anchor"></a>
|
||||
<h3>object</h3>
|
||||
<div class="tsd-signature tsd-kind-icon">object<span class="tsd-signature-symbol">:</span> <a href="object.html" class="tsd-signature-type" data-tsd-kind="Interface">Object</a><span class="tsd-signature-symbol">[]</span></div>
|
||||
<div class="tsd-signature tsd-kind-icon">object<span class="tsd-signature-symbol">:</span> <a href="item.html" class="tsd-signature-type" data-tsd-kind="Interface">Item</a><span class="tsd-signature-symbol">[]</span></div>
|
||||
<aside class="tsd-sources">
|
||||
</aside>
|
||||
<div class="tsd-comment tsd-typography">
|
||||
<div class="lead">
|
||||
<p><a href="object.html">Object</a>: detection & analysis results</p>
|
||||
<p>{@link Object}: detection & analysis results</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
@ -174,6 +175,13 @@
|
|||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-interface">
|
||||
<a name="timestamp" class="tsd-anchor"></a>
|
||||
<h3>timestamp</h3>
|
||||
<div class="tsd-signature tsd-kind-icon">timestamp<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div>
|
||||
<aside class="tsd-sources">
|
||||
</aside>
|
||||
</section>
|
||||
</section>
|
||||
</div>
|
||||
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
|
||||
|
@ -208,7 +216,7 @@
|
|||
<a href="hand.html" class="tsd-kind-icon">Hand</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-interface">
|
||||
<a href="object.html" class="tsd-kind-icon">Object</a>
|
||||
<a href="item.html" class="tsd-kind-icon">Item</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="current">
|
||||
|
@ -236,6 +244,9 @@
|
|||
<li class=" tsd-kind-property tsd-parent-kind-interface">
|
||||
<a href="result.html#performance" class="tsd-kind-icon">performance</a>
|
||||
</li>
|
||||
<li class=" tsd-kind-property tsd-parent-kind-interface">
|
||||
<a href="result.html#timestamp" class="tsd-kind-icon">timestamp</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import type { Result, Face, Body, Hand, Object, Gesture } from '../result';
|
||||
import type { Result, Face, Body, Hand, Item, Gesture } from '../result';
|
||||
/**
|
||||
* Draw Options
|
||||
* Accessed via `human.draw.options` or provided per each draw method as the drawOptions optional parameter
|
||||
|
@ -45,6 +45,6 @@ export declare function gesture(inCanvas: HTMLCanvasElement, result: Array<Gestu
|
|||
export declare function face(inCanvas: HTMLCanvasElement, result: Array<Face>, drawOptions?: DrawOptions): Promise<void>;
|
||||
export declare function body(inCanvas: HTMLCanvasElement, result: Array<Body>, drawOptions?: DrawOptions): Promise<void>;
|
||||
export declare function hand(inCanvas: HTMLCanvasElement, result: Array<Hand>, drawOptions?: DrawOptions): Promise<void>;
|
||||
export declare function object(inCanvas: HTMLCanvasElement, result: Array<Object>, drawOptions?: DrawOptions): Promise<void>;
|
||||
export declare function object(inCanvas: HTMLCanvasElement, result: Array<Item>, drawOptions?: DrawOptions): Promise<void>;
|
||||
export declare function canvas(inCanvas: HTMLCanvasElement, outCanvas: HTMLCanvasElement): Promise<void>;
|
||||
export declare function all(inCanvas: HTMLCanvasElement, result: Result, drawOptions?: DrawOptions): Promise<void>;
|
||||
|
|
|
@ -1,16 +1,5 @@
|
|||
export declare const body: (res: any) => {
|
||||
body: number;
|
||||
gesture: string;
|
||||
}[];
|
||||
export declare const face: (res: any) => {
|
||||
face: number;
|
||||
gesture: string;
|
||||
}[];
|
||||
export declare const iris: (res: any) => {
|
||||
iris: number;
|
||||
gesture: string;
|
||||
}[];
|
||||
export declare const hand: (res: any) => {
|
||||
hand: number;
|
||||
gesture: string;
|
||||
}[];
|
||||
import { Gesture } from '../result';
|
||||
export declare const body: (res: any) => Gesture[];
|
||||
export declare const face: (res: any) => Gesture[];
|
||||
export declare const iris: (res: any) => Gesture[];
|
||||
export declare const hand: (res: any) => Gesture[];
|
||||
|
|
|
@ -1,8 +1,3 @@
|
|||
export declare function predict(input: any, config: any): Promise<{
|
||||
confidence: number;
|
||||
box: any;
|
||||
boxRaw: any;
|
||||
landmarks: any;
|
||||
annotations: any;
|
||||
}[]>;
|
||||
import { Hand } from '../result';
|
||||
export declare function predict(input: any, config: any): Promise<Hand[]>;
|
||||
export declare function load(config: any): Promise<[Object, Object]>;
|
||||
|
|
|
@ -13,7 +13,7 @@ import * as draw from './draw/draw';
|
|||
/** Generic Tensor object type */
|
||||
export declare type Tensor = typeof tf.Tensor;
|
||||
export type { Config } from './config';
|
||||
export type { Result, Face, Hand, Body, Object, Gesture } from './result';
|
||||
export type { Result, Face, Hand, Body, Item, Gesture } from './result';
|
||||
export type { DrawOptions } from './draw/draw';
|
||||
/** Defines all possible input types for **Human** detection */
|
||||
export declare type Input = Tensor | typeof Image | ImageData | ImageBitmap | HTMLImageElement | HTMLMediaElement | HTMLVideoElement | HTMLCanvasElement | OffscreenCanvas;
|
||||
|
|
|
@ -1,2 +1,3 @@
|
|||
import { Item } from '../result';
|
||||
export declare function load(config: any): Promise<any>;
|
||||
export declare function predict(image: any, config: any): Promise<unknown>;
|
||||
export declare function predict(image: any, config: any): Promise<Item[]>;
|
||||
|
|
|
@ -1,2 +1,3 @@
|
|||
import { Item } from '../result';
|
||||
export declare function load(config: any): Promise<any>;
|
||||
export declare function predict(image: any, config: any): Promise<unknown>;
|
||||
export declare function predict(image: any, config: any): Promise<Item[]>;
|
||||
|
|
|
@ -1,2 +1,3 @@
|
|||
export declare function predict(input: any, config: any): Promise<any>;
|
||||
import { Body } from '../result';
|
||||
export declare function predict(input: any, config: any): Promise<Body[]>;
|
||||
export declare function load(config: any): Promise<any>;
|
||||
|
|
|
@ -9,23 +9,28 @@
|
|||
*
|
||||
* Array of individual results with one object per detected face
|
||||
* Each result has:
|
||||
* - overal detection confidence value
|
||||
* - box detection confidence value
|
||||
* - mesh detection confidence value
|
||||
* - box as array of [x, y, width, height], normalized to image resolution
|
||||
* - boxRaw as array of [x, y, width, height], normalized to range 0..1
|
||||
* - mesh as array of [x, y, z] points of face mesh, normalized to image resolution
|
||||
* - meshRaw as array of [x, y, z] points of face mesh, normalized to range 0..1
|
||||
* - annotations as array of annotated face mesh points
|
||||
* - age as value
|
||||
* - gender as value
|
||||
* - genderConfidence as value
|
||||
* - emotion as array of possible emotions with their individual scores
|
||||
* - iris as distance value
|
||||
* - angle as object with values for roll, yaw and pitch angles
|
||||
* - tensor as Tensor object which contains detected face
|
||||
* - id: face number
|
||||
* - confidence: overal detection confidence value
|
||||
* - boxConfidence: face box detection confidence value
|
||||
* - faceConfidence: face keypoints detection confidence value
|
||||
* - box: face bounding box as array of [x, y, width, height], normalized to image resolution
|
||||
* - boxRaw: face bounding box as array of [x, y, width, height], normalized to range 0..1
|
||||
* - mesh: face keypoints as array of [x, y, z] points of face mesh, normalized to image resolution
|
||||
* - meshRaw: face keypoints as array of [x, y, z] points of face mesh, normalized to range 0..1
|
||||
* - annotations: annotated face keypoints as array of annotated face mesh points
|
||||
* - age: age as value
|
||||
* - gender: gender as value
|
||||
* - genderConfidence: gender detection confidence as value
|
||||
* - emotion: emotions as array of possible emotions with their individual scores
|
||||
* - embedding: facial descriptor as array of numerical elements
|
||||
* - iris: iris distance from current viewpoint as distance value
|
||||
* - rotation: face rotiation that contains both angles and matrix used for 3d transformations
|
||||
* - angle: face angle as object with values for roll, yaw and pitch angles
|
||||
* - matrix: 3d transofrmation matrix as array of numeric values
|
||||
* - tensor: face tensor as Tensor object which contains detected face
|
||||
*/
|
||||
export interface Face {
|
||||
id: number;
|
||||
confidence: number;
|
||||
boxConfidence: number;
|
||||
faceConfidence: number;
|
||||
|
@ -52,7 +57,7 @@ export interface Face {
|
|||
yaw: number;
|
||||
pitch: number;
|
||||
};
|
||||
matrix: Array<[number, number, number, number, number, number, number, number, number]>;
|
||||
matrix: [number, number, number, number, number, number, number, number, number];
|
||||
};
|
||||
tensor: any;
|
||||
}
|
||||
|
@ -60,9 +65,10 @@ export interface Face {
|
|||
*
|
||||
* Array of individual results with one object per detected body
|
||||
* Each results has:
|
||||
* - body id number
|
||||
* - id:body id number
|
||||
* - score: overall detection score
|
||||
* - box bounding box: x, y, width, height
|
||||
* - box: bounding box: x, y, width, height normalized to input image resolution
|
||||
* - boxRaw: bounding box: x, y, width, height normalized to 0..1
|
||||
* - keypoints: array of keypoints
|
||||
* - part: body part name
|
||||
* - position: body part position with x,y,z coordinates
|
||||
|
@ -71,8 +77,9 @@ export interface Face {
|
|||
*/
|
||||
export interface Body {
|
||||
id: number;
|
||||
box: [x: number, y: number, width: number, height: number];
|
||||
score: number;
|
||||
box?: [x: number, y: number, width: number, height: number];
|
||||
boxRaw?: [x: number, y: number, width: number, height: number];
|
||||
keypoints: Array<{
|
||||
part: string;
|
||||
position: {
|
||||
|
@ -81,7 +88,7 @@ export interface Body {
|
|||
z: number;
|
||||
};
|
||||
score: number;
|
||||
presence: number;
|
||||
presence?: number;
|
||||
}>;
|
||||
}
|
||||
/** Hand results
|
||||
|
@ -95,14 +102,15 @@ export interface Body {
|
|||
* - annotations as array of annotated face landmark points
|
||||
*/
|
||||
export interface Hand {
|
||||
id: number;
|
||||
confidence: number;
|
||||
box: [number, number, number, number];
|
||||
boxRaw: [number, number, number, number];
|
||||
landmarks: Array<[number, number, number]>;
|
||||
annotations: Array<{
|
||||
annotations: Record<string, Array<{
|
||||
part: string;
|
||||
points: Array<[number, number, number]>[];
|
||||
}>;
|
||||
points: Array<[number, number, number]>;
|
||||
}>>;
|
||||
}
|
||||
/** Object results
|
||||
*
|
||||
|
@ -115,13 +123,13 @@ export interface Hand {
|
|||
* - box as array of [x, y, width, height], normalized to image resolution
|
||||
* - boxRaw as array of [x, y, width, height], normalized to range 0..1
|
||||
*/
|
||||
export interface Object {
|
||||
export interface Item {
|
||||
score: number;
|
||||
strideSize: number;
|
||||
strideSize?: number;
|
||||
class: number;
|
||||
label: string;
|
||||
center: number[];
|
||||
centerRaw: number[];
|
||||
center?: number[];
|
||||
centerRaw?: number[];
|
||||
box: number[];
|
||||
boxRaw: number[];
|
||||
}
|
||||
|
@ -155,9 +163,10 @@ export interface Result {
|
|||
/** {@link Gesture}: detection & analysis results */
|
||||
gesture: Array<Gesture>;
|
||||
/** {@link Object}: detection & analysis results */
|
||||
object: Array<Object>;
|
||||
object: Array<Item>;
|
||||
performance: {
|
||||
any: any;
|
||||
};
|
||||
canvas: OffscreenCanvas | HTMLCanvasElement;
|
||||
timestamp: number;
|
||||
}
|
||||
|
|
2
wiki
2
wiki
|
@ -1 +1 @@
|
|||
Subproject commit fa896c5330432f26839d362b81ea9128db60d86b
|
||||
Subproject commit d3e31ec79f0f7f9b3382576dd246cd86de22bb43
|
Loading…
Reference in New Issue