• 系统综合实践_7


    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屏幕分享

  • 相关阅读:
    base64模块的使用
    14-类的结构之一:属性
    13-类和对象
    12-数组的常见异常
    11-Arrays工具类的使用
    10-二维数组
    09-一维数组
    08-数组的概述
    07-流程控制
    06-运算符
  • 原文地址:https://www.cnblogs.com/honger125/p/13043323.html
Copyright © 2020-2023  润新知