繁体   English   中英

如何在 python (Windows) 上的 openCV dnn 模块上使用 GPU 加速?

[英]How to use GPU-acceleration on openCV dnn module on python (Windows)?

我想使用opencv-python4.4opencv-python4.4进行推理。 但它默认使用 CPU。 我在这里看过这个说明,说新版本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上实现它。 谁能给我一些指示?

您确实需要自己构建 OpenCV。

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

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

这些说明确实涵盖了 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文件。

我已经想通了......两者都

-DBUILD_opencv_python3=ON
-DBUILD_opencv_python2=OFF

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM