前一篇文章我讲过,树莓派可以干很多事情,其中,就包括了人脸识别等视觉应用,这就需要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
出现如下界面,则表示安装成功
留言