链接 OpenCV 和 TensorRT 到 conda 环境

1. 重新安装和编译 OpenCV

  • Jetson Xavier NX, Jetpack 4.6.1, OpenCV 4.1.1, TensorRT 8.2.1.8

1.1 卸载现有的 OpenCV

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

1.2 安装依赖项

sudo apt-get update
sudo apt-get install -y build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
sudo apt-get install -y python2.7-dev python3.6-dev python-dev python-numpy python3-numpy
sudo apt-get install -y libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev
sudo apt-get install -y libv4l-dev v4l-utils qv4l2 v4l2ucp
sudo apt-get install -y wget

1.3 下载并解压 opencv-4.1.1 和 opencv_contrib-4.1.1

wget https://github.com/opencv/opencv/archive/4.1.1.zip -O opencv-4.1.1.zip && unzip opencv-4.1.1.zip
wget https://github.com/opencv/opencv_contrib/archive/4.1.1.zip -O opencv_contrib-4.1.1.zip && unzip opencv_contrib-4.1.1.zip

1.4 下载 boostdesc_bgm

unzip boostdesc_bgm_eg.zip -d modules/xfeatures2d/src/ && rm boostdesc_bgm_eg.zip

1.5 编译 OpenCV 4.1.1

1.5.1 创建并进入opencv-4.1.1/build文件夹
mkdir -p opencv-4.1.1/build && cd opencv-4.1.1/build
  • 当前的文件夹结构应为
home
└─jetson
  └─wheels
    ├─opencv-4.1.1
    │  └─build    (当前的位置)
    └─opencv_contrib-4.1.1
       └─modules
1.5.2 编译 OpenCV 到 conda 环境
  • 需要配置链接 OpenCV 的 conda 环境的路径为/home/jetson/miniconda/envs/Yolov5, 请自行替换对应环境的路径
cmake \
-DBUILD_opencv_python3=ON \
-DBUILD_opencv_python2=OFF \
-DPYTHON3_EXECUTABLE=/home/jetson/miniconda3/envs/Yolov5/bin/python3.6m \
-DPYTHON_INCLUDE_DIR=/home/jetson/miniconda3/envs/Yolov5/include/python3.6m \
-DPYTHON_LIBRARY=/home/jetson/miniconda3/envs/Yolov5/lib/libpython3.6m.so \
-DPYTHON_NUMPY_INCLUDE_DIRS=/home/jetson/miniconda3/envs/Yolov5/lib/python3.6/site-packages/numpy/core/include \
-DPYTHON_PACKAGES_PATH=/home/jetson/miniconda3/envs/Yolov5/lib/python3.6/site-packages \
-DPYTHON_DEFAULT_EXECUTABLE=/home/jetson/miniconda3/envs/Yolov5/bin/python3.6m \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DBUILD_EXAMPLES=OFF \
-DOPENCV_GENERATE_PKGCONFIG=ON \
-DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda \
-DCMAKE_BUILD_TYPE=RELEASE \
-DOPENCV_ENABLE_NONFREE=1 \
-DWITH_FFMPEG=1 \
-DCUDA_ARCH_BIN=7.2 \
-DCUDA_ARCH_PTX=7.2 \
-DWITH_CUDA=1 \
-DENABLE_FAST_MATH=1 \
-DCUDA_FAST_MATH=1 \
-DWITH_CUBLAS=1 \
-DBUILD_opencv_xfeatures2d=OFF \
-DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.1.1/modules ..

1.5.3 编译

make -j6
sudo make install
  • 如果在编译时出现错误,可以在问题解决后直接使用make -j6命令继续编译
  • OpenCV编译问题笔记
  • 编译后的文件在opencv-4.1.1/build/lib

3. 链接 OpenCV 和 TensorRT 到 conda 环境

3.1 opencv
  • 完成 opencv4.1.1 的编译后, 要链接到 conda 环境的文件是cv2.cpython-36m-aarch64-linux-gnu.so, 路径是opencv-4.1.1/build/lib/python3/
ln -s /home/jetson/wheels/opencv/opencv-4.1.1/build/lib/python3/cv2.cpython-36m-aarch64-linux-gnu.so /home/jetson/miniconda3/envs/Yolov5/lib/python3.6
  • 当前所处的文件夹是/home/jetson/wheels/opencv-4.1.1/build/
  • 需要链接的 conda 环境的路径是/home/jetson/miniconda3/envs/Yolov5/
  • 请根据需要自行替换路径
3.2 TensorRT
sudo ln -s /usr/lib/python3.6/dist-packages/tensorrt* /home/jetson/miniconda3/envs/Yolov5/lib/python3.6/site-packages/
  • Jetpack 预装的 TensorRT的路径是/usr/lib/python3.6/dist-packages/tensorrt*
  • 需要链接的 conda 环境的路径是/home/jetson/miniconda3/envs/Yolov5/
  • 请根据需要自行替换路径

OpenCV编译相关问题

1. liblibprotobuf.io

  • 报错信息

    [ 26%] Linking CXX static library ../lib/liblibprotobuf.a 
    [ 26%] Built target libprotobuf Makefile:162: recipe for target 'all' failed 
    make: *** [all] Error 2
    
  • 解决方法

    因为 eigen 库默认安装在了/usr/include/eigen3/Eigen路径下, 需使用下面命令映射到/usr/include路径下

    sudo apt-get install libeigen3-dev
    sudo ln -s /usr/include/eigen3/Eigen /usr/include/Eigen
    

2. opencv_perf_ximgproc

  • 报错信息

    [ 85%] Linking CXX executable ../../bin/opencv_perf_ximgproc
    [ 85%] Built target opencv_perf_ximgproc
    Makefile:162: recipe for target 'all' failed
    make: *** [all] Error 2
    
  • 解决方法

    在cmake命令中添加-DBUILD_opencv_xfeatures2d=OFF来禁用xfeatures2d的编译

    DBUILD_opencv_xfeatures2d=OFF
    

Reference

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值