目录

1.确认显卡算力

2.选择和算力匹配的CUDA版本

3.选择镜像(强烈建议在docker中编译,不影响物理机环境)

 4.下载opencv安装包

 5.下载opencv_contrib安装包

 6.下载和安装Cmake(请勿用apt install安装)

7.安装依赖

8.解压编译opencv和opencv_contrib


1.确认显卡算力

英伟达显卡算力_WenZhaoYang123468的博客-CSDN博客

举例:

3080显卡,算力8.6

2.选择和算力匹配的CUDA版本

不同版本CUDA支持的算力_WenZhaoYang123468的博客-CSDN博客

举例:

算力8.6,选择CUDA11.1

3.选择镜像(强烈建议在docker中编译,不影响物理机环境)

选择合适的CUDA&cudnn版本镜像,查询网址:https://hub.docker.com/

举例:

此处选择英伟达官方的CUDA11.1-cudnn8.0开发版本镜像

 4.下载opencv安装包

下载网址:Releases - OpenCV

 5.下载opencv_contrib安装包

下载网址:Tags · opencv/opencv_contrib · GitHub

 6.下载和安装Cmake(请勿用apt install安装)

下载网址:Download | CMake

 安装依赖openssl(这个依赖务必安装!)

sudo apt-get install libssl-dev

解压安装

tar -zxvf cmake-3.24.1.tar.gz
./bootstrap
make -j8
sudo make install

查看cmake版本 

cmake --version

如果成功输入版本信息,则编译安装成功

7.安装依赖

sudo apt install build-essential git pkg-config libgtk-3-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libjpeg-dev libpng-dev libtiff-dev gfortran openexr libatlas-base-dev libtbb2 libtbb-dev libdc1394-22-dev liblapack-dev libopenblas-dev checkinstall yasm libpq-dev libeigen3-dev libprotobuf-dev protobuf-compiler libgoogle-glog-dev libgflags-dev libhdf5-dev libgphoto2-dev libgtkglext1-dev libatlas-base-dev libopenblas-dev liblapack-dev liblapacke-dev ocl-icd-opencl-dev libvtk7-dev libboost-all-dev libhdf5-openmpi-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libx264-dev libxvidcore-dev v4l-utils unzip wget libavresample-dev

8.解压编译opencv和opencv_contrib

cd ~/Downloads/opencv-4.5.4
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=RELEASE \
    -DCMAKE_INSTALL_PREFIX=/usr/local \
    -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.5.4/modules .. \
    -DWITH_CUDA=1 \
    -DCUDA_ARCH_BIN=8.6 \
    -DENABLE_FAST_MATH=1 \
    -DCUDA_FAST_MATH=1 \
    -DWITH_CUBLAS=1 \
    -DOPENCV_GENERATE_PKGCONFIG=1 \
    ..
make -j$(nproc)  # 若只需要动态库,执行到此即可,动态库位于lib文件夹中
sudo make install
sudo ldconfig

注意2个地方:

(1)opencv_contrib的路径;

(2)CUDA_ARCH_BIN修改为自己显卡的算力。

9.常见报错

(1)Please check CUDA_ARCH_PTX or CUDA_ARCH_BIN in your build configuration

原因是:上一步生成的动态库和算力8.6是对应的,如果在其他算力的机器上就会报错。需要重新编译相应算力的动态库。

更多推荐