前言
在宇树四足机器狗开发过程中,可能会碰到无法调用aruco库实现二维码检测,这是因为没有安装opencv_contrib库,安装opencv_contrib库需要卸载现有的opencv,然后重新安装,本文就是记录这个过程,亲测有效。
测试环境:python3.6、jetpack4.5、opencv4.1.1
注意:jetson nano如果用了emmc作为系统盘的话,存储容量不能支撑完整个编译过程,需要在大于16g系统盘上编译安装(选择大容量ssd、sd卡等作为系统盘)
安装前需要先下载相关安装文件
链接:https://pan.baidu.com/s/1qjeADETquLnBruEFm0r5og?pwd=1n9z
提取码:1n9z
一、卸载系统中老版本opencv
打开终端逐行执行以下代码
sudo apt-get purge libopencv*
sudo apt autoremove
sudo apt-get update
二、安装依赖项
打开终端逐行执行以下代码
sudo apt-get install build-essential
sudo apt-get install libglew-dev libtiff5-dev zlib1g-dev libjpeg-dev libavcodec-dev libavformat-dev libavutil-dev libpostproc-dev libswscale-dev libeigen3-dev libtbb-dev libgtk2.0-dev pkg-config libpng-dev
sudo apt-get install libatlas-base-dev gfortran
sudo apt update
三、编译安装
把百度网盘中下载的opencv4文件夹放到Jetson Nano的home目录下,然后打开终端执行以下命令
cd opencv4/opencv-4.1.1
mkdir build
cd build
cmake \
cmake \后会跳出让你输入指令,复制以下内容过去
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_PNG=ON \
-DBUILD_TIFF=ON \
-DBUILD_TBB=ON \
-DBUILD_JPEG=ON \
-DBUILD_JASPER=OFF \
-DBUILD_ZLIB=OFF \
-DBUILD_EXAMPLES=OFF \
-DBUILD_opencv_java=OFF \
-DBUILD_opencv_python2=ON \
-DBUILD_opencv_python3=ON \
-DENABLE_PRECOMPILED_HEADERS=OFF \
-DWITH_OPENCL=ON \
-DWITH_OPENMP=ON \
-DWITH_FFMPEG=ON \
-DWITH_GSTREAMER=ON \
-DWITH_GSTREAMER_0_10=ON \
-DWITH_CUDA=ON \
-DWITH_GTK=ON \
-DWITH_VTK=ON \
-DWITH_TBB=ON \
-DWITH_1394=OFF \
-DWITH_OPENEXR=OFF \
-DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-10.2 \
-DCUDA_ARCH_BIN=5.3 \
-DCUDA_ARCH_PTX="" \
-DINSTALL_C_EXAMPLES=ON \
-DOPENCV_ENABLE_NONFREE=ON \
-DINSTALL_TESTS=OFF \
-DOPENCV_EXTRA_MODULES_PATH=/home/此位置根据实际情况填写/opencv4/opencv_contrib-4.1.1/modules \
..
注意以下几个参数
#(1)DOPENCV_EXTRA_MODULES_PATH要改成opencv_contrib-4.1.1的对应地址
#(2)DCUDA_ARCH_BIN要改成对应数值,查看方法如下:
cd /usr/local/cuda/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
参数复制过去后回车开始执行cmake
都结束后进行 make,然后等待(事先调整 CPU 性能模式打开尽量多的核心)
执行以下指令
sudo make -j4 #卡100%可能是内存爆了,改j1试一试,编译遇见卡不动就重启,重新编译
结束后
sudo make install
四、测试
逐行输入以下指令
python3
import cv2
cv2.__version__
import cv2
import cv2.aruco as aruco
print("Aruco module is available")
总结
以上就是基于Jetson Nano的opencv-4.1.1和opencv_contrib-4.1.1版本的编译安装。