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



我想使用opencv-python4.4为YOLOv3进行推理。但它默认使用CPU。我已经阅读了这里的说明,说新版本的opencv4.2.0已经支持GPU。但该指令仅针对Ubuntu,而我的指令是Windows10

我试过了。你能教我如何在旺多完成这项任务吗?10,蟒蛇?当我直接使用它时,出现了错误:

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模块。

最新更新