edit blazepose keypoints

pull/233/head
Vladimir Mandic 2021-11-19 16:11:03 -05:00
parent bd0effebee
commit c729c47a90
14 changed files with 287 additions and 149 deletions

View File

@ -5137,12 +5137,12 @@ var kpt = [
"rightElbow", "rightElbow",
"leftWrist", "leftWrist",
"rightWrist", "rightWrist",
"leftPalm",
"rightPalm",
"leftIndex",
"rightIndex",
"leftPinky", "leftPinky",
"rightPinky", "rightPinky",
"leftIndex",
"rightIndex",
"leftThumb",
"rightThumb",
"leftHip", "leftHip",
"rightHip", "rightHip",
"leftKnee", "leftKnee",
@ -5155,9 +5155,9 @@ var kpt = [
"rightFoot", "rightFoot",
"bodyCenter", "bodyCenter",
"bodyTop", "bodyTop",
"leftThumb", "leftPalm",
"leftHand", "leftHand",
"rightThumb", "rightPalm",
"rightHand" "rightHand"
]; ];
var connected = { var connected = {
@ -5166,9 +5166,11 @@ var connected = {
torso: ["leftShoulder", "rightShoulder", "rightHip", "leftHip", "leftShoulder"], torso: ["leftShoulder", "rightShoulder", "rightHip", "leftHip", "leftShoulder"],
leftArm: ["leftShoulder", "leftElbow", "leftWrist", "leftPalm"], leftArm: ["leftShoulder", "leftElbow", "leftWrist", "leftPalm"],
rightArm: ["rightShoulder", "rightElbow", "rightWrist", "rightPalm"], rightArm: ["rightShoulder", "rightElbow", "rightWrist", "rightPalm"],
leftHand: [], leftHand: ["leftHand", "leftPalm", "leftPinky", "leftPalm", "leftIndex", "leftPalm", "leftThumb"],
rightHand: [], rightHand: ["rightHand", "rightPalm", "rightPinky", "rightPalm", "rightIndex", "rightPalm", "rightThumb"],
head: [] leftEye: ["leftEyeInside", "leftEye", "leftEyeOutside"],
rightEye: ["rightEyeInside", "rightEye", "rightEyeOutside"],
mouth: ["leftMouth", "rightMouth"]
}; };
// src/body/blazepose.ts // src/body/blazepose.ts
@ -5286,7 +5288,7 @@ async function detectParts(input, config3, outputSize2) {
for (let i = 0; i < indexes.length - 1; i++) { for (let i = 0; i < indexes.length - 1; i++) {
const pt0 = keypoints.find((kpt4) => kpt4.part === indexes[i]); const pt0 = keypoints.find((kpt4) => kpt4.part === indexes[i]);
const pt1 = keypoints.find((kpt4) => kpt4.part === indexes[i + 1]); const pt1 = keypoints.find((kpt4) => kpt4.part === indexes[i + 1]);
if (pt0 && pt1 && pt0.score > (config3.body.minConfidence || 0) && pt1.score > (config3.body.minConfidence || 0)) if (pt0 && pt1)
pt.push([pt0.position, pt1.position]); pt.push([pt0.position, pt1.position]);
} }
annotations2[name] = pt; annotations2[name] = pt;
@ -11603,6 +11605,8 @@ async function body(inCanvas2, result, drawOptions) {
} }
if (localOptions.drawPoints && result[i].keypoints) { if (localOptions.drawPoints && result[i].keypoints) {
for (let pt = 0; pt < result[i].keypoints.length; pt++) { for (let pt = 0; pt < result[i].keypoints.length; pt++) {
if (!result[i].keypoints[pt].score || result[i].keypoints[pt].score === 0)
continue;
ctx.fillStyle = localOptions.useDepth && result[i].keypoints[pt].position[2] ? `rgba(${127.5 + 2 * (result[i].keypoints[pt].position[2] || 0)}, ${127.5 - 2 * (result[i].keypoints[pt].position[2] || 0)}, 255, 0.5)` : localOptions.color; ctx.fillStyle = localOptions.useDepth && result[i].keypoints[pt].position[2] ? `rgba(${127.5 + 2 * (result[i].keypoints[pt].position[2] || 0)}, ${127.5 - 2 * (result[i].keypoints[pt].position[2] || 0)}, 255, 0.5)` : localOptions.color;
point(ctx, result[i].keypoints[pt].position[0], result[i].keypoints[pt].position[1], 0, localOptions); point(ctx, result[i].keypoints[pt].position[0], result[i].keypoints[pt].position[1], 0, localOptions);
} }
@ -11610,6 +11614,8 @@ async function body(inCanvas2, result, drawOptions) {
if (localOptions.drawLabels && result[i].keypoints) { if (localOptions.drawLabels && result[i].keypoints) {
ctx.font = localOptions.font; ctx.font = localOptions.font;
for (const pt of result[i].keypoints) { for (const pt of result[i].keypoints) {
if (!pt.score || pt.score === 0)
continue;
ctx.fillStyle = localOptions.useDepth && pt.position[2] ? `rgba(${127.5 + 2 * pt.position[2]}, ${127.5 - 2 * pt.position[2]}, 255, 0.5)` : localOptions.color; ctx.fillStyle = localOptions.useDepth && pt.position[2] ? `rgba(${127.5 + 2 * pt.position[2]}, ${127.5 - 2 * pt.position[2]}, 255, 0.5)` : localOptions.color;
ctx.fillText(`${pt.part} ${Math.trunc(100 * pt.score)}%`, pt.position[0] + 4, pt.position[1] + 4); ctx.fillText(`${pt.part} ${Math.trunc(100 * pt.score)}%`, pt.position[0] + 4, pt.position[1] + 4);
} }

File diff suppressed because one or more lines are too long

26
dist/human.esm.js vendored
View File

@ -75527,12 +75527,12 @@ var kpt = [
"rightElbow", "rightElbow",
"leftWrist", "leftWrist",
"rightWrist", "rightWrist",
"leftPalm",
"rightPalm",
"leftIndex",
"rightIndex",
"leftPinky", "leftPinky",
"rightPinky", "rightPinky",
"leftIndex",
"rightIndex",
"leftThumb",
"rightThumb",
"leftHip", "leftHip",
"rightHip", "rightHip",
"leftKnee", "leftKnee",
@ -75545,9 +75545,9 @@ var kpt = [
"rightFoot", "rightFoot",
"bodyCenter", "bodyCenter",
"bodyTop", "bodyTop",
"leftThumb", "leftPalm",
"leftHand", "leftHand",
"rightThumb", "rightPalm",
"rightHand" "rightHand"
]; ];
var connected = { var connected = {
@ -75556,9 +75556,11 @@ var connected = {
torso: ["leftShoulder", "rightShoulder", "rightHip", "leftHip", "leftShoulder"], torso: ["leftShoulder", "rightShoulder", "rightHip", "leftHip", "leftShoulder"],
leftArm: ["leftShoulder", "leftElbow", "leftWrist", "leftPalm"], leftArm: ["leftShoulder", "leftElbow", "leftWrist", "leftPalm"],
rightArm: ["rightShoulder", "rightElbow", "rightWrist", "rightPalm"], rightArm: ["rightShoulder", "rightElbow", "rightWrist", "rightPalm"],
leftHand: [], leftHand: ["leftHand", "leftPalm", "leftPinky", "leftPalm", "leftIndex", "leftPalm", "leftThumb"],
rightHand: [], rightHand: ["rightHand", "rightPalm", "rightPinky", "rightPalm", "rightIndex", "rightPalm", "rightThumb"],
head: [] leftEye: ["leftEyeInside", "leftEye", "leftEyeOutside"],
rightEye: ["rightEyeInside", "rightEye", "rightEyeOutside"],
mouth: ["leftMouth", "rightMouth"]
}; };
// src/body/blazepose.ts // src/body/blazepose.ts
@ -75676,7 +75678,7 @@ async function detectParts(input2, config3, outputSize2) {
for (let i = 0; i < indexes.length - 1; i++) { for (let i = 0; i < indexes.length - 1; i++) {
const pt0 = keypoints.find((kpt4) => kpt4.part === indexes[i]); const pt0 = keypoints.find((kpt4) => kpt4.part === indexes[i]);
const pt1 = keypoints.find((kpt4) => kpt4.part === indexes[i + 1]); const pt1 = keypoints.find((kpt4) => kpt4.part === indexes[i + 1]);
if (pt0 && pt1 && pt0.score > (config3.body.minConfidence || 0) && pt1.score > (config3.body.minConfidence || 0)) if (pt0 && pt1)
pt.push([pt0.position, pt1.position]); pt.push([pt0.position, pt1.position]);
} }
annotations2[name] = pt; annotations2[name] = pt;
@ -81993,6 +81995,8 @@ async function body(inCanvas2, result, drawOptions) {
} }
if (localOptions.drawPoints && result[i].keypoints) { if (localOptions.drawPoints && result[i].keypoints) {
for (let pt = 0; pt < result[i].keypoints.length; pt++) { for (let pt = 0; pt < result[i].keypoints.length; pt++) {
if (!result[i].keypoints[pt].score || result[i].keypoints[pt].score === 0)
continue;
ctx.fillStyle = localOptions.useDepth && result[i].keypoints[pt].position[2] ? `rgba(${127.5 + 2 * (result[i].keypoints[pt].position[2] || 0)}, ${127.5 - 2 * (result[i].keypoints[pt].position[2] || 0)}, 255, 0.5)` : localOptions.color; ctx.fillStyle = localOptions.useDepth && result[i].keypoints[pt].position[2] ? `rgba(${127.5 + 2 * (result[i].keypoints[pt].position[2] || 0)}, ${127.5 - 2 * (result[i].keypoints[pt].position[2] || 0)}, 255, 0.5)` : localOptions.color;
point(ctx, result[i].keypoints[pt].position[0], result[i].keypoints[pt].position[1], 0, localOptions); point(ctx, result[i].keypoints[pt].position[0], result[i].keypoints[pt].position[1], 0, localOptions);
} }
@ -82000,6 +82004,8 @@ async function body(inCanvas2, result, drawOptions) {
if (localOptions.drawLabels && result[i].keypoints) { if (localOptions.drawLabels && result[i].keypoints) {
ctx.font = localOptions.font; ctx.font = localOptions.font;
for (const pt of result[i].keypoints) { for (const pt of result[i].keypoints) {
if (!pt.score || pt.score === 0)
continue;
ctx.fillStyle = localOptions.useDepth && pt.position[2] ? `rgba(${127.5 + 2 * pt.position[2]}, ${127.5 - 2 * pt.position[2]}, 255, 0.5)` : localOptions.color; ctx.fillStyle = localOptions.useDepth && pt.position[2] ? `rgba(${127.5 + 2 * pt.position[2]}, ${127.5 - 2 * pt.position[2]}, 255, 0.5)` : localOptions.color;
ctx.fillText(`${pt.part} ${Math.trunc(100 * pt.score)}%`, pt.position[0] + 4, pt.position[1] + 4); ctx.fillText(`${pt.part} ${Math.trunc(100 * pt.score)}%`, pt.position[0] + 4, pt.position[1] + 4);
} }

File diff suppressed because one or more lines are too long

4
dist/human.js vendored

File diff suppressed because one or more lines are too long

View File

@ -5176,12 +5176,12 @@ var kpt = [
"rightElbow", "rightElbow",
"leftWrist", "leftWrist",
"rightWrist", "rightWrist",
"leftPalm",
"rightPalm",
"leftIndex",
"rightIndex",
"leftPinky", "leftPinky",
"rightPinky", "rightPinky",
"leftIndex",
"rightIndex",
"leftThumb",
"rightThumb",
"leftHip", "leftHip",
"rightHip", "rightHip",
"leftKnee", "leftKnee",
@ -5194,9 +5194,9 @@ var kpt = [
"rightFoot", "rightFoot",
"bodyCenter", "bodyCenter",
"bodyTop", "bodyTop",
"leftThumb", "leftPalm",
"leftHand", "leftHand",
"rightThumb", "rightPalm",
"rightHand" "rightHand"
]; ];
var connected = { var connected = {
@ -5205,9 +5205,11 @@ var connected = {
torso: ["leftShoulder", "rightShoulder", "rightHip", "leftHip", "leftShoulder"], torso: ["leftShoulder", "rightShoulder", "rightHip", "leftHip", "leftShoulder"],
leftArm: ["leftShoulder", "leftElbow", "leftWrist", "leftPalm"], leftArm: ["leftShoulder", "leftElbow", "leftWrist", "leftPalm"],
rightArm: ["rightShoulder", "rightElbow", "rightWrist", "rightPalm"], rightArm: ["rightShoulder", "rightElbow", "rightWrist", "rightPalm"],
leftHand: [], leftHand: ["leftHand", "leftPalm", "leftPinky", "leftPalm", "leftIndex", "leftPalm", "leftThumb"],
rightHand: [], rightHand: ["rightHand", "rightPalm", "rightPinky", "rightPalm", "rightIndex", "rightPalm", "rightThumb"],
head: [] leftEye: ["leftEyeInside", "leftEye", "leftEyeOutside"],
rightEye: ["rightEyeInside", "rightEye", "rightEyeOutside"],
mouth: ["leftMouth", "rightMouth"]
}; };
// src/body/blazepose.ts // src/body/blazepose.ts
@ -5325,7 +5327,7 @@ async function detectParts(input, config3, outputSize2) {
for (let i = 0; i < indexes.length - 1; i++) { for (let i = 0; i < indexes.length - 1; i++) {
const pt0 = keypoints.find((kpt4) => kpt4.part === indexes[i]); const pt0 = keypoints.find((kpt4) => kpt4.part === indexes[i]);
const pt1 = keypoints.find((kpt4) => kpt4.part === indexes[i + 1]); const pt1 = keypoints.find((kpt4) => kpt4.part === indexes[i + 1]);
if (pt0 && pt1 && pt0.score > (config3.body.minConfidence || 0) && pt1.score > (config3.body.minConfidence || 0)) if (pt0 && pt1)
pt.push([pt0.position, pt1.position]); pt.push([pt0.position, pt1.position]);
} }
annotations2[name] = pt; annotations2[name] = pt;
@ -11675,6 +11677,8 @@ async function body(inCanvas2, result, drawOptions) {
} }
if (localOptions.drawPoints && result[i].keypoints) { if (localOptions.drawPoints && result[i].keypoints) {
for (let pt = 0; pt < result[i].keypoints.length; pt++) { for (let pt = 0; pt < result[i].keypoints.length; pt++) {
if (!result[i].keypoints[pt].score || result[i].keypoints[pt].score === 0)
continue;
ctx.fillStyle = localOptions.useDepth && result[i].keypoints[pt].position[2] ? `rgba(${127.5 + 2 * (result[i].keypoints[pt].position[2] || 0)}, ${127.5 - 2 * (result[i].keypoints[pt].position[2] || 0)}, 255, 0.5)` : localOptions.color; ctx.fillStyle = localOptions.useDepth && result[i].keypoints[pt].position[2] ? `rgba(${127.5 + 2 * (result[i].keypoints[pt].position[2] || 0)}, ${127.5 - 2 * (result[i].keypoints[pt].position[2] || 0)}, 255, 0.5)` : localOptions.color;
point(ctx, result[i].keypoints[pt].position[0], result[i].keypoints[pt].position[1], 0, localOptions); point(ctx, result[i].keypoints[pt].position[0], result[i].keypoints[pt].position[1], 0, localOptions);
} }
@ -11682,6 +11686,8 @@ async function body(inCanvas2, result, drawOptions) {
if (localOptions.drawLabels && result[i].keypoints) { if (localOptions.drawLabels && result[i].keypoints) {
ctx.font = localOptions.font; ctx.font = localOptions.font;
for (const pt of result[i].keypoints) { for (const pt of result[i].keypoints) {
if (!pt.score || pt.score === 0)
continue;
ctx.fillStyle = localOptions.useDepth && pt.position[2] ? `rgba(${127.5 + 2 * pt.position[2]}, ${127.5 - 2 * pt.position[2]}, 255, 0.5)` : localOptions.color; ctx.fillStyle = localOptions.useDepth && pt.position[2] ? `rgba(${127.5 + 2 * pt.position[2]}, ${127.5 - 2 * pt.position[2]}, 255, 0.5)` : localOptions.color;
ctx.fillText(`${pt.part} ${Math.trunc(100 * pt.score)}%`, pt.position[0] + 4, pt.position[1] + 4); ctx.fillText(`${pt.part} ${Math.trunc(100 * pt.score)}%`, pt.position[0] + 4, pt.position[1] + 4);
} }

View File

@ -5177,12 +5177,12 @@ var kpt = [
"rightElbow", "rightElbow",
"leftWrist", "leftWrist",
"rightWrist", "rightWrist",
"leftPalm",
"rightPalm",
"leftIndex",
"rightIndex",
"leftPinky", "leftPinky",
"rightPinky", "rightPinky",
"leftIndex",
"rightIndex",
"leftThumb",
"rightThumb",
"leftHip", "leftHip",
"rightHip", "rightHip",
"leftKnee", "leftKnee",
@ -5195,9 +5195,9 @@ var kpt = [
"rightFoot", "rightFoot",
"bodyCenter", "bodyCenter",
"bodyTop", "bodyTop",
"leftThumb", "leftPalm",
"leftHand", "leftHand",
"rightThumb", "rightPalm",
"rightHand" "rightHand"
]; ];
var connected = { var connected = {
@ -5206,9 +5206,11 @@ var connected = {
torso: ["leftShoulder", "rightShoulder", "rightHip", "leftHip", "leftShoulder"], torso: ["leftShoulder", "rightShoulder", "rightHip", "leftHip", "leftShoulder"],
leftArm: ["leftShoulder", "leftElbow", "leftWrist", "leftPalm"], leftArm: ["leftShoulder", "leftElbow", "leftWrist", "leftPalm"],
rightArm: ["rightShoulder", "rightElbow", "rightWrist", "rightPalm"], rightArm: ["rightShoulder", "rightElbow", "rightWrist", "rightPalm"],
leftHand: [], leftHand: ["leftHand", "leftPalm", "leftPinky", "leftPalm", "leftIndex", "leftPalm", "leftThumb"],
rightHand: [], rightHand: ["rightHand", "rightPalm", "rightPinky", "rightPalm", "rightIndex", "rightPalm", "rightThumb"],
head: [] leftEye: ["leftEyeInside", "leftEye", "leftEyeOutside"],
rightEye: ["rightEyeInside", "rightEye", "rightEyeOutside"],
mouth: ["leftMouth", "rightMouth"]
}; };
// src/body/blazepose.ts // src/body/blazepose.ts
@ -5326,7 +5328,7 @@ async function detectParts(input, config3, outputSize2) {
for (let i = 0; i < indexes.length - 1; i++) { for (let i = 0; i < indexes.length - 1; i++) {
const pt0 = keypoints.find((kpt4) => kpt4.part === indexes[i]); const pt0 = keypoints.find((kpt4) => kpt4.part === indexes[i]);
const pt1 = keypoints.find((kpt4) => kpt4.part === indexes[i + 1]); const pt1 = keypoints.find((kpt4) => kpt4.part === indexes[i + 1]);
if (pt0 && pt1 && pt0.score > (config3.body.minConfidence || 0) && pt1.score > (config3.body.minConfidence || 0)) if (pt0 && pt1)
pt.push([pt0.position, pt1.position]); pt.push([pt0.position, pt1.position]);
} }
annotations2[name] = pt; annotations2[name] = pt;
@ -11676,6 +11678,8 @@ async function body(inCanvas2, result, drawOptions) {
} }
if (localOptions.drawPoints && result[i].keypoints) { if (localOptions.drawPoints && result[i].keypoints) {
for (let pt = 0; pt < result[i].keypoints.length; pt++) { for (let pt = 0; pt < result[i].keypoints.length; pt++) {
if (!result[i].keypoints[pt].score || result[i].keypoints[pt].score === 0)
continue;
ctx.fillStyle = localOptions.useDepth && result[i].keypoints[pt].position[2] ? `rgba(${127.5 + 2 * (result[i].keypoints[pt].position[2] || 0)}, ${127.5 - 2 * (result[i].keypoints[pt].position[2] || 0)}, 255, 0.5)` : localOptions.color; ctx.fillStyle = localOptions.useDepth && result[i].keypoints[pt].position[2] ? `rgba(${127.5 + 2 * (result[i].keypoints[pt].position[2] || 0)}, ${127.5 - 2 * (result[i].keypoints[pt].position[2] || 0)}, 255, 0.5)` : localOptions.color;
point(ctx, result[i].keypoints[pt].position[0], result[i].keypoints[pt].position[1], 0, localOptions); point(ctx, result[i].keypoints[pt].position[0], result[i].keypoints[pt].position[1], 0, localOptions);
} }
@ -11683,6 +11687,8 @@ async function body(inCanvas2, result, drawOptions) {
if (localOptions.drawLabels && result[i].keypoints) { if (localOptions.drawLabels && result[i].keypoints) {
ctx.font = localOptions.font; ctx.font = localOptions.font;
for (const pt of result[i].keypoints) { for (const pt of result[i].keypoints) {
if (!pt.score || pt.score === 0)
continue;
ctx.fillStyle = localOptions.useDepth && pt.position[2] ? `rgba(${127.5 + 2 * pt.position[2]}, ${127.5 - 2 * pt.position[2]}, 255, 0.5)` : localOptions.color; ctx.fillStyle = localOptions.useDepth && pt.position[2] ? `rgba(${127.5 + 2 * pt.position[2]}, ${127.5 - 2 * pt.position[2]}, 255, 0.5)` : localOptions.color;
ctx.fillText(`${pt.part} ${Math.trunc(100 * pt.score)}%`, pt.position[0] + 4, pt.position[1] + 4); ctx.fillText(`${pt.part} ${Math.trunc(100 * pt.score)}%`, pt.position[0] + 4, pt.position[1] + 4);
} }

26
dist/human.node.js vendored
View File

@ -5176,12 +5176,12 @@ var kpt = [
"rightElbow", "rightElbow",
"leftWrist", "leftWrist",
"rightWrist", "rightWrist",
"leftPalm",
"rightPalm",
"leftIndex",
"rightIndex",
"leftPinky", "leftPinky",
"rightPinky", "rightPinky",
"leftIndex",
"rightIndex",
"leftThumb",
"rightThumb",
"leftHip", "leftHip",
"rightHip", "rightHip",
"leftKnee", "leftKnee",
@ -5194,9 +5194,9 @@ var kpt = [
"rightFoot", "rightFoot",
"bodyCenter", "bodyCenter",
"bodyTop", "bodyTop",
"leftThumb", "leftPalm",
"leftHand", "leftHand",
"rightThumb", "rightPalm",
"rightHand" "rightHand"
]; ];
var connected = { var connected = {
@ -5205,9 +5205,11 @@ var connected = {
torso: ["leftShoulder", "rightShoulder", "rightHip", "leftHip", "leftShoulder"], torso: ["leftShoulder", "rightShoulder", "rightHip", "leftHip", "leftShoulder"],
leftArm: ["leftShoulder", "leftElbow", "leftWrist", "leftPalm"], leftArm: ["leftShoulder", "leftElbow", "leftWrist", "leftPalm"],
rightArm: ["rightShoulder", "rightElbow", "rightWrist", "rightPalm"], rightArm: ["rightShoulder", "rightElbow", "rightWrist", "rightPalm"],
leftHand: [], leftHand: ["leftHand", "leftPalm", "leftPinky", "leftPalm", "leftIndex", "leftPalm", "leftThumb"],
rightHand: [], rightHand: ["rightHand", "rightPalm", "rightPinky", "rightPalm", "rightIndex", "rightPalm", "rightThumb"],
head: [] leftEye: ["leftEyeInside", "leftEye", "leftEyeOutside"],
rightEye: ["rightEyeInside", "rightEye", "rightEyeOutside"],
mouth: ["leftMouth", "rightMouth"]
}; };
// src/body/blazepose.ts // src/body/blazepose.ts
@ -5325,7 +5327,7 @@ async function detectParts(input, config3, outputSize2) {
for (let i = 0; i < indexes.length - 1; i++) { for (let i = 0; i < indexes.length - 1; i++) {
const pt0 = keypoints.find((kpt4) => kpt4.part === indexes[i]); const pt0 = keypoints.find((kpt4) => kpt4.part === indexes[i]);
const pt1 = keypoints.find((kpt4) => kpt4.part === indexes[i + 1]); const pt1 = keypoints.find((kpt4) => kpt4.part === indexes[i + 1]);
if (pt0 && pt1 && pt0.score > (config3.body.minConfidence || 0) && pt1.score > (config3.body.minConfidence || 0)) if (pt0 && pt1)
pt.push([pt0.position, pt1.position]); pt.push([pt0.position, pt1.position]);
} }
annotations2[name] = pt; annotations2[name] = pt;
@ -11675,6 +11677,8 @@ async function body(inCanvas2, result, drawOptions) {
} }
if (localOptions.drawPoints && result[i].keypoints) { if (localOptions.drawPoints && result[i].keypoints) {
for (let pt = 0; pt < result[i].keypoints.length; pt++) { for (let pt = 0; pt < result[i].keypoints.length; pt++) {
if (!result[i].keypoints[pt].score || result[i].keypoints[pt].score === 0)
continue;
ctx.fillStyle = localOptions.useDepth && result[i].keypoints[pt].position[2] ? `rgba(${127.5 + 2 * (result[i].keypoints[pt].position[2] || 0)}, ${127.5 - 2 * (result[i].keypoints[pt].position[2] || 0)}, 255, 0.5)` : localOptions.color; ctx.fillStyle = localOptions.useDepth && result[i].keypoints[pt].position[2] ? `rgba(${127.5 + 2 * (result[i].keypoints[pt].position[2] || 0)}, ${127.5 - 2 * (result[i].keypoints[pt].position[2] || 0)}, 255, 0.5)` : localOptions.color;
point(ctx, result[i].keypoints[pt].position[0], result[i].keypoints[pt].position[1], 0, localOptions); point(ctx, result[i].keypoints[pt].position[0], result[i].keypoints[pt].position[1], 0, localOptions);
} }
@ -11682,6 +11686,8 @@ async function body(inCanvas2, result, drawOptions) {
if (localOptions.drawLabels && result[i].keypoints) { if (localOptions.drawLabels && result[i].keypoints) {
ctx.font = localOptions.font; ctx.font = localOptions.font;
for (const pt of result[i].keypoints) { for (const pt of result[i].keypoints) {
if (!pt.score || pt.score === 0)
continue;
ctx.fillStyle = localOptions.useDepth && pt.position[2] ? `rgba(${127.5 + 2 * pt.position[2]}, ${127.5 - 2 * pt.position[2]}, 255, 0.5)` : localOptions.color; ctx.fillStyle = localOptions.useDepth && pt.position[2] ? `rgba(${127.5 + 2 * pt.position[2]}, ${127.5 - 2 * pt.position[2]}, 255, 0.5)` : localOptions.color;
ctx.fillText(`${pt.part} ${Math.trunc(100 * pt.score)}%`, pt.position[0] + 4, pt.position[1] + 4); ctx.fillText(`${pt.part} ${Math.trunc(100 * pt.score)}%`, pt.position[0] + 4, pt.position[1] + 4);
} }

View File

@ -65,7 +65,7 @@
"@tensorflow/tfjs-layers": "^3.11.0", "@tensorflow/tfjs-layers": "^3.11.0",
"@tensorflow/tfjs-node": "^3.11.0", "@tensorflow/tfjs-node": "^3.11.0",
"@tensorflow/tfjs-node-gpu": "^3.11.0", "@tensorflow/tfjs-node-gpu": "^3.11.0",
"@types/node": "^16.11.7", "@types/node": "^16.11.9",
"@types/offscreencanvas": "^2019.6.4", "@types/offscreencanvas": "^2019.6.4",
"@typescript-eslint/eslint-plugin": "^5.4.0", "@typescript-eslint/eslint-plugin": "^5.4.0",
"@typescript-eslint/parser": "^5.4.0", "@typescript-eslint/parser": "^5.4.0",

View File

@ -1,80 +0,0 @@
/**
* BlazePose model implemenation constants
* See `blazepose.ts` for entry point
*/
export const full = [
'nose',
'leftEyeInside',
'leftEye',
'leftEyeOutside',
'rightEyeInside',
'rightEye',
'rightEyeOutside',
'leftEar',
'rightEar',
'leftMouth',
'rightMouth',
'leftShoulder',
'rightShoulder',
'leftElbow',
'rightElbow',
'leftWrist',
'rightWrist',
'leftPalm',
'rightPalm',
'leftIndex',
'rightIndex',
'leftPinky',
'rightPinky',
'leftHip',
'rightHip',
'leftKnee',
'rightKnee',
'leftAnkle',
'rightAnkle',
'leftHeel',
'rightHeel',
'leftFoot',
'rightFoot',
'bodyCenter',
'forehead',
'leftThumb',
'leftHand',
'rightThumb',
'rightHand',
];
export const upper = [
'nose',
'leftEyeInside',
'leftEye',
'leftEyeOutside',
'rightEyeInside',
'rightEye',
'rightEyeOutside',
'leftEar',
'rightEar',
'leftMouth',
'rightMouth',
'leftShoulder',
'rightShoulder',
'leftElbow',
'rightElbow',
'left:15',
'right:16',
'left:17',
'right:18',
'left:19',
'right:20',
'left:21',
'right:22',
'leftChest',
'rightChest',
'neck',
'forehead',
'left:27',
'right:28',
'left:29',
'right:30',
];

View File

@ -127,7 +127,8 @@ async function detectParts(input: Tensor, config: Config, outputSize: [number, n
for (let i = 0; i < indexes.length - 1; i++) { for (let i = 0; i < indexes.length - 1; i++) {
const pt0 = keypoints.find((kpt) => kpt.part === indexes[i]); const pt0 = keypoints.find((kpt) => kpt.part === indexes[i]);
const pt1 = keypoints.find((kpt) => kpt.part === indexes[i + 1]); const pt1 = keypoints.find((kpt) => kpt.part === indexes[i + 1]);
if (pt0 && pt1 && pt0.score > (config.body.minConfidence || 0) && pt1.score > (config.body.minConfidence || 0)) pt.push([pt0.position, pt1.position]); // if (pt0 && pt1 && pt0.score > (config.body.minConfidence || 0) && pt1.score > (config.body.minConfidence || 0)) pt.push([pt0.position, pt1.position]);
if (pt0 && pt1) pt.push([pt0.position, pt1.position]);
} }
annotations[name] = pt; annotations[name] = pt;
} }

View File

@ -18,12 +18,12 @@ export const kpt: Array<string> = [
'rightElbow', // 14 'rightElbow', // 14
'leftWrist', // 15 'leftWrist', // 15
'rightWrist', // 16 'rightWrist', // 16
'leftPalm', // 17 'leftPinky', // 17
'rightPalm', // 18 'rightPinky', // 18
'leftIndex', // 19 'leftIndex', // 19
'rightIndex', // 20 'rightIndex', // 20
'leftPinky', // 21 'leftThumb', // 21
'rightPinky', // 22 'rightThumb', // 22
'leftHip', // 23 'leftHip', // 23
'rightHip', // 24 'rightHip', // 24
'leftKnee', // 25 'leftKnee', // 25
@ -36,10 +36,10 @@ export const kpt: Array<string> = [
'rightFoot', // 32 'rightFoot', // 32
'bodyCenter', // 33 'bodyCenter', // 33
'bodyTop', // 34 'bodyTop', // 34
'leftThumb', // 35 'leftPalm', // 35 // z-coord not ok
'leftHand', // 36 'leftHand', // 36 // similar to wrist but z-coord not ok
'rightThumb', // 37 'rightPalm', // 37 // z-coord not ok
'rightHand', // 38 'rightHand', // 38 // similar to wrist but z-coord not ok
]; ];
export const connected: Record<string, string[]> = { export const connected: Record<string, string[]> = {
@ -48,7 +48,9 @@ export const connected: Record<string, string[]> = {
torso: ['leftShoulder', 'rightShoulder', 'rightHip', 'leftHip', 'leftShoulder'], torso: ['leftShoulder', 'rightShoulder', 'rightHip', 'leftHip', 'leftShoulder'],
leftArm: ['leftShoulder', 'leftElbow', 'leftWrist', 'leftPalm'], leftArm: ['leftShoulder', 'leftElbow', 'leftWrist', 'leftPalm'],
rightArm: ['rightShoulder', 'rightElbow', 'rightWrist', 'rightPalm'], rightArm: ['rightShoulder', 'rightElbow', 'rightWrist', 'rightPalm'],
leftHand: [], leftHand: ['leftHand', 'leftPalm', 'leftPinky', 'leftPalm', 'leftIndex', 'leftPalm', 'leftThumb'],
rightHand: [], rightHand: ['rightHand', 'rightPalm', 'rightPinky', 'rightPalm', 'rightIndex', 'rightPalm', 'rightThumb'],
head: [], leftEye: ['leftEyeInside', 'leftEye', 'leftEyeOutside'],
rightEye: ['rightEyeInside', 'rightEye', 'rightEyeOutside'],
mouth: ['leftMouth', 'rightMouth'],
}; };

View File

@ -353,6 +353,7 @@ export async function body(inCanvas: AnyCanvas, result: Array<BodyResult>, drawO
} }
if (localOptions.drawPoints && result[i].keypoints) { if (localOptions.drawPoints && result[i].keypoints) {
for (let pt = 0; pt < result[i].keypoints.length; pt++) { for (let pt = 0; pt < result[i].keypoints.length; pt++) {
if (!result[i].keypoints[pt].score || (result[i].keypoints[pt].score === 0)) continue;
ctx.fillStyle = localOptions.useDepth && result[i].keypoints[pt].position[2] ? `rgba(${127.5 + (2 * (result[i].keypoints[pt].position[2] || 0))}, ${127.5 - (2 * (result[i].keypoints[pt].position[2] || 0))}, 255, 0.5)` : localOptions.color; ctx.fillStyle = localOptions.useDepth && result[i].keypoints[pt].position[2] ? `rgba(${127.5 + (2 * (result[i].keypoints[pt].position[2] || 0))}, ${127.5 - (2 * (result[i].keypoints[pt].position[2] || 0))}, 255, 0.5)` : localOptions.color;
point(ctx, result[i].keypoints[pt].position[0], result[i].keypoints[pt].position[1], 0, localOptions); point(ctx, result[i].keypoints[pt].position[0], result[i].keypoints[pt].position[1], 0, localOptions);
} }
@ -360,6 +361,7 @@ export async function body(inCanvas: AnyCanvas, result: Array<BodyResult>, drawO
if (localOptions.drawLabels && result[i].keypoints) { if (localOptions.drawLabels && result[i].keypoints) {
ctx.font = localOptions.font; ctx.font = localOptions.font;
for (const pt of result[i].keypoints) { for (const pt of result[i].keypoints) {
if (!pt.score || (pt.score === 0)) continue;
ctx.fillStyle = localOptions.useDepth && pt.position[2] ? `rgba(${127.5 + (2 * pt.position[2])}, ${127.5 - (2 * pt.position[2])}, 255, 0.5)` : localOptions.color; ctx.fillStyle = localOptions.useDepth && pt.position[2] ? `rgba(${127.5 + (2 * pt.position[2])}, ${127.5 - (2 * pt.position[2])}, 255, 0.5)` : localOptions.color;
ctx.fillText(`${pt.part} ${Math.trunc(100 * pt.score)}%`, pt.position[0] + 4, pt.position[1] + 4); ctx.fillText(`${pt.part} ${Math.trunc(100 * pt.score)}%`, pt.position[0] + 4, pt.position[1] + 4);
} }

View File

@ -23,3 +23,186 @@
2021-11-18 10:07:16 STATE: Lint: {"locations":["*.json","src/**/*.ts","test/**/*.js","demo/**/*.js"],"files":94,"errors":0,"warnings":0} 2021-11-18 10:07:16 STATE: Lint: {"locations":["*.json","src/**/*.ts","test/**/*.js","demo/**/*.js"],"files":94,"errors":0,"warnings":0}
2021-11-18 10:07:17 STATE: ChangeLog: {"repository":"https://github.com/vladmandic/human","branch":"main","output":"CHANGELOG.md"} 2021-11-18 10:07:17 STATE: ChangeLog: {"repository":"https://github.com/vladmandic/human","branch":"main","output":"CHANGELOG.md"}
2021-11-18 10:07:17 INFO:  Done... 2021-11-18 10:07:17 INFO:  Done...
2021-11-19 13:43:40 INFO:  @vladmandic/human version 2.5.3
2021-11-19 13:43:40 INFO:  User: vlado Platform: linux Arch: x64 Node: v17.0.1
2021-11-19 13:43:40 INFO:  Application: {"name":"@vladmandic/human","version":"2.5.3"}
2021-11-19 13:43:40 INFO:  Environment: {"profile":"development","config":".build.json","package":"package.json","tsconfig":true,"eslintrc":true,"git":true}
2021-11-19 13:43:40 INFO:  Toolchain: {"build":"0.6.4","esbuild":"0.13.14","typescript":"4.5.2","typedoc":"0.22.9","eslint":"8.2.0"}
2021-11-19 13:43:40 INFO:  Build: {"profile":"development","steps":["serve","watch","compile"]}
2021-11-19 13:43:40 STATE: WebServer: {"ssl":false,"port":10030,"root":"."}
2021-11-19 13:43:40 STATE: WebServer: {"ssl":true,"port":10031,"root":".","sslKey":"node_modules/@vladmandic/build/cert/https.key","sslCrt":"node_modules/@vladmandic/build/cert/https.crt"}
2021-11-19 13:43:40 STATE: Watch: {"locations":["src/**","README.md","src/**/*","tfjs/**/*","demo/**/*.ts"]}
2021-11-19 13:43:40 STATE: Compile: {"name":"tfjs/nodejs/cpu","format":"cjs","platform":"node","input":"tfjs/tf-node.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":102,"outputBytes":1275}
2021-11-19 13:43:40 STATE: Compile: {"name":"human/nodejs/cpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node.js","files":62,"inputBytes":546931,"outputBytes":462537}
2021-11-19 13:43:40 STATE: Compile: {"name":"tfjs/nodejs/gpu","format":"cjs","platform":"node","input":"tfjs/tf-node-gpu.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":110,"outputBytes":1283}
2021-11-19 13:43:40 STATE: Compile: {"name":"human/nodejs/gpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-gpu.js","files":62,"inputBytes":546939,"outputBytes":462541}
2021-11-19 13:43:40 STATE: Compile: {"name":"tfjs/nodejs/wasm","format":"cjs","platform":"node","input":"tfjs/tf-node-wasm.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":149,"outputBytes":1350}
2021-11-19 13:43:41 STATE: Compile: {"name":"human/nodejs/wasm","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-wasm.js","files":62,"inputBytes":547006,"outputBytes":462613}
2021-11-19 13:43:41 STATE: Compile: {"name":"tfjs/browser/version","format":"esm","platform":"browser","input":"tfjs/tf-version.ts","output":"dist/tfjs.version.js","files":1,"inputBytes":1063,"outputBytes":1652}
2021-11-19 13:43:41 STATE: Compile: {"name":"tfjs/browser/esm/nobundle","format":"esm","platform":"browser","input":"tfjs/tf-browser.ts","output":"dist/tfjs.esm.js","files":2,"inputBytes":2326,"outputBytes":912}
2021-11-19 13:43:41 STATE: Compile: {"name":"human/browser/esm/nobundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm-nobundle.js","files":62,"inputBytes":546568,"outputBytes":464258}
2021-11-19 13:43:41 STATE: Compile: {"name":"tfjs/browser/esm/custom","format":"esm","platform":"browser","input":"tfjs/tf-custom.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":110,"outputBytes":2500252}
2021-11-19 13:43:41 STATE: Compile: {"name":"human/browser/iife/bundle","format":"iife","platform":"browser","input":"src/human.ts","output":"dist/human.js","files":62,"inputBytes":3045908,"outputBytes":1624796}
2021-11-19 13:43:42 STATE: Compile: {"name":"human/browser/esm/bundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm.js","files":62,"inputBytes":3045908,"outputBytes":2969964}
2021-11-19 13:43:42 STATE: Compile: {"name":"demo/typescript","format":"esm","platform":"browser","input":"demo/typescript/index.ts","output":"demo/typescript/index.js","files":1,"inputBytes":5841,"outputBytes":4127}
2021-11-19 13:43:42 STATE: Compile: {"name":"demo/faceid","format":"esm","platform":"browser","input":"demo/faceid/index.ts","output":"demo/faceid/index.js","files":2,"inputBytes":15174,"outputBytes":11794}
2021-11-19 13:43:42 INFO:  Listening...
2021-11-19 15:06:45 INFO:  @vladmandic/human version 2.5.3
2021-11-19 15:06:45 INFO:  User: vlado Platform: linux Arch: x64 Node: v17.0.1
2021-11-19 15:06:45 INFO:  Application: {"name":"@vladmandic/human","version":"2.5.3"}
2021-11-19 15:06:45 INFO:  Environment: {"profile":"development","config":".build.json","package":"package.json","tsconfig":true,"eslintrc":true,"git":true}
2021-11-19 15:06:45 INFO:  Toolchain: {"build":"0.6.4","esbuild":"0.13.14","typescript":"4.5.2","typedoc":"0.22.9","eslint":"8.2.0"}
2021-11-19 15:06:45 INFO:  Build: {"profile":"development","steps":["serve","watch","compile"]}
2021-11-19 15:06:45 STATE: WebServer: {"ssl":false,"port":10030,"root":"."}
2021-11-19 15:06:45 STATE: WebServer: {"ssl":true,"port":10031,"root":".","sslKey":"node_modules/@vladmandic/build/cert/https.key","sslCrt":"node_modules/@vladmandic/build/cert/https.crt"}
2021-11-19 15:06:45 STATE: Watch: {"locations":["src/**","README.md","src/**/*","tfjs/**/*","demo/**/*.ts"]}
2021-11-19 15:06:45 STATE: Compile: {"name":"tfjs/nodejs/cpu","format":"cjs","platform":"node","input":"tfjs/tf-node.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":102,"outputBytes":1275}
2021-11-19 15:06:45 STATE: Compile: {"name":"human/nodejs/cpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node.js","files":62,"inputBytes":546975,"outputBytes":462579}
2021-11-19 15:06:45 STATE: Compile: {"name":"tfjs/nodejs/gpu","format":"cjs","platform":"node","input":"tfjs/tf-node-gpu.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":110,"outputBytes":1283}
2021-11-19 15:06:45 STATE: Compile: {"name":"human/nodejs/gpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-gpu.js","files":62,"inputBytes":546983,"outputBytes":462583}
2021-11-19 15:06:45 STATE: Compile: {"name":"tfjs/nodejs/wasm","format":"cjs","platform":"node","input":"tfjs/tf-node-wasm.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":149,"outputBytes":1350}
2021-11-19 15:06:45 STATE: Compile: {"name":"human/nodejs/wasm","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-wasm.js","files":62,"inputBytes":547050,"outputBytes":462655}
2021-11-19 15:06:45 STATE: Compile: {"name":"tfjs/browser/version","format":"esm","platform":"browser","input":"tfjs/tf-version.ts","output":"dist/tfjs.version.js","files":1,"inputBytes":1063,"outputBytes":1652}
2021-11-19 15:06:45 STATE: Compile: {"name":"tfjs/browser/esm/nobundle","format":"esm","platform":"browser","input":"tfjs/tf-browser.ts","output":"dist/tfjs.esm.js","files":2,"inputBytes":2326,"outputBytes":912}
2021-11-19 15:06:45 STATE: Compile: {"name":"human/browser/esm/nobundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm-nobundle.js","files":62,"inputBytes":546612,"outputBytes":464300}
2021-11-19 15:06:45 STATE: Compile: {"name":"tfjs/browser/esm/custom","format":"esm","platform":"browser","input":"tfjs/tf-custom.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":110,"outputBytes":2500252}
2021-11-19 15:06:46 STATE: Compile: {"name":"human/browser/iife/bundle","format":"iife","platform":"browser","input":"src/human.ts","output":"dist/human.js","files":62,"inputBytes":3045952,"outputBytes":1624822}
2021-11-19 15:06:46 STATE: Compile: {"name":"human/browser/esm/bundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm.js","files":62,"inputBytes":3045952,"outputBytes":2970006}
2021-11-19 15:06:46 STATE: Compile: {"name":"demo/typescript","format":"esm","platform":"browser","input":"demo/typescript/index.ts","output":"demo/typescript/index.js","files":1,"inputBytes":5841,"outputBytes":4127}
2021-11-19 15:06:46 STATE: Compile: {"name":"demo/faceid","format":"esm","platform":"browser","input":"demo/faceid/index.ts","output":"demo/faceid/index.js","files":2,"inputBytes":15174,"outputBytes":11794}
2021-11-19 15:06:46 INFO:  Listening...
2021-11-19 15:08:26 INFO:  Watch: {"event":"modify","input":"src/util/draw.ts"}
2021-11-19 15:08:26 STATE: Compile: {"name":"tfjs/nodejs/cpu","format":"cjs","platform":"node","input":"tfjs/tf-node.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":102,"outputBytes":1275}
2021-11-19 15:08:26 STATE: Compile: {"name":"human/nodejs/cpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node.js","files":62,"inputBytes":546998,"outputBytes":462612}
2021-11-19 15:08:26 STATE: Compile: {"name":"tfjs/nodejs/gpu","format":"cjs","platform":"node","input":"tfjs/tf-node-gpu.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":110,"outputBytes":1283}
2021-11-19 15:08:26 STATE: Compile: {"name":"human/nodejs/gpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-gpu.js","files":62,"inputBytes":547006,"outputBytes":462616}
2021-11-19 15:08:26 STATE: Compile: {"name":"tfjs/nodejs/wasm","format":"cjs","platform":"node","input":"tfjs/tf-node-wasm.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":149,"outputBytes":1350}
2021-11-19 15:08:26 STATE: Compile: {"name":"human/nodejs/wasm","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-wasm.js","files":62,"inputBytes":547073,"outputBytes":462688}
2021-11-19 15:08:26 STATE: Compile: {"name":"tfjs/browser/version","format":"esm","platform":"browser","input":"tfjs/tf-version.ts","output":"dist/tfjs.version.js","files":1,"inputBytes":1063,"outputBytes":1652}
2021-11-19 15:08:26 STATE: Compile: {"name":"tfjs/browser/esm/nobundle","format":"esm","platform":"browser","input":"tfjs/tf-browser.ts","output":"dist/tfjs.esm.js","files":2,"inputBytes":2326,"outputBytes":912}
2021-11-19 15:08:26 STATE: Compile: {"name":"human/browser/esm/nobundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm-nobundle.js","files":62,"inputBytes":546635,"outputBytes":464333}
2021-11-19 15:08:26 STATE: Compile: {"name":"tfjs/browser/esm/custom","format":"esm","platform":"browser","input":"tfjs/tf-custom.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":110,"outputBytes":2500252}
2021-11-19 15:08:27 STATE: Compile: {"name":"human/browser/iife/bundle","format":"iife","platform":"browser","input":"src/human.ts","output":"dist/human.js","files":62,"inputBytes":3045975,"outputBytes":1624827}
2021-11-19 15:08:27 STATE: Compile: {"name":"human/browser/esm/bundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm.js","files":62,"inputBytes":3045975,"outputBytes":2970039}
2021-11-19 15:08:27 STATE: Compile: {"name":"demo/typescript","format":"esm","platform":"browser","input":"demo/typescript/index.ts","output":"demo/typescript/index.js","files":1,"inputBytes":5841,"outputBytes":4127}
2021-11-19 15:08:27 STATE: Compile: {"name":"demo/faceid","format":"esm","platform":"browser","input":"demo/faceid/index.ts","output":"demo/faceid/index.js","files":2,"inputBytes":15174,"outputBytes":11794}
2021-11-19 15:10:41 INFO:  Watch: {"event":"modify","input":"src/util/draw.ts"}
2021-11-19 15:10:41 STATE: Compile: {"name":"tfjs/nodejs/cpu","format":"cjs","platform":"node","input":"tfjs/tf-node.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":102,"outputBytes":1275}
2021-11-19 15:10:41 STATE: Compile: {"name":"human/nodejs/cpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node.js","files":62,"inputBytes":546984,"outputBytes":462598}
2021-11-19 15:10:41 STATE: Compile: {"name":"tfjs/nodejs/gpu","format":"cjs","platform":"node","input":"tfjs/tf-node-gpu.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":110,"outputBytes":1283}
2021-11-19 15:10:41 STATE: Compile: {"name":"human/nodejs/gpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-gpu.js","files":62,"inputBytes":546992,"outputBytes":462602}
2021-11-19 15:10:41 STATE: Compile: {"name":"tfjs/nodejs/wasm","format":"cjs","platform":"node","input":"tfjs/tf-node-wasm.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":149,"outputBytes":1350}
2021-11-19 15:10:41 STATE: Compile: {"name":"human/nodejs/wasm","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-wasm.js","files":62,"inputBytes":547059,"outputBytes":462674}
2021-11-19 15:10:41 STATE: Compile: {"name":"tfjs/browser/version","format":"esm","platform":"browser","input":"tfjs/tf-version.ts","output":"dist/tfjs.version.js","files":1,"inputBytes":1063,"outputBytes":1652}
2021-11-19 15:10:41 STATE: Compile: {"name":"tfjs/browser/esm/nobundle","format":"esm","platform":"browser","input":"tfjs/tf-browser.ts","output":"dist/tfjs.esm.js","files":2,"inputBytes":2326,"outputBytes":912}
2021-11-19 15:10:41 STATE: Compile: {"name":"human/browser/esm/nobundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm-nobundle.js","files":62,"inputBytes":546621,"outputBytes":464319}
2021-11-19 15:10:42 STATE: Compile: {"name":"tfjs/browser/esm/custom","format":"esm","platform":"browser","input":"tfjs/tf-custom.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":110,"outputBytes":2500252}
2021-11-19 15:10:42 STATE: Compile: {"name":"human/browser/iife/bundle","format":"iife","platform":"browser","input":"src/human.ts","output":"dist/human.js","files":62,"inputBytes":3045961,"outputBytes":1624821}
2021-11-19 15:10:42 STATE: Compile: {"name":"human/browser/esm/bundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm.js","files":62,"inputBytes":3045961,"outputBytes":2970025}
2021-11-19 15:10:42 STATE: Compile: {"name":"demo/typescript","format":"esm","platform":"browser","input":"demo/typescript/index.ts","output":"demo/typescript/index.js","files":1,"inputBytes":5841,"outputBytes":4127}
2021-11-19 15:10:42 STATE: Compile: {"name":"demo/faceid","format":"esm","platform":"browser","input":"demo/faceid/index.ts","output":"demo/faceid/index.js","files":2,"inputBytes":15174,"outputBytes":11794}
2021-11-19 15:17:44 INFO:  Watch: {"event":"modify","input":"src/body/blazeposecoords.ts"}
2021-11-19 15:17:44 STATE: Compile: {"name":"tfjs/nodejs/cpu","format":"cjs","platform":"node","input":"tfjs/tf-node.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":102,"outputBytes":1275}
2021-11-19 15:17:44 STATE: Compile: {"name":"human/nodejs/cpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node.js","files":62,"inputBytes":547132,"outputBytes":462746}
2021-11-19 15:17:44 STATE: Compile: {"name":"tfjs/nodejs/gpu","format":"cjs","platform":"node","input":"tfjs/tf-node-gpu.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":110,"outputBytes":1283}
2021-11-19 15:17:44 STATE: Compile: {"name":"human/nodejs/gpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-gpu.js","files":62,"inputBytes":547140,"outputBytes":462750}
2021-11-19 15:17:44 STATE: Compile: {"name":"tfjs/nodejs/wasm","format":"cjs","platform":"node","input":"tfjs/tf-node-wasm.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":149,"outputBytes":1350}
2021-11-19 15:17:44 STATE: Compile: {"name":"human/nodejs/wasm","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-wasm.js","files":62,"inputBytes":547207,"outputBytes":462822}
2021-11-19 15:17:44 STATE: Compile: {"name":"tfjs/browser/version","format":"esm","platform":"browser","input":"tfjs/tf-version.ts","output":"dist/tfjs.version.js","files":1,"inputBytes":1063,"outputBytes":1652}
2021-11-19 15:17:44 STATE: Compile: {"name":"tfjs/browser/esm/nobundle","format":"esm","platform":"browser","input":"tfjs/tf-browser.ts","output":"dist/tfjs.esm.js","files":2,"inputBytes":2326,"outputBytes":912}
2021-11-19 15:17:44 STATE: Compile: {"name":"human/browser/esm/nobundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm-nobundle.js","files":62,"inputBytes":546769,"outputBytes":464467}
2021-11-19 15:17:45 STATE: Compile: {"name":"tfjs/browser/esm/custom","format":"esm","platform":"browser","input":"tfjs/tf-custom.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":110,"outputBytes":2500252}
2021-11-19 15:17:45 STATE: Compile: {"name":"human/browser/iife/bundle","format":"iife","platform":"browser","input":"src/human.ts","output":"dist/human.js","files":62,"inputBytes":3046109,"outputBytes":1624956}
2021-11-19 15:17:46 STATE: Compile: {"name":"human/browser/esm/bundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm.js","files":62,"inputBytes":3046109,"outputBytes":2970173}
2021-11-19 15:17:46 STATE: Compile: {"name":"demo/typescript","format":"esm","platform":"browser","input":"demo/typescript/index.ts","output":"demo/typescript/index.js","files":1,"inputBytes":5841,"outputBytes":4127}
2021-11-19 15:17:46 STATE: Compile: {"name":"demo/faceid","format":"esm","platform":"browser","input":"demo/faceid/index.ts","output":"demo/faceid/index.js","files":2,"inputBytes":15174,"outputBytes":11794}
2021-11-19 15:18:30 INFO:  Watch: {"event":"modify","input":"src/body/blazeposecoords.ts"}
2021-11-19 15:18:31 STATE: Compile: {"name":"tfjs/nodejs/cpu","format":"cjs","platform":"node","input":"tfjs/tf-node.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":102,"outputBytes":1275}
2021-11-19 15:18:31 STATE: Compile: {"name":"human/nodejs/cpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node.js","files":62,"inputBytes":547132,"outputBytes":462746}
2021-11-19 15:18:31 STATE: Compile: {"name":"tfjs/nodejs/gpu","format":"cjs","platform":"node","input":"tfjs/tf-node-gpu.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":110,"outputBytes":1283}
2021-11-19 15:18:31 STATE: Compile: {"name":"human/nodejs/gpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-gpu.js","files":62,"inputBytes":547140,"outputBytes":462750}
2021-11-19 15:18:31 STATE: Compile: {"name":"tfjs/nodejs/wasm","format":"cjs","platform":"node","input":"tfjs/tf-node-wasm.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":149,"outputBytes":1350}
2021-11-19 15:18:31 STATE: Compile: {"name":"human/nodejs/wasm","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-wasm.js","files":62,"inputBytes":547207,"outputBytes":462822}
2021-11-19 15:18:31 STATE: Compile: {"name":"tfjs/browser/version","format":"esm","platform":"browser","input":"tfjs/tf-version.ts","output":"dist/tfjs.version.js","files":1,"inputBytes":1063,"outputBytes":1652}
2021-11-19 15:18:31 STATE: Compile: {"name":"tfjs/browser/esm/nobundle","format":"esm","platform":"browser","input":"tfjs/tf-browser.ts","output":"dist/tfjs.esm.js","files":2,"inputBytes":2326,"outputBytes":912}
2021-11-19 15:18:31 STATE: Compile: {"name":"human/browser/esm/nobundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm-nobundle.js","files":62,"inputBytes":546769,"outputBytes":464467}
2021-11-19 15:18:31 STATE: Compile: {"name":"tfjs/browser/esm/custom","format":"esm","platform":"browser","input":"tfjs/tf-custom.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":110,"outputBytes":2500252}
2021-11-19 15:18:31 STATE: Compile: {"name":"human/browser/iife/bundle","format":"iife","platform":"browser","input":"src/human.ts","output":"dist/human.js","files":62,"inputBytes":3046109,"outputBytes":1624956}
2021-11-19 15:18:32 STATE: Compile: {"name":"human/browser/esm/bundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm.js","files":62,"inputBytes":3046109,"outputBytes":2970173}
2021-11-19 15:18:32 STATE: Compile: {"name":"demo/typescript","format":"esm","platform":"browser","input":"demo/typescript/index.ts","output":"demo/typescript/index.js","files":1,"inputBytes":5841,"outputBytes":4127}
2021-11-19 15:18:32 STATE: Compile: {"name":"demo/faceid","format":"esm","platform":"browser","input":"demo/faceid/index.ts","output":"demo/faceid/index.js","files":2,"inputBytes":15174,"outputBytes":11794}
2021-11-19 15:20:22 INFO:  Watch: {"event":"modify","input":"src/util/draw.ts"}
2021-11-19 15:20:22 STATE: Compile: {"name":"tfjs/nodejs/cpu","format":"cjs","platform":"node","input":"tfjs/tf-node.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":102,"outputBytes":1275}
2021-11-19 15:20:22 STATE: Compile: {"name":"human/nodejs/cpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node.js","files":62,"inputBytes":547227,"outputBytes":462849}
2021-11-19 15:20:22 STATE: Compile: {"name":"tfjs/nodejs/gpu","format":"cjs","platform":"node","input":"tfjs/tf-node-gpu.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":110,"outputBytes":1283}
2021-11-19 15:20:22 STATE: Compile: {"name":"human/nodejs/gpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-gpu.js","files":62,"inputBytes":547235,"outputBytes":462853}
2021-11-19 15:20:22 STATE: Compile: {"name":"tfjs/nodejs/wasm","format":"cjs","platform":"node","input":"tfjs/tf-node-wasm.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":149,"outputBytes":1350}
2021-11-19 15:20:22 STATE: Compile: {"name":"human/nodejs/wasm","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-wasm.js","files":62,"inputBytes":547302,"outputBytes":462925}
2021-11-19 15:20:22 STATE: Compile: {"name":"tfjs/browser/version","format":"esm","platform":"browser","input":"tfjs/tf-version.ts","output":"dist/tfjs.version.js","files":1,"inputBytes":1063,"outputBytes":1652}
2021-11-19 15:20:22 STATE: Compile: {"name":"tfjs/browser/esm/nobundle","format":"esm","platform":"browser","input":"tfjs/tf-browser.ts","output":"dist/tfjs.esm.js","files":2,"inputBytes":2326,"outputBytes":912}
2021-11-19 15:20:22 STATE: Compile: {"name":"human/browser/esm/nobundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm-nobundle.js","files":62,"inputBytes":546864,"outputBytes":464570}
2021-11-19 15:20:22 STATE: Compile: {"name":"tfjs/browser/esm/custom","format":"esm","platform":"browser","input":"tfjs/tf-custom.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":110,"outputBytes":2500252}
2021-11-19 15:20:23 STATE: Compile: {"name":"human/browser/iife/bundle","format":"iife","platform":"browser","input":"src/human.ts","output":"dist/human.js","files":62,"inputBytes":3046204,"outputBytes":1625013}
2021-11-19 15:20:23 STATE: Compile: {"name":"human/browser/esm/bundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm.js","files":62,"inputBytes":3046204,"outputBytes":2970276}
2021-11-19 15:20:23 STATE: Compile: {"name":"demo/typescript","format":"esm","platform":"browser","input":"demo/typescript/index.ts","output":"demo/typescript/index.js","files":1,"inputBytes":5841,"outputBytes":4127}
2021-11-19 15:20:23 STATE: Compile: {"name":"demo/faceid","format":"esm","platform":"browser","input":"demo/faceid/index.ts","output":"demo/faceid/index.js","files":2,"inputBytes":15174,"outputBytes":11794}
2021-11-19 16:00:28 INFO:  Watch: {"event":"modify","input":"src/body/blazeposecoords.ts"}
2021-11-19 16:00:28 STATE: Compile: {"name":"tfjs/nodejs/cpu","format":"cjs","platform":"node","input":"tfjs/tf-node.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":102,"outputBytes":1275}
2021-11-19 16:00:28 STATE: Compile: {"name":"human/nodejs/cpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node.js","files":62,"inputBytes":547520,"outputBytes":463026}
2021-11-19 16:00:28 STATE: Compile: {"name":"tfjs/nodejs/gpu","format":"cjs","platform":"node","input":"tfjs/tf-node-gpu.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":110,"outputBytes":1283}
2021-11-19 16:00:28 STATE: Compile: {"name":"human/nodejs/gpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-gpu.js","files":62,"inputBytes":547528,"outputBytes":463030}
2021-11-19 16:00:28 STATE: Compile: {"name":"tfjs/nodejs/wasm","format":"cjs","platform":"node","input":"tfjs/tf-node-wasm.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":149,"outputBytes":1350}
2021-11-19 16:00:28 STATE: Compile: {"name":"human/nodejs/wasm","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-wasm.js","files":62,"inputBytes":547595,"outputBytes":463102}
2021-11-19 16:00:28 STATE: Compile: {"name":"tfjs/browser/version","format":"esm","platform":"browser","input":"tfjs/tf-version.ts","output":"dist/tfjs.version.js","files":1,"inputBytes":1063,"outputBytes":1652}
2021-11-19 16:00:28 STATE: Compile: {"name":"tfjs/browser/esm/nobundle","format":"esm","platform":"browser","input":"tfjs/tf-browser.ts","output":"dist/tfjs.esm.js","files":2,"inputBytes":2326,"outputBytes":912}
2021-11-19 16:00:28 STATE: Compile: {"name":"human/browser/esm/nobundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm-nobundle.js","files":62,"inputBytes":547157,"outputBytes":464747}
2021-11-19 16:00:29 STATE: Compile: {"name":"tfjs/browser/esm/custom","format":"esm","platform":"browser","input":"tfjs/tf-custom.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":110,"outputBytes":2500252}
2021-11-19 16:00:29 STATE: Compile: {"name":"human/browser/iife/bundle","format":"iife","platform":"browser","input":"src/human.ts","output":"dist/human.js","files":62,"inputBytes":3046497,"outputBytes":1625178}
2021-11-19 16:00:29 STATE: Compile: {"name":"human/browser/esm/bundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm.js","files":62,"inputBytes":3046497,"outputBytes":2970453}
2021-11-19 16:00:29 STATE: Compile: {"name":"demo/typescript","format":"esm","platform":"browser","input":"demo/typescript/index.ts","output":"demo/typescript/index.js","files":1,"inputBytes":5841,"outputBytes":4127}
2021-11-19 16:00:29 STATE: Compile: {"name":"demo/faceid","format":"esm","platform":"browser","input":"demo/faceid/index.ts","output":"demo/faceid/index.js","files":2,"inputBytes":15174,"outputBytes":11794}
2021-11-19 16:01:20 INFO:  Watch: {"event":"modify","input":"src/body/blazeposecoords.ts"}
2021-11-19 16:01:20 STATE: Compile: {"name":"tfjs/nodejs/cpu","format":"cjs","platform":"node","input":"tfjs/tf-node.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":102,"outputBytes":1275}
2021-11-19 16:01:20 STATE: Compile: {"name":"human/nodejs/cpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node.js","files":62,"inputBytes":547518,"outputBytes":463026}
2021-11-19 16:01:20 STATE: Compile: {"name":"tfjs/nodejs/gpu","format":"cjs","platform":"node","input":"tfjs/tf-node-gpu.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":110,"outputBytes":1283}
2021-11-19 16:01:20 STATE: Compile: {"name":"human/nodejs/gpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-gpu.js","files":62,"inputBytes":547526,"outputBytes":463030}
2021-11-19 16:01:20 STATE: Compile: {"name":"tfjs/nodejs/wasm","format":"cjs","platform":"node","input":"tfjs/tf-node-wasm.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":149,"outputBytes":1350}
2021-11-19 16:01:20 STATE: Compile: {"name":"human/nodejs/wasm","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-wasm.js","files":62,"inputBytes":547593,"outputBytes":463102}
2021-11-19 16:01:20 STATE: Compile: {"name":"tfjs/browser/version","format":"esm","platform":"browser","input":"tfjs/tf-version.ts","output":"dist/tfjs.version.js","files":1,"inputBytes":1063,"outputBytes":1652}
2021-11-19 16:01:20 STATE: Compile: {"name":"tfjs/browser/esm/nobundle","format":"esm","platform":"browser","input":"tfjs/tf-browser.ts","output":"dist/tfjs.esm.js","files":2,"inputBytes":2326,"outputBytes":912}
2021-11-19 16:01:21 STATE: Compile: {"name":"human/browser/esm/nobundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm-nobundle.js","files":62,"inputBytes":547155,"outputBytes":464747}
2021-11-19 16:01:21 STATE: Compile: {"name":"tfjs/browser/esm/custom","format":"esm","platform":"browser","input":"tfjs/tf-custom.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":110,"outputBytes":2500252}
2021-11-19 16:01:21 STATE: Compile: {"name":"human/browser/iife/bundle","format":"iife","platform":"browser","input":"src/human.ts","output":"dist/human.js","files":62,"inputBytes":3046495,"outputBytes":1625178}
2021-11-19 16:01:22 STATE: Compile: {"name":"human/browser/esm/bundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm.js","files":62,"inputBytes":3046495,"outputBytes":2970453}
2021-11-19 16:01:22 STATE: Compile: {"name":"demo/typescript","format":"esm","platform":"browser","input":"demo/typescript/index.ts","output":"demo/typescript/index.js","files":1,"inputBytes":5841,"outputBytes":4127}
2021-11-19 16:01:22 STATE: Compile: {"name":"demo/faceid","format":"esm","platform":"browser","input":"demo/faceid/index.ts","output":"demo/faceid/index.js","files":2,"inputBytes":15174,"outputBytes":11794}
2021-11-19 16:04:57 INFO:  Watch: {"event":"remove","input":"src/body/annotations.ts"}
2021-11-19 16:04:57 STATE: Compile: {"name":"tfjs/nodejs/cpu","format":"cjs","platform":"node","input":"tfjs/tf-node.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":102,"outputBytes":1275}
2021-11-19 16:04:57 STATE: Compile: {"name":"human/nodejs/cpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node.js","files":62,"inputBytes":547518,"outputBytes":463026}
2021-11-19 16:04:57 STATE: Compile: {"name":"tfjs/nodejs/gpu","format":"cjs","platform":"node","input":"tfjs/tf-node-gpu.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":110,"outputBytes":1283}
2021-11-19 16:04:58 STATE: Compile: {"name":"human/nodejs/gpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-gpu.js","files":62,"inputBytes":547526,"outputBytes":463030}
2021-11-19 16:04:58 STATE: Compile: {"name":"tfjs/nodejs/wasm","format":"cjs","platform":"node","input":"tfjs/tf-node-wasm.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":149,"outputBytes":1350}
2021-11-19 16:04:58 STATE: Compile: {"name":"human/nodejs/wasm","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-wasm.js","files":62,"inputBytes":547593,"outputBytes":463102}
2021-11-19 16:04:58 STATE: Compile: {"name":"tfjs/browser/version","format":"esm","platform":"browser","input":"tfjs/tf-version.ts","output":"dist/tfjs.version.js","files":1,"inputBytes":1063,"outputBytes":1652}
2021-11-19 16:04:58 STATE: Compile: {"name":"tfjs/browser/esm/nobundle","format":"esm","platform":"browser","input":"tfjs/tf-browser.ts","output":"dist/tfjs.esm.js","files":2,"inputBytes":2326,"outputBytes":912}
2021-11-19 16:04:58 STATE: Compile: {"name":"human/browser/esm/nobundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm-nobundle.js","files":62,"inputBytes":547155,"outputBytes":464747}
2021-11-19 16:04:58 STATE: Compile: {"name":"tfjs/browser/esm/custom","format":"esm","platform":"browser","input":"tfjs/tf-custom.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":110,"outputBytes":2500252}
2021-11-19 16:04:59 STATE: Compile: {"name":"human/browser/iife/bundle","format":"iife","platform":"browser","input":"src/human.ts","output":"dist/human.js","files":62,"inputBytes":3046495,"outputBytes":1625178}
2021-11-19 16:04:59 STATE: Compile: {"name":"human/browser/esm/bundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm.js","files":62,"inputBytes":3046495,"outputBytes":2970453}
2021-11-19 16:04:59 STATE: Compile: {"name":"demo/typescript","format":"esm","platform":"browser","input":"demo/typescript/index.ts","output":"demo/typescript/index.js","files":1,"inputBytes":5841,"outputBytes":4127}
2021-11-19 16:04:59 STATE: Compile: {"name":"demo/faceid","format":"esm","platform":"browser","input":"demo/faceid/index.ts","output":"demo/faceid/index.js","files":2,"inputBytes":15174,"outputBytes":11794}
2021-11-19 16:06:48 INFO:  Watch: {"event":"modify","input":"src/body/blazepose.ts"}
2021-11-19 16:06:48 STATE: Compile: {"name":"tfjs/nodejs/cpu","format":"cjs","platform":"node","input":"tfjs/tf-node.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":102,"outputBytes":1275}
2021-11-19 16:06:48 STATE: Compile: {"name":"human/nodejs/cpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node.js","files":62,"inputBytes":547582,"outputBytes":462928}
2021-11-19 16:06:48 STATE: Compile: {"name":"tfjs/nodejs/gpu","format":"cjs","platform":"node","input":"tfjs/tf-node-gpu.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":110,"outputBytes":1283}
2021-11-19 16:06:48 STATE: Compile: {"name":"human/nodejs/gpu","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-gpu.js","files":62,"inputBytes":547590,"outputBytes":462932}
2021-11-19 16:06:48 STATE: Compile: {"name":"tfjs/nodejs/wasm","format":"cjs","platform":"node","input":"tfjs/tf-node-wasm.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":149,"outputBytes":1350}
2021-11-19 16:06:48 STATE: Compile: {"name":"human/nodejs/wasm","format":"cjs","platform":"node","input":"src/human.ts","output":"dist/human.node-wasm.js","files":62,"inputBytes":547657,"outputBytes":463004}
2021-11-19 16:06:48 STATE: Compile: {"name":"tfjs/browser/version","format":"esm","platform":"browser","input":"tfjs/tf-version.ts","output":"dist/tfjs.version.js","files":1,"inputBytes":1063,"outputBytes":1652}
2021-11-19 16:06:48 STATE: Compile: {"name":"tfjs/browser/esm/nobundle","format":"esm","platform":"browser","input":"tfjs/tf-browser.ts","output":"dist/tfjs.esm.js","files":2,"inputBytes":2326,"outputBytes":912}
2021-11-19 16:06:48 STATE: Compile: {"name":"human/browser/esm/nobundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm-nobundle.js","files":62,"inputBytes":547219,"outputBytes":464649}
2021-11-19 16:06:48 STATE: Compile: {"name":"tfjs/browser/esm/custom","format":"esm","platform":"browser","input":"tfjs/tf-custom.ts","output":"dist/tfjs.esm.js","files":1,"inputBytes":110,"outputBytes":2500252}
2021-11-19 16:06:48 STATE: Compile: {"name":"human/browser/iife/bundle","format":"iife","platform":"browser","input":"src/human.ts","output":"dist/human.js","files":62,"inputBytes":3046559,"outputBytes":1625108}
2021-11-19 16:06:49 STATE: Compile: {"name":"human/browser/esm/bundle","format":"esm","platform":"browser","input":"src/human.ts","output":"dist/human.esm.js","files":62,"inputBytes":3046559,"outputBytes":2970355}
2021-11-19 16:06:49 STATE: Compile: {"name":"demo/typescript","format":"esm","platform":"browser","input":"demo/typescript/index.ts","output":"demo/typescript/index.js","files":1,"inputBytes":5841,"outputBytes":4127}
2021-11-19 16:06:49 STATE: Compile: {"name":"demo/faceid","format":"esm","platform":"browser","input":"demo/faceid/index.ts","output":"demo/faceid/index.js","files":2,"inputBytes":15174,"outputBytes":11794}