【问题标题】:How to use GPU-acceleration on openCV dnn module on python (Windows)?如何在 python(Windows)上的 openCV dnn 模块上使用 GPU 加速?
【发布时间】:2020-12-25 22:08:30
【问题描述】:

我想使用opencv-python4.4 对 YOLOv3 进行推理。但它默认使用CPU。我看过这条指令here,说新版本opencv4.2.0已经支持GPU。但是该指令仅适用于Ubuntu,而我的是Windows10

我试过了,能否请您指导我如何在 Wondows10 中完成此操作,python?我直接用的时候,出现了错误:

cv::dnn::dnn4_v20191202::Net::Impl::setUpNet DNN module was not built with CUDA backend; switching to CPU

看来我必须手动编译opencv 但不是Cpp 吗?但我只想在python 上实现它。谁能给我一些指示?

【问题讨论】:

    标签: python opencv gpu opencv-python


    【解决方案1】:

    我已经想通了……两者都有

    -DBUILD_opencv_python3=ON
    -DBUILD_opencv_python2=OFF
    

    必须指定,否则to be built 将根本不包含任何python 模块。

    【讨论】:

      【解决方案2】:

      您确实需要自己构建 OpenCV。

      当您使用 OpenCV 的 Python 绑定时,OpenCV 库本身是用 C++ 而不是 Python 编写的。这也解释了 OpenCV 如何使用 CUDA,另一个 C++ 库来访问 NVidia GPU。

      您链接的说明来自与 OpenCV 无关的人,他承认有反 Windows 偏见。这意味着这些说明对您没有用处。

      These instructions 确实涵盖了 Windows 版本。

      总结:

      • 使用 Visual Studio 2019(Microsoft 的最新 C++ 编译器)和 CMake
      • 下载并安装 OpenCV
      • 下载并安装 CUDA 和 cuDNN
      • 下载并安装 Anaconda3 并将其用作默认 Python
      • 设置环境变量,以便 CMake 可以找到您安装的库
      • 设置环境变量和选项,以便 CMake 知道您还需要 OpenCV 的 Python 绑定
      • 使用 CMake 为 Visual Studio 创建 .sln 文件
      • 在 Visual Studio 中打开 .sln 并构建它。
      • 这会生成您需要的cv2.cp37-win_amd64.pyd 文件。

      【讨论】:

      • 我自己也找到了同一篇文章。不过还是非常感谢您的回复!
      • 我按照说明生成构建文件。但是我在任何地方都找不到python绑定文件(已包含python3路径)......特别是我不明白“确保你构建版本,默认情况下不能为调试配置生成python绑定”。他说构建 Release,然后以某种方式切换到 Debug……我不知道我应该做哪一个。
      • @dexter2406:该评论指的是cmake 命令行。这意味着cmake 的参数应该包括--config Release 而不是--config Debug
      • 那么在构建之前我还需要修改pyconfig.h吗?我刚刚用set "buildType=Release"重建它并修改了pyconfig.h,但是仍然没有python绑定文件的迹象。
      • 只有在您对 OpenCV 本身进行黑客攻击并需要调试 时,您才需要更改 pyconfig.h。我不认为你会想要那样做。但这只会影响绑定绑定的内容。您是否按照第 4 步“验证详细说明要构建的模块的 cmake 输出是否包含 python3”?
      猜你喜欢
      • 2014-01-18
      • 1970-01-01
      • 1970-01-01
      • 2021-11-14
      • 2020-11-06
      • 1970-01-01
      • 2018-01-02
      • 2019-11-02
      • 2021-05-15
      相关资源
      最近更新 更多