fix(face-landmarks): dispose tensors to avoid memory leaks

Also send only expressions with score grater than 50%.
pull/11550/head jitsi-meet_7325
Gabriel Borlea 3 years ago committed by GitHub
parent 4f49cde73e
commit 8a503e7b40
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 13
      react/features/face-landmarks/faceLandmarksWorker.ts

@ -99,8 +99,14 @@ const detectFaceBox = async ({ detections, threshold }: Detection) => {
return faceBox;
};
const detectFaceExpression = async ({ detections }: Detection) =>
detections[0]?.emotion && FACE_EXPRESSIONS_NAMING_MAPPING[detections[0]?.emotion[0].emotion];
const detectFaceExpression = async ({ detections }: Detection) => {
if (!detections[0]?.emotion || detections[0]?.emotion[0].score < 0.5) {
return;
}
return FACE_EXPRESSIONS_NAMING_MAPPING[detections[0]?.emotion[0].emotion];
}
const detect = async ({ image, threshold } : DetectInput) => {
let detections;
@ -108,6 +114,7 @@ const detect = async ({ image, threshold } : DetectInput) => {
let faceBox;
detectionInProgress = true;
human.tf.engine().startScope();
const imageTensor = human.tf.browser.fromPixels(image);
@ -131,6 +138,8 @@ const detect = async ({ image, threshold } : DetectInput) => {
});
}
human.tf.engine().endScope()
if (faceBox || faceExpression) {
self.postMessage({
faceBox,

Loading…
Cancel
Save