@vladmandic/face-api
Version:
JavaScript module for Face Detection and Face Recognition Using Tensorflow/JS
18 lines • 1.16 kB
JavaScript
import * as tf from '@tensorflow/tfjs/dist/tf.es2017.js';
import { extractFaces, extractFaceTensors } from '../dom';
import { isWithFaceLandmarks } from '../factories/WithFaceLandmarks';
export async function extractAllFacesAndComputeResults(parentResults, input, computeResults, extractedFaces, getRectForAlignment = ({ alignedRect }) => alignedRect) {
const faceBoxes = parentResults.map(parentResult => isWithFaceLandmarks(parentResult)
? getRectForAlignment(parentResult)
: parentResult.detection);
const faces = extractedFaces || (input instanceof tf.Tensor
? await extractFaceTensors(input, faceBoxes)
: await extractFaces(input, faceBoxes));
const results = await computeResults(faces);
faces.forEach(f => f instanceof tf.Tensor && f.dispose());
return results;
}
export async function extractSingleFaceAndComputeResult(parentResult, input, computeResult, extractedFaces, getRectForAlignment) {
return extractAllFacesAndComputeResults([parentResult], input, async (faces) => computeResult(faces[0]), extractedFaces, getRectForAlignment);
}
//# sourceMappingURL=extractFacesAndComputeResults.js.map