我想使用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 上实现它。谁能给我一些指示吗?
最佳答案
您确实需要自己构建 OpenCV。
当您使用 OpenCV 的 Python 绑定(bind)时,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 绑定(bind)
- 使用 CMake 为 Visual Studio 创建 .sln 文件
- 在 Visual Studio 中打开 .sln 并构建它。
- 这会生成您需要的
cv2.cp37-win_amd64.pyd
文件。
关于python - 如何在 python (Windows) 上的 openCV dnn 模块上使用 GPU 加速?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63778373/