Javascript 如何在expess REST api中实现face-api.js

Javascript 如何在expess REST api中实现face-api.js,javascript,node.js,face-api,Javascript,Node.js,Face Api,我发现face-api.js在识别人脸方面很有用。我需要比较服务器端的两个图像。我上传一个图像和链接到原始图像或两个图像,查询图像和原始图像 我写了一个从浏览器侧面人脸识别中提取的代码。在发送帖子时,我收到了很多错误,比如 未定义提取 未定义Blob 仅允许绝对URL(尝试以下代码时) 这是我的密码 app.js const express=require('express'); const faceapi=require('face-api.js'); const fetch=requir

我发现face-api.js在识别人脸方面很有用。我需要比较服务器端的两个图像。我上传一个图像和链接到原始图像或两个图像,查询图像和原始图像

我写了一个从浏览器侧面人脸识别中提取的代码。在发送帖子时,我收到了很多错误,比如

  • 未定义提取
  • 未定义Blob
  • 仅允许绝对URL(尝试以下代码时)
这是我的密码 app.js

const express=require('express');
const faceapi=require('face-api.js');
const fetch=require('node-fetch');
常数fs=要求('fs');
const path=require('path');
const multer=require('multer');
faceapi.env.monkeyPatch({fetch:fetch});
//设置存储
const storage=multer.diskStorage({
目标:功能(请求、文件、cb){
cb(空,“/上传/”);
},
文件名:函数(请求、文件、cb){
cb(null,file.originalname);
}
});
const upload=multer({storage:storage});
常量app=express();
app.post('/',upload.single('image'),async(req,res)=>{
console.log(请求文件);
试一试{
常量labeledFaceDescriptors=等待加载LabeledImage();
log('labeledFaceDescriptors:',labeledFaceDescriptors);
const faceMatcher=新faceapi.faceMatcher(
贴有标签的面部描述符,
0.6
);
让形象;
image=wait faceapi.bufferToImage(req.file);
console.log(图像);
const displaySize={width:image.width,height:image.height};
常数检测=等待faceapi
.detectAllFaces(图像)
.withFaceLandmarks()
.withFaceDescriptors();
const resizedDetections=faceapi.resizeResults(
检测,
显示器尺寸
);
const results=resizedDetections.map((d)=>
faceMatcher.findBestMatch(d.descriptor)
);
results.forEach((result,i)=>{
const box=resizedDetections[i].detection.box;
res.send(result.toString());
});
}捕获(错误){
console.log(错误);
res.send(错误消息);
}
});
函数loadLabeledImages(){
常量标签=[
“黑寡妇”,
“美国队长”,
“惊奇船长”,
“鹰眼”,
“吉姆·罗德斯”,
“雷神”,
“托尼·斯塔克”
];
回报你的承诺(
labels.map(异步(标签)=>{
常量描述=[];
for(设i=1;i{
log('端口上运行的应用程序:3000');
});

我如何在服务器端实现这种识别,并将结果传递给客户端???

我也遇到了同样的问题,这对我来说很有效

const canvas = require("canvas");
const { Canvas, Image, ImageData } = canvas; 
替换

  const img = await faceapi.fetchImage(
      `https://raw.githubusercontent.com/WebDevSimplified/Face-Recognition-JavaScript/master/labeled_images/${label}/${i}.jpg`
    );


我也有同样的问题,这对我起了作用

const canvas = require("canvas");
const { Canvas, Image, ImageData } = canvas; 
替换

  const img = await faceapi.fetchImage(
      `https://raw.githubusercontent.com/WebDevSimplified/Face-Recognition-JavaScript/master/labeled_images/${label}/${i}.jpg`
    );


您是否安装了face-api.js为Node.js开发推荐的内容?您是否安装了face-api.js为Node.js开发推荐的内容?