opencv編譯cuda
1. 如何編譯OpenCV-2.3.x/OpenCV-2.4.x使其支持GPU-CUDA高速運算
下載完成後並安裝,確保CUDA SDK的bin目錄(「C:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK4.2\C\common\bin」)已經添加到環境變數中後,我們就開始編譯支持CUDA高速運算的OpenCV。
2. vs編譯cv4.5必須要cuda環境嘛
先說一下我的需求:在win10中,顯卡是3070的機器上,使用的IDE是Qt,實現基於open pose的旗語的檢測。說白了就是自己編譯一個能使用cuda加速的一個opencv,利用opencv的dnn模塊的介面實現對深度學習模型的調用。在這里只記錄一個環境配置的過程。
本機環境:win10 RTX3070 Qt 5.9.2 msvc編譯器
下面只記錄比較重要的一些過程,給大家一些參考。
1、第一步,先安裝QT。大部分安裝Qt,就自帶了裡面的mingw編譯器,但是想要編譯能用cuda加速的opencv,我使用mingw編譯器,沒有把opencv編譯成功。我猜大概是mingw搞定不了opencv +cuda的編譯(不確定,猜想)。所以就安裝vs了。肯定需要安裝vs2015及其以上的版本,15,17,19三個版本中,查看了很多資料,了解到應該是2017在編譯opencv中最不容易出現問題。最好是用vs2017。
如果你在安裝QT過程中沒有選擇msvc2017的話,就應該得重新安裝一下了。Qt配置msvc編譯器的教程網路一下就可以。安裝完記得配置一下QT 的環境變數。記住根據自己的Qt安裝位置來配置。然後運行一下Qt能用說明第一步就完成了。
3. opencv_python4.1如何GPU加速,需不需要重新編譯之類的
需要重新編譯opencv 的,最後getCudaEnabledDeviceCount();這個函數返回值大於零才行 // first.cpp : 定義控制台應用程序的入口點。 // #include "stdafx.h" #include #include "opencv2/opencv.hpp" #include "opencv2/gpu/gpu.hpp" #pragma co..
4. 如何結合OPENCV2.2 和 CUDA
這里假設CUDA已經裝好,但是估計裝好CUDA的人是沒有下載NPP的,就是這個: NVIDIA Performance Primitives (NPP) library下載地址:http://developer.nvidia.com/cuda-toolkit-32-downloads下載下來後解壓隨便到哪,就一個文件夾SDK然後開始配置opencv2.2, 勾選WITH_CUDA,點configure,這時候一般會找不到NPP,需要手動配置其路徑找到CUDA_NPP_LIBRARY_ROOT_DIR, 修改其路徑為NPP的根目錄,比如我為D:/SDK。 上面兩項:CUDA_NPP_INCLUDE和CUDA_NPP_LIBRARY不用手動指定,然後再點configure,這時候cmake就能找到NPP了,上面兩項也有了正確路徑。在Generate就OK了
接著就是標准步驟各種編譯最後opencv2.2中lib名字改了,轉自http://blog.csdn.net/sweetrryy/archive/2010/12/11/6069725.aspx<release>
opencv_calib3d220.lib
opencv_contrib220.lib
opencv_core220.lib
opencv_features2d220.lib
opencv_ffmpeg220.lib
opencv_flann220.lib
opencv_gpu220.lib
opencv_highgui220.lib
opencv_imgproc220.lib
opencv_legacy220.lib
opencv_ml220.lib
opencv_objdetect220.lib
opencv_ts220.lib
opencv_video220.lib
<debug>
opencv_calib3d220d.lib
opencv_contrib220d.lib
opencv_core220d.lib
opencv_features2d220d.lib
opencv_ffmpeg220d.lib
opencv_flann220d.lib
opencv_gpu220d.lib
opencv_highgui220d.lib
opencv_imgproc220d.lib
opencv_legacy220d.lib
opencv_ml220d.lib
opencv_objdetect220d.lib
opencv_ts220d.lib
opencv_video220d.lib
5. opencv支持cuda加速嗎
支持。編譯opencv的時候加上CUDA支持就可以了。
6. 如何用CUDA轉換並提速,用openCV編的一些關於矩陣的程序
這個你得自己想,並行都得用專用演算法,基本就是分割矩陣,然後
cudaMalloc
開辟顯存空間,cudaMemcpy
復制到顯存空間,執行設備端代碼
,cudaMemcpy
復制回結果。
7. 怎麼使用opencv的stitch進行cuda加速
做過相關實驗,其實opencv對於cuda的優化並不是特別好,也可能是我用的顯卡性能不行。實驗結果是並沒有比cpu快多少。opencv的cuda編程的程序,主要處理時間都浪費在從內存向顯存中拷貝數據以及從顯存向內存拷貝數據了。要想寫出高效的cuda程序,需要注意的東西很多。
8. Opencv2.4.5 CUDA5.0 的gpu配置問題
這個是說你的OpenCV庫是編譯的不支持CUDA或者說不支持GPU加速的版本