Ubuntu18.04安装cuda10以及cuda版本的opencv3.4.13

目录

一、cuda

二、 cuda版本的Opencv3.4.13


一、cuda

首先提前安装好显卡驱动,在软件与更新--附加驱动里面直接安装即可,这个很简单,不再赘述。

查看自己应该安装的版本CUDA 12.0 Update 1 Release Notes

去官网下载安装

旧版本cuda入口CUDA Toolkit Archive | NVIDIA Developer

看网上很多博客说用runfile安装比较好

10.2的入口CUDA Toolkit 10.2 Download | NVIDIA Developer

 一共三个文件,后两个相当于补丁。

下载

wget https://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda_10.2.89_440.33.01_linux.run

安装

sudo sh cuda_10.2.89_440.33.01_linux.run

(请自动忽略输错密码)

accept

按空格取消选择,因为之前安装了显卡驱动,Install,然后等待即可

waiting............................................................................................

后面两个补丁安装方式相同,不过看一些博客说不安装补丁一般也没有问题。

安装补丁的时候记得把里面安装cuda10.2按空格取消

在.zshrc(我的shell是zsh,bash是.bashrc)添加环境变量

export PATH=/usr/local/cuda-10.2/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64:$LD_LIBRARY_PATH

然后

source .zshrc

或者

source .bashrc

 测试是否安装成功

nvcc -V

完成

卸载cuda(我还没用过)

cd /usr/local/cuda/bin
sudo ./cuda-uninstaller
cd /usr/local/cuda-10.2/bin
sudo ./cuda-uninstaller
sudo rm -rf /usr/local/cuda /usr/local/cuda-10.2

二、 cuda版本的Opencv3.4.13

 多Opencv共存Ubuntu下多版本OpenCV共存和切换_W_Tortoise的博客-CSDN博客_opencv 多个版本

从官网下载源码Releases - OpenCV

先安装依赖(参考视觉SLAM十四讲)以及在Ubuntu16.04/18.04 安装opencv3.3.0(可选带contrib和cuda)_小鱼吃虾米_tt的博客-CSDN博客

sudo apt-get install build-essential libgtk2.0-dev libvtk5-dev libjpeg-dev libtiff4-dev libjasper-dev libopenexr-dev libtbb-dev

出现错误

sudo apt-get install libtiff5-dev

继续安装出现新错误

参考Ubuntu18.04下安装OpenCv依赖包libjasper-dev无法安装的问题_SDUHXP的博客-CSDN博客_libjasper

sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev

之后把未安装的依赖安装了就可以

sudo apt-get install build-essential checkinstall cmake pkg-config yasm
sudo apt-get install git gfortran
sudo apt-get install libjpeg8-dev libjasper-dev libpng12-dev
sudo apt-get install libtiff5-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev
sudo apt-get install libxine2-dev libv4l-dev
sudo apt-get install libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev
sudo apt-get install qt5-default libgtk2.0-dev libtbb-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install libfaac-dev libmp3lame-dev libtheora-dev
sudo apt-get install libvorbis-dev libxvidcore-dev
sudo apt-get install libopencore-amrnb-dev libopencore-amrwb-dev
sudo apt-get install x264 v4l-utils

# Optional dependencies
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

在Opencv中下载contrib模块GitHub - opencv/opencv_contrib at 3.4

下载完了之后记得切换到3.4

在opencv文件夹中

mkdir build
cd build

 这里参考Ubuntu18.04 安装OpenCV(带cuda 和 contrib)_小鱼吃虾米_tt的博客-CSDN博客

先别记得输入进去,看下面的几个参数要改

cmake \
	-D CMAKE_BUILD_TYPE=RELEASE \
	-D CMAKE_INSTALL_PREFIX=/usr/local \
	-D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules/ \
	-D CUDA_CUDA_LIBRARY=/usr/local/cuda/lib64/stubs/libcuda.so \
	-D CUDA_ARCH_BIN=6.1 \
	-D CUDA_ARCH_PTX="" \
	-D WITH_CUDA=ON \
	-D WITH_TBB=ON \
	-D BUILD_NEW_PYTHON_SUPPORT=ON \
	-D WITH_V4L=ON \
	-D INSTALL_C_EXAMPLES=ON \
	-D INSTALL_PYTHON_EXAMPLES=ON \
	-D BUILD_EXAMPLES=ON \
	-D WITH_QT=ON \
	-D WITH_OPENGL=ON \
	-D ENABLE_FAST_MATH=1 \
	-D CUDA_FAST_MATH=1 \
	-D WITH_CUBLAS=1 \
	-D WITH_NVCUVID=ON \
	-D BUILD_opencv_cudacodec=OFF ..

其中OPENCV_EXTRA_MODULES_PATH(刚才下的contrib模块)和CMAKE_INSTALL_PREFIX(安装路径)要改成自己的路径。

CUDA_ARCH_BIN查看方式为

cd /usr/local/cuda/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery 

cmake成功后

sudo make -j8

或者

sudo make -j4

make成功之后

sudo make install

正常来说是结束了,假如你有多个opencv版本,需要在终端配置文件中添加一下环境变量。我终端用的是zsh,如果是bash的话就是.bashrc文件。

里面的路径就是之前CMAKE_INSTALL_PREFIX中设置的
export PKG_CONFIG_PATH=/usr/local/opencv-3.4.13/lib/pkgconfig
export LD_LIBRARY_PATH=/usr/local/opencv-3.4.13/lib

查看版本,3.2.0是之前安装过的版本,3.4.13是添加环境变量之后终端找到的新安装的opencv。

至此,大概是都完事了(若有后续问题还会更新)

在编译代码的时候,仍然可能会报出warn(类似于下面)

libopencv_xxxx.so.x.x xxxxxxx may conflict with libopencv_xxxxx.so.x.x

后续需要将cv_bridge的代码文件放入工作区

cv_bridge从这里面下载

https://github.com/ros-perception/vision_opencv

记得要切换到对应ros版本的分支,然后cv_bridge里面可能也需要用git切换到要使用的opencv版本的分支

然后只需要把里面的cv_bridge文件夹单独放到工作空间代码所在的同一级目录下就行

(鼠鼠举个栗子,比如所用代码是VINS-FUSION,它的位置是workspace/src/flight/VINS-FUSION,那么cv_bridge放到workspace/src/flight/就可以了)

并且在cv_bridge其中cmakelist里面的

find_package opencv加上cuda支持的那版opencv的版本号

即find_package opencv x.x.x

然后重新编译

不然就会出现找不到cuda cv或者直接died的问题 

  • 1
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值