This commit is contained in:
Manav Rathi 2024-05-18 19:50:13 +05:30
parent 410b6e7d3e
commit 6304d90b52
No known key found for this signature in database

View file

@ -122,6 +122,7 @@ const indexFaces_ = async (enteFile: EnteFile, imageBitmap: ImageBitmap) => {
for (const face of mlFile.faces) { for (const face of mlFile.faces) {
face.alignment = faceAlignment(face.detection); face.alignment = faceAlignment(face.detection);
} }
// Extract face images and convert to Float32Array // Extract face images and convert to Float32Array
const faceAlignments = mlFile.faces.map((f) => f.alignment); const faceAlignments = mlFile.faces.map((f) => f.alignment);
const alignedFacesData = await extractFaceImagesToFloat32( const alignedFacesData = await extractFaceImagesToFloat32(
@ -129,10 +130,12 @@ const indexFaces_ = async (enteFile: EnteFile, imageBitmap: ImageBitmap) => {
mobileFaceNetFaceSize, mobileFaceNetFaceSize,
imageBitmap, imageBitmap,
); );
const blurValues = detectBlur(alignedFacesData, mlFile.faces); const blurValues = detectBlur(alignedFacesData, mlFile.faces);
mlFile.faces.forEach((f, i) => (f.blurValue = blurValues[i])); mlFile.faces.forEach((f, i) => (f.blurValue = blurValues[i]));
await syncFileFaceEmbeddings(fileContext, alignedFacesData); const embeddings = await faceEmbeddings(alignedFacesData);
mlFile.faces.forEach((f, i) => (f.embedding = embeddings[i]));
await syncFileFaceMakeRelativeDetections(fileContext); await syncFileFaceMakeRelativeDetections(fileContext);
} }
@ -642,18 +645,6 @@ const matrixVariance = (matrix: number[][]): number => {
return variance; return variance;
}; };
const syncFileFaceEmbeddings = async (
fileContext: MLSyncFileContext,
alignedFacesInput: Float32Array,
) => {
const { newMlFile } = fileContext;
const embeddings = await faceEmbeddings(alignedFacesInput);
newMlFile.faces.forEach((f, i) => (f.embedding = embeddings[i]));
log.info("[MLService] facesWithEmbeddings: ", newMlFile.faces.length);
};
const mobileFaceNetFaceSize = 112; const mobileFaceNetFaceSize = 112;
/** /**