簡體   English   中英

將 GPU 與 opencv-python 結合使用

[英]Use GPU with opencv-python

我正在嘗試在 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)

首先,這是告訴我 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

但是當我嘗試使用 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

有沒有辦法在不使用 cmake 安裝 opencv 的情況下解決這個問題? 窗戶上亂七八糟...

這里的問題是隨您的系統(在本例中為 Windows)分發的opencv版本沒有使用Cuda支持編譯。 因此,您不能在此構建中使用任何與 cuda 相關的功能。

如果你想要一個支持 cuda 的 opencv,你必須自己編譯它(這在 Windows 上可能很乏味)或者在某處找到一個預構建的。 如果您想采用第一個解決方案,這里有一個鏈接可以幫助您完成該過程: https : //programming.vip/docs/compile-opencv-with-cuda-support-on-windows-10.html . 請記住,這將需要您在此過程中安裝一堆SDK

對於那些可以得到同樣問題的人。 正如哈里所提到的,不可能將 GPU 與來自 pip 的 opencv 一起使用,您必須使用 Cmake(對於 Windows)“手動”構建它。

這有點棘手,但有很多教程可以幫助您。 我花了兩天時間試圖讓 cvlib 工作,這就是為什么:目前可從 Nvidia 網站獲得的 cudnn.dll 之一被命名為:

Cudnn64_8.dll

和 opencv(或更精確的 tensorflow)需要

Cudnn64_7.dll

事實上,您只需要將 8 替換為 7 即可! ;) 那是唯一困難的部分,我相信它來自 cmake 過程。

再次感謝哈利。

自從最初提出這個問題以來,事情似乎發生了一些變化:

來自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/

遺憾的是,並非上面列出的所有模塊似乎都在“完整包”中可用,例如。 過濾器。 如果有人知道更好,我將非常感謝您了解更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM