版本号
nvidia driver : 470
cuda : 11.0
cudnn : 8.0.1(对应cuda就好)
OpenCV: 4.5
这里安装的是C++版本,如果是安装python或者在虚拟环境下安装,可以参考这个更全的记录:https://waltpeter.github.io/open-cv-basic/install-opencv-with-contrib-ubuntu/index.html
安装过程
之前安装了opencv4.5版本,但是没有安装contrib库,也没有打开支持gpu的按钮。所以先卸载当前opencv版本再重新安装一下。
一. 卸载当前opencv
找到之前装opencv的build文件夹,进入后执行卸载指令
sudo make uninstall
然后再把之前留在usr文件夹里的剩余文件都删掉。我之前直接按照官网说明安装的,所以东西都在usr/local/
下
//需要根据自己的情况修改
sudo rm -r /usr/local/include/opencv4 /usr/local/share/opencv4 /usr/local/lib/libopencv*
二. 安装新的opencv版本
安装依赖
大部分应该都已经有了
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential cmake unzip pkg-config
sudo apt-get install libjpeg-dev libpng-dev libtiff-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install libv4l-dev libxvidcore-dev libx264-dev
sudo apt-get install libgtk-3-dev
sudo apt-get install libatlas-base-dev gfortran
下载安装包
这里没有太多可说的,把同一个版本号的opencv_contrib文件夹放进opencv文件夹。
查看显卡型号
向终端输入指令,查看显卡型号。我这里的是GeForce MX250
lspci | grep -i nvidia
然后再去nvidia官网确定自己GPU的cuda算力版本,找不到的话可以看cuda的wiki。 MX250的算力版本是6.1,这个之后编译opencv的时候要用
官网(比较新的型号很好找):https://developer.nvidia.com/cuda-gpus#compute
WIki(感觉更全更好检索):https://en.wikipedia.org/wiki/CUDA
安装opencv
注意下面的CUDA_ARCH_BIN
就是要写你电脑对应的算力版本。WITH_CUDA
和WITH_CUDNN
项指的是用CUDA和cuDNN。OPENCV_DNN_CUDA
项表示要编译后的dnn模块支持CUDA。ENABLE_FAST_MATH
, CUDA_FAST_MATH
和WITH_CUBLAS
项是为了优化运算而开启的。
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_C_EXAMPLES=OFF \
-D OPENCV_ENABLE_NONFREE=ON \
-D WITH_CUDA=ON \
-D WITH_CUDNN=ON \
-D OPENCV_DNN_CUDA=ON \
-D ENABLE_FAST_MATH=1 \
-D CUDA_FAST_MATH=1 \
-D CUDA_ARCH_BIN=6.1 \
-D WITH_CUBLAS=1 \
-D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules \
-D BUILD_EXAMPLES=ON ..
注意检查这一段:
-- NVIDIA CUDA: YES (ver 11.0, CUFFT CUBLAS FAST_MATH)
-- NVIDIA GPU arch: 61
-- NVIDIA PTX archs:
--
-- cuDNN: YES (ver 8.0.5)
没有问题了就执行
make