如何 Stop/Terminate ML5 Posenet
How to Stop/Terminate ML5 Posenet
正在创建一个应用程序并希望在其工作完成后停止 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]
});
};
}
已经尝试将不同的变量设置为 null
StopKI() {
// Terminate PoseNet when done
this.p5 = null;
this.poseNet = null;
console.log('KI stopped');
}
posenet 响应视频元素中的检测。如果删除视频元素,检测和回调可能会停止?
const video = document.getElementById("video");
video.remove();
在源代码中,如果视频元素存在,检测函数会不断调用自身
async multiPose(inputOr, cb) {
if (this.video) {
return tf.nextFrame().then(() => this.multiPose());
}
}
因此删除视频元素可能有望停止重复循环。我在源代码中没有看到更优雅的解决方案
更新
我发现 poseNet.on(...)
事件侦听器可以通过调用 RemoveListener
并传递相同的回调函数来取消。它似乎适用于 online P5 web editor:
// 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);
正在创建一个应用程序并希望在其工作完成后停止 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]
});
};
}
已经尝试将不同的变量设置为 null
StopKI() {
// Terminate PoseNet when done
this.p5 = null;
this.poseNet = null;
console.log('KI stopped');
}
posenet 响应视频元素中的检测。如果删除视频元素,检测和回调可能会停止?
const video = document.getElementById("video");
video.remove();
在源代码中,如果视频元素存在,检测函数会不断调用自身
async multiPose(inputOr, cb) {
if (this.video) {
return tf.nextFrame().then(() => this.multiPose());
}
}
因此删除视频元素可能有望停止重复循环。我在源代码中没有看到更优雅的解决方案
更新
我发现 poseNet.on(...)
事件侦听器可以通过调用 RemoveListener
并传递相同的回调函数来取消。它似乎适用于 online P5 web editor:
// 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);