首页 > 解决方案 > 使用 Tensorflow JS 执行 mobilenet v2 进行对象检测

问题描述

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

标签: javascriptperformanceobject-detectiontensorflow.jsmobilenet

解决方案


为什么会execute比 快executeAsync?异步函数的开销浪费的时间最少,您最多可以增加 0.1-0.3 毫秒

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

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


推荐阅读