src/services/deepLearning/faceApi/commons/faceDetection.js
// @flow
import * as faceapi from "face-api.js";
export const faceDetectionNet = faceapi.nets.ssdMobilenetv1;
// export const faceDetectionNet = tinyFaceDetector
// export const faceDetectionNet = mtcnn
// SsdMobilenetv1Options
const minConfidence = 0.06;
// TinyFaceDetectorOptions
const inputSize = 408;
const scoreThreshold = 0.5;
// MtcnnOptions
const minFaceSize = 50;
const scaleFactor = 0.8;
// TODO: type
function getFaceDetectorOptions(net: any): Object {
// eslint-disable-next-line no-nested-ternary
return net === faceapi.nets.ssdMobilenetv1
? new faceapi.SsdMobilenetv1Options({ minConfidence })
: net === faceapi.nets.tinyFaceDetector
? new faceapi.TinyFaceDetectorOptions({ inputSize, scoreThreshold })
: new faceapi.MtcnnOptions({ minFaceSize, scaleFactor });
}
export const faceDetectionOptions: any = getFaceDetectorOptions(
faceDetectionNet
);