前一篇文章我讲过,树莓派可以干很多事情,其中,就包括了人脸识别等视觉应用,这就需要opencv了,来帮助你完成开发了!

opencv,名字听上去很高大上,其实则不然,opencv是一个开源的机器视觉和机器学习的软件库,它十分轻量的优点,适用于像树莓派这种开发板。opencv现在主要用python和C++编写,适用于Linux,Windows,MacOS等操作系统中!

屁话不多说,直接开冲

一,安装前的各种准备

1.1 基本设置

1.1.1开关设置

首先,进入配置页面

sudo raspi-config


进入第5项Interfacing Options,打开摄像头、SSH、VNC(这三个必须的,可以一一都打开)等。即每项进入后,进行使能enable,确认

1.1.2 扩容设置

扩展一下容量。进入第7项Advanced Options,再进入第1项
系统会自动重启(如果没有重启,可以手动输入sudo reboot重启)

至此,我们的树莓派就已经配置完了,可以进入下一步————安装opencv4.1.1

二,树莓派安装OpenCV4.1.1

2.1 可能遇到的问题

2.1.1 增加虚拟内存(必须做)

sudo nano /etc/dphys-swapfile

更改虚拟内存,将100改成2048,如下图所示。记得Ctrl+O ,Enter,Ctrl+X

sudo service dphys-swapfile restart


重启相关服务

2.2 更换国内源(重点!!!)

首先,更换软件源

sudo nano /etc/apt/sources.list

将原来的地址用“#”注释掉,换成清华源(也可以换成其他源,比如中科大源),用下面内容替代。接着Ctrl+O,回车, Ctrl+X退出

deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib


更换系统源

sudo nano /etc/apt/sources.list.d/raspi.list

2.3更新

sudo apt-get update

sudo apt-get upgrade

2.4 安装numpy

sudo pip3 install numpy

2.5 安装opencv的依赖包

sudo apt-get install build-essential cmake git pkg-config -y 
sudo apt-get install libjpeg8-dev -y
sudo apt-get install libtiff5-dev -y
sudo apt-get install libjasper-dev -y
sudo apt-get install libpng12-dev -y
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev -y(注意最后一个包的数字“4”后面是“L”)
sudo apt-get install libgtk2.0-dev -y
sudo apt-get install libatlas-base-dev gfortran -y

注意,如果安装依赖时报错,就再执行一边,不然后面会出错

2.6 下载两个opencv的压缩文件

下载两个压缩包到树莓派的/home/pi/Downloads目录下

用电脑把百度网盘里的文件下载下来,把第一个压缩包重命名为opencv-3.4.0.zip,把第二个改成opencv——contrib-3.4.0.zip

链接:https://pan.baidu.com/s/1SqHJwRkKqoRsmDP-gZ9hEg 提取码:3swp

然后用winscp把两个文件传到树莓派的Downloads文件夹下

2.7 解压文件

cd /home/pi/Downloads
unzip opencv-4.1.1.zip
unzip opencv_contrib-4.1.1.zip

2.8 设置编译参数

cd /home/pi/Downloads/opencv-4.1.1
mkdir build
cd build

2.9 设置CMAKE参数

注意,下面这是一行命令(包括最后那俩点儿),需要耐心等待五分钟左右(根据型号判断)

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D OPENCV_EXTRA_MODULES_PATH=/home/pi/Downloads/opencv_contrib-4.1.1/modules -D BUILD_EXAMPLES=ON -DCMAKE_SHARED_LINKER_FLAGS='-latomic' -D WITH_LIBV4L=ON PYTHON3_EXECUTABLE=/usr/bin/python3.7 PYTHON_INCLUDE_DIR=/usr/include/python3.7 PYTHON_LIBRARY=/usr/lib/arm-linux-gnueabihf/libpython3.7m.so PYTHON3_NUMPY_INCLUDE_DIRS=/home/pi/.local/lib/python3.7/site-packages/numpy/core/include ..

2.10 编译

cd /home/pi/Downloads/opencv-4.1.1/build
make

(树莓派4B版本可以执行make -j4,多线程编译,这样会比较快)

注意:保证树莓派有至少5G的存储空间,建议本命令用树莓派桌面上的命令行工具运行,而不要使用无线远程ssh连接。因为执行命令时间太长,中途如果ssh断线的话无法得知是否已经安装完毕。

注意:静待五个小时的编译。注意,在此期间,树莓派要供电充足,不要运行其它任务,以免因为内存不够什么的幺蛾子报错。

2.11 编译中会遇到的报错

2.11.1 报错1


解决办法:将以下百度网盘里的文件复制到/home/pi/Downloads/opencv_contrib-4.1.1/modules/xfeatures2d/src 路径

链接:https://pan.baidu.com/s/1m1K272GEzC89z61RWltLLA
提取码:kqkq

2.11.2 报错2


第一步,在VNC文件管理中/home/pi/Downloads/opencv-4.1.1/modules/features2d/test路径下,下面两个文件进行复制

第二步,将上面两个文件粘贴到/home/pi/Downloads/opencv_contrib-4.1.1/modules/xfeatures2d/test路径下

第三步,打开下面这个文件

第四步,将头文件引用改成下图所示

2.11.3 报错3


解决办法:同样的步骤
第一步,复制

第二步,粘贴

第三步,打开下面文件

第四步,修改头文件引用

2.11.4 报错4


解决办法:同样的操作
第一步,复制

第二步,粘贴

第三步,打开下面文件

第四步,添加头文件引用(前面是修改,这个是需要添加)

2.12 接着make

接下来的编译就没遇到问题了

cd /home/pi/Downloads/opencv-4.1.1/build
sudo make install

2.13 测试

cd ~
python3
import cv2


出现如下界面,则表示安装成功

至此,树莓派opencv的安装就彻底结束啦,就可以尽情的享受人工智能开发的乐趣了

最后修改日期:2020年8月8日

作者

留言

发表评论