fix(facial-recognition) avoid image data conversion

TF 3.0 supports getting an ImageBitmap in fromPixels: https://js.tensorflow.org/api/3.0.0/#browser.fromPixels
pull/11031/head jitsi-meet_6974
Saúl Ibarra Corretgé 3 years ago committed by Saúl Ibarra Corretgé
parent 1d275e1976
commit c2a3d29353
  1. 4
      react/features/facial-recognition/facialExpressionsWorker.js
  2. 11
      react/features/facial-recognition/functions.js

@ -58,7 +58,7 @@ onmessage = async function(message) {
}
case SET_TIMEOUT : {
if (!message.data.imageData || !modelsURL) {
if (!message.data.imageBitmap || !modelsURL) {
self.postMessage({
type: FACIAL_EXPRESSION_MESSAGE,
value: null
@ -72,7 +72,7 @@ onmessage = async function(message) {
modelsLoaded = true;
}
faceapi.tf.engine().startScope();
const tensor = faceapi.tf.browser.fromPixels(message.data.imageData);
const tensor = faceapi.tf.browser.fromPixels(message.data.imageBitmap);
const detections = await faceapi.detectSingleFace(
tensor,
new faceapi.TinyFaceDetectorOptions()

@ -131,17 +131,8 @@ export async function sendDataToWorker(
return;
}
const canvas = document.createElement('canvas');
const context = canvas.getContext('2d');
canvas.width = imageBitmap.width;
canvas.height = imageBitmap.height;
context.drawImage(imageBitmap, 0, 0);
const imageData = context.getImageData(0, 0, imageBitmap.width, imageBitmap.height);
worker.postMessage({
type: SET_TIMEOUT,
imageData
imageBitmap
});
}

Loading…
Cancel
Save