2 回答
TA贡献1828条经验 获得超13个赞
电子有两个独立的上下文;一个可以被视为服务器端上下文的上下文,称为主上下文和呈现器上下文,其中调用浏览器及其脚本。虽然这个问题不够精确,但它试图在电子的主要上下文中执行posenet,这可以进行比较,就好像有人试图在nodejs中运行此代码一样。
主渲染器中的 posenet
const data = Buffer.from(base64str, 'base64')
const t = tf.node.decodeImage(data)
const net = await posenet.load()
const poses = net.estimateMultiplePoses(t, {
flipHorizontal: false,
maxDetections: 2,
scoreThreshold: 0.6,
nmsRadius: 20})
})
// do whatever with the poses
来自浏览器执行的脚本的posenet
const im = new Image()
im.src = base64str
const net = await posenet.load()
im.onload = async() => {
const poses = await net.estimateMultiplePoses(im, {
flipHorizontal: false,
maxDetections: 2,
scoreThreshold: 0.6,
nmsRadius: 20})
})
// do whatever with the poses
}
TA贡献1868条经验 获得超4个赞
即使您复制了结构,也许PoseNet正在检查对象是否属于某个类,除非您实际创建ImageData对象然后设置字段,否则它不会是。这就是我对它为什么不喜欢它的猜测。
您是否尝试过:
let clamped = Uint8ClampedArray.from(someframeBuffer); let imageData = new ImageData(clamped, width, height);
PoseNet似乎接受ImageData|HTMLImageElement|HTMLCanvasElement|HTMLVideoElement 对象,可以传递给其预测函数。
添加回答
举报