我正在尝试在 Windows 10 上将 opencv-python 与 GPU 结合使用。
我使用 pip 安装了 opencv-contrib-python,它是 v4.4.0.42,我的计算机和路径中也有 Cuda。
无论如何,这是我要编译的(简单)代码:
import cvlib as cv
from cvlib.object_detection import draw_bbox
bbox, label, conf = cv.detect_common_objects(img,confidence=0.5,model='yolov3-worker',enable_gpu=True)
output_image = draw_bbox(img, bbox, label, conf)
首先,这是告诉我 tf 可以使用 cuda 的行:
2020-08-26 5:51:55.718555: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cudart64_101.dll
但是当我尝试使用我的 GPU 分析图像时,会发生以下情况:
[ WARN:0] global C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-j8nxabm_\opencv\modules\dnn\src\dnn.cpp (1429) cv::dnn::dnn4_v20200609::Net::Impl::setUpNet DNN module was not built with CUDA backend; switching to CPU
有没有办法在不使用 cmake 安装 opencv 的情况下解决这个问题?窗户上乱七八糟的…
原文由 Panda50 发布,翻译遵循 CC BY-SA 4.0 许可协议
这里的问题是与您的系统(在本例中为 Windows)一起分发的 opencv 版本未使用 Cuda 支持进行编译。因此,您不能在此构建中使用任何与 cuda 相关的功能。
如果你想要一个支持 cuda 的 opencv,你将不得不自己编译它(这在 Windows 上可能很乏味)或者在某个地方找到一个预构建的。如果您想寻求第一个解决方案,这里有一个链接可以帮助您完成该过程: https ://programming.vip/docs/compile-opencv-with-cuda-support-on-windows-10.html .请记住,这将需要您在此过程中安装一堆 SDK 。