OpenCV4.x+ CUDA概述
OpenCV4.x中關于CUDA加速的內容主要有兩個部分,第一部分是之前OpenCV支持的圖像處理與對象檢測傳統算法的CUDA加速;第二部分是OpenCV4.2版本之后開始支持的針對深度學習卷積神經網絡模型的CUDA加速。這些內容都在OpenCV的擴展模塊中,想要獲取這OpenCV CUDA的支持,必須首先編譯OpenCV CUDA相關的模塊,這里主要是開展模塊以CUDA開頭的那些。此外編譯的電腦或者PC必須有N卡(英偉達GPU卡),并且按照好了正確版本的驅動與cuDNN支持軟件。本文分為兩個部分來說明如何在OpenCV中實現CUDA加速,第一部分是實現CUDA支持版本OpenCV編譯,第二部分是OpenCV CUDA SDK編程代碼演示。
01
OpenCV+CUDA編譯與配置
首先說一下系統與相關軟件版本:
Window 10 x64
VS2015專業版
CMake 3.17.1
OpenCV4.4.0
OpenCV_contrib-4.4.0
CUDA10.0
cuDNN7.0
OpenCV4.4下載地址
https://github.com/opencv/opencv/releases/download/4.4.0/opencv-4.4.0-vc14_vc15.exe
OpenCV4.4擴展模塊下載地址:
https://github.com/opencv/opencv_contrib/archive/4.4.0.zip
下載好OpenCV4.4極其擴展模塊之后,我們就開始下面的編譯步驟。
第一步:打開CMake,設置好下面的目錄路徑,注意源代碼路徑需要指向真實的OpenCV的source目錄。圖示如下:
第一次運行,記得參數選擇x64
如果成功運行了config之后,請繼續完成下面的設置。
第二步:設置擴展模塊路徑,勾選所有CUDA選項再次點擊config
點擊config運行之后,再點擊generate安裝,如果一切OK即可完成CMake部分,下面就是到build的目錄下:
D:opencv-4.4.0opencvcudabuild
雙擊打開OpenCV.sln工程文件,切換到release模型下,右鍵點擊ALL_BUILD選擇【生成….】運行完成,再次右鍵選擇install,選擇【生成…】這兩次過程都會比較漫長,編譯完成之后,就會得到intall目錄,我們需要的就是它,其它都可以刪掉了。這樣我們就完成了OpenCV CUDA的編譯。
注意點:
可能看我編譯最多30分鐘完成這些操作(等待時間不計在內),但是第一次這么干的新手會遇到各種問題,其中最常見的一個網絡問題就是無法下載第三方庫,導致CMake編譯失敗,這里時候需要手動下載一下,然后copy到
D:opencv-4.4.0opencvsources3rdparty
文件下對于目錄內即可。
在config的擴展模塊的時候,請去掉所有test相關的模塊,然后選擇不編譯opencv_face模塊,原因是它會下載一些東西,但是網絡無法連接,這樣就可以cmake失敗。
完成了整個編譯過程之后,生成install之后就可以來配置OpenCV CUDA支持啦!跟配置正常OpenCV4版本相似,唯一不同的就是這里沒有opencv_world440.lib文件了,而且根據各個模型生成lib,需要把這些lib全部添加到鏈接器中,然后把庫目錄與包含目錄原來指向目錄都改到指向編譯以后的install內相關目錄路徑,把vc14/bin目錄添加環境變量中去。重啟VS2015,即可完成全部配置過程。
上述步驟的詳細操作,B站視頻,直接這里觀看!
https://www.bilibili.com/video/BV1Rp4y1a7cm/
02
CUDA加速演示
OpenCV支持傳統的圖像處理的CUDA加速,從OpenCV4.2開始支持深度神經網絡的CUDA加速,因此在OpenCV4.4中,CUDA是既可以加速傳統的圖像處理,特征與對象檢測;又可以支持深度神經網絡的CUDA加速。下面的代碼首先查詢相關GPU
1cuda::getDevice()); 2intcount=cuda::getCudaEnabledDeviceCount(); 3if(count>0){ 4printf("GPUDeviceCount:%d ",count); 5}
設備信息,代碼與運行截圖如下:
DNN人臉檢測加速
CPU上運行OpenCV DNN人臉檢測:
GPU上運行OpenCV DNN人臉檢測:
視頻背景分析
可以看出,無論是對傳統圖像處理的視頻背景分析,還是基于深度學習DNN人臉檢測,OpenCV CUDA都可以取得很好的加速效果。
注意:OpenCV4.4的CUDA導入跟之前的方式有所不同,模型頭文件更加模塊化,需要導入的頭文件如下:
1#include2#include 3#include 4#include 5#include 6#include 7#include
-
圖像處理
+關注
關注
27文章
1294瀏覽量
56795 -
OpenCV
+關注
關注
31文章
635瀏覽量
41382 -
CUDA
+關注
關注
0文章
121瀏覽量
13641
原文標題:OpenCV4.X CUDA編譯與加速全解析
文章出處:【微信號:CVSCHOOL,微信公眾號:OpenCV學堂】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論