0


Nvidia Jetson TX2 配置Cuda 加速的Opencv

“其他流程网上都有但是要找到适合自己的且没有报错的有点艰难”


首先做好心理准备,用Cmake进行编译的话,每次流程基本上都是2h左右,所以我选择用网线VNC直连后,挂后台处理。

准备:

1.安装Jetson的jtop监控器

2.准备Cmake-gui可视化安装程序(因为之前用代码的话路径容易写错,尽量避免这种情况发生,你也不想再多编译2h吧)

3.确保/usr/lib/中没有其他版本的openCV影响

find / -name "*opencv*" 2>/dev/null

4.推荐ubuntu18.04 + jetpack4.6+CUDA10.2+OpenCV+4.1.1(开始刷机的时候用的4.1.1然后paddlepaddle的4.7覆盖掉了,然后用4.5.3试了一下发现编译的时候.cpp红线报错太多,所以应该是版本不兼容,然后又换回4.1.1)

可以看到版本号:

* OpenCV:    4.1.1    compiled CUDA:    NO

5.如果有自带的openCV版本的是默认没有CUDA加速的,下面给出删除方法:

sudo apt purge libopencv*
sudo apt autoremove
sudo apt update

编译安装OpenCV

安装依赖库:

sudo apt install -y build-essential checkinstall cmake pkg-config yasm git gfortran
sudo apt update
sudo apt install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
sudo apt install -y libjpeg8-dev libjasper-dev libpng12-dev libtiff5-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine2-dev libv4l-dev
sudo apt install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgtk2.0-dev libtbb-dev libatlas-base-dev libfaac-dev libmp3lame-dev libtheora-dev libvorbis-dev libxvidcore-dev libopencore-amrnb-dev libopencore-amrwb-dev x264 v4l-utils
sudo apt install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

这里给出一点建议,对于这三个包libtiff-dev libjasper-dev libdc1394-22-dev,如果直接用复制粘贴的时候,连不上ubuntu的服务器,所以建议分步sudo apt-get。

也可以尝试换源的方法,看个人习惯。

OpenCV4.1.1 和 opencv_contrib 4.1.1 源码

前往 OpenCV 和 opencv_contrib 的 github 仓库下载 Latest release 源码

编译和安装 OpenCV

  • 将 opencv-4.1.1.zip 和 opencv_contrib-4.1.1.zip 放在同一文件夹并解压,将解压后的opencv_contrib-4.1.1放在opencv-4.1.1文件中
  • 其实也不用刻意去关注路径,这就是cmake-gui的好处
  • 执行命令 cd opencv-4.1.1mkdir buildcd buildsudo cmake-gui

注意:如果用的是4GB的nano的话,在进行编译之前要swap空间。比TX2内存大的都不用考虑。

  • 使用代码:

  • cmake \-DCMAKE_BUILD_TYPE=Release \-DCMAKE_INSTALL_PREFIX=/usr/local \-DOPENCV_ENABLE_NONFREE=1 \-DBUILD_opencv_python2=1 \-DBUILD_opencv_python3=1 \-DWITH_FFMPEG=1 \-DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda \-DCUDA_ARCH_BIN=6.2 \-DCUDA_ARCH_PTX=6.2 \-DWITH_CUDA=1 \-DENABLE_FAST_MATH=1 \-DCUDA_FAST_MATH=1 \-DWITH_CUBLAS=1 \-DOPENCV_GENERATE_PKGCONFIG=1 \-DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.1.1/modules \..

      注意:使用代码的时候,必须要满足文件关系树。
    
  • 使用gui:勾选后点击Configure..Generate..

检查gui窗口中的路径和 OPENCV_EXTRA_MODULES_PATH以及是否勾选管道GENERATE:

很多博客都有相似的报错(我总结一下):

1.缺少"boostdesc_bgm.i":报错形式为opencv_contrib/modules/xfeatures2d/src/boostdesc.cpp:653:20: fatal error: boostdesc_bgm.i: 没有那个文件或目录#include "boostdesc_bgm.i" ;因此需要下载并解压这个文件并添加到src文件中,

文件应包含下面所有文件:

有的还会出现缺少cuviddec.h文件的问题,可以参考这篇博客:Ubuntu18.04安装Autoware1.14-GPU版(慎用!)_autoware_awsim显卡资源_wweweiweiweiwei的博客-CSDN博客

去网上下载文件:

  • boostdesc_bgm.i
    
  • boostdesc_bgm_bi.i
    
  • boostdesc_bgm_hd.i
    
  • boostdesc_lbgm.i
    
  • boostdesc_binboost_064.i
    
  • boostdesc_binboost_128.i
    
  • boostdesc_binboost_256.i
    
  • vgg_generated_120.i
    
  • vgg_generated_64.i
    
  • vgg_generated_80.i
    
  • vgg_generated_48.i
    

这里贴上几个网盘链接:

(1)链接:百度网盘 请输入提取码
提取码:p50x

(2)链接:百度网盘 请输入提取码
提出码:e1wc

总结一下编译之中的错误解决方法:

1.如果是出现红色划线:大概率是文件缺失和头文件失效,以及.hpp文件在cmake-gui未勾选导致其他文件调用失败,比如说:有一个opencv_python_test的文件,如果你勾选了,但是你缺少依赖库和文件也会出现报停

2.最常见的报错就是:

CMakeFiles/Makefile2:1289: recipe for target xxx' failed
make[1]: *** [xxx] Error 2
Makefile:160: recipe for target 'all' failed
make: *** [all] Error 2

很有可能是你勾选了此opencv版本不兼容的模块,面向报错检查自己是否勾错。

3.OpenCV版本重叠,例子:如果你没删干净OpenCV,你编译了低版本的Opencv是不会覆盖的,

就算你编译成功了,make install安装的时候也会报错。

Make:

(事先调整 CPU 性能模式打开尽量多的核心)

sudo make -j4(四核编译)
sudo make -j6(六核编译)

编译完成后最后一步:

sudo make install

检查:

python3:

python3
import cv2
cv2.__version__

jtop:

如果还有其他问题:可以参考以下博客:

(73条消息) 解决CMake Error: The source directory “../CMAKE_BULID_TYPE=RELEASE“ does not exist._Dr.Guo的博客-CSDN博客(73条消息) Jetson OpenCV 安装,支持cuda加速,已解决多个常见问题_jetson安装opencv_Not L的博客-CSDN博客

(73条消息) ubuntu 18.04 交叉编译opecv 树莓派4 问题总结_搬砖大学生的博客-CSDN博客

linux安装opencv时make出错-CSDN社区


本文转载自: https://blog.csdn.net/weixin_62651190/article/details/129348245
版权归原作者 YOLOKY 所有, 如有侵权,请联系我们删除。

“Nvidia Jetson TX2 配置Cuda 加速的Opencv”的评论:

还没有评论