TX2安装opencv4.5.1+contrib 支持cuda加速

先前准备:

1.最好不要改动ubuntu默认的python2与3的版本,容易出问题。需要选择时用python,python3,python3.x选择即可。 

2.ubuntu18.04 pc端装机自带的3.x.x版本可以放着不动,不冲突。如果在提前安装了ROS的情况下,用remove完全卸载opencv可能会导致ROS许多文件被删除,慎重。

3.TX2的opencv安装方法同下,TX2刷机自带的opencv4.x.x会被直接覆盖,无需卸载。查询TX2的cuda arch bin需要安装jtop,安装教程可直接在csdn搜索,非常简单。

4.       ..- -. .. -. ... - .- .-.. .-.. -....- --- .--. . -. -.-. ...- .--. -.-- - .... --- -. -....- ..-. .. .-. ... - 

1.安装教程

第一步

下载opencv与opencv-contrib的源码包,注意版本对应
opencv:https://github.com/opencv/opencv/releases
opencv-contrib:https://github.com/opencv/opencv_contrib/releases

第二步

解压opencv与opencv-contrib,并将opencv-contrib文件夹放到opencv文件夹中

第三步

安装依赖


   
   
  1. sudo apt - get install build -essential \
  2. libavcodec -dev \
  3. libavformat -dev \
  4. libavutil -dev \
  5. libeigen3 -dev \
  6. libglew -dev \
  7. libgtk2. 0 -dev \
  8. libgtk - 3 -dev \
  9. libjpeg -dev \
  10. libpostproc -dev \
  11. libswscale -dev \
  12. libtbb -dev \
  13. libtiff5 -dev \
  14. libv4l -dev \
  15. libxvidcore -dev \
  16. libx264 -dev \
  17. qt5 - default \
  18. zlib1g -dev \
  19. libavresample -dev \
  20. gstreamer1. 0 -plugins -bad \
  21. pkg -config

其中可能会遇到依赖包libjasper-dev无法安装的问题

使用命令 sudo apt-get install libjaster-dev 后

提示:errorE: unable to locate libjasper-dev

解决方法:


   
   
  1. sudo add -apt -repository "deb Index of /ubuntu xenial-security main"
  2. sudo apt update
  3. sudo apt install libjasper1 libjasper -dev

成功的解决了问题,其中libjasper1是libjasper-dev的依赖包

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

第四步:

进入opencv目录下,创建build文件夹(我用的4.5.1)


   
   
  1. cd opencv-4.5.1
  2. mkdir build
  3. cd build

cmake编译(建议先按照后面重要部分配置完后再进行cmake编译)


   
   
  1. cmake -DCMAKE_BUILD_TYPE=RELEASE\
  2. -D CMAKE_INSTALL_PREFIX=/usr/ local\
  3. -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib- 4.5. 1/modules\
  4. -D WITH_CUDA= 1\
  5. -D WITH_CUDNN= ON \
  6. -D WITH_TBB= ON \
  7. -D OPENCV_DNN_CUDA= ON \
  8. -D CUDA_ARCH_BIN= '7.2'\
  9. -D ENABLE_FAST_MATH= 1\
  10. -D CUDA_FAST_MATH= 1\
  11. -D WITH_CUBLAS= 1\
  12. -D BUILD_opencv_python3= ON -DBUILD_opencv_python2= ON\
  13. -D WITH_V4L= ON\
  14. -D WITH_QT= ON\
  15. -D WITH_OPENGL= ON\
  16. -D OPENCV_GENERATE_PKGCONFIG= 1\
  17. -D WITH_GSTREAMER= ON\
  18. -D CUDA_GENERATION= Pascal ..

部分编译命令解释: 


   
   
  1. cmake -DCMAKE_BUILD_TYPE=RELEASE\
  2. -D CMAKE_INSTALL_PREFIX=/usr/ local\#指定安装路径
  3. -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib- 4.5. 1/modules\#opencv_contirb modules路径
  4. -D WITH_CUDA= 1\#使用cuda加速 需要配置好cuda
  5. -D WITH_CUDNN= ON\#需要配置好cudnn
  6. -D WITH_TBB= ON\
  7. -D OPENCV_DNN_CUDA= ON\
  8. -D CUDA_ARCH_BIN= '7.2'\#指定显卡算力,根据自己的显卡算力填,下面有教程
  9. -D ENABLE_FAST_MATH= 1\
  10. -D CUDA_FAST_MATH= 1\
  11. -D WITH_CUBLAS= 1\
  12. -D BUILD_opencv_python3= ON -DBUILD_opencv_python2= ON\
  13. -D WITH_V4L= ON\
  14. -D WITH_QT= ON\
  15. -D WITH_OPENGL= ON\
  16. -D OPENCV_GENERATE_PKGCONFIG= 1\用于生成opencv4文件,查版本用的
  17. -D WITH_GSTREAMER= ON\
  18. -D CUDA_GENERATION= Pascal ..

