“其他流程网上都有但是要找到适合自己的且没有报错的有点艰难”
首先做好心理准备,用Cmake进行编译的话,每次流程基本上都是2h左右,所以我选择用网线VNC直连后,挂后台处理。
准备:
1.安装Jetson的jtop监控器
2.准备Cmake-gui可视化安装程序(因为之前用代码的话路径容易写错,尽量避免这种情况发生,你也不想再多编译2h吧)
3.确保/usr/lib/中没有其他版本的openCV影响
find / -name "*opencv*" 2>/dev/null
4.推荐ubuntu18.04 + jetpack4.6+CUDA10.2+OpenCV+4.1.1(开始刷机的时候用的4.1.1然后paddlepaddle的4.7覆盖掉了,然后用4.5.3试了一下发现编译的时候.cpp红线报错太多,所以应该是版本不兼容,然后又换回4.1.1)
可以看到版本号:
* OpenCV: 4.1.1 compiled CUDA: NO
5.如果有自带的openCV版本的是默认没有CUDA加速的,下面给出删除方法:
sudo apt purge libopencv*
sudo apt autoremove
sudo apt update
编译安装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
这里给出一点建议,对于这三个包libtiff-dev libjasper-dev libdc1394-22-dev,如果直接用复制粘贴的时候,连不上ubuntu的服务器,所以建议分步sudo apt-get。
也可以尝试换源的方法,看个人习惯。
OpenCV4.1.1 和 opencv_contrib 4.1.1 源码
前往 OpenCV 和 opencv_contrib 的 github 仓库下载 Latest release 源码
编译和安装 OpenCV
- 将 opencv-4.1.1.zip 和 opencv_contrib-4.1.1.zip 放在同一文件夹并解压,将解压后的opencv_contrib-4.1.1放在opencv-4.1.1文件中
- 其实也不用刻意去关注路径,这就是cmake-gui的好处
- 执行命令
cd opencv-4.1.1mkdir buildcd buildsudo cmake-gui
注意:如果用的是4GB的nano的话,在进行编译之前要swap空间。比TX2内存大的都不用考虑。
使用代码:
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=6.2 \-DCUDA_ARCH_PTX=6.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.1.1/modules \..
注意:使用代码的时候,必须要满足文件关系树。
使用gui:勾选后点击Configure..Generate..
检查gui窗口中的路径和 OPENCV_EXTRA_MODULES_PATH以及是否勾选管道GENERATE:
很多博客都有相似的报错(我总结一下):
1.缺少"boostdesc_bgm.i":报错形式为opencv_contrib/modules/xfeatures2d/src/boostdesc.cpp:653:20: fatal error: boostdesc_bgm.i: 没有那个文件或目录#include "boostdesc_bgm.i" ;因此需要下载并解压这个文件并添加到src文件中,
文件应包含下面所有文件:
有的还会出现缺少cuviddec.h文件的问题,可以参考这篇博客:Ubuntu18.04安装Autoware1.14-GPU版(慎用!)_autoware_awsim显卡资源_wweweiweiweiwei的博客-CSDN博客
去网上下载文件:
boostdesc_bgm.i
boostdesc_bgm_bi.i
boostdesc_bgm_hd.i
boostdesc_lbgm.i
boostdesc_binboost_064.i
boostdesc_binboost_128.i
boostdesc_binboost_256.i
vgg_generated_120.i
vgg_generated_64.i
vgg_generated_80.i
vgg_generated_48.i
这里贴上几个网盘链接:
(1)链接:百度网盘 请输入提取码
提取码:p50x
(2)链接:百度网盘 请输入提取码
提出码:e1wc
总结一下编译之中的错误解决方法:
1.如果是出现红色划线:大概率是文件缺失和头文件失效,以及.hpp文件在cmake-gui未勾选导致其他文件调用失败,比如说:有一个opencv_python_test的文件,如果你勾选了,但是你缺少依赖库和文件也会出现报停
2.最常见的报错就是:
CMakeFiles/Makefile2:1289: recipe for target xxx' failed
make[1]: *** [xxx] Error 2
Makefile:160: recipe for target 'all' failed
make: *** [all] Error 2
很有可能是你勾选了此opencv版本不兼容的模块,面向报错检查自己是否勾错。
3.OpenCV版本重叠,例子:如果你没删干净OpenCV,你编译了低版本的Opencv是不会覆盖的,
就算你编译成功了,make install安装的时候也会报错。
Make:
(事先调整 CPU 性能模式打开尽量多的核心)
sudo make -j4(四核编译)
sudo make -j6(六核编译)
编译完成后最后一步:
sudo make install
检查:
python3:
python3
import cv2
cv2.__version__
jtop:
如果还有其他问题:可以参考以下博客:
(73条消息) 解决CMake Error: The source directory “../CMAKE_BULID_TYPE=RELEASE“ does not exist._Dr.Guo的博客-CSDN博客(73条消息) Jetson OpenCV 安装,支持cuda加速,已解决多个常见问题_jetson安装opencv_Not L的博客-CSDN博客
(73条消息) ubuntu 18.04 交叉编译opecv 树莓派4 问题总结_搬砖大学生的博客-CSDN博客
linux安装opencv时make出错-CSDN社区
版权归原作者 YOLOKY 所有, 如有侵权,请联系我们删除。