新换了Ubuntu系统,安装可使用GPU加速的opencv时,遇到了好多大大小小的坑
1.cuda版本太高(后续要安装tensorflow)
2.cuda安装过程出现版本适配问题
3.opencv缺少依赖包
4.opencv Cmake出现问题
5.安装后找不到.so
这个解决起来比较方便,到官网下载版本低一些的就可以了。
vim ~/.bashrc
,在最后添加如下代码部分# NVIDIA CUDA Toolkit
export PATH=/usr/local/cuda-10.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH
然后 source ~/.bashrc
nvcc -V
查看安装版本信息,显示10.0即可$ cd cuda
$ sudo cp -P lib64/* /usr/local/cuda/lib64/
$ sudo cp -P include/* /usr/local/cuda/include/
如果没出现任何问题,说明成功了。
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install build-essential cmake unzip pkg-config git libjpeg-dev libpng-dev libtiff-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libgtk-3-dev libatlas-base-dev gfortran python3-dev
$ cd ~/opencv
$ cd opencv
$ mkdir build && cd build
然后cmake一下
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_PYTHON_EXAMPLES=ON -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=7.5 -D WITH_CUBLAS=1 -D OPENCV_EXTRA_MODULES_PATH=~/opencv/opencv_contrib/modules -D HAVE_opencv_python3=ON -D PYTHON_EXECUTABLE=~/.virtualenvs/opencv_cuda/bin/python -D BUILD_EXAMPLES=ON ..
在这里我创建并使用了虚拟环境virtualenvs/opencv_cuda。其中CUDA_ARCH_BIN根据自己的GPU来选择相应的值。查看网站
4. 如果出现缺少CmakeLists.txt,可以考虑把 OPENCV_EXTRA_MODULES_PATH=~/opencv/opencv_contrib/modules \这行的~/opencv/opencv_contrib/modules地址部分从你的电脑文件目录复制过来。然后问题就解决了,具体为啥,也不是特别清楚,大概是网页的文字格式和指令使用的有出入吧。
5. 当cmake没有问题后,可以进行opencv编译$ make -j$(nproc)
。
6. 然后
$ sudo make install
$ sudo ldconfig
$ ln -s /usr/local/lib/python3.6/site-packages/cv2/python-3.6 ~/.virtualenvs/opencv_cuda/lib/python3.6/site-packages/cv2.so
主要参考如下博文,感谢!
[1]: https://www.pyimagesearch.com/2020/02/03/how-to-use-opencvs-dnn-module-with-nvidia-gpus-cuda-and-cudnn/
联系客服