Pan*_*a50 8 python opencv python-3.x tensorflow opencv4
我正在尝试在 Windows 10 上使用带有 GPU 的 opencv-python。
我使用 pip 安装了 opencv-contrib-python,它是 v4.4.0.42,我的计算机和路径中也有 Cuda。
无论如何,这是我正在尝试编译的(简单)代码:
import cvlib as cv
from cvlib.object_detection import draw_bbox
bbox, label, conf = cv.detect_common_objects(img,confidence=0.5,model='yolov3-worker',enable_gpu=True)
output_image = draw_bbox(img, bbox, label, conf)
Run Code Online (Sandbox Code Playgroud)
首先,这是告诉我 tf 可以与 cuda 一起使用的行:
2020-08-26 5:51:55.718555: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cudart64_101.dll
Run Code Online (Sandbox Code Playgroud)
但是当我尝试使用 GPU 分析图像时,会发生以下情况:
[ WARN:0] global C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-j8nxabm_\opencv\modules\dnn\src\dnn.cpp (1429) cv::dnn::dnn4_v20200609::Net::Impl::setUpNet DNN module was not built with CUDA backend; switching to CPU
Run Code Online (Sandbox Code Playgroud)
有没有办法在不使用 cmake 安装 opencv 的情况下解决这个问题?窗户上乱七八糟...
自从最初提出这个问题以来,事情似乎发生了一些变化:
来自https://github.com/opencv/opencv-python
选项 1 - 主要模块包:pip install opencv-python
选项 2 - 完整包(包含主模块和 contrib/extra 模块): pip install opencv-contrib-python (检查 OpenCV 文档中列出的 contrib/extra 模块)==> https://docs.opencv.org/master/
遗憾的是,并非上面列出的所有模块似乎都可以在“完整包”中使用,例如。CUDA过滤器。如果有人知道更多,我将非常感激了解更多信息。
对于那些能得到同样问题的人。正如 Harry 提到的,不可能将 GPU 与 pip 中的 opencv 一起使用,您必须使用 Cmake(对于 Windows)“手动”构建它。
这有点棘手,但有很多教程可以帮助您。我花了两天时间尝试让 cvlib 工作,这就是原因:Nvidia 网站上当前提供的 cudnn.dll 之一名为:
Cudnn64_8.dll
和 opencv (或更准确地说是张量流)需要
Cudnn64_7.dll
事实上,您只需将 8 替换为 7 即可!;) 这是唯一困难的部分,我相信它来自 cmake 过程。
再次感谢哈利。
| 归档时间: |
|
| 查看次数: |
14705 次 |
| 最近记录: |