Opencv错误:没有GPU支持(编译库时没有CUDA支持)

Opencv Error: no GPU support (library is compiled without CUDA support)

本文关键字:支持 CUDA 错误 没有 GPU Opencv 编译      更新时间:2023-10-16

我正在尝试在带有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上运行的所有步骤。

  1. 在Colab运行时中启用GPU。在视图资源选项中选择"更改运行时类型",然后在硬件加速器选项下选择"GPU">
  2. 将你的谷歌硬盘安装到Colab。这可以通过在"文件"选项卡中选择"装载驱动器"选项来轻松完成,从而允许连接驱动器。这个步骤很重要,因为我们需要将构建文件保存在某个地方,以便将来使用
  3. 在笔记本中运行以下命令以检查"cv2"当前版本
    import cv2
    cv2.__version__
  4. 在笔记本中运行以下代码,该代码将下载并构建支持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个小时才完成。耐心点
  5. 一旦文件构建完成,我们需要将这个构建文件复制到我们的谷歌驱动器中。这可以使用以下命令来完成。我复制了整个文件夹,您不需要这样做,只需输出文件"build/lib/python3/cv2.cpython-37m-x86_64-linux-gnu.so"就足够了
    !mkdir "/content/drive/MyDrive/"
    !cp -R /content/build "/content/drive/MyDrive/"
  6. 现在终止会话并重新启动运行时。这将清理所有文件,我们将有一个新的运行时
  7. 重新安装谷歌驱动器,与步骤2相同
  8. 使用以下命令卸载预装的OpenCV
    !pip uninstall opencv-python
  9. 将"cv2.cpython-37m-x86_64-linux-gnu.so"文件复制到当前的工作目录中
    !cp "/content/drive/MyDrive/build/lib/python3/cv2.cpython-37m-x86_64-linux-gnu.so" .
  10. 检查OpenCV版本。它应该在版本号中添加诸如"-pre"或"-dev"之类的后缀。就我而言,它是"4.5.5dev">

仅此而已。如果您在将文件从谷歌驱动器复制到谷歌驱动器时使用其他位置,请确保对文件路径进行适当的更改。

如果你认为我错过了什么或什么不正确,请告诉我。