赞
踩
安装 OpenCV 和 Dlib 不像在 x86 平台下那样简单,用一句命令就可以自动安装完。而在 ARM 平台中许多软件都需要自行下载编译,且还有许多问题,本篇文章就是记录在 ARM 平台下载 OpenCV 踩过的坑。
RK3568 + Ubuntu20.04。
先添加源,以防安装 libjasper-dev 依赖包会有出现问题。
- sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
- sudo add-apt-repository "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe"
-
- sudo apt update
安装需要的依赖库。
- sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config \
- libavcodec-dev libavformat-dev libswscale-dev libjpeg-dev
- libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev \
- libeigen3-dev libtheora-dev libvorbis-dev libxvidcore-dev \
- libx264-dev libgtk-3-dev libtesseract-dev libopenblas-dev \
- liblapack-dev libatlas-base-dev gfortran libprotobuf-dev \
- protobuf-compiler libgoogle-glog-dev libgflags-dev libhdf5-dev \
- liblmdb-dev libsnappy-dev python3-dev python3-numpy python3-pip
修复软件包依赖问题。
sudo apt install -f
如果在添加源后安装 libjasper-dev 包还是出现了问题,就在输入 apt install -f 后再重新安装。
除了下载 OpenCV 源码,还需要下载 opencv_contrib 源码,里面提供了许多额外的功能和工具,用于扩展 OpenCV 库的功能。这个模块中包含了一些实验性质的特征、算法、工具和模块,这些功能通常不包含在核心的 OpenCV 库中。
OpenCV 和 opencv_contrib 源码的版本需要一致,不然可能会出现问题。如果需要在 Python 环境中使用 OpenCV,还需要看一下 Python 版本和 OpenCV 版本的对应关系。作者使用的 Python 版本是 3.8.9,下载的 OpenCV 和 opencv_contrib 的版本是 4.2.0,选择合适的版本下载。
将 OpenCV 和 opencv_contrib 的源码拷贝到开发板中,任意位置都行,然后使用命令解压压缩包。
进入opencv-4.2.0 目录下,并且创建一个 build 目录,然后进去 build 目录下。
- #配置编译选项
- cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=/home/topeet/OpenCV/opencv_contrib-4.2.0/modules -D BUILD_opencv_python3=ON -D PYTHON3_EXECUTABLE=$(which python3) -D PYTHON3_INCLUDE_DIR=$(python3 -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") -D PYTHON3_PACKAGES_PATH=$(python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") -D WITH_GTK_2_X=ON -D WITH_OPENGL=ON ..
-
- #编译
- make -j$(nproc)
-
- #安装
- make install
配置编译选项记得改一下 opencv_contrib 的路径。因为是在开发板上编译,所以过程有点久,然后就是编译过程中会出现编译失败,主要就是下面这两个问题,解决后重新编译即可。
安装 OpenCV 时提示缺少 boostdesc_bgm.i 文件的问题解决方案:
这个报错就是 opencv_contrib 中缺少一些文件,按照下面这位博主的方法解决。
安装OpenCV时提示缺少boostdesc_bgm.i文件的问题解决方案
安装 OpenCV 时提示缺少 test_detectors_regression.imp.hpp 文件的问题解决方案:
这个报错同样也是 opencv_contrib 中缺少一些文件,解决方法是:
将 opencv-4.2.0/modules/features2d/test/ 目录下面的 5 个文件
拷贝到 opencv_contrib-4.2.0/modules/xfeatures2d/test/ 目录下
test_descriptors_invariance.impl.hpp
test_descriptors_regression.impl.hpp
test_detectors_invariance.impl.hpp
test_detectors_regression.impl.hpp
test_invariance_utils.hpp
同时,修改 opencv_contrib-4.2.0/modules/xfeatures2d/test/test_features2d.cpp 文件里头文件的路径。
- #include "features2d/test/test_detectors_regression.impl.hpp"
- #include "features2d/test/test_descriptors_regression.impl.hpp"
修改成下面这样。
修改 opencv_contrib-4.2.0/modules/xfeatures2d/test/test_rotation_and_scale_invariance.cpp 文件里头文件的路径。
- #include "features2d/test/test_detectors_invariance.impl.hpp"
- #include "features2d/test/test_descriptors_invariance.impl.hpp"
修改成下面这样。
输入以下命令进行环境配置。
- #进入配置文件
- sudo vim /etc/ld.so.conf
-
- #在配置文件末尾另起一行加上
- /usr/local/lib
-
- #更新环境配置
- sudo /sbin/ldconfig
sudo apt-get install libboost-all-dev
从 GitHub 上下载 Dlib 源码,拷贝到开发板上进行解压。
进入Dlib 目录下,并且创建一个 build 目录,然后进去 build 目录下。
- #编译
- sudo cmake .. -DDLIB_USE_CUDA=0 -DUSE_AVX_INSTRUCTIONS=1
- cmake --build .
-
- #安装
- cd .. //返回上一级目录
- sudo python setup.py install --no DLIB_USE_CUDA
在 Python 环境下输入
- import cv2
- cv2.__version__
输入 pip3 list 查看 Dlib 的版本。
好了,以上就是在 ARM 平台安装 OpenCV 和 Dlib 的过程,有任何建议和疑问欢迎在评论区中提出来嗷。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。