重要部分

以下内容最好在cmake之前提前搞完,因为像face_landmark、boostdesc_bgm.i、vgg、ippv这些文件国内一般会下载失败,需要下载的文件链接放在文章最后。

1. -D CUDA_ARCH_BIN='7.2'  这行编译很重要,不然老是导致opencv配置失败

加了有时候cuda还会报错,可以看这节最后部分的解决方法。

查询自己的显卡算力方式如下:

Ubuntu18 查看CUDA的CUDA_ARCH_BIN_独孤九剑-风清扬的博客-CSDN博客_arch cuda我们在使用源码编译带cuda的opencv时,需要设置显卡的CUDA_ARCH_BIN,本文介绍一下获得该值的方法方法一安装好cuda之后,可以从cuda sample中获得cd /usr/local/cuda/samples/1_Utilities/deviceQuerysudo make./deviceQuery如上,运行后输出信息如下nvidia@nvidia-X10SRA:/usr/local/cuda/samples/1_U..https://blog.csdn.net/CSS360/article/details/109696878?spm=1001.2014.3001.5506或者常见的显卡直接从图里找:

2.cmake可能会卡在ippicv下载的地方,一直下载不下来

 解决方法

    a.手动下载ippicv 不用解压

    b.修改opencv里的配置文件

     打开终端,输入:


   
   
  1. $ gedit /home/usrname/opencv_path/opencv/3rdparty/ippicv/ippicv.cmake
  2. #记得usrname换成自己的用户名,opencv_path 换成自己opencv文件夹的路径
  3. #或者直接在opencv里跟着路径3rdparty/ippicv/,直接双击打开ippicv.cmake也行

将ippicv.cmake文件下的第47行替换为本地路径


   
   
  1. "file:///home/usrname/install/"
  2. #"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/"
  3. #file后面的路径换成对应ippicv下载后保存的路径,索引到放ippicv的那个文件夹就行

3.cmake可能会卡在face_landmark_model.dat下载的地方,一直下载不下来。

解决方法

    a.手动下载face_landmark_model.dat

    b.修改opencv里的配置文件

     打开终端,输入:


   
   
  1. $ gedit /home/usrname/tool/opencv-4.5.1/opencv_contrib-4.5.1/modules/face/CMakeLists.txt
  2. #usrname 换成自己的用户名, <tool/opencv-4.5.1>换成自己opencv源码对应的文件夹
  3. #还是对着路径直接进去找快一点

 将CMakeLists.txt文件的第19行修改为本地路径,即将原来的网址修改为下载的文件保存的路径


   
   
  1. "file:///home/usrname/install/"
  2. #"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${__commit_hash}/"
  3. # usrname记得替换为自己的用户名
  4. #路径记得替换为自己文件对应的路径,索引到放face的那个文件夹就行

4.cmake可能会卡在boostdesc_bgm.i下载的地方,一直下载不下来。

解决方法

    a.手动下载boostdesc_bgm.i并解压

将下载的文件(不是文件夹)拷贝到opencv_contrib/modules/xfeatures2d/src/目录下

    b.修改opencv里的配置文件(改两个)

      改boostdesc_bgm.i地址

$ gedit /home/usrname/tool/opencv-4.5.1/opencv_contrib-4.5.1/modules/xfeatures2d/cmake/download_boostdesc.cmake
   
   

   
   
  1. "file:///home/usrname/install/"
  2. # 同理跟前面操作一样,找到原来的下载网址,改为本地文件地址,索引到存放的文件夹就行。

     改vgg的地址: 

$ gedit /home/usrname/tool/opencv-4.5.1/opencv_contrib-4.5.1/modules/xfeatures2d/cmake/download_vgg.cmake
   
   

   
   
  1. "file:///home/usrname/install/"
  2. # 同理跟前面操作一样,找到原来的下载网址,改为本地文件地址,索引到存放的文件夹就行。

参考:

2、3步骤:

ubuntu16.04 安装opencv IPPICV 和 face_landmark_model.dat下载不下来的问题解决_csdn330的博客-CSDN博客

 4步骤:

Ubuntu系统opencv4.4安装常见问题 找不到 feature2d/test/test_detectors_regression.impl.hpp 文件_小小谢先生的博客-CSDN博客

 以上步骤完成后就可以开始编译opencv了,进行第四步的cmake操作。

5.cmake完之后会给一个大致如下图的列表,及得检查:

1.检查一下cuda,cudnn是否检测到了

2.检查cudnn版本是否合适

