openCV的CUDA GPU 版本安装 (Ubuntu windows 通用)

需要做template match, 比较注重时间,因此opencv 的普通版本不适用。需要用GPU 的。

下载

git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git

确保准备好以下内容

1: visual studio (不是vs code)
openCV的CUDA GPU 版本安装 (Ubuntu windows 通用)_第1张图片

2:下载后的两个包裹会放在以下结构

这样放的原因是我Ubuntu的Home容量不够多,导致我需要把这些东西放在另一个盘上,其次是这样安装比较干净。
需要自己额外添加 buildinstall 两个 folders
openCV的CUDA GPU 版本安装 (Ubuntu windows 通用)_第2张图片

安装要用的conda 环境(optional)

conda create --name detection python=3.9
pip install numpy
conda install -c conda-forge cudatoolkit=11.8 cudnn

Cmake 里需要更改的选项

  • 填完以下的两个框后
  • 就点configure, 这样它就去找opencv那个folder的对应cmake文件,把需要的信息列表显示出来
    openCV的CUDA GPU 版本安装 (Ubuntu windows 通用)_第3张图片3. 以下是要修改的项目(在search里输入以下内容寻找并打勾,不确定的都打上就行)
  • Fast_math
  • CuDA related(with cuda, opencv_dnn_cuda)
  • opencv world
  • extra
  • python 3
  • prefix
  • config_ 删了只剩下release

以下是Python3相关会填入的内容

Ubuntu 版本

/media/xxx/cozynest/anaconda3/envs/detection/bin/python
/media/xxx/cozynest/anaconda3/envs/detection/include/python3.9
/media/xxx/cozynest/anaconda3/envs/detection/lib/libpython3.9.so
/media/xxx/cozynest/anaconda3/envs/detection/lib/python3.9/site-packages/numpy/core/include/numpy
/media/xxx/cozynest/anaconda3/envs/detection/lib/python3.9/site-packages

Windows 版本

F:/build_opencv/install
F:/build_opencv/opencv_contrib/modules
F:/anaconda3/envs/detection/python.exe
F:/anaconda3/envs/detection/include
F:/anaconda3/envs/detection/libs/python3.lib
F:/anaconda3/envs/detection/Lib/site-packages/numpy/core/include
F:/anaconda3/envs/detection/Lib/site-packages
  1. 然后点 configure,继续添加CUDA 的信息,直到在opencv 那一个部分里,Python3 不再出现在 unavailable
  2. 最后才是generate

安装cmake后的包裹

在命令行:
用detection的环境打开

nproc
make -j24

比如我有24 cores
这一步比较时间长
最后得到:
Linking CXX shared module …/…/lib/python3/cv2.cpython-39-x86_64-linux-gnu.so

 sudo make install

例子:/media/xxx/cozynest/anaconda3/envs/detection/lib/python3.9/site-packages/cv2/python-3.10

推荐用anaconda的terminal:

cmake --build "F:\build_opencv\build" --target INSTALL --config Release

以下是最终的成品

openCV的CUDA GPU 版本安装 (Ubuntu windows 通用)_第4张图片

测试

conda 同一个 环境打开terminal:

python
import cv2
cv2.cuda.getCudaEnabledDeviceCount()

如果安装成功就会返回 1

注意

install 这个文件夹不能删!!!所有的conda和 GPU opencv 的联系都靠它

报错

config files not found

这里有可能会出现configure的文件找不到的错误,可以直接copy paste Python 版本的文件,根据缺失文件的名字添加。
上面图片中 config.py, config-3.pyconfig-3.9.py 都是手动制作的。

debug 模式 报错: `GLIBCXX_3.4.30’ not found 没装

在 conda的环境下的terminal输入:

conda install -c conda-forge libstdcxx-ng

4090的GPU 测试:
使用普通的python-opencv template match 耗时0.089秒。
GPU 版本:0.0065秒
快了13.69倍

Oh YEAH, case sealed

你可能感兴趣的:(opencv,人工智能,计算机视觉)