coolpow 2024-02-12 15:45 采纳率: 25%
浏览 37
已结题

pycharm 在opencv 上使用不了CUDA的问题。

我是初学者,在pycharm 下,pytorch可以使用CUDA,能找到GPU设备,说明我NVIDIA 驱动没有问题。pip opencv-python 和pip opencv-contrib-python , 就找不到GPU的设备。会是哪里出问题了?
CUDA 版本是最新的12.3版本。 pip opencv-python 和pip opencv-contrib-python 也是最新的4.9080。
pychon 12版本,pychon7版本和pychon6版本都切换过了。都不行。
我使用的是windows系统。

  • 写回答

23条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-02-12 15:46
    关注
    获得0.75元问题酬金

    引自免费微信小程序:皆我百晓生

    在PyCharm中配置OpenCV使用CUDA可能涉及到多个步骤,尤其是在确保OpenCV已经正确编译并支持CUDA的情况下。目前的OpenCV库(通过pip install opencv-pythonpip install opencv-contrib-python安装)默认情况下可能并未包含CUDA支持。

    要解决这个问题,请按照以下步骤排查:

    1. 确认OpenCV版本与CUDA兼容性: 首先需要确认你所安装的OpenCV版本是否真正支持CUDA 12.3。通常,你需要手动编译带有CUDA支持的OpenCV,因为pip提供的预编译包可能不包含CUDA支持。

    2. 手动编译OpenCV with CUDA支持: 从源代码编译OpenCV,并启用CUDA支持。以下是简化版的编译命令示例:

      git clone https://github.com/opencv/opencv.git
      git clone https://github.com/opencv/opencv_contrib.git
      cd opencv
      mkdir build && cd build
      cmake -D CMAKE_BUILD_TYPE=RELEASE \
            -D CMAKE_INSTALL_PREFIX=/usr/local \
            -D OPENCV_ENABLE_NONFREE=ON \
            -D INSTALL_PYTHON_EXAMPLES=ON \
            -D INSTALL_C_EXAMPLES=OFF \
            -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules \
            -D WITH_CUDA=ON \
            -D CUDA_ARCH_BIN="7.5" \ # 根据你的GPU架构调整
            -D WITH_CUDNN=ON \
            -D ENABLE_FAST_MATH=1 \
            -D CUDA_FAST_MATH=1 \
            -D WITH_TBB=ON \
            -D BUILD_opencv_python3=ON \
            -D PYTHON_EXECUTABLE=$(which python) \
            -D BUILD_EXAMPLES=ON ..
      make -j$(nproc)
      sudo make install
      
    3. 验证安装: 编译完成后,重新导入OpenCV模块并检查CUDA设备是否可被识别。例如:

      import cv2
      print(cv2.cuda.getCudaEnabledDeviceCount())
      

      如果返回大于0的数字,则说明已成功连接到至少一个CUDA设备。

    4. 环境变量问题: 确保在运行PyCharm时,它使用的Python解释器能够访问到刚刚安装的CUDA支持的OpenCV库。

    请注意,上述步骤可能需要根据你的具体环境进行调整,包括但不限于CUDA、CUDNN、Python版本以及系统环境等。如果你对上述步骤不熟悉,建议参考官方文档或相关教程进行操作。另外,务必确保系统的NVIDIA驱动程序、CUDA Toolkit和CUDNN都与你正在编译的OpenCV版本兼容。对于详细的编译指南,可以参考OpenCV官方文档

    评论

报告相同问题?

问题事件

  • 系统已结题 2月20日
  • 修改了问题 2月12日
  • 赞助了问题酬金15元 2月12日
  • 创建了问题 2月12日

悬赏问题

  • ¥15 Stata链式中介效应代码修改
  • ¥15 latex投稿显示click download
  • ¥15 请问读取环境变量文件失败是什么原因?
  • ¥15 在若依框架下实现人脸识别
  • ¥15 网络科学导论,网络控制
  • ¥100 安卓tv程序连接SQLSERVER2008问题
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错