Posted on

讓OpenCV支持GPU

OpenCV CUDA

https://opencv.org/platforms/cuda/

現代 GPU 加速器已經變得強大且功能強大,足以執行通用計算 (GPGPU)。這是一個發展非常迅速的領域,引起了開發計算密集型應用程序的科學家、研究人員和工程師的極大興趣。儘管在 GPU 上重新實現算法存在困難,但許多人這樣做是為了檢查它們的速度。為了支持這些努力,許多高級語言和工具已經可用,例如 CUDA、OpenCL、C++ AMP、調試器、分析器等。

計算機視覺的重要組成部分是圖像處理,這是圖形加速器最初設計的領域。其他部分也假定大規模並行計算並且通常自然映射到 GPU 架構。因此,實現所有這些優勢並在圖形處理器上加速 OpenCV 具有挑戰性,但非常有益。

目標

  • 在 GPU 上為開發者提供方便的計算機視覺框架,與當前 CPU 功能保持概念上的一致性。
  • 使用 GPU 實現最佳性能(針對現代架構調整的高效內核、優化的數據流,如異步執行、複製重疊、零複製)
  • 完整性(盡可能多地實施,即使加速不是很好;這樣可以完全在 GPU 上運行算法並節省應對開銷)

表現

使用範例

這兩個都是載入圖片的方法,上面的是載至CPU,而下方則是載至GPU
img_Mat = cv2.imread(‘test.jpg’) # 16-bit float, OpenCV GPU版本安裝教學

請見此篇: https://cloud.tencent.com/developer/article/1722771

所需套件如下:
1. nVidia 驅動程式和cuDNN
2. Cmake:cmake-3.20.0-rc3-windows-x86_64.msi(用來重新編譯支援GPU的OpenCV)
3. OpenCV 4.51:opencv-4.5.1.tar.gz
4. OpenCV_contrib 4.5.1:opencv_contrib-4.5.1.tar.gz