如何加速 YOLO v3-v4 推理?

问题描述

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

解决方法

您可以尝试加快推理的两件事:

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

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

blog

,

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

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

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