【问题标题】:Is there an Real-Time Object Detection algorithm for CPU?CPU 是否有实时对象检测算法?
【发布时间】:2020-07-09 17:16:46
【问题描述】:

我需要实时使用一些物体检测算法(会在驾驶时检测物体)。 到目前为止,我已经设法在 GPU 电脑上使用 YOLO-v3 和 pytorch 并取得了很好的效果。

有没有一种算法可以在笔记本电脑的 ~1.6GHz CPU 上使用? 我当前的网络在 CPU 上检测到每帧约 5 秒,这对于实时来说太慢了......

提前致谢

【问题讨论】:

  • 是的,绝对是,一台具有高速互联网的电脑,并将其与 Kaggle、Google Colab 或从 Google VM 租用张量工作站相结合。 Yolov3 是目前​​执行几乎即时对象识别的最有效算法。除非您花额外的钱购买 GTX 1060 及更高版本,否则拥有 1.6 Ghz 并不能带您走多远。
  • 是的,您可以使用 YOLO 和 tensorflow 在您的 CPU 上进行计算。但这不会像在 GPU 上那样好。但可能会有延迟,你的 GPU 以获得更好的性能。

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


【解决方案1】:

您可以做很多事情来获得 CPU 的良好性能。 (我应该把它放在 cmets 中,但它会太长。所以,把它贴在这里。)

  1. 模型量化

通过量化感知训练或权重的训练后量化进行模型量化,确保我们将 float32 或 float64 权重转换为 uint8,以便在低端机器上更快地执行。

正如您所说,您的模型在 PyTorch 中,因此在 PyTorch 1.4.0 中引入了 Model Quantization,并在 1.4.1 中添加了经过改进的其他功能

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

  1. OpenVino

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

它包括两个组件,即模型优化器和推理引擎,以及 CPU、GPU 和异构插件,以加速英特尔(R) CPU 和英特尔(R) 处理器图形上的深度学习推理。

因此,您可以将模型移植到 OpenVino,以便更快地在 CPU 上进行推理。您可以参考一些 OpenVino here 的链接(在我的存储库的自述文件中)。还有link1link2

  1. 从源头构建

您可以像在 pip 版本中一样构建 PyTorch 存储库表单源,多处理和多线程存在一些问题,这会妨碍实际性能。 (在 TensorFlow 的情况下不存在)

其他方法

您可以尝试将您的模型转换为 TensorFlow,看看它是否可以提高 CPU 推理能力。有时它可以最大限度地提高性能。您可以参考链接here了解更多信息。

【讨论】:

    猜你喜欢
    • 2018-02-19
    • 2020-12-03
    • 1970-01-01
    • 2021-04-27
    • 2010-11-20
    • 1970-01-01
    • 2011-08-18
    • 1970-01-01
    • 2019-10-04
    相关资源
    最近更新 更多