javascript - 查找与@vladmandic/face-api 的最佳匹配不起作用
问题描述
我对几张图片进行了比较测试,它可以工作,当我在 6500 张图片上进行测试时,它不起作用。我想念什么?我得到这个结果:
{
"sucesss": true,
"bestMatchPerson": {
"_label": "unknown",
"_distance": 0.653006573156487
}
}
这是加载模型、从磁盘加载图像、创建面部匹配器并找到最佳匹配的代码示例
// 1, Load model
faceapi.env.monkeyPatch({ Canvas: canvas.Canvas, Image: canvas.Image, ImageData: canvas.ImageData });
const faceDetectionNet = new faceapi.FaceDetectionNet();
const modelPath = '../../node_modules/@vladmandic/face-api/model';
await faceDetectionNet.loadFromDisk(path.join(__dirname, modelPath));
await faceapi.nets.ssdMobilenetv1.loadFromDisk(path.join(__dirname, modelPath));
await faceapi.nets.faceLandmark68Net.loadFromDisk(path.join(__dirname, modelPath));
awai
t faceapi.nets.faceRecogn
itionNet.loadFromDisk(path.join(__dirname, modelPath));
// 2.Load image from disk
console.log(imagePath);
const referenceImage = await canvas.loadImage(imagePath);
// 3.Create face matcher
const singleResult = await faceapi
.detectSingleFace(referenceImage)
.withFaceLandmarks()
.withFaceDescriptor()
//4.Find best match
let labeledFaceDescriptors = singeltonCache.get("BbtFaceMatcher");
let bestMatchPerson ='There is no people to compare to';
if(labeledFaceDescriptors){
let matcher = new faceapi.FaceMatcher(labeledFaceDescriptors);
bestMatchPerson = matcher.findBestMatch(singleResult.descriptor);
utils.logger.log({
level: 'info',
message: `compare all: ${"The results " + bestMatchPerson.toString()}`,
label: 'faceRecognition.ts'
});
}
else{
utils.logger.log({
level: 'info',
message: `compare all: There is no people to compare to}`,
label: 'faceRecognition.ts'
});
}
解决方案
推荐阅读
- css - 单选按钮中的自定义 CSS 不起作用显示复选框而不是单选按钮
- arrays - 用字符串中的空格迭代一个bash数组?
- html - 为什么我使用浮动正确时会有间隙?
- javascript - 动态添加数据到两个或多个选择
- android - 我如何对 recyclerview 应用限制?
- java - 球体体积的计算不正确
- c++ - 使用不同的行执行 2D dft 时出错,使用 FFTW 的 col 大小
- powershell - 如何在 Powershell 中对 3000 万条 csv 记录进行排序
- javascript - 如何在angular8+中调用innerHtml中的post方法脚本?
- javascript - 当屏幕尺寸超过一定宽度尺寸时如何运行javascript?