zoukankan      html  css  js  c++  java
  • 2020年系统综合实践 第7次实践作业 07组

    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
    
    from picamera.array import PiRGBArray
    from picamera import PiCamera
    import time
    import cv2
     
    camera = PiCamera()
    rawCapture = PiRGBArray(camera)
     
    time.sleep(3) #此处把0.1改成了3
     
    camera.capture(rawCapture, format="bgr")
    image = rawCapture.array
     
    cv2.imshow("Image", image)
    cv2.waitKey(0)
    

    3、利用树莓派的摄像头实现人脸识别


    • 安装人脸识别所需要的库

    pip install dlib &&
    pip install face_recognition &&
    pip install numpy
    
    • 查看是否安装成功

    pip list
    

    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 /dev/vchiq -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_on_raspberry_pi.py

    • (选做)执行示例代码 facerec_from_webcam_faster.py

    • 创建容器

    sudo docker run -it --rm --device=/dev/video0 -e DISPLAY=unix$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -v /home/pi/py_src/:/py_srcdocker_cv:v1 bash
    
    • 执行facerec_from_webcam_faster.py

    5、遇到的问题&解决方法


    • OpenCV编译所需要的依赖包没有全部安装


    在所需依赖包没有全部安装时,就算完成了编译也是用不了的,所以在第一步安装依赖包的时候一定要自己检查过所需依赖是否全部安装。

    • 编译OpenCV中遇到的问题

      • 编译过程中找不到"boostdsc_bgm.i"文件

    出现这个问题的话,去网上找到对应缺失的文件,并将其放在对应的文件夹中。

    • 编译过程中找不到.hph的文件

      通常这些文件都已经在下载好的文件夹中,可以利用查找文件的命令找到这些文件,并且将其复制到对应文件夹中。

    6、小组协作记录


    • 组员分工

    学号 姓名 分工
    031702242 邱健强 查阅资料、实际操作、部分博客编写
    031702244 林明镇 查阅资料
    031702540 陈锦鸿 查阅资料、撰写博客
    • 协作记录

    通过QQ分享屏幕

  • 相关阅读:
    mysql修改库、表、字段 字符集,中文排序
    CENTOS6.5 编译安装MySQL5.7.14
    自己的一个小小的目标
    css 浮动和清除浮动
    移动端调试方法
    Fiddler抓包工具总结
    Vue中错误图片的处理
    跨域资源共享 CORS 详解
    十大排序算法JavaScript实现总结
    javascript实现二叉搜索树
  • 原文地址:https://www.cnblogs.com/lokk/p/13060796.html
Copyright © 2011-2022 走看看