Jetson OpenCV 安装,支持cuda加速,已解决多个常见问题

一、前言

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

安装依赖库

  1. 输入以下命令
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 的版本要对应正确Jetson OpenCV 安装,支持cuda加速,已解决多个常见问题_第1张图片Jetson OpenCV 安装,支持cuda加速,已解决多个常见问题_第2张图片

编译和安装 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__
  • 正确打印出本次安装版本号即安装正确

  • 在 jtop 中再次查看
    Jetson OpenCV 安装,支持cuda加速,已解决多个常见问题_第3张图片
    可以看到

* OpenCV:	4.5.3	compiled CUDA:	YES
  • 说明本次编译的 OpenCV 支持 CUDA 加速

恭喜已经完成opencv的安装,求赞❤️❤️❤️

你可能感兴趣的:(linux,opencv,嵌入式硬件)