機(jī)器學(xué)習(xí):如何編譯OpenCV以包括CUDA GPU支持?
本文將逐步介紹如何編譯OpenCV以包括CUDA GPU支持,以便可以在基于視覺(jué)的機(jī)器學(xué)習(xí)項(xiàng)目中使用它。
Pre:我之所以決定寫這篇文章,是因?yàn)槲野l(fā)現(xiàn)現(xiàn)有指南缺少一些更詳細(xì)的信息,無(wú)法說(shuō)明如何使用CUDA GPU支持從源代碼構(gòu)建OpenCV,以便將其導(dǎo)入python3.8conda環(huán)境。大多數(shù)人都以構(gòu)建過(guò)程結(jié)束,但低估這只是使OpenCV在項(xiàng)目中正常工作的第一步。
先決條件
在開(kāi)始之前,我們必須下載一些文件,安裝一些程序。我還將假設(shè)你正在將Anaconda軟件包管理器環(huán)境用于Python 3.8,并將其設(shè)置為啟用的默認(rèn)python和環(huán)境變量。如果沒(méi)有,我不確定以下內(nèi)容是否對(duì)你有用。我不建議偏離主要任務(wù)。
Anaconda軟件包管理器環(huán)境:https://www.a(chǎn)naconda.com/distribution/#download-section
1. Visual Studio 2019
請(qǐng)確保VisualStudio 2019安裝了“帶有C++的桌面開(kāi)發(fā)”包。這是在Visual Studio的安裝過(guò)程中完成的。如果你已經(jīng)安裝了VS2019,但是不確定是否已安裝工作負(fù)載,可以通過(guò)安裝可執(zhí)行文件重新安裝(修改)來(lái)完成。
使用C ++開(kāi)發(fā)的Visual Studio 2019
2. OpenCV和OpenCV貢獻(xiàn)文件
在計(jì)算機(jī)上的某個(gè)位置創(chuàng)建一個(gè)名為“ OpenCV_Build”的文件夾。它不必確切地命名為這個(gè),你要看一眼就知道它是什么。然后,你將同時(shí)下載OpenCV和OpenCV contrib.zip。
OpenCV:https://github.com/opencv/opencv/archive/4.4.0.zip
OpenCV contrib:https://github.com/opencv/opencv_contrib/archive/4.4.0.zip
下載完成后,解壓縮zip并將生成的文件夾移到OpenCV_Build中。它應(yīng)該類似于:OpenCV_Build/opencv-4.5.2OpenCV_Build/opencv_contrib-4.5.2
你要確保它們都是相同的版本(在本例中為4.5.2)。
我還想確保它們是頂級(jí)目錄,而不是嵌套在具有相同名稱的文件夾中,但這不是完全必要的,只是使得我們的環(huán)境路徑更加精簡(jiǎn)。
3. CMake GUI
下載并安裝CMake GUI
CMake GUI:https://cmake.org/
我使用的是3.20.2版,但是安裝哪個(gè)版本都沒(méi)有關(guān)系。
4. CUDA 11.0工具包
下一步,你必須在Nvidia網(wǎng)站上注冊(cè)才能下載并安裝CUDA工具包,該工具包既快速又簡(jiǎn)單,完全不需要花費(fèi)很多時(shí)間。
下載CUDA工具包:https://developer.nvidia.com/cuda-downloads
5. cuDNN
此步驟與上一步非常相似,但是你必須下載cuDNN才能利用DNN CUDA后端。
下載cuDNN:https://developer.nvidia.com/rdp/cudnn-download
在Nvidia開(kāi)發(fā)人員程序中注冊(cè)后,你將需要選擇顯示以下內(nèi)容的版本:“for CUDA 11.x”.
6.提取cuDNN文件
cuDNN下載完成后,解壓縮zip并打開(kāi)結(jié)果文件夾。在內(nèi)部,你應(yīng)該看到一個(gè)名為cuda的文件夾,將其打開(kāi),然后剩下3個(gè)子文件夾,分別為**“ bin”,“ include”和“ lib”。**
你將把文件從每個(gè)子文件夾復(fù)制到 C:Program FilesNVIDIA GPU Computing ToolkitCUDA11.3 中的相應(yīng)文件夾中。
downloads/cuda/bin contents to: CUDA/v11.3/bindownloads/cuda/include contents to: CUDA/v11.3/includedownloads/cuda/lib/x64 contents to: CUDA/v11.3/lib/x64
7.下載Ninja以獲得更快的構(gòu)建時(shí)間
Ninja將極大地加快OpenCV的構(gòu)建過(guò)程。
Ninja:https://github.com/ninja-build/ninja/releases/download/v1.10.2/ninja-win.zip
我個(gè)人發(fā)現(xiàn),Ninja從1小時(shí)45分鐘縮短到不到15分鐘。解壓縮它,然后將Ninja.exe放在你之前創(chuàng)建的“ OpenCV_Build”文件夾中。將所有文件放入各自的文件夾后,應(yīng)完成prereqs部分。
建議:設(shè)置Conda Env
我建議你使用Anaconda,以確保你所做的一切與我所做的相同。你可以使用以下命令設(shè)置conda env:conda create -n py38 anaconda python=3.8
建議:為簡(jiǎn)單起見(jiàn),創(chuàng)建一些.bat文件
為簡(jiǎn)單起見(jiàn),我建議制作一些.bat文件,以防萬(wàn)一在構(gòu)建過(guò)程中出現(xiàn)問(wèn)題。這樣,你可以快速對(duì)cmd進(jìn)行編輯,然后重新運(yùn)行它,而不必經(jīng)歷一次又一次地重新設(shè)置所有環(huán)境變量的過(guò)程。當(dāng)出現(xiàn)問(wèn)題時(shí),它還有助于將事情分解成更易于管理的狀態(tài),而且?guī)缀蹩隙〞?huì)出錯(cuò)。

