linux上cuda相关包与opencv及相关模块安装(wsl+ubuntu22.04)

在wsl2上安装opencv4.9.0(包括opencv相关模块,如cuda-opencv、cudacodec等)


作者环境配置及版本信息:

        因版本不同原因可能会产生很多不同的错误,如不同opencv版本,支持的显卡架构不同,显卡驱动、Video SDK和显卡兼容性问题,英伟达安装包、OpenCV版本、显卡硬件三者关系会导致各式各样的问题,本文仅供参考。

        系统: wsl2_ubuntu22.04

        显卡:4060Ti (架构:Ada Lovelace)

        显卡驱动:NVIDIA-Linux-x86_64-550.67

        cuda版本:11.8

        cuDNN版本:8.7.0

        tensorrt版本:8.5.3

        OpenCV与OpenCV_contrib版本:4.9.0

        Video_Codec_SDK版本:11.1.5


一、安装英伟达相关包(cuda、cuDNN、tensorrt)

1、安装英伟达GPU驱动

cd ~
mkdir NVIDIA && cd NVIDIA
#赋予权限:
sudo chmod +x *.run
sudo chmod +x *.deb
#驱动安装:
sudo ./NVIDIA-Linux-x86_64-550.54.14.run
检查驱动是否安装成功: 
nvidia-smi
Thu Apr 11 10:56:41 2024
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.73.01              Driver Version: 552.12         CUDA Version: 12.4     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 4060 Ti     On  |   00000000:01:00.0  On |                  N/A |
|  0%   50C    P0             26W /  160W |    1436MiB /   8188MiB |      4%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|  No running processes found                                                             |
+-----------------------------------------------------------------------------------------+

可以看到当前安装的驱动信息,需要注意CUDA Version: 12.4指当前驱动支持的最高版本,而不是cuda版本。

2、安装cuda:

wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
sudo dpkg -i cuda-repo-wsl-ubuntu-11-8-local_11.8.0-1_amd64.deb
sudo cp /var/cuda-repo-wsl-ubuntu-11-8-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda
验证nvcc:
nvcc -V

会提示如下:

Command 'nvcc' not found, but can be installed with:

sudo apt install nvidia-cuda-toolkit(不需要)

装上cuda后nvcc其实已经存在,可通过建立连接搞定

vim ~/.bashrc 
# 在末尾添加:
# cuda_nvcc
export LD_LIBRARY_PATH=/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
# 刷新环境变量
source ~/.bashrc

再次nvcc -V就可以看到版本信息了

3、安装cuDNN:

sudo dpkg -i cudnn-local-repo-ubuntu2204-8.7.0.84_1.0-1_amd64.deb
sudo cp /var/cudnn-local-repo-*/cudnn-local-*-keyring.gpg /usr/share/keyrings/ # 终端有输出提示,可直接复制终端
sudo apt-get update
sudo apt-get install libcudnn8=8.7.0.84-1+cuda11.8
sudo apt-get install libcudnn8-dev=8.7.0.84-1+cuda11.8
sudo apt-get install libcudnn8-samples=8.7.0.84-1+cuda11.8
cuDNN验证:
cp -r /usr/src/cudnn_samples_v8/ ~/
cd  ~/cudnn_samples_v8/mnistCUDNN
make clean && make
# 可能报错:test.c:1:10: fatal error: FreeImage.h: No such file or directory
# 解决办法:sudo apt-get install libfreeimage3 libfreeimage-dev
# 重新 make clean && make
./mnistCUDNN

4、安装Tensorrt:

