一、前言
1 :本文主要介绍 Jetson Xavier NX (以下简称 NX ) 平台下 OpenCV 的卸载及编译安装带 CUDA 加速的OpenCV
2 :并提出解决依赖项无法安装的问题
二、默认 OpenCV 卸载
为什么要卸载默认的 OpenCV ?
- 输入命令
sudo jtop
- 按数字6查看INFO页面,可以看到
* OpenCV: 4.1.2 compiled CUDA: NO
- 所以默认的 OpenCV 版本是不带 CUDA 加速的,无法充分利用 NX 的 GPU 性能
卸载默认的 OpenCV 方法
sudo apt purge libopencv*
sudo apt autoremove
sudo apt update
- 直接在文件夹里搜索opencv卸载残余
三、编译安装 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
😝注意——问题解决:
- 若遇到第一条命令无法跑通则先换源;
- 若遇到无法定位libjasper-dev软件包,执行如下命令即可安装
- 方法一:
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 add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev
下载 OpenCV 和 opencv_contrib 源码
- 分别前往 OpenCV 和 opencv_contrib 的 github 仓库下载 Latest release 源码 ( 👈 点击超链接跳转)
- 点击红框所标注的位置即可下载
注意 OpenCV 和 opencv_contrib 的版本要对应正确
编译和安装 OpenCV
- 将 opencv-4.5.3.zip 和 opencv_contrib-4.5.3.zip 放在同一文件夹并解压,将解压后的opencv_contrib-4.5.3放在opencv-4.5.3文件中!
- 执行命令
cd opencv-4.5.3
mkdir build
cd build
- 执行 cmake
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=../opencv_contrib-4.5.3/modules \
..
-
😝注意(坑又来了),如果cmake报错,检查以下地方:
1.DOPENCV_EXTRA_MODULES_PATH要改成opencv_contrib-4.5.3的对应地址
2.DCUDA_ARCH_BIN要改成对应数值,查看方法如下:
cd /usr/local/cuda/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
- 进行 make,然后等待(事先调整 CPU 性能模式打开尽量多的核心)
cat /proc/stat | grep cpu[0-9] -c # 查看线程数
- -j4 编译时间约为 2~3 小时
make -j4 # 四线程编译
- make 编译完成后,进行安装
sudo make install
至此,安装成功
四、检验安装结果
- 在 python3 中运行以下命令
import cv2
cv2.__version__
-
正确打印出本次安装版本号即安装正确文章来源:https://www.toymoban.com/news/detail-804049.html
-
在 jtop 中再次查看
可以看到文章来源地址https://www.toymoban.com/news/detail-804049.html
* OpenCV: 4.5.3 compiled CUDA: YES
- 说明本次编译的 OpenCV 支持 CUDA 加速
恭喜已经完成opencv的安装,求赞❤️❤️❤️
到了这里,关于Jetson OpenCV 安装,支持cuda加速,已解决多个常见问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!