【问题标题】:Convert File to HTMLImageElement将文件转换为 HTMLImageElement
【发布时间】:2021-04-15 21:10:30
【问题描述】:

我有相当艰巨的任务要解决,所以我正在构建人脸识别和人脸检测需要 HTMLImageElement 作为参数,但问题是我无法安装 node-canvas 来填充它,所以我需要另一种方法来更改从客户端发送的文件到 HTMLImageElement,有什么办法吗?也可以填充画布。这是我的代码

    const imgBuffer = await sharp(path.resolve(__dirname, '..', 'queryImages', file.filename))/*.toBuffer()*/;
    //const imgTensor = faceapi.tf.tensor3d(new Uint8Array(imgBuffer), [480,640,3]);
    const detections = await faceapi.detectAllFaces(imgBuffer);

和错误

(node:3620) UnhandledPromiseRejectionWarning: 错误: toNetInput - 预期媒体类型为 HTMLImageElement | HTML视频元素 | HTMLCanvasElement | tf.Tensor3D,或者是一个元素id

【问题讨论】:

    标签: javascript html node.js image tensorflow


    【解决方案1】:

    我猜你从 tensorflow.js 中获取了一个现成的训练模型,它们不使用节点运行。

    如果你想使用Node的例子,那么你需要事先用tensorflow准备好图片:

    const tf = require('@tensorflow/tfjs-node');
    const util = require('util');
    const fs = require('fs');
    
    const readImg = util.promisify(fs.readFile);
    
    const img = await readImg('./<pathToYourImage>/<yourImage>.jpg');
    const adaptedImg = tf.node.decodeImage(img, 3);
    const model = await <someModel>.load();
    const predictions = await model.detect(adaptedImg);
    

    【讨论】:

      猜你喜欢
      • 2020-06-15
      • 2015-02-17
      • 2013-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多