是否有用于CPU的实时对象检测算法?

时间:2020-03-29 08:42:11

标签: tensorflow deep-learning neural-network pytorch yolo

我需要实时使用一些对象检测算法(在行驶时会检测到东西)。 到目前为止,我已经成功地在GPU PC上将YOLO-v3与pytorch一起使用,效果很好。

在笔记本电脑的〜1.6GHz CPU上是否可以使用一种算法? 我当前的网络正在以每帧〜5秒的速度在CPU上进行检测,这对于实时性来说太慢了...

预先感谢

1 个答案:

答案 0 :(得分:2)

您可以采取许多措施来获得良好的CPU性能。 (我应该在评论中添加它,但是它太长了。因此,请在此处发布。)

  1. 模型量化

通过量化感知训练或权重训练后量化进行模型量化,可以确保将浮点32或float64权重转换为uint8,以确保在低端计算机上更快地执行,而准确性下降极小或没有。

如您所知,您的模型位于PyTorch中,因此Model Quantization是在PyTorch 1.4.0中引入的,并在1.4.1中添加了具有改进功能的其他功能

您还可以在模型量化repo中找到有趣的here

  1. OpenVino

OpenVINO工具包允许开发人员通过与应用程序逻辑集成的高级C ++推理引擎API部署预训练的深度学习模型。

它包括两个组件,即模型优化器和推理引擎,以及CPU,GPU和异构插件,这些插件可加快对Intel(R)CPU和Intel(R)处理器图形的深度学习推理。

因此,您可以将模型移植到OpenVino,以便在CPU上进行更快的推断。您可以在OpenVino here中引用几个链接(在我的存储库的自述文件中)。还有link1link2

  1. 从源代码构建

您可以像在pip版本中一样构建PyTorch回购表单源,多处理和多线程中存在一些问题,这会影响实际性能。 (对于TensorFlow则不存在)

其他方法

您可以尝试将模型转换为TensorFlow,看看它是否可以改善对CPU的推断。有时看到它可以最大化性能。您可以参考链接here以获得更多信息。