博客專欄

        EEPW首頁 > 博客 > OpenCV配置CUDA以支持GPU加速

        OpenCV配置CUDA以支持GPU加速

        發(fā)布人:計算機視覺工坊 時間:2023-01-19 來源:工程師 發(fā)布文章

        一、環(huán)境準備


        1. 查看電腦NVIDIA的CUDA版本號,下載對應版本CUDA Toolkit(當前使用11.1版本)(具體需不需要下載和自己電腦cuda相同版本的還有待查證)
        2. cmake3.17.2(最高只支持到vs2019版)
        3. visual studio 2019
        4. opencv源代碼(當前使用opencv 4.6.0版本)
        5. opencv_contrib(當前使用4.6.0版本)

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

        二、使用cmake “make”


        1、打開cmake(cmake-gui),第一個源代碼路徑選擇剛剛下載的opencv源代碼路徑,路徑需要選擇到sources
        第二個編譯輸出路徑,可在opencv文件夾下創(chuàng)建一個新的文件夾,用于存放編譯輸出的文件,這里創(chuàng)建為newbuild。
        圖片之后點configure進行第一次配置,彈出窗口第一個選擇visual studio 16 2019,第二個選擇x64,其余保持默認,點擊finish,等待配置完成后不出意外會有3個錯誤和警告,需要重點關注,這些錯誤會影響到后面的編譯。
        圖片我的錯誤為
        (1)跟python2.7相關的錯誤,可忽略
        圖片(2)FFMPEG的相關文件下載失敗,這里需要自己從自己選擇的編譯輸出路徑中找到 CMakeDownloadLog.txt 打開(我的路徑為H:\opencv_pasks\opencv\newbuild\CMakeDownloadLog.txt),里面提供了FFMPEG相關文件的鏈接地址,下載即可。最后我們統(tǒng)一放入相關文件夾內(nèi)(所以這里只需先下載下來,暫不用放入任何文件夾內(nèi))
        圖片(3)這里只是個 warning 不是 error ,可忽略
        圖片(當然有的人可能還會有和 ippicv 相關的錯誤,和 ffmpeg 同理,找到對應的文件鏈接下載即可)
        2、勾選相應配置
        (1)在 search 搜索框里搜索 cuda,勾選 OPENCV_DNN_CUDA 和 WITH_CUDA 兩個選項
        圖片(2)搜索 example,勾選 BUILD_EXAMPLES 和 INSTALL_PYTHON_EXAMPLES(這一步可不用)
        圖片(3)搜索 non,勾選OPENCV_ENABLE_NONFREE
        圖片(4)搜索 mod,OPENCV_EXTRA_MODULES_PATH 選擇剛剛下載的 opencv_contrib 路徑,需要到 modules 文件夾下(我的為H:/opencv_pasks/opencv_contrib-4.6.0/modules, 注意這里是正斜杠而不是反斜杠)
        以上完成之后再次點擊 configure 進行第二次配置,等待配置完成后可繼續(xù)下一步。
        圖片這里不出意外會多出幾個紅色的錯誤警告
        例如:wechat_qrcode、xfeatures2d、face相關等,基本都是因為下載不到文件引起,需要自己手動下載
        (5)搜索 cudnn,勾選 WITH_CUDNN(我的默認已經(jīng)勾選)
        圖片(6)搜索 cubla,勾選WITH_CUBLAS(我的默認已經(jīng)勾選)(7)搜索 cuda_ar,在CUDA_ARCH_BIN填入自己的顯卡gpu算力,不知道的可進入****查詢,我的為6.1。
        (顯卡gpu算力查詢****見資料)
        (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_pasks\opencv\sources.cache)放入剛剛下載的相應文件,需要放入到對應的文件夾下,并且文件名需要和自己目錄下生成的 0k 文件名相對應,不對應的需要修改成對應的,然后將其替換。(不會的可以參考我的 .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)設置-高級-環(huán)境變量
        在上方的用戶變量中新建兩個變量
        圖片在下方的系統(tǒng)變量-Path中新建三個變量,配置完后確定即可
        圖片

        四、測試

        在代碼中,需要對net類進行兩處修改
        net.setPreferableBackend(cv2.dnn.DNN_BACKEND_CUDA)net.setPreferableTarget(cv2.dnn.DNN_TARGET_CUDA)
        之后運行即可支持GPU加速。來源: 小半仙IoT


        *博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。



        關鍵詞: AI

        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 中江县| 宁海县| 若尔盖县| 锦屏县| 米易县| 夹江县| 广汉市| 容城县| 迁安市| 哈密市| 进贤县| 甘泉县| 山西省| 烟台市| 神木县| 平山县| 临安市| 伊川县| 长宁县| 道孚县| 塔河县| 云和县| 黄山市| 诏安县| 定远县| 盘山县| 满洲里市| 修武县| 定陶县| 闸北区| 屯门区| 百色市| 东兴市| 长泰县| 新巴尔虎左旗| 乡城县| 惠来县| 北宁市| 越西县| 哈巴河县| 赫章县|