微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

BodyPix - 在 node.js 中运行 toMask() 和 toColoredPartMask() 会引发错误:未定义 ImageData

如何解决BodyPix - 在 node.js 中运行 toMask() 和 toColoredPartMask() 会引发错误:未定义 ImageData

我正在尝试在 TensorFlowJS bodypix 模型中获取分割的人物部分彩色蒙版。下面的代码在 toColoredPartMask 或 toMask 之前工作正常,这会引发错误“未定义 ImageData”。

const tfjsnode = require('@tensorflow/tfjs-node')
const bodyPix = require('@tensorflow-models/body-pix');
const fs = require('fs');

setTimeout(async () => {
    maskImageWithBodyPix().then(response => {
        console.log(response)
    }).catch(e => {
        console.log("Error => " + e)
    })
},1000)

async function maskImageWithBodyPix(image = readImage("./person.jpeg")) {
    
    console.log("loadModel ...");
    if (image == null)
        return Promise.resolve("Image Not Found...")
    const resnet = {
        architecture: 'resnet50',outputStride: 16,quantBytes: 4
    };
    let bodyModel = await bodyPix.load(resnet)

    console.log("segmentPersonParts ...");
    let segmentedPersonParts = await bodyModel.segmentPersonParts(image,{
        flipHorizontal: false,internalResolution: 'full',segmentationThreshold: 0.5,})
    console.log(`ImageHeight: ${segmentedPersonParts.height} | ImageWidth: ${segmentedPersonParts.width}`)
    console.log("toMaskImageData ...")
    const maskedImageData = bodyPix.toColoredPartMask(segmentedPersonParts,false);

    console.log(`maskedImageData = ${maskedImageData}`)
    
    return Promise.resolve(true)
}

const readImage = path => {
    console.log(`readImage ...`)
    if (!fs.existsSync(path))
        return null
    const imageBuffer = fs.readFileSync(path);
    const tfimage = tfjsnode.node.decodeImage(imageBuffer);
    return tfimage;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。