1、在树莓派中安装opencv库
-
安装依赖
如果遇到依赖不满足的话就用 sudo aptitude 包名,再安装过一次,在安装的过程中会提示解决方案,要选择会安装目标包的解决方案。
sudo apt-get update && sudo apt-get upgrade sudo apt-get install build-essential cmake pkg-config sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev sudo apt-get install libxvidcore-dev libx264-dev sudo apt-get install libgtk2.0-dev libgtk-3-dev sudo apt-get install libatlas-base-dev gfortran sudo apt-get install python2.7-dev python3-dev
-
下载OpenCV源码
建议在早上的时候下载,会比较快。
cd ~ wget -O opencv.zip https://github.com/Itseez/opencv/archive/4.1.2.zip unzip opencv.zip wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/4.1.2.zip unzip opencv_contrib.zip
-
安装pip
wget https://bootstrap.pypa.io/get-pip.py sudo python get-pip.py sudo python3 get-pip.py
-
安装Python虚拟机
- 执行命令
sudo pip install virtualenv virtualenvwrapper sudo rm -rf ~/.cache/pip
- 配置~/.profile
执行vim ~/.profile
,添加如下内容,配置完成后执行source ~/.profile
使环境变量生效。export WORKON_HOME=$HOME/.virtualenvs export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv source /usr/local/bin/virtualenvwrapper.sh export VIRTUALENVWRAPPER_ENV_BIN_DIR=bin
- 创建Python虚拟机
mkvirtualenv cv -p python3
- 进入虚拟机(每次进入虚拟机都需要执行一次这个命令)
source ~/.profile workon cv
- 安装numpy
pip install numpy
-
编译OpenCV
- 执行命令
cd ~/opencv-4.1.2/ mkdir build cd build cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_PYTHON_EXAMPLES=ON -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-4.1.2/modules -D BUILD_EXAMPLES=ON ..
- 开始编译前增大交换空间,防止在编译过程中出现内存不足的问题
sudo nano /etc/dphys-swapfile
- 重启,使得交换空间生效
sudo /etc/init.d/dphys-swapfile stop sudo /etc/init.d/dphys-swapfile start
检查Python相关配置
开始编译(大约需要2小时)
make -j4
- 安装OpenCV
sudo make install sudo ldconfig
- 查看CV2文件
ls -l /usr/local/lib/python3.7/site-packages/ cd ~/.virtualenvs/cv/lib/python3.7/site-packages/ ln -s /usr/local/lib/python3.7/site-packages/cv2 cv2
-
验证是否安装成功:
source ~/.profile workon cv python
2、使用opencv和python控制树莓派的摄像头
-
进入虚拟环境
source ~/.profile workon cv
-
安装picamera
pip install "picamera[array]"
-
使用摄像头实现拍照功能
编写好Python代码并执行。
python takePictures.py
3、利用树莓派的摄像头实现人脸识别
-
安装人脸识别所需要的库
pip install dlib && pip install face_recognition && pip install numpy
-
查看是否安装成功
pip list
-
执行face_recognition的示例代码
4、结合微服务的进阶任务
-
安装docker
curl -fsSL https://get.docker.com -o get-docker.sh sh get-docker.sh --mirror Aliyun
-
拉取镜像
sudo docker pull demosense/raspberrypi3-opencv
-
创建容器
sudo docker run -it --rm --device=/devideo0 -e DISPLAY=unix$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -v /home/pi/py_src/:/py_srcdocker_cv:v1 bash
- 容器支持arm
-
进入容器后安装库
pip install dlib && pip install face_recognition && pip install numpy
-
执行示例代码
执行facerec_on_raspberry_pi.py
执行facerec_from_webcam_faster.py
5、遇到的问题&解决方法
-
OpenCV编译所需要的依赖包没有全部安装
在所需依赖包没有全部安装时,就算完成了编译也是用不了的,所以在第一步安装依赖包的时候一定要自己检查过所需依赖是否全部安装。
-
编译OpenCV中遇到的问题
- 编译过程中找不到"boostdsc_bgm.i"文件。可以去网上找到对应缺失的文件,并将其放在对应的文件夹中。
- 编译过程中找不到.hph的文件。通常这些文件都已经在下载好的文件夹中,可以利用查找文件的命令找到这些文件,并且将其复制到对应文件夹中。
6、小组协作记录
-
组员分工
学号 姓名 分工 031702242 邱健强 查阅资料、实际操作 031702244 林明镇 查阅资料 031702540 陈锦鸿 查阅资料、撰写博客
-
协作记录
QQ屏幕分享