无法在具有CUDA支持的Cmake中构建OpenCV以在Python中为OpenCV使用GPU

2cmtqfgy  于 2022-12-13  发布在  Python
关注(0)|答案(1)|浏览(235)

装置规格:

Windows 10,RTX 2060.基本上,这是一款标准的联想笔记本电脑,配有2060
我在这里学习了这个教程:https://www.youtube.com/watch?v=HsuKxjQhFU0

我是从全新安装的Anaconda、CUDA、Cmake、Visual Studio和cuDNN启动的,并且正在运行以下版本:

  • Python; Python 3.9.13
  • cuDNN版本8.7.0
  • CUDA 11.3版
  • Visual Studio 16 2019的最新版本
  • C制造3.24.2

我采取了以下步骤:
1.从github下载了OpenCV和OpenCV-contrib源代码,确保获得了这两个版本的4.6版:https://github.com/opencv/opencv/tree/4.6.0

  1. https://github.com/opencv/opencv_contrib/tree/4.6.0
    1.然后,我在C:\Users\user中创建了一个名为CUDAGPU的文件夹,其中包含解压缩的opencv文件夹和一个空的build文件夹。
    1.在Cmake中,我将源文件夹设置为C:/Users/user/CUDAGPU/opencv-4.6.0,将构建二进制文件的位置设置为C:/Users/user/CUDAGPU/build
    1.我点击了configure,在它运行后,我选择了以下内容:
  • 具有CUDA
  • 启用快速数学
  • 构建_开放_字
  • 我将OPENCV_EXTRA_MODULES_PATH设置为C:\用户\用户\CUDAGPU\opencv_contrib-4.5.2

1.我再次点击配置,然后选择以下内容:

  • CUDA快速数学
  • 我只把CUDA_ARCH_BIN设置为7.5
  • 我将CMAKE_CONFIGURATION_TYPE设置为仅发布
    我的Cmake日志如下所示,表明我的操作正确:
NVIDIA CUDA:                   YES (ver 11.3, CUFFT CUBLAS FAST_MATH)
    NVIDIA GPU arch:             75
    NVIDIA PTX archs:

  cuDNN:                         YES (ver 8.7.0)

  OpenCL:                        YES (NVD3D11)
    Include path:                C:/Users/user/CUDAGPU/opencv-4.6.0/3rdparty/include/opencl/1.2
    Link libraries:              Dynamic load

  Python 3:
    Interpreter:                 C:/Users/user/anaconda3/python.exe (ver 3.9.13)
    Libraries:                   C:/Users/user/anaconda3/libs/python39.lib (ver 3.9.13)
    numpy:                       C:/Users/user/anaconda3/lib/site-packages/numpy/core/include (ver 1.23.5)
    install path:                C:/Users/user/anaconda3/Lib/site-packages/cv2/python-3.9

  Python (for build):            C:/Users/user/anaconda3/python.exe

1.然后再次单击configure,然后生成
1.然后,我打开了一个anaconda提示符,并运行了以下命令:
cmake --build "C:/Users/user/CUDAGPU/build" --target INSTALL --config Release
该过程完成后,我尝试执行以下操作来测试是否启用了cuda支持
python import cv2 from cv2 import cuda cuda.printCudaDeviceInfo(0)
我收到以下回复:
cv2.error: OpenCV(4.6.0) D:\a\opencv-python\opencv-python\opencv\modules\core\include\opencv2/core/private.cuda.hpp:106: error: (-216:No CUDA support) The library is compiled without CUDA support in function 'throw_no_cuda'
我试图通过在每个版本上将openCV版本切换到4.5.2来修复这个问题;但是,一旦我运行完全相同的步骤,并在anaconda命令提示符下运行第8行中的代码,安装45分钟后,我会返回以下内容:
LINK : fatal error LNK1181: cannot open input file 'harfbuzz.lib' [C:\Users\user\CUDAGPU\build\modules\world\opencv_ world.vcxproj]
有人有什么建议吗?我真的被卡住了!

ybzsozfc

ybzsozfc1#

您是否按照本指南进行构建?Custom Opencv build
感谢你,我找到了opencv 4.6版本的opencv_contrib。现在我将尝试用cmake构建它。

相关问题