首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何停止/终止ML5 Posenet

如何停止/终止ML5 Posenet
EN

Stack Overflow用户
提问于 2020-07-30 13:12:57
回答 1查看 501关注 0票数 1

创建应用程序,并希望在完成任务后停止Posenet

代码语言:javascript
复制
    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设置为空。

代码语言:javascript
复制
    StopKI() {
        // Terminate PoseNet when done
        this.p5 = null;
        this.poseNet = null;
        console.log('KI stopped');
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-30 19:50:02

posenet对视频元素中的检测做出响应。如果删除视频元素,检测和回调可能会停止吗?

代码语言:javascript
复制
const video = document.getElementById("video");
video.remove();

在源代码中,如果存在视频元素,检测函数会不断调用自己。

代码语言:javascript
复制
async multiPose(inputOr, cb) {
  if (this.video) {
    return tf.nextFrame().then(() => this.multiPose());
  }
}

因此,删除视频元素可能会阻止重复循环。在源代码中我没有看到更优雅的解决方案

更新

我发现可以通过调用poseNet.on(...)并传递相同的回调函数来取消RemoveListener事件侦听器。它似乎在在线P5网络编辑器中起作用

代码语言:javascript
复制
// 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);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63173964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档