warning: setUpNet DNN module was not built with CUDA backend; switching to CPU错误解决

问题描述

利用opencv-python的dnn模块调用yolo3模型进行目标检测的时候,根据网上的教程,加入GPU加速,也就是加入如下的两行代码:

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

但是在运行之后,出现了这样的提示:

warning: setUpNet DNN module was not built with CUDA backend; switching to CPU

原因分析:

这说明GPU没被用上,原因是OPENCV在安装的时候,没有安装支持CUDA的版本,所以需要重新编译安装OPENCV。


解决方案:

安装OPENCV的教程可以参考这一个:https://blog.csdn.net/qq_37975595/article/details/109179388链接。注意,选择opencv4.4.0以上的版本!!我用的是4.4.0。本来我安装的是4.3.0,解决了一天的bug也没安装上!!!最后换了4.4.0,一下就装上了!

注意注意,cmake 这一步就是编译选项,我当时采用的是这个:

 cmake -DCMAKE_BUILD_TYPE=RELEASE \
    -DCMAKE_INSTALL_PREFIX=/usr/local \
    -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.4.0/modules .. \
    -DWITH_CUDA=1 \
    -DCUDA_ARCH_BIN=7.5 \
    -DENABLE_FAST_MATH=1 \
    -DCUDA_FAST_MATH=1 \
    -DWITH_CUBLAS=1 \
    -DOPENCV_GENERATE_PKGCONFIG=1 \
    ..

其中-DWITH_CUDA=1这句话就是选择了有CUDA版本的opencv。

-DCUDA_ARCH_BIN=7.5这个一定一定要选择跟你电脑显卡相匹配的数字,不然GPU还是不能用,还得重新编译安装。如果不匹配,会出现这样的报错:

 error: (-216:No CUDA support) OpenCV was not built to work with the selected device. Please check CUDA_ARCH_PTX or CUDA_ARCH_BIN in your build configuration. in function 'initCUDABackend'

此问题的解决参考了该博主的博客:https://blog.csdn.net/qq_34717531/article/details/108735629

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值