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 對象,可以傳遞給其預測函數。
添加回答
舉報