1. 程式人生 > 其它 >編譯opencv 4.2支援cuda

編譯opencv 4.2支援cuda

下載opencv_contrib 程式碼 下載地址 https://codeload.github.com/opencv/opencv_contrib/zip/refs/tags/4.2.0 ,這個倉庫裡是opencv擴充套件模組的程式碼(主要是cuda和dnn模組) 2.升級cmake wget https://cmake.org/files/v3.17/cmake-3.17.1.tar.gz tar -zxvf cmake-3.17.1.tar.gz cd cmake-3.17.1 ./configure make && make install 檢視cmake版本 cmake -version 編譯時可能遇到找不到openssl的問題,執行yum -y install ncurses-devel,yum install openssl-devel

3.安裝cuda cudnn cudnn-devel,cuda和cudnn,cudnn-devel的版本必須一致,下載地址https://developer.nvidia.com/ 安裝包位置 安裝包\雲晁\Centos\centos_tool\新顯示卡驅動及不需聯網的cuda 安裝cuda 執行./cuda_10.0.130_410.48_linux_tensorflow.run 安裝cudnn 執行rpm -ivh libcudnn7-7.6.5.32-1.cuda10.0.x86_64_tensorflow.rpm 安裝cudnn-devel 執行rpm -ivh libcudnn7-devel-7.6.5.32-1.cuda10.0.x86_64.rpm
檢視cuda版本cat /usr/local/cuda/version.txt 4.編譯opencv 注意:第一次編譯時需要聯網下載依賴,網路環境比較差,可能需要下載很多次才行 cd opencv-4.2.0 mkdir build cd build cmake -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/root/ffmpeg/ld_lib/opencv4.2/opencv_4.2.0_gpu_install_dir -DWITH_TBB=ON -DWITH_V4L=ON -DWITH_OPENGL=ON -DWITH_CUDA=ON -DWITH_CUDNN=ON -D CUDA_ARCH_BIN=5.3,6.0,6.1,7.0,7.5 -DCUDA_ARCH_PTX=7.5 -DENABLE_FAST_MATH=1 -DCUDA_FAST_MATH=1 -DCUDA_NVCC_FLAGS="-D_FORCE_INLINES" -DWITH_CUBLAS=1 -DOPENCV_EXTRA_MODULES_PATH=/root/ffmpeg/ld_lib/opencv4.2/opencv_contrib-4.2.0/modules CMAKE_CXX_FLAGS="-std=c++11" ..
別忘了改下面兩個編譯命令
-DCMAKE_INSTALL_PREFIX 指定安裝位置 -DOPENCV_EXTRA_MODULES_PATH 指定opencv擴充套件庫路徑 cmake完了要看一下輸出有沒有檢測到cuda 和cudnn
make -j 20 && make install
以上是編譯呢能夠使用cuda加速的opencv,如果不需要cuda加速 cmake命令改為cmake -D CMAKE_BUILD_TYPE=RELEASE -D OPENCV_GENERATE_PKGCONFIG=ON -D CMAKE_INSTALL_PREFIX=/usr/local .. 即可 5.編譯可能遇到的問題 1.某些.i檔案找不到,解決方法,重新執行cmake命令下載 2. nppi庫找不到,使用opencv 4.1一下的版本 cuda版本9.0以上會出現這個問題,原因是cuda9.0的nppi庫拆分成了若干個庫,解決方法查考https://blog.csdn.net/u014015324/article/details/111195780 還有一種可能時cmake版本過低,cmake查詢cuda時會用到/usr/local/share/cmake-3.9/Modules/FindCUDA.cmake ,這個FindCUDA.cmake 有問題,需要升級cmake解決

3.編譯器可能中途退出,接著執行make即可