使用 Tensorflow JS 执行 mobilenet v2 进行对象检测

Execution of mobilenet v2 for object detection with Tensorflow JS

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

为什么 executeexecuteAsync 快?异步函数的开销浪费的时间最少,您最多可以获得 0.1-0.3 毫秒的时间

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

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