【问题标题】:Tensorflow.js BodyPix very slow in browser for single imageTensorflow.js BodyPix 在浏览器中对于单个图像非常慢
【发布时间】:2021-05-20 08:30:17
【问题描述】:

我正在尝试使用 tensorflow.js body-pix 创建浏览器内背景删除

虽然在线demo 在我的计算机上达到每秒约 10 帧,但我的代码每帧需要约 3 秒。

我主要是按照官方github上的例子来的

这是我的代码:

const remove_background = async (img) => {
    console.time("ML");
    console.time("loadModel");
    const net = await bodyPix.load({
        architecture: 'MobileNetV1',
        outputStride: 16,
        multiplier: 0.5,
        quantBytes: 2
      });
      console.timeEnd("loadModel");
      console.time("segmentPerson");
    const segmentation = await net.segmentPerson(img.imageData, {
        segmentationThreshold: 0.7,
        internalResolution: 0.25
    });
    console.timeEnd("segmentPerson");
    console.time("ApplyMask");
    for (var i=0;i<segmentation.data.length;i++) {
        if(segmentation.data[i] === 0) {
            img.imageData.data[i*4] = 255;
            img.imageData.data[i*4+1] = 0;
            img.imageData.data[i*4+2] = 0;
        }
    }
    console.timeEnd("ApplyMask");

    console.timeEnd("ML");

    return img;
}

以下是时间:

loadModel: 129.35498046875 ms
segmentPerson: 2755.817138671875 ms
ApplyMask: 4.910888671875 ms
ML: 2890.7060546875 ms

我从内部分辨率为 0.1 的 1700x1700 图像开始,逐渐缩小到分辨率为 0.25 的 200x200 图像,但没有显着改善。

我做错了什么?

我正在使用 tfjs@1.2 & body-pix@2.0

【问题讨论】:

  • 可能是您使用的后端类型运行 import {getBackend} from '@tensorflow/tfjs-core'; 并告诉我 console.log(getBackend()) 的结果是什么。
  • 我正在浏览器中运行它&lt;script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@1.2"&gt;&lt;/script&gt;
  • 添加此评论是为了让遇到此消息的其他人受益,我相信 yudiesh 指的是他们在此处的文档中讨论的 tensorflow 后端 - tensorflow.org/js/guide/platform_environment 在 CPU 与 GPU 上运行它与 WASM 相比,可能会对性能产生巨大影响。

标签: tensorflow.js bodypix


【解决方案1】:

我在使用 bodypix 的实现中发现,第一次检测比后续检测花费的时间要长一些。我相信他们会在第一次调用 segmentPerson 时进行一次性初始化。我们正在分割视频。我发现我可以节省大约 500 毫秒的第一次检测启动时间,只需在流开始时将一个空白图像传递给 segmentPerson,然后在流开始时逐帧传递视频之前。

【讨论】:

    猜你喜欢
    • 2015-05-22
    • 1970-01-01
    • 1970-01-01
    • 2019-05-22
    • 2019-04-17
    • 1970-01-01
    • 2016-01-27
    • 1970-01-01
    • 2015-08-01
    相关资源
    最近更新 更多