我的名字是Gabriel,我正在使用face-api.js在我的期末论文《在我毕业的路上》中应用FaceRecognition。
为了尝试使用face-api并理解它是如何工作的,我创建了以下test.js:
import faceapi from "face-api.js";
import * as canvas from 'canvas';
const { Canvas, Image, ImageData } = canvas;
faceapi.env.monkeyPatch({ Canvas, Image, ImageData });
const faceDetectionNet = faceapi.nets.ssdMobilenetv1;
const minConfidence = 0.5;
const faceDetectionOptions = new faceapi.SsdMobilenetv1Options({ minConfidence });
async function runRecognition() {
await faceDetectionNet.loadFromDisk('./weights');
await faceapi.nets.faceLandmark68Net.loadFromDisk('./weights');
await faceapi.nets.faceRecognitionNet.loadFromDisk('./weights');
const REFERENCE_IMAGE = './bbt1.jpg';
const QUERY_IMAGE = './bbt2.jpg';
const referenceImage = await canvas.default.loadImage(REFERENCE_IMAGE);
const queryImage = await canvas.default.loadImage(QUERY_IMAGE);
const detections_ref = await faceapi.detectAllFaces(referenceImage, faceDetectionOptions)
.withFaceLandmarks()
.withFaceDescriptors();
const detections_query = await faceapi.detectAllFaces(queryImage, faceDetectionOptions)
.withFaceLandmarks()
.withFaceDescriptors();
const faceMatcher = new faceapi.FaceMatcher(detections_ref);
detections_query.forEach(fd => {
const bestMatch = faceMatcher.findBestMatch(fd.descriptor);
console.log(bestMatch.toString());
});
}
runRecognition();但我没能让它工作。现在,我收到以下错误:"UnhandledPromiseRejectionWarning: error: toNetInput -期望的媒体类型为HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D,或者是C:\Users\gabri\Desktop\TCC\face-api-teste\node_modules\face-api.js\build\commonjs\dom\toNetInput.js:38:35“中的元素id
有谁知道问题出在哪里吗?我检查了"referenceImage“的类型,它是一个图像而不是HTMLImageElement (我猜..),所以我正在调查猴子补丁,Idk,也许它不能正常工作。但我可能错了..。
感谢你的帮助?
发布于 2020-11-24 11:41:39
我确实在github Face-API页面上发布了一个问题,在那里我找到了一个解决方案,所以,如果有人想看看它:https://github.com/justadudewhohacks/face-api.js/issues/729感谢您的时间!
https://stackoverflow.com/questions/64885371
复制相似问题