【问题标题】:Tensorflow Object Detection API with GPU on Windows and real-time detectionTensorFlow Object Detection API with GPU on Windows and real-time detection
【发布时间】:2017-07-23 15:19:58
【问题描述】:

我正在 Python 中测试新的 Tensorflow 对象检测 API,并且我成功地使用 docker 在 Windows 上安装了它。但是,我的训练模型 (Faster RCNN resnet101 COCO)需要 15 秒才能做出预测(虽然准确度非常好),可能是因为我只使用 Tensorflow CPU。

我的三个问题是:

  • 考虑到延迟,问题出在哪里?听说 Faster RCNN 是低延迟视觉检测的一个很好的模型,是不是因为只需要 CPU 执行?
  • 在这样的延迟下,是否可以使用 tensorflow GPU 进行高效的实时视频处理,还是应该使用更流行的模型,例如 YOLO?
  • 在 docker 中使用 tensorflow GPU 的流行方法是 nvidia-docker,但在 Windows 上不受支持。我应该继续寻找用于本地预测的 docker(或 conda)解决方案,还是应该将我的模型直接部署到具有 GPU 的虚拟实例(我对 Google Cloud Platform 感到满意)?

非常欢迎任何有关使用 Tensorflow 进行实时视频处理的建议和/或良好实践!

【问题讨论】:

  • 15 秒是否包括会话/图创建时间?这可能会增加几秒钟,这可能会在稳定状态下被缓存(即在加载图表的情况下保持一个或多个会话)。 SIMD(AVX、AVX2 等)对于在 CPU 上提供图像模型也很重要,启用 MKL 也可能会有所帮助。
  • 15秒不包括Session/graph时间,是sess.run()的时间,所以我很惊讶。我将尝试启用 SIMD 和 MKL,谢谢您的回复。

标签: python windows tensorflow real-time video-processing


【解决方案1】:

考虑到延迟,问题出在哪里?我听说过更快的 RCNN 是低延迟视觉检测的一个很好的模型,是因为 仅 CPU 执行?

当然,那是因为你在使用CPU。

在这样的延迟下,是否有可能制作高效的实时视频 使用 tensorflow GPU 进行处理,还是应该使用更流行的 像YOLO这样的模特?

Yolo 速度很快,但我曾经将它用于面部,准确度不是那么好。但是一个不错的选择。

在 docker 中使用 tensorflow GPU 的流行方法是 nvidia-docker 但 Windows 不支持。我应该继续寻找码头工人吗 (或 conda)本地预测解决方案,或者我应该部署我的模型 直接连接到带有 GPU 的虚拟实例(我对 Google 很满意 云平台)?

我认为你仍然可以在 windows 中使用本地 GPU,因为 Tensorflow 在 python 上支持 GPU。

here 就是一个例子,只是为了做到这一点。它有一个可以读取网络摄像头或 IP 摄像头流的客户端。服务器正在使用 Tensorflow python GPU 版本,并准备使用预训练模型进行预测。

不幸的是,Tensoflow 在 Windows 上不支持tensorflow-serving。正如你所说,Windows 不支持Nvidia-DockerBash on windows 也不支持 GPU。所以我认为这是目前唯一简单的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-28
    • 2018-07-28
    • 1970-01-01
    • 1970-01-01
    • 2019-12-08
    • 2018-07-30
    • 2019-04-22
    • 2019-09-06
    相关资源
    最近更新 更多