В face-api.js первый вызов для обнаружения фотографии занимает около 10 секунд, а затем занимает все миллисекунды для всех последующих обнаружений.
Есть ли способ вызвать какую-то функцию для подготовки перед началом обнаружения и избежать этой начальной задержки? Принимая во внимание, что пользователю необходимо выполнить действие (нажать кнопку), чтобы начать обнаружение лица.
Я уже выполняю начальную загрузку. Согласно коду.
App Init ()
const MODEL_URL = "/static/models";
faceapi.loadTinyFaceDetectorModel(MODEL_URL);
await faceapi.loadFaceLandmarkTinyModel(MODEL_URL);
await faceapi.loadFaceDetectionModel(MODEL_URL);
await faceapi.loadFaceRecognitionModel(MODEL_URL);
navigator.mediaDevices
.getUserMedia({ video: { frameRate: { ideal: 10, max: 15 } } })
.then(stream => {
this.cameraPreview.srcObject = stream;
this.cameraPreview.style.display = "block";
})
.catch(err => {
alert("error");
});
Обнаружение вызова
start(){
configProcessFace();
detectFace();
}
configProcessFace() {
let inputSize = 128;
let scoreThreshold = 0.58;
this.faceOptions = new faceapi.TinyFaceDetectorOptions({
inputSize,
scoreThreshold
});
},
async detectFace() {
faceapi
.detectSingleFace(this.cameraPreview, this.faceOptions)
.run()
.then(res => {
if (res && res.box) {
...
}
window.setTimeout(() => {
this.detectFace();
}, 40);
})
.catch(err => {
console.log(err);
});