face-api.js从磁盘加载图像文件



我尝试使用face-api.js从磁盘加载图像:

faceapi.fetchImage(path.resolve(INPUT_DIR, 'input1.jpg');

它抛出以下错误:Error: fetch - missing fetch implementation for nodejs environment

有没有其他方法可以从磁盘加载图像并使用nodejs进行显示?

文档建议您使用画布执行以下操作:

const canvas = require('canvas');
faceapi.env.monkeyPatch({ Canvas, Image })
const img = await canvas.loadImage('./img.jpg');
const detections = await faceapi.detectSingleFace(img);

fetchImage将无法与本地文件一起工作:

顾名思义,

faceapi.fetchImage在后台使用fetch,因此它不适用于本地文件的文件路径。

它失败的原因是您需要实现fetch函数才能工作。当您尝试从联机检索图像时,应使用FetchImage。如果您正在使用本地磁盘上的图像,请执行以下操作:

  1. 从本地磁盘加载模块。

    await faceapi.nets.ssdMobilenetv1.loadFromDisk(path.join(__dirname, 'models'));
    

    //对我来说,我已经把所有的模块都放在src/models/中了

  2. 加载画布

  3. 传递画布和模块选项(如果有(

    let detectionresult = awaitfaceapi.detectAllFaces(canvas, this.getSSNMobileOptions())
    

最新更新