Opencv CUDA編譯用法介紹

本文將從多個方面對Opencv CUDA編譯進行詳細的闡述和解讀。通過以下小標題,我們將詳細介紹如何進行編譯。

一、環境搭建

在使用CUDA進行加速之前,需要進行CUDA的環境搭建。在這裡以Ubuntu操作系統為例,具體操作如下:

sudo apt-get install linux-headers-`uname -r` -y
sudo sh cuda_10.1.243_418.87.00_linux.run
vim ~/.bashrc
export PATH=$PATH:/usr/local/cuda-10.1/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.1/lib64
source ~/.bashrc

以上操作創建了CUDA運行所需的依賴項、安裝了CUDA並將其添加到環境變數中。

二、Opencv編譯

接下來,我們需要下載Opencv源碼並進行編譯。具體操作如下:

sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
git clone https://github.com/opencv/opencv.git
cd opencv
git checkout 3.4.5
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j8
sudo make install

以上操作下載了Opencv源碼、切換到3.4.5版本、創建了build文件夾並進行編譯安裝。

三、CUDA編譯

接下來,我們需要編譯CUDA。具體操作如下:

cd ~/NVIDIA_CUDA-10.1_Samples/
make -j8

以上操作進入CUDA Samples文件夾,並進行編譯。如果編譯成功,將生成許多樣例可執行文件。

四、Opencv CUDA編譯

在上述步驟順利完成後,我們可以開始進行Opencv CUDA編譯。具體操作如下:

cd ~/opencv/
mkdir build-cuda && cd build-cuda
cmake -D CMAKE_BUILD_TYPE=RELEASE \
      -D CMAKE_INSTALL_PREFIX=/usr/local \
      -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
      -D WITH_CUDA=ON \
      -D CUDA_ARCH_BIN=6.1 \
      -D CUDA_ARCH_PTX=6.1 \
      -D WITH_CUBLAS=ON \
      -D BUILD_EXAMPLES=ON \
      -D OPENCV_GENERATE_PKGCONFIG=ON \
      ..
make -j8
sudo make install

以上操作創建了build-cuda文件夾並進行了Opencv CUDA編譯。其中CUDA_ARCH_BIN和CUDA_ARCH_PTX可根據自己的顯卡和CUDA版本進行調整。

五、Opencv CUDA測試

最後,我們可以進行Opencv CUDA測試以驗證CUDA是否正常使用。具體操作如下:

cd ~/opencv/samples/gpu
./gpu-template

以上操作進入Opencv GPU示例文件夾並運行gpu-template,如果輸出如下內容,則可以證明CUDA正常使用:

Device 0: "GeForce GTX 1080 Ti"
  CUDA Driver Version / Runtime Version          10.1 / 10.1
  CUDA Capability Major/Minor version number:    6.1
  Total amount of global memory:                 11175 MBytes (11720104960 bytes)
  (28) Multiprocessors, (128) CUDA Cores/MP:     3584 CUDA Cores
  GPU Max Clock rate:                            1582 MHz (1.58 GHz)
  Memory Clock rate:                             5505 Mhz
  Memory Bus Width:                              352-bit
  L2 Cache Size:                                 2883584 bytes
  Maximum Texture Dimension Size (x,y,z)         1D=(131072), 2D=(131072, 65536), 3D=(16384, 16384, 16384)
  Maximum Layered 1D Texture Size, (num) layers  1D=(32768), 2048 layers
  Maximum Layered 2D Texture Size, (num) layers  2D=(32768, 32768), 2048 layers
  Total amount of constant memory:               65536 bytes
  Total amount of shared memory per block:       49152 bytes
  Total number of registers available per block: 65536
  Warp size:                                     32
  Maximum number of threads per multiprocessor:  2048
  Maximum number of threads per block:           1024
  Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
  Max dimension size of a grid size    (x,y,z): (2147483647, 65535, 65535)
  Maximum memory pitch:                          2147483647 bytes
  Texture alignment:                             512 bytes
  Concurrent copy and kernel execution:          Yes with 2 copy engine(s)
  Run time limit on kernels:                     Yes
  Integrated GPU sharing Host Memory:            No
  Support host page-locked memory mapping:       Yes
  Alignment requirement for Surfaces:            Yes
  Device has ECC support:                        Disabled
  CUDA Device Driver Mode (TCC or WDDM):         WDDM (Windows Display Driver Model)
  Device supports Unified Addressing (UVA):      Yes
  Device supports Compute Preemption:            No
  Supports Cooperative Kernel Launch:            No
  Supports MultiDevice Co-op Kernel Launch:      No
  Device PCI Domain ID / Bus ID / location ID:   0 / 131 / 0
  Compute Mode:
     < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >

