Слишком поздно сравнивать ответы процесса с помощью face-api.jsJavascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Слишком поздно сравнивать ответы процесса с помощью face-api.js

Сообщение Anonymous »

Мне нужно сравнить два лица в node.js. Я выбрал face-api.js, но он отвечает через 15–20 секунд. Как сократить время ответа? Мне просто нужно сравнить и определить, являются ли два лица одним и тем же человеком или нет.
Первые ответы кода верны, но ответы слишком поздно. Ответы в течение 15 секунд на моем локальном сервере, но ~1 минута на Linux-сервере Digitalocean с тем же приложением.
  • Время ответа 15–20 секунд локально (нужно уменьшить)
  • время отклика 1 минута на Linux-сервере digitalocean (не знаю почему, но думаю, речь идет о мощности процессора для обработки лиц.)
  • Правильное значение ответов
import { Canvas, Image, ImageData, loadImage } from 'canvas';
import * as FaceAPI from 'face-api.js';
import path from 'path';

FaceAPI.env.monkeyPatch({ Canvas, Image, ImageData });

private async loadModels(): Promise {
const modelsFolderPath = path.join(__dirname, '../../public/face-recognition-models');
await FaceAPI.nets.ssdMobilenetv1.loadFromDisk(modelsFolderPath); // Face detection
await FaceAPI.nets.faceLandmark68Net.loadFromDisk(modelsFolderPath); // Face landmarks
await FaceAPI.nets.faceRecognitionNet.loadFromDisk(modelsFolderPath); // Face recognition
}

public async compareFacesByBuffer(image1AsBuffer: Buffer, image2AsBuffer: Buffer, threshold = 0.6): Promise {
// load face-api.js models
await this.loadModels();
// load images
const image1 = await loadImage(image1AsBuffer);
const image2 = await loadImage(image2AsBuffer);
// detect and get face descriptors
const result1 = await FaceAPI.detectSingleFace(image1).withFaceLandmarks().withFaceDescriptor();
const result2 = await FaceAPI.detectSingleFace(image2).withFaceLandmarks().withFaceDescriptor();
if (!result1 || !result2) {
throw new Error('No face detected in one or both images');
}
// calculate the euclidean distance
const distance = FaceAPI.euclideanDistance(result1.descriptor, result2.descriptor);
console.log('Distance: ', distance);
// compare with the threshold
return distance < threshold;
}


Я тоже пробовал этот код, но он выдает неправильный результат, хотя и отвечает через 2 секунды. Распознает двух разных людей как одного и того же человека.
  • Время ответа на местном уровне 2–3 секунды.
    Ответы неверного значения< /li>
import { Canvas, Image, ImageData, loadImage } from 'canvas';
import * as FaceAPI from 'face-api.js';
import path from 'path';

FaceAPI.env.monkeyPatch({ Canvas, Image, ImageData });

export class FaceCompareService {

private async loadModels(): Promise {
const modelsFolderPath = path.join(__dirname, '../../public/face-recognition-models');
await FaceAPI.nets.faceRecognitionNet.loadFromDisk(modelsFolderPath); // Face recognition
}

public async compareFacesByBuffer(image1AsBuffer: Buffer, image2AsBuffer: Buffer, threshold = 0.6): Promise {
// load face-api.js models
await this.loadModels();
// load images
const image1 = await loadImage(image1AsBuffer);
const image2 = await loadImage(image2AsBuffer);
// detect and get face descriptors
const descriptor1 = await FaceAPI.computeFaceDescriptor(image1);
const descriptor2 = await FaceAPI.computeFaceDescriptor(image2);
if (!descriptor1 || !descriptor2) {
throw new Error('No face detected in one or both images');
}
// calculate the euclidean distance
const distance = FaceAPI.euclideanDistance(descriptor1, descriptor2);
console.log('Distance: ', distance);
// compare with the threshold
return distance < threshold;
}

}



Подробнее здесь: https://stackoverflow.com/questions/793 ... ace-api-js
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»