發(fā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字
圖片新聞
-
機(jī)器人奧運(yùn)會(huì)戰(zhàn)報(bào):宇樹(shù)機(jī)器人摘下首金,天工Ultra搶走首位“百米飛人”
-
存儲(chǔ)圈掐架!江波龍起訴佰維,索賠121萬(wàn)
-
長(zhǎng)安汽車母公司突然更名:從“中國(guó)長(zhǎng)安”到“辰致科技”
-
豆包前負(fù)責(zé)人喬木出軌BP后續(xù):均被辭退
-
字節(jié)AI Lab負(fù)責(zé)人李航卸任后返聘,Seed進(jìn)入調(diào)整期
-
員工持股爆雷?廣汽埃安緊急回應(yīng)
-
中國(guó)“智造”背后的「關(guān)鍵力量」
-
小米汽車研發(fā)中心重磅落地,寶馬家門口“搶人”
最新活動(dòng)更多
-
即日-9.16點(diǎn)擊進(jìn)入 >> 【限時(shí)福利】TE 2025國(guó)際物聯(lián)網(wǎng)展·深圳站
-
10月23日火熱報(bào)名中>> 2025是德科技創(chuàng)新技術(shù)峰會(huì)
-
10月23日立即報(bào)名>> Works With 開(kāi)發(fā)者大會(huì)深圳站
-
10月24日立即參評(píng)>> 【評(píng)選】維科杯·OFweek 2025(第十屆)物聯(lián)網(wǎng)行業(yè)年度評(píng)選
-
11月27日立即報(bào)名>> 【工程師系列】汽車電子技術(shù)在線大會(huì)
-
12月18日立即報(bào)名>> 【線下會(huì)議】OFweek 2025(第十屆)物聯(lián)網(wǎng)產(chǎn)業(yè)大會(huì)
推薦專題
- 1 先進(jìn)算力新選擇 | 2025華為算力場(chǎng)景發(fā)布會(huì)暨北京xPN伙伴大會(huì)成功舉辦
- 2 人形機(jī)器人,正狂奔在批量交付的曠野
- 3 宇樹(shù)機(jī)器人撞人事件的深度剖析:六維力傳感器如何成為人機(jī)安全的關(guān)鍵屏障
- 4 解碼特斯拉新AI芯片戰(zhàn)略 :從Dojo到AI5和AI6推理引擎
- 5 AI版“四萬(wàn)億刺激”計(jì)劃來(lái)了
- 6 2025年8月人工智能投融資觀察
- 7 8 a16z最新AI百?gòu)?qiáng)榜:硅谷頂級(jí)VC帶你讀懂全球生成式AI賽道最新趨勢(shì)
- 9 Manus跑路,大廠掉線,只能靠DeepSeek了
- 10 地平線的野心:1000萬(wàn)套HSD上車