创建应用程序,并希望在完成任务后停止Posenet
private sketch(p: any) {
p.setup = () => {
this.poseNet = ml5.poseNet(p.createCapture(p.VIDEO), {
outputStride: 8
});
this.poseNet.on('pose', (results) => {
//DO SOMETHING WITH results[0]
});
};
}已经尝试将不同的vars设置为空。
StopKI() {
// Terminate PoseNet when done
this.p5 = null;
this.poseNet = null;
console.log('KI stopped');
}发布于 2020-07-30 19:50:02
posenet对视频元素中的检测做出响应。如果删除视频元素,检测和回调可能会停止吗?
const video = document.getElementById("video");
video.remove();在源代码中,如果存在视频元素,检测函数会不断调用自己。
async multiPose(inputOr, cb) {
if (this.video) {
return tf.nextFrame().then(() => this.multiPose());
}
}因此,删除视频元素可能会阻止重复循环。在源代码中我没有看到更优雅的解决方案
更新
我发现可以通过调用poseNet.on(...)并传递相同的回调函数来取消RemoveListener事件侦听器。它似乎在在线P5网络编辑器中起作用
// put the pose event callback in a variable
callback = function(results) {
poses = results;
}
// start listening to pose detection events
poseNet.on('pose', callback);
// stop listening to pose detection events by removing the event listener
poseNet.removeListener('pose', callback);https://stackoverflow.com/questions/63173964
复制相似问题