WSL的Ubuntu22.04安装opencv with cuda,并且在conda中使用

在wsl使用的过程中,opencv默认安装的都是不带cuda加速,对cpu的要求比较高,我们通过编译with cuda可以大大加速opencv的图像性能,鉴于我们的环境使用的都是conda,所以在conda中能够进行cuda操作也很关键。
首先我们先安装一下依赖:
 

sudo apt-get install -y \
        build-essential \
        cmake \
        git \
        gfortran \
        libatlas-base-dev \
        libavcodec-dev \
        libavformat-dev \
        libavresample-dev \
        libcanberra-gtk3-module \
        libdc1394-22-dev \
        libeigen3-dev \
        libglew-dev \
        libgstreamer-plugins-base1.0-dev \
        libgstreamer-plugins-good1.0-dev \
        libgstreamer1.0-dev \
        libgtk-3-dev \
        libjpeg-dev \
        libjpeg8-dev \
        libjpeg-turbo8-dev \
        liblapack-dev \
        liblapacke-dev \
        libopenblas-dev \
        libpng-dev \
        libpostproc-dev \
        libswscale-dev \
        libtbb-dev \
        libtbb2 \
        libtesseract-dev \
        libtiff-dev \
        libv4l-dev \
        libxine2-dev \
        libxvidcore-dev \
        libx264-dev \
        pkg-config \
        python-dev \
        python-numpy \
        python3-dev \
        python3-numpy \
        python3-matplotlib \
        qv4l2 \
        v4l-utils \
        zlib1g-dev

之后,我们去github下载对应的版本,这里以opencv 4.8.0版本为例:
https://github.com/opencv/opencv/archive/refs/tags/4.8.0.zip
https://github.com/opencv/opencv_contrib/archive/refs/tags/4.8.0.zip
下载好以后,找一个自己喜欢的文件夹解压一下,在这里我的路径为

~/Documents:

解压以后能看到2个文件夹,分别为opencv-4.8.0 和 opencv_contrib-4.8.0

接下来我们

cd opencv-4.8.0/
mkdir build
cd build

进行cmake环境配置,这里有几个前提条件,首先得确定自己的显卡ARCH版本,不懂的小伙伴可以从英伟达官网查询:CUDA GPUs - Compute Capability | NVIDIA Developer
例如我的显卡是4090,经查询版本为8.9
接下来我们在build 目录下执行

sudo cmake \
-D WITH_CUDA=ON \
-D WITH_CUDNN=ON \
-D WITH_CUBLAS=1 \
-D WITH_CUFFT=ON  \
-D WITH_CUBLAS=1 \
-D WITH_NVCUVID=OFF  \
-D WITH_OPENMP=ON  \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_QT=ON \
-D WITH_OPENGL=ON \
-D WITH_GSTREAMER=ON \
-D OPENCV_DNN_CUDA=0N \
-D CUDA_ARCH_BIN=8.9 \
-D CUDA_ARCH_PTX=8.9 \
-D OPENCV_EXTRA_MODULES_PATH=/home/dai/Documents/opencv_contrib-4.8.0/modules \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_python3=ON \
-D CMAKE_INSTALL_PREFIX=/usr/local ..

 需要注意的地方CUDA_ARCH_BIN配置成上述查询的代号,OPENCV_EXTRA_MODULES_PATH配置成你实际的路径

接下来就只需要运行

sudo make -j16
sudo make install

等待编译完成即可,最后执行完毕以后,即可在默认的环境中进行测试,
运行

那么我们发现在conda环境中无法使用cv2,或者以前安装过opencv,需要通过conda或者pip删除,我们可以通过创建软连接来使得虚拟环境中能查找到cv2的packet,我使用以下代码创建链接以后,就可以在conda环境中正确import cv2了

ln -s /usr/local/lib/python3.10/dist-packages/cv2 ~/miniconda3/envs/pytorch/lib/python3.10/site-packages/cv2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值