0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

OpenCV配置CUDA以支持GPU加速

新機器視覺 ? 來源:小半仙IoT ? 2023-01-09 10:16 ? 次閱讀

REC

最近在做OpenCV相關(guān)的項目時發(fā)現(xiàn),在跑dnn模型時如果單純只使用cpu幀率會非常低,有時甚至一兩秒才刷一幀的圖像出來,需要使用硬件加速,所以在各大論壇等翻閱使用GPU加速的教程,可惜非常雜,而且并不完整。作者在實際操作中也是踩坑無數(shù),同時借此整理一篇關(guān)于OpenCV配置CUDA支持GPU加速的教程,供大家參考。

相關(guān)的資料也會整理后,大家可通過后臺私信 OpenCV 獲得本次的所有相關(guān)文件源碼以及軟件包。

一、環(huán)境準備

查看電腦NVIDIA的CUDA版本號,下載對應(yīng)版本CUDA Toolkit(當前使用11.1版本)(具體需不需要下載和自己電腦cuda相同版本的還有待查證)

cmake3.17.2(最高只支持到vs2019版)

visual studio 2019

opencv源代碼(當前使用opencv 4.6.0版本)

opencv_contrib(當前使用4.6.0版本)

以上相應(yīng)下載鏈接及軟件會放在資料里。CUDA精簡安裝教程請關(guān)注補充內(nèi)容

二、使用cmake “make”

1、打開cmake(cmake-gui),第一個源代碼路徑選擇剛剛下載的opencv源代碼路徑,路徑需要選擇到sources 第二個編譯輸出路徑,可在opencv文件夾下創(chuàng)建一個新的文件夾,用于存放編譯輸出的文件,這里創(chuàng)建為newbuild。

3ada3b82-8f40-11ed-bfe3-dac502259ad0.png

之后點configure進行第一次配置,彈出窗口第一個選擇visual studio 16 2019,第二個選擇x64,其余保持默認,點擊finish,等待配置完成后不出意外會有3個錯誤和警告,需要重點關(guān)注,這些錯誤會影響到后面的編譯。

3af957a6-8f40-11ed-bfe3-dac502259ad0.png

我的錯誤為 (1)跟python2.7相關(guān)的錯誤,可忽略

3b206062-8f40-11ed-bfe3-dac502259ad0.png

(2)FFMPEG的相關(guān)文件下載失敗,這里需要自己從自己選擇的編譯輸出路徑中找到 CMakeDownloadLog.txt 打開(我的路徑為H:opencv_pasksopencv ewbuildCMakeDownloadLog.txt),里面提供了FFMPEG相關(guān)文件的鏈接地址,下載即可。最后我們統(tǒng)一放入相關(guān)文件夾內(nèi)(所以這里只需先下載下來,暫不用放入任何文件夾內(nèi))

3b301840-8f40-11ed-bfe3-dac502259ad0.png

(3)這里只是個 warning 不是 error ,可忽略

3b5031a2-8f40-11ed-bfe3-dac502259ad0.png

(當然有的人可能還會有和 ippicv 相關(guān)的錯誤,和 ffmpeg 同理,找到對應(yīng)的文件鏈接下載即可) 2、勾選相應(yīng)配置 (1)在 search 搜索框里搜索 cuda,勾選 OPENCV_DNN_CUDA 和 WITH_CUDA 兩個選項

3b68e24c-8f40-11ed-bfe3-dac502259ad0.png

(2)搜索 example,勾選 BUILD_EXAMPLES 和 INSTALL_PYTHON_EXAMPLES(這一步可不用)

3b8488d0-8f40-11ed-bfe3-dac502259ad0.png

(3)搜索 non,勾選OPENCV_ENABLE_NONFREE

3ba24d70-8f40-11ed-bfe3-dac502259ad0.png

(4)搜索 mod,OPENCV_EXTRA_MODULES_PATH 選擇剛剛下載的 opencv_contrib 路徑,需要到 modules 文件夾下(我的為H:/opencv_pasks/opencv_contrib-4.6.0/modules, 注意這里是正斜杠而不是反斜杠) 以上完成之后再次點擊 configure 進行第二次配置,等待配置完成后可繼續(xù)下一步。

3bbd3a9a-8f40-11ed-bfe3-dac502259ad0.png

這里不出意外會多出幾個紅色的錯誤警告 例如:wechat_qrcode、xfeatures2d、face相關(guān)等,基本都是因為下載不到文件引起,需要自己手動下載