至此,Opencv CUDA編譯完成並且可以正常使用。

原創文章,作者:LKBPP,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/373095.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
LKBPP的頭像LKBPP
上一篇 2025-04-25 15:26
下一篇 2025-04-25 15:26

相關推薦

  • 如何在PyCharm中安裝OpenCV?

    本文將從以下幾個方面詳細介紹如何在PyCharm中安裝OpenCV。 一、安裝Python 在安裝OpenCV之前,請確保已經安裝了Python。 如果您還沒有安裝Python,可…

    編程 2025-04-29
  • Python OpenCV 直線檢測

    本文將介紹在Python OpenCV中進行直線檢測的方法,主要涉及到圖像的邊緣檢測、霍夫變換和繪製直線等操作。 一、邊緣檢測 由於直線檢測是從圖像的邊緣開始的,因此必須先找到圖像…

    編程 2025-04-29
  • Opencv 實現讀取 BMP 圖片

    Opencv 是一個基於 C/C++ 語言的開源計算機視覺庫,可以用於圖像處理、特徵識別、目標跟蹤、機器學習等領域。在圖像處理中,讀取 BMP 圖片是常見操作之一。 一、打開 BM…

    編程 2025-04-27
  • opencv滑鼠繪圖

    本文將為您詳細介紹如何使用opencv在原始圖片上進行滑鼠繪圖。 一、準備工作 在開始繪製之前,您需要先準備好以下的工作: 1、安裝opencv庫,可以通過pip install …

    編程 2025-04-27
  • 深入探討OpenCV版本

    OpenCV是一個用於計算機視覺應用程序的開源庫。它是由英特爾公司創建的,現已由Willow Garage管理。OpenCV旨在提供一個易於使用的計算機視覺和機器學習基礎架構,以實…

    編程 2025-04-25
  • OpenCV的全面介紹

    OpenCV是一款強大的開源計算機視覺庫,它包含了各種用於圖像和視頻處理,圖像識別和機器學習的函數,它可以用於開發實時的計算機視覺軟體和系統,特別適用於圖像處理、物體識別、人臉識別…

    編程 2025-04-25
  • 詳解OpenCV高斯濾波

    一、高斯濾波的介紹 OpenCV高斯濾波是一種平滑圖像的處理方法,通常用於去除雜訊、模糊化圖像等。它的原理是利用高斯函數進行加權平均,從而減少雜訊的干擾。 在圖像處理中,雜訊是一種…

    編程 2025-04-25
  • Clion配置OpenCV

    Clion是一個功能強大的跨平台集成開發環境,但要開發圖像處理、計算機視覺等相關領域應用,需要將OpenCV集成到Clion中,才能方便地進行開發。本文將介紹如何在Clion中配置…

    編程 2025-04-24
  • OpenCV之cv2.imshow()

    一、cv2.imshow()介紹 cv2.imshow()是OpenCV中顯示圖像的主要函數之一。它可以顯示傳遞給它的圖像窗口,或者將圖像作為選定窗口的內容。cv2.imshow(…

    編程 2025-04-24
  • Opencv圖像拼接

    一、拼接方法 Opencv圖像拼接方法主要有兩種,分別是水平拼接和垂直拼接。 水平拼接是將多張圖像在水平方向連接在一起,最終形成一張橫向拼接的長圖。垂直拼接是將多張圖像在垂直方向連…

    編程 2025-04-24

發表回復

登錄後才能評論