fix for human.draw labels and typedefs

pull/356/head
Vladimir Mandic 2021-10-21 10:54:51 -04:00
parent 37672d6460
commit 975d7fb477
4 changed files with 14 additions and 12 deletions

View File

@ -9,8 +9,9 @@
## Changelog
### **HEAD -> main** 2021/10/19 mandic00@live.com
### **HEAD -> main** 2021/10/21 mandic00@live.com
- add human.custom.esm using custom tfjs build
### **2.3.5** 2021/10/19 mandic00@live.com

View File

@ -63,6 +63,7 @@ const drawOptions = {
drawBoxes: true,
drawGaze: true,
drawLabels: true,
drawGestures: true,
drawPolygons: true,
drawPoints: false,
fillPolygons: false,

View File

@ -48,11 +48,11 @@ export const detectFace = async (parent /* instance of human */, input: Tensor):
// run emotion, inherits face from blazeface
parent.analyze('Start Emotion:');
if (parent.config.async) {
emotionRes = parent.config.face.emotion.enabled ? emotion.predict(faces[i].tensor || tf.tensor([]), parent.config, i, faces.length) : {};
emotionRes = parent.config.face.emotion.enabled ? emotion.predict(faces[i].tensor || tf.tensor([]), parent.config, i, faces.length) : null;
} else {
parent.state = 'run:emotion';
timeStamp = now();
emotionRes = parent.config.face.emotion.enabled ? await emotion.predict(faces[i].tensor || tf.tensor([]), parent.config, i, faces.length) : {};
emotionRes = parent.config.face.emotion.enabled ? await emotion.predict(faces[i].tensor || tf.tensor([]), parent.config, i, faces.length) : null;
parent.performance.emotion = Math.trunc(now() - timeStamp);
}
parent.analyze('End Emotion:');
@ -60,11 +60,11 @@ export const detectFace = async (parent /* instance of human */, input: Tensor):
// run antispoof, inherits face from blazeface
parent.analyze('Start AntiSpoof:');
if (parent.config.async) {
antispoofRes = parent.config.face.antispoof.enabled ? antispoof.predict(faces[i].tensor || tf.tensor([]), parent.config, i, faces.length) : {};
antispoofRes = parent.config.face.antispoof.enabled ? antispoof.predict(faces[i].tensor || tf.tensor([]), parent.config, i, faces.length) : null;
} else {
parent.state = 'run:antispoof';
timeStamp = now();
antispoofRes = parent.config.face.antispoof.enabled ? await antispoof.predict(faces[i].tensor || tf.tensor([]), parent.config, i, faces.length) : {};
antispoofRes = parent.config.face.antispoof.enabled ? await antispoof.predict(faces[i].tensor || tf.tensor([]), parent.config, i, faces.length) : null;
parent.performance.antispoof = Math.trunc(now() - timeStamp);
}
parent.analyze('End AntiSpoof:');
@ -86,11 +86,11 @@ export const detectFace = async (parent /* instance of human */, input: Tensor):
// run emotion, inherits face from blazeface
parent.analyze('Start Description:');
if (parent.config.async) {
descRes = parent.config.face.description.enabled ? faceres.predict(faces[i].tensor || tf.tensor([]), parent.config, i, faces.length) : [];
descRes = parent.config.face.description.enabled ? faceres.predict(faces[i].tensor || tf.tensor([]), parent.config, i, faces.length) : null;
} else {
parent.state = 'run:description';
timeStamp = now();
descRes = parent.config.face.description.enabled ? await faceres.predict(faces[i].tensor || tf.tensor([]), parent.config, i, faces.length) : [];
descRes = parent.config.face.description.enabled ? await faceres.predict(faces[i].tensor || tf.tensor([]), parent.config, i, faces.length) : null;
parent.performance.embedding = Math.trunc(now() - timeStamp);
}
parent.analyze('End Description:');
@ -124,10 +124,10 @@ export const detectFace = async (parent /* instance of human */, input: Tensor):
faceRes.push({
...faces[i],
id: i,
age: descRes.age,
gender: descRes.gender,
genderScore: descRes.genderScore,
embedding: descRes.descriptor,
age: descRes?.age,
gender: descRes?.gender,
genderScore: descRes?.genderScore,
embedding: descRes?.descriptor,
emotion: emotionRes,
real: antispoofRes,
iris: irisSize !== 0 ? Math.trunc(500 / irisSize / 11.7) / 100 : 0,

View File

@ -135,7 +135,7 @@ export class Human {
* - canvas: draw processed canvas which is a processed copy of the input
* - all: meta-function that performs: canvas, face, body, hand
*/
draw: { canvas, face, body, hand, gesture, object, person, all, options: DrawOptions };
draw: { canvas: typeof draw.canvas, face: typeof draw.face, body: typeof draw.body, hand: typeof draw.hand, gesture: typeof draw.gesture, object: typeof draw.object, person: typeof draw.person, all: typeof draw.all, options: DrawOptions };
/** Currently loaded models
* @internal