【问题标题】:Execution of mobilenet v2 for object detection with Tensorflow JS使用 Tensorflow JS 执行 mobilenet v2 进行对象检测
【发布时间】:2021-11-06 10:41:54
【问题描述】:

我使用 Tensorflow 对象检测 API 训练了不同类型的 mobilenet v2 模型,然后将它们转换为 tfjs 并在 Web 中运行它们。 似乎这些模型的执行只支持 executeAsync() 方法。 我觉得能够使用 execute() 方法将加快推理时间,现在约为 100 毫秒。 但是,当我尝试 execute() 方法时,我收到有关某些动态操作的错误。 由于我更喜欢​​速度而不是准确性,我可以做些什么来加快推理时间?或者,是否有其他推荐的对象检测模型可以在网络上实时运行?或者还有什么我应该尝试的?

【问题讨论】:

  • 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: javascript performance object-detection tensorflow.js mobilenet


【解决方案1】:

为什么execute 会比executeAsync 快?异步函数的开销浪费的时间最少,您最多只能获得 0.1-0.3 毫秒的时间

更好的问题是您使用的是哪个 tfjs 后端
cpu 最慢,wasm 启动速度很快,但总体上仍然使用 cpu,webgl 预热很慢(因为它必须编译 glsl 函数并将权重作为着色器上传),但在 gpu 可用时总体推理速度最快

请记住,虽然 mobilenetv2 是一个轻量级模型,但它已经很老了,而且性能与最新的轻量级 sota 模型不一样
对于快速和轻量级的对象检测,我最喜欢的是 mobilenet v3 head 结合 centernet

【讨论】:

  • 感谢您的回答。我使用 webgl 作为后端。我在哪里可以找到这个 mobilenet v3 - CenterNet 模型来训练它?再次感谢!
  • 这是我的端口(包括原始链接):github.com/vladmandic/mb3-centernet>
  • 另一个快速的问题 - centernet-mobilenet v3 框架的推理时间(使用 tfjs)大致是多少(假设是标准笔记本电脑)?
  • ~10 FPS 平均 GPU 像 nVidia 1650。更多的外部优化来检测帧是否已经充分改变或可以被跳过。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-25
  • 2021-10-05
  • 2019-03-12
  • 1970-01-01
  • 2021-08-07
  • 1970-01-01
相关资源
最近更新 更多