本人小白,在查询如何使cv2库中dnn模块调用GPU运算时,发现网上大多数的教程都是要求用vs将opencv安装在电脑上,期间需要用到CMAKE、VS等工具进行编译,对其中的报错要逐一查询修改,实在是对于小白很不友好。

在学习了博主枸杞叶儿的文章http://t.csdn.cn/jsLkP后,安装了opencv-contrib-python库,并在代码中加入了下方代码,

net.setPreferableBackend(cv.dnn.DNN_BACKEND_CUDA)
net.setPreferableTarget(cv.dnn.DNN_TARGET_CUDA)

发现产生了报错cv::dnn::dnn4_v20211004::Net::Impl::setUpNet DNN module was not built with CUDA backend; switching to CPU,意味着并没有使用GPU而是仍然通过CPU进行运算。

 

之后在博主的文章下找到博主提供的代码链接论坛How to run OpenCV DNN on NVidia GPU.并采用了论坛中的代码:

net.setPreferableBackend(cv.dnn.DNN_BACKEND_OPENCV)
net.setPreferableTarget(cv.dnn.DNN_TARGET_OPENCL)

运行后成功使用GPU进行运算。本电脑之前未装过opencv和opencl,想问一下各位大佬这样的做法为什么能成功调用GPU,博主枸杞叶儿的方法为什么不能调用GPU?

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