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

时间:2018-12-08 17:55:40

标签: node.js face-api

我尝试了以下操作,使用face-api.js从磁盘加载图像:

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

它引发以下错误:Error: fetch - missing fetch implementation for nodejs environment

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

2 个答案:

答案 0 :(得分:2)

之所以失败,是因为您需要实现获取功能才能使其正常工作。尝试从网上检索图像时,应使用FetchImage。如果您正在使用本地磁盘中的映像,请执行以下操作:

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

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

    //对我来说,我已将所有模块放入src / models /

  2. 加载画布

  3. 传递canvas和modules选项(如果有)

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

答案 1 :(得分:2)

documentation建议您使用canvas做类似的事情:

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

fetchImage will not work with local files

faceapi.fetchImage顾名思义是在后台使用fetch,因此不适用于本地文件的文件路径。