2

我想用来opencv-python4.4为 YOLOv3 做推理。但它默认使用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. 谁能给我一些指示?

4

2 回答 2

2

您确实需要自己构建 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您需要的文件。
于 2020-09-07T13:43:41.980 回答
0

我已经想通了...两者

-DBUILD_opencv_python3=ON
-DBUILD_opencv_python2=OFF

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

于 2020-09-08T14:09:07.360 回答