javascript - 使用 Face-api.js 检测面部时出错预期媒体为 HTMLImageElement 类型 | HTMLVideo 元素 | HTMLCanvas元素

标签 javascript node.js face-api

我不明白应该如何将HTMLImageElement发送到face-api.js的检测例程。 我使用 node-red 来实现此实现。

我有这个错误:

UnhandledPromiseRejectionWarning: Error: toNetInput - expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id at /root/.node-red/node_modules/tfjs-image-recognition-base/build/commonjs/dom/toNetInput.js

这是我正在使用的代码:

var fa = global.get('faceapi');
var ca = global.get('canvas');

const {Image, loadImage, ImageData,createCanvas,HTMLCanvasElement,HTMLImageElement } = ca;

fa.env.monkeyPatch({
   Image: HTMLImageElement
})

//Load all the models ... 
Promise.all([
fa.nets.ssdMobilenetv1.loadFromDisk('/home/models'),
fa.nets.faceRecognitionNet.loadFromDisk('/home/models'),
fa.nets.faceLandmark68Net.loadFromDisk('/home/models'),
]).then(Detector).catch((error) =>  node.warn(error));


function Detector(){
   ca.loadImage('URL OF MY PICTURE').then((image) => 
   {
           let detection = fa.detectSingleFace(image).withFaceLandmarks().withFaceDescriptor().then((detect) => {
               if(detect){
                       node.warn('DETECTED..!');
               }
           });
   }).catch((error) =>  node.warn(error) );
}

最佳答案

我遇到了同样的问题,并发现我没有向 detectorSingleFace() 函数发送正确的参数。我不知道代码中的图像值是什么(加载图像后),但请确保您发送的是 HTML 元素(视频、 Canvas 或图像)。

例如:

<img id="image" src="data:image/png;base64,iVB...." alt="image">

请注意,图像应采用 base64 格式。

如果问题仍然存在,您可以尝试运行存储库项目并查看如何处理数据,至少这对我使用 examples-browser 文件夹有效。

希望这对您有帮助,

关于javascript - 使用 Face-api.js 检测面部时出错预期媒体为 HTMLImageElement 类型 | HTMLVideo 元素 | HTMLCanvas元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56547094/

相关文章:

angular - 创建 FaceListId FaceAPI Microsoft Azure

javascript - 使用 flot 绘制具有双 y 轴的组合条形图和折线图

javascript - 如何更改 JSON 结构

javascript - 异步队列,文件流结束如何知道两者何时完成

node.js - 输出到另一个目录时,如何在 Typescript 编译过程中包含 .html 文件

node.js - 将对等依赖项与本地依赖项(文件 :. ./some-lib)一起使用

javascript - Bootstrap 自定义弹出窗口

php - 从 PHP 发送请求到 Node.js

java - 如何修复 "InvalidImageSize","message":"Image size is too small."

ios - Microsoft Face API - 错误 401,iOS