Jetson NX Xavier 编译opencv4.4(cuda版)


*序言

大部分人在解决问题的时候,百度输入的关键词不够准确,展示出来的页面多数是跟自己用的系统版本不一致,导致安装失败。这点对于新手来说特别要注意,正如,你刚好看到我的文章,我希望你能在搜索时用 硬件 + 系统 + 要解决的问题 格式,说不定能提高你的检索效率。另外说一句,在2023年,有一款工具 ChatGPT 也是根据你提的问题回答。

00|系统信息

cat /etc/lsb-release

结果:

ISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.6 LTS"

01|下载安装Jtop

1、下载jtop源码

git clone https://github.com/rbonghi/jetson_stats.git

2、通过winscp传输到Jetson中,解压文件,进入jetson_stats文件夹

cd jetson_stats/
sudo python3 ./setup.py install

3、重启Jetson

4、运行top
在这里插入图片描述

5、按数字6,查看cuda有无
在这里插入图片描述

02|卸载自带的opencv

2.1 为什么要卸载自带的opencv

● 输入命令

jtop

● 按数字6查看INFO页面,可以看到

* OpenCV:   4.1.1   compiled CUDA:  NO

在这里插入图片描述

● 所以默认的 OpenCV 版本是不带 CUDA 加速的,无法充分利用 NX 的 GPU 性能

2.2 卸载默认的方法

sudo apt purge libopencv*
sudo apt autoremove
sudo apt update

2.3 安装依赖库

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

安装过程中,如出现libjasper-dev, libpng12-dev定位不到软件包

sudo gedit /etc/apt/sources.list

# 在文件末尾,添加下面的信息
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe

sudo apt update
  • 编译参数

先在~/opencv4.4/opencv4.4.0目录下创建bulid目录并切换到build目录

mkdir build && cd build
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=7.2 \
-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=~/opencv4.4/opencv_contrib-4.4.0/modules \
..
sudo make -j$(nproc)
sudo make install
  • 卸载默认的方法
sudo make uninstall

cd ..
sudo rm -rf build
pkg-config opencv --libs
pkg-config opencv --modversion

03|Nvidia预构建opencv-cuda4.5

通常来说,编译opencv少则半天,多则一天,甚至几天都搞不好。所以,在浏览信息时,意外找到一个Nvidia内部团队已经编译好的opencv-cuda4.5,则能为你省时省力。

3.1、下载预构建文件

OpenCV-4.5.0-aarch64.tar.gz下载链接: https://pan.baidu.com/s/1vDSlWr97TfSC9F7RrM0EEw?pwd=i32f 提取码: i32f

3.2、安装OpenCV-4.5.0-aarch64.tar.gz

tar -zxvf OpenCV-4.5.0-aarch64.tar.gz
cd OpenCV-4.5.0-aarch64
sudo dpkg -i *.deb

3.3、查看是否安装成功
打开任意一个终端,输入jtop,按数字6查看INFO页面,可以看到opencv那栏的CUDA,显示为YES。

参考资料

1、知乎:Jetson NX Xavier Opencv安装
2、知乎:官方隐藏资源:Jetson伪超频与CUDA版OpenCV

猜你喜欢

转载自blog.csdn.net/weixin_43849871/article/details/129556149