【发布时间】:2020-12-25 08:44:39
【问题描述】:
我正在尝试使用 cvlib 包,它使用 yolov3 模型来识别 Windows 10 上图像上的对象。 举个简单的例子:
import cvlib as cv
import time
from cvlib.object_detection import draw_bbox
inittimer=time.time()
bbox, label, conf = cv.detect_common_objects(img,confidence=0.5,model='yolov3-worker',enable_gpu=True)
print('The process tooks %.3f s'%(time.time()-inittimer)
output_image = draw_bbox(img, bbox, label, conf)
结果大约为 60 毫秒。
cvlib 使用 opencv 计算这个 cnn 部分。
如果现在我尝试查看使用了多少 GPU tensorflow,使用子进程,它只需要 824MiB。
当程序运行时,如果我启动 nvidia-smi,它会给我这个结果:
如您所见,这里有更多可用内存。我的问题很简单.. 为什么 Cvlib(以及 tensorflow)不使用所有这些来改进时间检测?
编辑:
据我了解,cvlib 使用 tensorflow,但它也使用 opencv 检测器。我使用 cmake 和 Cuda 10.2 安装了 opencv 我不明白为什么,但在 nvidia-smi 中写的是 CUDA Version : 11.0 ,但不是。也许这就是问题的一部分?
【问题讨论】:
-
您是否从源代码安装了支持 CUDA 的 OpenCV?
-
是的,我做到了,这就是为什么它在那里使用一些 GPU 而不是 CPU。
-
您可能尝试同时安装两个版本。然后你在安装新的之前没有卸载前一个。
nvcc --version的输出是什么,你的驱动是什么?
标签: python-3.x opencv gpu cvlib