【问题标题】:How do I speed up the YOLO v3-v4 inferencing?如何加快 YOLO v3-v4 推理速度?
【发布时间】:2021-02-03 18:42:16
【问题描述】:

我在 Jeston Xavier 上运行 YOLO V3 或 YOLO v4,DNN OpenCV 版本,在 docker 容器中使用 DNN 非常慢,几乎没有达到 ~ 7-9 FPS。 我想知道您能否告诉我加快检测推理的最简单方法是什么? 关于如何加快推理的任何建议或教程?

【问题讨论】:

  • 在问题上投入更强大的硬件(尤其是 GPU)。在线 DNN 推理是 GPU 最密集的问题之一,如果您使用的是预构建的框架,那么在软件方面几乎没有什么可以做的事情
  • 由于我的应用程序,我需要它在 Xavier 中运行。在线是什么意思?
  • “在线预测/推理”只是“对实时数据流进行预测”的一种说法
  • 你已经在使用 tensorrt 了吗?或者为什么包含该标签。我对 yolov3/v4 的 openCV 版本不是很熟悉,但如果您还没有使用 tensorRT,这将大大提升 Jetson 硬件的性能。
  • @Lukas Thaler 你为什么这么认为?您可以做很多软件方面的事情。例如使用混合精度进行推理,或使用批处理。

标签: python object-detection yolo tensorrt tensorrt-python


【解决方案1】:

您可以尝试两件事来加快推理速度:

  • 使用较小的网络大小。例如,使用 yolov4-416 代替 yolov4-608。 这可能是以降低准确性为代价的。
  • 尝试将您的网络转换为 TensorRT 并使用混合精度(FP16 将带来巨大的性能提升,而 INT8 甚至更多,尽管您必须重新调整您的网络)

对于最后一个,我建议关注这个优秀的博客:

blog

【讨论】:

  • 即使使用 yolov4-608,您也应该能够在 Jetson Xavier 上获得大约 15 fps。
  • 我想坚持python,我不是C专业的,所以tensorrt是基于python的吗?
  • Tensorrt 同时具有 python 和 c++ 绑定。你可以选择。
  • 你也可以使用openvino工具包。
【解决方案2】:

您可以在.cfg 文件中减小图像大小:

width=416
height=416
  • 使用 32 的倍数。(如果场景中的对象太小,这会影响您的准确性)。
  • 您可以裁剪输入图像以仅将感兴趣的区域保留为正方形。这有助于在您减小图像大小时防止任何小对象被过度压缩,因为 Yolo 会将您的输入图像压缩到上述width 和height,同时保持图像比例。

您也可以尝试 Yolov3-tiny 或 Yolov4-tiny,这是一个较小的网络,但这也可能会影响您的准确性。 (这些解决方案基于我的经验。在处理 Yolo 或其他卷积网络时,总是需要在速度和准确性之间进行权衡。)

【讨论】:

    猜你喜欢
    • 2020-09-17
    • 2021-02-01
    • 2021-11-06
    • 2020-12-28
    • 1970-01-01
    • 1970-01-01
    • 2015-11-02
    • 2014-10-04
    • 2013-07-20
    相关资源
    最近更新 更多