3.检查NVIDIA GPU arch是否和自己之前输入的CUDA_ARCH_BIN是否一样,CUDA_ARCH_BIN=7.5的话这里应该会显示75。如果显示的数字不匹配,可以参考:Please check CUDA_ARCH_PTX or CUDA_ARCH_BIN in your build configuration错误解决_学术菜鸟小晨的博客-CSDN博客_cuda_arch_ptx在RTX2060显卡的机器上,编译了opencv4.4,报错如下:classes, confidences, boxes = net.detect(image, confThreshold, nmsThreshold)cv2.error: OpenCV(4.4.0) /home/ycc/opencv-4.4.0/modules/dnn/src/dnn.cpp:2353: error: (-216:No CUDA support) OpenCV was not built to work with thhttps://blog.csdn.net/qq_34717531/article/details/108735629?spm=1001.2014.3001.5506

第五步:

进行make,然后等待(pc的话make很快,tx2等板子就要跑很久了,核心太少),make成功后,进行安装 。


   
   
  1. nproc # 查看核数
  2. sudo make -jx #x是核数,加速编译,也有说x最大可以是核数的两倍的。但是我的1650用j12容易卡死 最后用的j8
  3. sudo make install

有时候会在99,100编很多东西,不要着急,出来像上图一样的新命令行NVIDIA...才算完成。

其中make过程中遇到了几个问题:

1.fatal error: features2d/test/test_detectors_regression.impl.hpp: No such file or directory

 原因是没找到这个文件,解决方法如下:

opencv / modules / features2d复制,然后粘贴到opencv / build目录中来解决该问题。

2.

第六步:

配置opencv库

首先将OpenCV的库添加到路径,从而可以让系统找到

sudo gedit /etc/ld.so.conf.d/opencv.conf 

   
   

 执行此命令后打开的可能是一个空白的文件,不用管,只需要在文件末尾添加

/usr/local/lib  

   
   

 保存后退出
然后生效配置文件。

sudo ldconfig 

   
   

配置bash.bashrc文件

sudo gedit /etc/bash.bashrc 

   
   

在末尾追加


   
   
  1. PKG_CONFIG_PATH= $PKG_CONFIG_PATH :/usr/local/lib/pkgconfig
  2. export PKG_CONFIG_PATH

保存退出。
执行如下命令使得配置生效:

source /etc/bash.bashrc

   
   

更新:

sudo updatedb

   
   

至此配置完成

第七步:测试

1. 在终端输入代码:


   
   
  1. pkg-config --modversion opencv4
  2. # 输出 4.5.1
  3. python3 -c "import cv2; print(cv2.__version__)"
  4. # 输出 4.5.1

2.找到 opencv-4.5.1/samples/cpp/example_cmake 目录下,官方已经给出了一个cmake的example,我们可以拿来测试下。按顺序执行:


   
   
  1. mkdir build
  2. cd build
  3. cmake ..
  4. make
  5. ./opencv_example

出现你的摄像头影像,安装完成。 

OK大功告成,可以愉快的使用opencv了。

卸载:

在opencv/build里运行

sudo make uninstall
   
   

然后把build删了就行,这个方法卸载的不彻底,一般用于编错了重编。

主要参考:

ubuntu20.04 opencv4.5.1+cuda11.0安装全过程_陈阿贝的博客-CSDN博客_cuda opencv ubuntu一、安装包准备(结尾有所有安装包)1.opencv4.5.12.opencv_contrib-4.5.13.cuda4.cuDNN二、安装cuda通过nvidia-smi查看显卡驱动版本以及支持的最大CUDA版本,由下图可见为11.21.官网下载对应版本的runfile文件下载地址2.sudo sh cuda_11.0.2_450.51.05_linux.run3.过程中提示按accept,driver不要安装,别的继续install4.vim ~./bashrc5.在结尾加入exhttps://blog.csdn.net/m0_37210884/article/details/115660669?ops_request_misc=&request_id=&biz_id=102&utm_term=ubuntu%E5%AE%89%E8%A3%85opencv4.5%E6%94%AF%E6%8C%81cuda&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-115660669.142%5Ev11%5Econtrol,157%5Ev12%5Econtrol&spm=1018.2226.3001.4187

Ubuntu安装opencv4.5(自己安装过程详细)_一盆柠檬的博客-CSDN博客_ubuntu安装opencv1.下载opencv在opencv官网下载source版,下载链接 http://opencv.org/releases.html。别下载错版本下载过程就不多说了。2.安装过程2.1解压unzip opencv-4.5.0.zipcd opencv-4.5.02.2安装依赖的库sudo apt-get install cmake sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-https://blog.csdn.net/weixin_45629790/article/details/113242250?spm=1001.2014.3001.5506

opencv编译过程中缺少的文件:

opencv编译时缺少的文件-其它文档类资源-CSDN下载包括boostdesc_bgm.i,vgg_generated_48.i,face_landmark更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/m0_62013374/85483791 配置好的opencv4.5.1+contrib(build中除了features2d都删除然后重新编译):

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值