cd ~/NVIDIA # 回到NVIDIA路径下
sudo dpkg -i nv-tensorrt-local-repo-ubuntu2204-8.5.3-cuda-11.8_1.0-1_amd64.deb
sudo cp /var/nv-tensorrt-local-repo-ubuntu2204-8.5.3-cuda-11.8/*-keyring.gpg /usr/share/keyrings/ # 最好直接复制终端提示
sudo apt-get update
sudo apt-get install tensorrt
验证安装:
dpkg -l | grep TensorRT
# 成功后会输出:
ii  libnvinfer-bin                                    8.5.3-1+cuda11.8                        amd64        TensorRT binaries
ii  libnvinfer-dev                                    8.5.3-1+cuda11.8                        amd64        TensorRT development libraries and headers
ii  libnvinfer-plugin-dev                             8.5.3-1+cuda11.8                        amd64        TensorRT plugin libraries
ii  libnvinfer-plugin8                                8.5.3-1+cuda11.8                        amd64        TensorRT plugin libraries
ii  libnvinfer-samples                                8.5.3-1+cuda11.8                        all          TensorRT samples
ii  libnvinfer8                                       8.5.3-1+cuda11.8                        amd64        TensorRT runtime libraries
ii  libnvonnxparsers-dev                              8.5.3-1+cuda11.8                        amd64        TensorRT ONNX libraries
ii  libnvonnxparsers8                                 8.5.3-1+cuda11.8                        amd64        TensorRT ONNX libraries
ii  libnvparsers-dev                                  8.5.3-1+cuda11.8                        amd64        TensorRT parsers libraries
ii  libnvparsers8                                     8.5.3-1+cuda11.8                        amd64        TensorRT parsers libraries
ii  tensorrt                                          8.5.3.1-1+cuda11.8                      amd64        Meta package for TensorRT

二、安装OpenCV:

1、安装OpenCV工具库(选择性安装):

通用工具:
sudo apt install build-essential cmake pkg-config unzip yasm git checkinstall
图像 I/O 库:
sudo apt install libjpeg-dev libpng-dev libtiff-dev
视频/音频库 - FFMPEG、GSTREAMER、x264 等:
sudo apt install libavcodec-dev libavformat-dev libswscale-dev libavresample-dev
sudo apt install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
sudo apt install libxvidcore-dev x264 libx264-dev libfaac-dev libmp3lame-dev libtheora-dev
sudo apt install libfaac-dev libmp3lame-dev libvorbis-dev
OpenCore - 自适应多速率窄带 (AMRNB) 和宽带 (AMRWB) 语音编解码器:
sudo apt install libopencore-amrnb-dev libopencore-amrwb-dev
相机编程接口库:
sudo apt-get install libdc1394-22 libdc1394-22-dev libxine2-dev libv4l-dev v4l-utils
cd /usr/include/linux
sudo ln -s -f ../libv4l1-videodev.h videodev.h
cd ~
用于来自 OpenCV highghui 模块的图形用户功能的 GTK 库:
sudo apt-get install libgtk-3-dev
# 或者
sudo apt-get install libgtk-2.0-dev
CPU 并行库 C++ :
sudo apt-get install libatlas-base-dev gfortran
可选库:
sudo apt-get install libprotobuf-dev protobuf-compiler
sudo apt-get install libgoogle-glog-dev libgflags-dev
sudo apt-get install libgphoto2-dev libeigen3-dev libhdf5-dev doxygen

2、安装OpeCV:

下载opencv、opencv_contrib、Video Codec SDK 源码(opencv、opencv_contrib版本需要相同),并解压

opencv:Releases · opencv/opencv · GitHub

opencv_contrib:Tags · opencv/opencv_contrib · GitHub

Video Codec SDK:Video Codec SDK Archive | NVIDIA Developer

进入Video Codec SDK路径:(使用OpenCV调用NVIDIA硬解码,此步骤很重要)

cd Interface
sudo cp *.h /usr/local/cuda/include/

cd Lib/linux/stubs/x86_64
sudo cp *.so /usr/local/cuda/lib64/

进入OpenCV路径:

mkdir build && cd build

cmake命令配置:

# 作者命令配置:
cmake -D CMAKE_BUILD_TYPE=RELEASE \
      -D CMAKE_INSTALL_PREFIX=/usr/local \
      -D ENABLE_PRECOMPILED_HEADERS=OFF \
      -D INSTALL_C_EXAMPLES=OFF \
      -D INSTALL_PYTHON_EXAMPLES=OFF \
	  -D WITH_TBB=ON \
      -D BUILD_TBB=ON  \
	  -D ENABLE_FAST_MATH=1 \
	  -D CUDA_FAST_MATH=1 \
      -D WITH_CUBLAS=1 \
      -D WITH_V4L=ON \
	  -D WITH_LIBV4L=ON \
      -D WITH_CUDA=ON \
	  -D WITH_CUDNN=ON \
      -D WITH_NVCUVID=ON \
      -D WITH_OPENGL=ON \
	  -D WITH_FFMPEG=ON  \
      -D OPENCV_GENERATE_PKGCONFIG=ON \
      -D OPENCV_PC_FILE_NAME=opencv.pc \
	  -D OPENCV_ENABLE_NONFREE=ON \
	  -D CUDA_ARCH_BIN=8.9 \
      -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.9.0/modules ..
# 编译
make -j
# 安装
sudo make install

至此OpenCV安装完毕!


3、卸载安装

卸载wsl (手动卸载ubuntu后,管理员身份进入Windows Powershell):
wsl -l # 显示 Ubuntu-22.04
wsl.exe --unregister Ubuntu-22.04
卸载opencv:
# 在opencv_src/build目录下
sudo make uninstall
cd ..
sudo rm -r build

sudo rm -r /usr/local/include/opencv2 /usr/local/include/opencv /usr/include/opencv /usr/include/opencv2 /usr/local/share/opencv /usr/local/share/OpenCV /usr/share/opencv /usr/share/OpenCV /usr/local/bin/opencv* /usr/local/lib/libopencv*
# 检查
pkg-config opencv --libs
pkg-config opencv --modversion

tips:卸载apt安装的opencv:

sudo apt purge libopencv*
sudo apt autoremove
sudo apt update

  • 20
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在WSL2 Ubuntu 22.04安装OpenCV 4.5.4,可以按照以下步骤进行操作: 1. 首先,确保你的系统已经安装WSL2,并且已经成功安装Ubuntu 22.04。 2. 打开终端,并更新系统的软件包列表,可以运行以下命令: ``` sudo apt update ``` 3. 接下来,安装OpenCV的依赖项。运行以下命令: ``` sudo apt install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev ``` 4. 然后,安装OpenCV的额外依赖项。运行以下命令: ``` sudo apt install libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev ``` 5. 下载OpenCV 4.5.4的源代码。可以使用Git进行克隆,运行以下命令: ``` git clone https://github.com/opencv/opencv.git ``` 6. 进入下载好的OpenCV目录,创建一个build文件夹,并进入该文件夹。运行以下命令: ``` cd opencv mkdir build cd build ``` 7. 使用CMake进行配置。运行以下命令: ``` cmake .. ``` 8. 编译和安装OpenCV。运行以下命令: ``` make -j$(nproc) sudo make install ``` 9. 最后,验证OpenCV是否成功安装。你可以编写一个简单的C++程序,使用OpenCV库进行图像处理,并编译运行该程序。 这样,你就成功在WSL2 Ubuntu 22.04安装OpenCV 4.5.4。希望对你有帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [ubuntu22.04安装OpenCVOpencvcontrib,cuda,cudnn,pytorch](https://blog.csdn.net/rotga/article/details/132080966)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [【环境配置】Windows 11 的 WSL(Ubuntu2204) 安装OpenCV 4.5.4 (亲测有效)](https://blog.csdn.net/zhoujinwang/article/details/127741366)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Qcecream

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值