(5)搜索 cudnn,勾選 WITH_CUDNN(我的默認已經(jīng)勾選)

3bda9dce-8f40-11ed-bfe3-dac502259ad0.png

(6)搜索 cubla,勾選WITH_CUBLAS(我的默認已經(jīng)勾選)

(7)搜索 cuda_ar,在CUDA_ARCH_BIN填入自己的顯卡gpu算力,不知道的可進入網(wǎng)址查詢,我的為6.1。 (顯卡gpu算力查詢網(wǎng)址見資料)

(8)搜索 fast,勾選CUDA_FAST_MATH 和 ENABLE_FAST_MAT

(9)搜索 type,將CMAKE_CONFIGURATION_TYPES的DEBUG刪除,只保留Release

(10)搜索 world,勾選BUILD_opencv_world

完成上述后再次點擊 configure 進行第三次配置,等待配置完成后,這時我們需要放入剛剛所說的一些下載錯誤的缺失文件。

在源碼目錄下的 .cache 文件夾內(nèi)(我的路徑為 H:opencv_pasksopencvsources.cache)放入剛剛下載的相應(yīng)文件,需要放入到對應(yīng)的文件夾下,并且文件名需要和自己目錄下生成的 0k 文件名相對應(yīng),不對應(yīng)的需要修改成對應(yīng)的,然后將其替換。(不會的可以參考我的 .ceche 目錄,同時如果有文件下載不了的可以使用我文件里的)

替換完剛剛出錯的所有文件后,回到 cmake,點擊 Generate 會生成一個vs2019的c++工程,之后點擊 open Project 打開工程。

在 vs2019 上方選擇 Release,之后點右邊的 CmakeTargets-ALL_BUILD,右鍵生成,等待生成完成,過程大約一小時到兩小時,根據(jù)自己電腦的 cpu 而定。生成完會出現(xiàn)0錯誤、0跳過,全是成功的,之后還是同樣在 ALL_BUILD 下方的 INSTALL,同樣右鍵生成,過程大約幾分鐘,等待生成完成即可。

三、配置環(huán)境變量

此電腦右鍵-屬性-高級系統(tǒng)設(shè)置-高級-環(huán)境變量 在上方的用戶變量中新建兩個變量

3bf306f2-8f40-11ed-bfe3-dac502259ad0.png

在下方的系統(tǒng)變量-Path中新建三個變量,配置完后確定即可

3c032b90-8f40-11ed-bfe3-dac502259ad0.png

四、測試

在代碼中,需要對net類進行兩處修改

net.setPreferableBackend(cv2.dnn.DNN_BACKEND_CUDA)
net.setPreferableTarget(cv2.dnn.DNN_TARGET_CUDA)

之后運行即可支持GPU加速。

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • NVIDIA
    +關(guān)注

    關(guān)注

    14

    文章

    5055

    瀏覽量

    103373
  • gpu
    gpu
    +關(guān)注

    關(guān)注

    28

    文章

    4761

    瀏覽量

    129141
  • OpenCV
    +關(guān)注

    關(guān)注

    31

    文章

    635

    瀏覽量

    41424
  • CUDA
    +關(guān)注

    關(guān)注

    0

    文章

    121

    瀏覽量

    13648

原文標題:OpenCV配置CUDA以支持GPU加速

