Opencv错误:没有GPU支持(编译库时没有CUDA支持)
Opencv Error: no GPU support (library is compiled without CUDA support)
我正在尝试在带有CUDA的GPU上使用opencv执行一些图像处理任务。我正在使用ubuntu。我毫无问题地安装了我的两个产品Opencv和Cuda,我对此很确定。然而,当我尝试在eclipse中运行sampleCOde时,我遇到了一个错误:
OpenCV Error: No GPU support (The library is compiled without CUDA support) in mallocPitch, file /home/muad/Source/OpenCV-2.4.2/modules/core/src/gpumat.cpp, line 749
我重新制作了我的露天电视,但我仍然能做到。
如文档中所述,您必须使用CMake构建OpenCV,并设置标志WITH_CUDA=ON。然后您将获得功能齐全的OpenCV GPU模块。否则,模块仍在构建中,但您收到CV_GpuNotSupported的异常。
欲了解更多信息,请阅读此处:http://docs.opencv.org/modules/gpu/doc/introduction.html
我也遇到了同样的问题。我通过使用.exe将opencv_core243d.dll从E:opencvbuildgpux64vc10lib
文件夹复制到工作目录中。我不知道为什么这很重要,但确实如此。
我想您的系统路径仍然设置为以前的dll,这些dll不是用gpu编译的。在重新构建opencv之后,您应该首先更改系统路径。
如果有人在Google Colab上运行笔记本电脑时遇到同样的问题。下面是我解决问题的方法。
我尝试了很多东西,发现了这个博客:https://towardsdatascience.com/how-to-use-opencv-with-gpu-on-colab-25594379945f
该博客描述了如何构建支持CUDA的OpenCV,然后将最终构建文件(*.so)放入Colab工作目录中进行访问并通过它运行OpenCV。
尽管我完成了所有步骤,但问题并没有得到解决,因为Colab已经预装了OpenCV,在使用编译后的构建版本之前,需要将其删除。
以下是我在CUDA支持下让OpenCV在Google Colab上运行的所有步骤。
- 在Colab运行时中启用GPU。在视图资源选项中选择"更改运行时类型",然后在硬件加速器选项下选择"GPU">
- 将你的谷歌硬盘安装到Colab。这可以通过在"文件"选项卡中选择"装载驱动器"选项来轻松完成,从而允许连接驱动器。这个步骤很重要,因为我们需要将构建文件保存在某个地方,以便将来使用
- 在笔记本中运行以下命令以检查"cv2"当前版本
import cv2
cv2.__version__
- 在笔记本中运行以下代码,该代码将下载并构建支持CUDA的OpenCV
%cd /content
!git clone https://github.com/opencv/opencv
!git clone https://github.com/opencv/opencv_contrib
!mkdir /content/build
%cd /content/build
!cmake -DOPENCV_EXTRA_MODULES_PATH=/content/opencv_contrib/modules -DBUILD_SHARED_LIBS=OFF -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_EXAMPLES=OFF -DWITH_OPENEXR=OFF -DWITH_CUDA=ON -DWITH_CUBLAS=ON -DWITH_CUDNN=ON -DOPENCV_DNN_CUDA=ON /content/opencv
!make -j8 install
这将需要很多时间来运行。我花了4个小时才完成。耐心点 - 一旦文件构建完成,我们需要将这个构建文件复制到我们的谷歌驱动器中。这可以使用以下命令来完成。我复制了整个文件夹,您不需要这样做,只需输出文件"build/lib/python3/cv2.cpython-37m-x86_64-linux-gnu.so"就足够了
!mkdir "/content/drive/MyDrive/"
!cp -R /content/build "/content/drive/MyDrive/"
- 现在终止会话并重新启动运行时。这将清理所有文件,我们将有一个新的运行时
- 重新安装谷歌驱动器,与步骤2相同
- 使用以下命令卸载预装的OpenCV
!pip uninstall opencv-python
- 将"cv2.cpython-37m-x86_64-linux-gnu.so"文件复制到当前的工作目录中
!cp "/content/drive/MyDrive/build/lib/python3/cv2.cpython-37m-x86_64-linux-gnu.so" .
- 检查OpenCV版本。它应该在版本号中添加诸如"-pre"或"-dev"之类的后缀。就我而言,它是"4.5.5dev">
仅此而已。如果您在将文件从谷歌驱动器复制到谷歌驱动器时使用其他位置,请确保对文件路径进行适当的更改。
如果你认为我错过了什么或什么不正确,请告诉我。
- 编译时未启用intel oneApi CUDA支持
- x86 32位对Cuda的支持
- 强制 Dlib python 仅使用 CPU 支持进行安装;在具有 Cuda 和所有内容的 GPU 机器上
- 支持 CUDA 统一内存的系统分配器的操作系统版本
- CMAKE中断openCV建筑物具有CUDA支持而没有错误
- Tensorflow 1.6.0带CUDA支持在CentOS 6.10 C++上链接libtensorflow(_cc)
- OpenCV是在没有CUDA视频解码支持的情况下建造的
- OPENCV在Ubuntu上的CUDA支持中失败
- Opencv错误:没有GPU支持(编译库时没有CUDA支持)
- 不支持外部调用 - CUDA
- 编译一个不支持c++11和.cxx文件的cuda代码需要一个带有vexcl示例的c++11
- CUDA 7.0抱怨不支持gcc 4.9
- cuda 5.0支持的c++版本
- 在linux上编译支持CUDA的OpenCv
- 抢占模式下不支持 CUDA 动态并行调试.断点将被禁用
- 带有 g++ 的 CUDA 6.5 不支持 c++11
- OpenCV:不支持GPU(该库是在不支持CUDA的情况下编译的)
- OpenCV错误:没有GPU支持:2.4.10和CUDA v7.5
- 在新线程中调用支持cuda的库
- 错误 OpenCV 在 C++ 中支持 CUDA