亲测可用-jetson nano b01上配置cuda加速的opencv

前面的文章已经写过如何安装镜像及基础配置
亲测可用-jetson nano B01镜像安装及配置

三、配置opencv,支持cuda加速

3.1卸载自带的opencv

jetson nano的官方镜像中自带opencv,但是不支持显卡加速

输入命令

sudo jtop

按下数字7查看INFO界面,可以看到

在这里插入图片描述

所以默认自带的是不支持cuda加速(GPU)的,没有办法充分发挥jetson上GPU的性能

卸载自带的opencv的方法

sudo apt-get purge libopencv*
sudo apt-get autoremove
sudo apt-get update

3.1编译安装opencv

安装依赖库

输入以下命令

sudo add-apt-repository "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe"
sudo apt update
sudo apt install libjasper1 libjasper-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

上面七条命令中可能有重复的,可以不用管,排查问题的时候忘记记录了,多按一遍没有影响。

下载opencv和opencv_contrib源码

分别去opencvopencv_contrib下载源码。(需要科学上网,可以使用jetson自带浏览器或者在win电脑上下载完使用u盘拷贝过去)

opencv下载

不要直接点击code-Download ZIP!!!因为下载的不一定是你要用的!!!

点击下图位置,在Tags下面选择你需要的版本,我这里以4.5.3为例说明。4.0.0版本我没装成功没找到问题

在这里插入图片描述

切换为4.5.3版本后,再点击code-Download ZIP进行下载

在这里插入图片描述

opencv_contrib下载

不要直接点击code-Download ZIP!!!因为下载的不一定是你要用的!!!

点击下图位置,在Tags下面选择和opencv一致的版本,一定一定要确保两个的版本一致

在这里插入图片描述

切换为4.5.3版本后,再点击code-Download ZIP进行下载

在这里插入图片描述

编译和安装opencv

将 opencv-4.5.3.zip 和 opencv_contrib-4.5.3.zip 放在同一文件夹并解压,将解压后的opencv_contrib-4.5.3放在opencv-4.5.3文件中!(可以使用jetson端的可视化界面进行解压、移动操作,会方便点)

在这里插入图片描述

安装cmake(#如果安装了忽略这个,不知道是否装了的就写一遍,重复装会提示的,不影响)

sudo apt-get install make	

查看CUDA_ARCH_BIN的值

sudo jtop

在INFO页面中查看并记录,一会会用到

在这里插入图片描述

查看opencv_contrib的地址

执行命令,查看完整地址,根据你自己的地址来

cd opencv400/opencv_contrib-4.x/modules
pwd

在这里插入图片描述

执行命令

cd opencv400	#注意这里进入到的文件夹中必须包含opencv解压后的所有文件和opencv_contrib文件夹
mkdir build
cd build

将opencv_contrib中的modules中的cudev文件夹复制到opencv/modules里(可以使用linux端的可视化界面,命令行操作不再赘述)

执行cmake

需将下面命令-DCUDA_ARCH_BIN=5.3中的数字修改为前面查到的CUDA_ARCH_BIN的值

需将下面命令-DOPENCV_EXTRA_MODULES_PATH=之后的路径修改为前面查到的opencv_contrib的地址(一般不用改)

如果这一步你报错了,看看版本对不对

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=5.3 \
-DCUDA_ARCH_PTX=7.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.5.3/modules \
..

进行make,然后等待,查看线程数

sudo cat /proc/stat | grep cpu[0-9] -c

进行编译,约2-3小时,这一步-j后面的数字,取决于上一条查到的线程数!

sudo make -j4

进度到最后可能会出现卡死的情况直接重启就可以。重启不了就来硬的,直接拔电

make编译完成后,进行安装

sudo make install

至此安装成功

检验安装结果

在jtop中查看opencv版本号和是否支持cuda

在这里插入图片描述

一些报错及解决方案

在这里插入图片描述

往上滑发现了这个错误,提示文件缺失,通过查阅网上的资料找到的答案编译OpenCV以及openc_contrib提示缺少boostdesc_bgm.i文件出错的解决。按照此博客成功解决。里面提到的文件地址使用的另一位大佬的。

百度云链接:https://pan.baidu.com/s/1BeYF8kqEZLAJYQj-MvxpmA

提取码:e1wc

在这里插入图片描述

将缺失的文件移动到对应目录后执行以下命令,重新编译

make clean
make -j4

其他可能遇到的错误及解决方法

报错test_features2d.cpp:51:10: fatal error: features2d/test/test_detectors_regression.impl.hpp

猜你喜欢

转载自blog.csdn.net/qq_19973937/article/details/134989858
今日推荐