windows11编译OpenCV4.5.0 with CUDA(附注意事项)
windows11編譯OpenCV4.5.0 with CUDA
從OpenCV4.2.0 版本開始允許使用 Nvidia GPU 來加速推理。本文介紹最近使用windows11系統編譯帶CUDA的OpenCV4.5.0的過程。
- 文中使用【特別注意:…】為大家標識出容易出錯的地方。
- 安裝成功后,使用CPU與GPU調用yolov4模型進行推理的耗時測試結果:
| 4ms | 311ms |
- 從差距上看,還是值得花時間編譯一下的:)
- 耗時測試環境:
- 調用筆記本自帶攝像頭獲取視頻
- Notebook GTX3080顯卡
1.準備環境
1.1 下載OpenCV4.5.0
- 編譯需要OpenCV4.5.0的源碼
- 下載地址(3項可選):
https://opencv.org/releases/
https://github.com/opencv/opencv/releases/tag/4.5.0
https://sourceforge.net/projects/opencvlibrary/files/4.5.0/opencv-4.5.0-vc14_vc15.exe/download - 下載完成后是一個exe程序,雙擊即可解壓,解壓后:
- source文件夾就是源碼
- build文件夾是編譯好的不帶CUDA加速的OpenCV4.5.0(本文不使用)
1.2 下載OpenCV4.5.0 contrib
- Contrib Modules是OpenCV的擴展模塊,包含了很多用于實現特定算法
- 編譯OpenCV需要用到contirb模塊
- 特別注意:務必下載與源碼對應版本的contrib模塊
- 下載地址(第1個為官方下載地址,第2個為國內某同學搭建的下載庫,速度較快):
https://github.com/opencv/opencv_contrib/tags
https://www.raoyunsoft.com/opencv/opencv_contrib/opencv_contrib-4.5.0.zip
1.3 準備.cache文件
- 編譯過程中需要聯網下載一些依賴庫,并存放于sourc.cache文件夾中
- 特別注意:因要連到外網,因此速度比較慢,有時斷網造成編譯失敗,所以可以提前準備好這些文件
- OpenCV4.5.0的.cache文件下載地址:
https://download.csdn.net/download/iracer/85695997
- 使用方法:
- 將.cache文件夾拷貝到source文件夾下,與原.cache文件夾合并
1.4 安裝Visual Studio 2019
- 安裝CUDA需要vs,這里選擇vs2019
- 安裝步提要:
- Download Visual Studio 2019 Community Edition
- Select Desktop Development with C++ option and click on install
1.5 安裝CUDA和cuDNN
- NVIDIA官方指南:
https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#install-windows
- 本次在windows11上安裝的CUDA和cuDNN版本為:
- CUDA 11.3:cuda_11.3.1_465.89_win10.exe
- duDNN 8.4:cudnn-windows-x86_64-8.4.0.27_cuda11.6-archive.zip
- 特別注意:zlib庫需要下載并添加到系統環境變量path中,因為cdDNN需要調用該庫。
- zlib庫下載地址:
www.winimage.com/zLibDll/zlib123dllx64.zip
下載完成后解壓zip文件,并將zlibwapi.dll所在目錄添加到系統環境變量path中 - 查看CUDA安裝結果:
1.6 安裝CMake
- 本次是用的是3.22版本,3.19以上版本應該都可以(未逐一測試)
- 下載地址:
https://github.com/Kitware/CMake/releases/download/v3.22.5/cmake-3.22.5-windows-x86_64.msi
2. 編譯
2.1 CMake生成解決方案
-
雙擊解壓OpenCV4.5.0.exe,解壓后的source目錄即OpenCV4.5.0的源碼
-
解壓opencv_contrib-4.5.0
-
新建一個編譯目錄
D:\opencv\oepncv4.5.0cuda\build
-
打開CMake
-
配置source code:
D:/opencv/opencv4.5.0/sources
-
配置目標目錄:
D:\opencv\oepncv4.5.0cuda\build
-
第1次點擊[Configure]
-
彈出窗口選擇vs2019作為編譯器:
Visual Studio 16 2019
-
generate平臺選擇x64
-
第2次點擊[Configure]后,搜cuda帶cuda的都勾選,
- BUILD_CUDA_STUBS
- BUILD_opencv_cudaarithm
- BUILD_opencv_cudabgsegm
- BUILD_opencv_cudacodec
- BUILD_opencv_cudafeatures2d
- BUILD_opencv_cudafilters
- BUILD_opencv_cudaimgproc
- BUILD_opencv_cudalegacy
- BUILD_opencv_cudaobjdetect
- BUILD_opencv_cudaoptflow
- BUILD_opencv_cudastereo
- BUILD_opencv_cudawarping
- 除此之外此外以下兩項數學加速選項也勾選:
- CUDA_FAST_MATH
- ENABLE_FAST_MATH
- CMake界面上Search欄搜modules,設置contrib模塊路徑
D:\opencv\oepncv4.5.0cuda\opencv_contrib-4.5.0\modules
-
第3次點擊[Configure],完成后,再次搜索cuda,配置CUDA_ARCH_BIN中將顯卡的算力內容改成自己顯卡的算力,t如下網址查詢自己顯卡的算力,我保留了7.5;8.0;8.6
- 查詢顯卡算力鏈接
GeForce 筆記本
GPUCompute Capability GeForce RTX 3080 8.6 GeForce RTX 3070 8.6 GeForce RTX 3060 8.6 GeForce RTX 3050 Ti 8.6 GeForce RTX 3050 8.6 Geforce RTX 2080 7.5 Geforce RTX 2070 7.5 Geforce RTX 2060 7.5 GeForce GTX 1080 6.1 GeForce GTX 1070 6.1 GeForce GTX 1060 6.1 GeForce and TITAN 臺式機
GPUCompute Capability Geforce RTX 3060 Ti 8.6 Geforce RTX 3060 8.6 GeForce RTX 3090 8.6 GeForce RTX 3080 8.6 GeForce RTX 3070 8.6 GeForce GTX 1650 Ti 7.5 NVIDIA TITAN RTX 7.5 Geforce RTX 2080 Ti 7.5 Geforce RTX 2080 7.5 Geforce RTX 2070 7.5 Geforce RTX 2060 7.5 NVIDIA TITAN V 7.0 -
搜索并勾選
BUILD_opencv_world,可生成一個整的dll方便使用
OPENCV_ENABLE_NONFREF
-
解壓.cache.rar,將.cache目錄拷貝到source目錄:
D:\opencv\oepncv4.5.0\source\.cache >
NVIDIA GPU arch: 75 80 86
NVIDIA PTX archs:
cuDNN: YES (ver 8.4.0)
-
點擊[Open Project],會自動打開vs2019,開始編譯
2.2 VS2019編譯OpenCV
-
使用VS2019打開剛剛編譯工程后,等待左下角顯示的項全部加載完畢才可以繼續操作
-
選擇Release x64版本
-
找到解決方案資源管理器中的“CmakeTargets”下的“ALL_BUILD”,右鍵→“生成”,然后開始漫長的等待……
-
解決方案資源管理器—>CMakeTargets—>INSTALL—>生成”然后又是等,好在這次時間很短。完成后你的build文件夾中會出現一個install文件夾,這就是完成了。
2.3 生成文件
-
生成完成后會出現如下文件夾
D:\opencv\oepncv4.5.0cuda\build\install
-
build/install目錄的目錄結構(部分)
├─etc
├─include
│ └─opencv2
│ ├─core
│ ├─cudalegacy
│ ├─cudev
│ ├─datasets
│ ├─dnn
│ ├─face
│ ├─features2d
└─x64
└─vc16
├─bin
└─lib -
tips:在當前目錄中運行cmd,使用tree命令,即可生成目錄樹
3. 測試
3.1 配置OpenCV with cuda
- 配置OpenCV4.5.0cuda,與一般OpenCV的配置方法一致,可參考:
- Win7系統Visual Studio 2013配置OpenCV3.1圖文詳解
3.2 YOLOv4 示例程序
- 測試程序可以直接用《OpenCV4機器學習算法原理與編程實戰》書中的代碼(部分):
4. 相關鏈接
- OpenCV4機器學習算法原理與編程實戰(附部分模型下載地址)
- 本文更新鏈接
- 轉載請注明出處。
總結
以上是生活随笔為你收集整理的windows11编译OpenCV4.5.0 with CUDA(附注意事项)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: kafka查看消费情况
- 下一篇: Xilinx 7系列FPGA简介--选型