文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    OpenCV+CUDA編譯實現(xiàn)YOLOv5能加速

    對比一下,加速效果真得是杠杠滴!所以值得編譯OpenCV+CUDA支持,因為它不光加速深度學(xué)習(xí)模型推理,對傳統(tǒng)圖像處理均有加速!
    的頭像 發(fā)表于 07-18 10:27 ?2624次閱讀
    <b class='flag-5'>OpenCV+CUDA</b>編譯實現(xiàn)YOLOv5能<b class='flag-5'>加速</b>

    NVIDIA CUDA深度神經(jīng)網(wǎng)絡(luò)庫實現(xiàn)高性能GPU加速

    NVIDIA CUDA 深度神經(jīng)網(wǎng)絡(luò)庫(cuDNN)是一個 GPU 加速的深度神經(jīng)網(wǎng)絡(luò)基元庫,能夠高度優(yōu)化的方式實現(xiàn)標準例程(如前向和反向卷積、池化層、歸一化和激活層)。
    發(fā)表于 07-23 11:04 ?1572次閱讀

    OpenCV4.8 CUDA編程代碼教程

    OpenCV4支持通過GPU實現(xiàn)CUDA加速執(zhí)行,實現(xiàn)對OpenCV圖像處理程序的
    的頭像 發(fā)表于 12-05 09:56 ?1082次閱讀
    <b class='flag-5'>OpenCV</b>4.8 <b class='flag-5'>CUDA</b>編程代碼教程

    有沒有大佬知道NI vision 有沒有辦法通過gpucuda加速圖像處理

    有沒有大佬知道NI vision 有沒有辦法通過gpucuda加速圖像處理
    發(fā)表于 10-20 09:14

    《CST Studio Suite 2024 GPU加速計算指南》

    的各個方面,包括硬件支持、操作系統(tǒng)支持、許可證、GPU計算的啟用、NVIDIA和AMD GPU的詳細信息以及相關(guān)的使用指南和故障排除等內(nèi)容。 1. 硬件
    發(fā)表于 12-16 14:25

    關(guān)于K2 passthrough的CUDA

    工作。對于Premiere Pro的使用,我們需要CUDA強制渲染GPU而不是使用CPU來渲染視頻。是否支持使用NVIDIA GRID K2卡?以上來自于谷歌翻譯以下為原文We have
    發(fā)表于 09-10 17:18

    在K520上能使用兩個GPU進行CUDA作業(yè)嗎

    如果沒有其他用戶共享K520,您是否可以抓取兩個GPU進行CUDA計算作業(yè)?我們的應(yīng)用程序使用GPU進行顯示和計算。當我們在AWS K520實例上運行時,CUDA只能看到K520上的一
    發(fā)表于 09-26 15:23

    【NanoPC-T4試用體驗】GPU測試+OpenCV配置

    =a2h3j.8428770.3416059.1</span>2.配置OpenCV(1).打開終端,首先輸入以下命令切換為root用戶!su(2)更改路徑cd /root/(3) git一下
    發(fā)表于 11-12 13:03

    GPU加速matlab程序

    最近遇到了一個加速matlab程序的問題,不知道如何利用GPU,以及使用GPU的先決條件,是不是GPU加速必須要用
    發(fā)表于 03-30 11:21

    linux安裝GPU顯卡驅(qū)動、CUDA和cuDNN庫

    /deviceQuery若看到類似以下信息則說明 cuda 已安裝成功: 7、安裝cuDNN cuDNN是GPU加速計算深層神經(jīng)網(wǎng)絡(luò)的庫。首先去官網(wǎng) https://developer.nvidia.com
    發(fā)表于 07-09 07:45

    GPU加速的L0范數(shù)圖像平滑(L0 Smooth)【CUDA

    GPU 加速的 L0 范數(shù)圖像平滑(L0 Smooth)【CUDA
    發(fā)表于 07-08 12:10

    NVIDIA CUDA Toolkit用于創(chuàng)建高性能GPU加速應(yīng)用程序

    通過 CUDA Toolkit,您可以在 GPU 加速的嵌入式系統(tǒng)、桌面工作站、企業(yè)數(shù)據(jù)中心、基于云的平臺和 HPC 超級計算機上開發(fā)、優(yōu)化和部署應(yīng)用程序。
    的頭像 發(fā)表于 03-10 10:15 ?2360次閱讀

    如何在OpenCV中實現(xiàn)CUDA加速

    OpenCV4.x中關(guān)于CUDA加速的內(nèi)容主要有兩個部分,第一部分是之前OpenCV支持的圖像處理與對象檢測傳統(tǒng)算法的
    的頭像 發(fā)表于 09-05 10:03 ?5090次閱讀

    國產(chǎn)GPU繞不開的CUDA生態(tài)

    CUDA(Compute Unified Device Architecture,統(tǒng)一計算架構(gòu))是由英偉達所推出的一種集成技術(shù),是該公司對于GPGPU的正式名稱。通過這個技術(shù),用戶可利用NVIDIA的GPU進行圖像處理之外的運算,CUD
    的頭像 發(fā)表于 11-29 09:36 ?3922次閱讀

    OpenCV4.8+CUDA+擴展模塊支持編譯指南

    OpenCV4.8+CUDA+擴展模塊支持編譯指南
    的頭像 發(fā)表于 11-30 16:45 ?1051次閱讀
    <b class='flag-5'>OpenCV4.8+CUDA</b>+擴展模塊<b class='flag-5'>支持</b>編譯指南