【发布时间】:2020-10-28 23:24:51
【问题描述】:
我正在使用 YOLOv3 自定义训练模型和使用 CUDA 编译的 OpenCV 4.2.0。当我在 Python 中测试代码时,我在 GPU (GTX1050 Ti) 上使用 OpenCV,但对单个图像 (416px x 416px) 的检测需要 0.055 秒 (~20 FPS)。我的配置文件设置为小对象检测,因为我需要在 2500 像素 x 2000 像素的图像上检测 ~ 10 像素 x 10 像素的对象,所以我将原始图像分成 30 个小块。我的目标是在 416px x 416px 图像上达到 0.013 秒(~80 FPS)。可以在 Python 中使用 OpenCV 吗?如果没有,如何正确处理?
PS。目前检测需要 50% 的 CPU、5GB RAM 和 6% 的 GPU。
【问题讨论】:
-
YOLOv3 不适用于较小的尺寸吗?有一个 YOLOv3-320 应该可以处理 320 x 320 的图像并且速度更快,不确定您是否想使用它来代替?
-
320 x 320 图像意味着我需要对 50 个分割图像执行检测,因此我需要 125 FPS。我不知道这是否可能。首先,我不知道 Python 与 OpenCV 是否是一个好方法。
-
我的意思是如果你有 CUDA 设置它不是 Python 问题。您可以尝试对其进行线程化,因为您的 GPU 似乎没有受到推理的影响。
-
你有没有想过使用YOLOv5?
-
@MZ Python GIL 怎么样?我可以使用多处理,但我担心 RAM。我只有 16GB,单进程使用 ~5GB。 @yuRa 根据 YOLOv3 / 4 开发者 GitHub -
The latest version - YOLOv4, with paper, with URLs from official repository, and with the best Accuracy/Speed among all known algorithms. YOLOv5-Ultralytics - is just a name, model is worse than YOLOv4, without improvements, without a scientific article, and with fake comparisons in a couple of blogs.