From 4d1f8d28ac61e1ea6d6823de41217948fe2b9ac3 Mon Sep 17 00:00:00 2001 From: Shailesh Pandit Date: Fri, 5 Nov 2021 05:56:13 +0530 Subject: [PATCH] Undo changes which got removed --- .../machineLearning/machineLearningService.ts | 13 +++++++++++-- .../machineLearning/tfjsFaceEmbeddingService.ts | 8 ++++++-- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/services/machineLearning/machineLearningService.ts b/src/services/machineLearning/machineLearningService.ts index 01f76aa9d..840ea9811 100644 --- a/src/services/machineLearning/machineLearningService.ts +++ b/src/services/machineLearning/machineLearningService.ts @@ -2,6 +2,7 @@ import { File, getLocalFiles } from 'services/fileService'; import DownloadManager from 'services/downloadManager'; import * as tf from '@tensorflow/tfjs'; +import { setWasmPaths } from '@tensorflow/tfjs-backend-wasm'; import TFJSFaceDetectionService from './tfjsFaceDetectionService'; import TFJSFaceEmbeddingService from './tfjsFaceEmbeddingService'; @@ -10,7 +11,7 @@ import { FaceWithEmbedding, MLSyncResult } from 'utils/machineLearning/types'; import * as jpeg from 'jpeg-js'; import ClusteringService from './clusteringService'; -class MlService { +class MachineLearningService { private faceDetectionService: TFJSFaceDetectionService; private faceEmbeddingService: TFJSFaceEmbeddingService; private clusteringService: ClusteringService; @@ -31,11 +32,19 @@ class MlService { public async init(clusterFaceDistance: number, minClusterSize: number) { this.clusterFaceDistance = clusterFaceDistance; this.minClusterSize = minClusterSize; + + setWasmPaths('/js/tfjs/'); + await tf.ready(); + await this.faceDetectionService.init(); await this.faceEmbeddingService.init(); } public async sync(token: string): Promise { + if (!token) { + throw Error('Token needed by ml service to sync file'); + } + const existingFiles = await getLocalFiles(); existingFiles.sort( (a, b) => b.metadata.creationTime - a.metadata.creationTime @@ -106,4 +115,4 @@ class MlService { } } -export default MlService; +export default MachineLearningService; diff --git a/src/services/machineLearning/tfjsFaceEmbeddingService.ts b/src/services/machineLearning/tfjsFaceEmbeddingService.ts index 32580ea5f..21e536416 100644 --- a/src/services/machineLearning/tfjsFaceEmbeddingService.ts +++ b/src/services/machineLearning/tfjsFaceEmbeddingService.ts @@ -1,6 +1,10 @@ import * as tf from '@tensorflow/tfjs'; import * as tflite from '@tensorflow/tfjs-tflite'; -import { AlignedFace, FaceEmbedding } from 'utils/machineLearning/types'; +import { + AlignedFace, + FaceEmbedding, + FaceImage, +} from 'utils/machineLearning/types'; class TFJSFaceEmbeddingService { private mobileFaceNetModel: tflite.TFLiteModel; @@ -95,7 +99,7 @@ class TFJSFaceEmbeddingService { // console.log('embeddings: ', embeddings[0]); return { embeddings: embeddings as FaceEmbedding[], - faceImages: faceImages, + faceImages: faceImages as FaceImage[], }; } }