wkdhkr/dedupper

View on GitHub
src/services/deepLearning/faceApi/commons/faceDetection.js

Summary

Maintainability
A
0 mins
Test Coverage
// @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
);