export default class ModelLoader {
constructor(faceapi) {
this.modelsLoaded = false;
this.loadingIndicator = document.getElementById('loadingIndicator');
}
async loadModels() {
if (this.modelsLoaded) {
return;
}
this.showLoadingIndicator();
try {
await faceapi.nets.tinyFaceDetector.loadFromUri('/models'),
await faceapi.nets.ssdMobilenetv1.loadFromUri("/models")
await faceapi.nets.faceLandmark68Net.loadFromUri("/models")
await faceapi.nets.faceRecognitionNet.loadFromUri("/models")
this.modelsLoaded = true;
console.log('Modelos de reconhecimento facial carregados.');
} catch (error) {
console.error("Falha ao carregar modelos face-api:", error);
this.modelsLoaded = false;
} finally {
this.hideLoadingIndicator();
}
}
showLoadingIndicator() {
this.loadingIndicator.style.display = 'block';
}
hideLoadingIndicator() {
this.loadingIndicator.style.display = 'none';
}
areModelsLoaded() {
return this.modelsLoaded;
}
}
|