Fix local env needing refresh to login
by loading tfjs-tflite as dynamic import
This commit is contained in:
parent
18db6f44dc
commit
43c792e46d
File diff suppressed because it is too large
Load diff
|
@ -1,5 +1,5 @@
|
||||||
import * as tf from '@tensorflow/tfjs-core';
|
import * as tf from '@tensorflow/tfjs-core';
|
||||||
import * as tflite from '@tensorflow/tfjs-tflite';
|
import { TFLiteModel } from '@tensorflow/tfjs-tflite';
|
||||||
import PQueue from 'p-queue';
|
import PQueue from 'p-queue';
|
||||||
import {
|
import {
|
||||||
FaceEmbedding,
|
FaceEmbedding,
|
||||||
|
@ -14,11 +14,10 @@ class MobileFaceNetEmbeddingService implements FaceEmbeddingService {
|
||||||
public method: Versioned<FaceEmbeddingMethod>;
|
public method: Versioned<FaceEmbeddingMethod>;
|
||||||
public faceSize: number;
|
public faceSize: number;
|
||||||
|
|
||||||
private mobileFaceNetModel: Promise<tflite.TFLiteModel>;
|
private mobileFaceNetModel: Promise<TFLiteModel>;
|
||||||
private serialQueue: PQueue;
|
private serialQueue: PQueue;
|
||||||
|
|
||||||
public constructor(faceSize: number = MOBILEFACENET_FACE_SIZE) {
|
public constructor(faceSize: number = MOBILEFACENET_FACE_SIZE) {
|
||||||
tflite.setWasmPath('/js/tflite/');
|
|
||||||
this.method = {
|
this.method = {
|
||||||
value: 'MobileFaceNet',
|
value: 'MobileFaceNet',
|
||||||
version: 2,
|
version: 2,
|
||||||
|
@ -29,6 +28,10 @@ class MobileFaceNetEmbeddingService implements FaceEmbeddingService {
|
||||||
}
|
}
|
||||||
|
|
||||||
private async init() {
|
private async init() {
|
||||||
|
// TODO: can also create new instance per new syncContext
|
||||||
|
const tflite = await import('@tensorflow/tfjs-tflite');
|
||||||
|
tflite.setWasmPath('/js/tflite/');
|
||||||
|
|
||||||
this.mobileFaceNetModel = tflite.loadTFLiteModel(
|
this.mobileFaceNetModel = tflite.loadTFLiteModel(
|
||||||
'/models/mobilefacenet/mobilefacenet.tflite'
|
'/models/mobilefacenet/mobilefacenet.tflite'
|
||||||
);
|
);
|
||||||
|
@ -50,7 +53,7 @@ class MobileFaceNetEmbeddingService implements FaceEmbeddingService {
|
||||||
|
|
||||||
public getFaceEmbeddingTF(
|
public getFaceEmbeddingTF(
|
||||||
faceTensor: tf.Tensor4D,
|
faceTensor: tf.Tensor4D,
|
||||||
mobileFaceNetModel: tflite.TFLiteModel
|
mobileFaceNetModel: TFLiteModel
|
||||||
): tf.Tensor2D {
|
): tf.Tensor2D {
|
||||||
return tf.tidy(() => {
|
return tf.tidy(() => {
|
||||||
const normalizedFace = tf.sub(tf.div(faceTensor, 127.5), 1.0);
|
const normalizedFace = tf.sub(tf.div(faceTensor, 127.5), 1.0);
|
||||||
|
|
Loading…
Reference in a new issue