• 2020系统综合实践 第7次实践作业 04组


    目录

    (1)在树莓派中安装opencv库

    安装依赖

    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 2
    unzip opencv-master.zip
    unzip opencv_contrib-master.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 ,添加如下,并使用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
    

    在这里插入图片描述
    使用Python3安装虚拟机

     mkvirtualenv cv -p python3
    

    进入虚拟机

    source ~/.profile && workon cv
    

    ​ 可以看到前面有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_C_EXAMPLES=ON 
    -D INSTALL_PYTHON_EXAMPLES=ON 
    -D OPENCV_EXTRA_MODULES_PATH=/home/pi/2/opencv_contrib-master/modules  
    -D BUILD_EXAMPLES=ON 
    -D WITH_LIBV4L=ON 
    -D PYTHON3_EXECUTABLE=/usr/bin/python3.7 
    -D PYTHON_INCLUDE_DIR=/usr/include/python3.7 
    -D PYTHON_LIBRARY=/usr/lib/arm-linux-gnueabihf/libpython3.7m.so 
    -D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include 
    ..
    

    调整swap交换文件大小,增大了交换空间CONF_SWAPSIZE=1024

    sudo nano /etc/dphys-swapfile  #虚拟机中sudo才可以修改
    sudo /etc/init.d/dphys-swapfile stop
    sudo /etc/init.d/dphys-swapfile start
    make -j4
    


    直接炸裂,查询好多博客,都不行,不得不重新烧录,并重新安装依赖。

    安装opencv

    pip3 install opencv-python
    


    安装成功

    (2)使用opencv和python控制树莓派的摄像头

    拍照

    # import the necessary packages
    from picamera.array import PiRGBArray
    from picamera import PiCamera
    import time
    import cv2
     
    # initialize the camera and grab a reference to the raw camera capture
    camera = PiCamera()
    rawCapture = PiRGBArray(camera)
     
    # allow the camera to warmup
    time.sleep(5) 
     
    # grab an image from the camera
    camera.capture(rawCapture, format="bgr")
    image = rawCapture.array
     
    # display the image on screen and wait for a keypress
    cv2.imshow("Image", image)
    cv2.waitKey(0)
    

    录屏

    import cv2
    cap = cv2.VideoCapture(0)
    while(1):
        ret, frame = cap.read()
        cv2.imshow("capture", frame)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    cap.release()
    cv2.destroyAllWindows()
    

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

    代码
    先到链接中下载相关模块(感谢18组的分享)

    python -m pip install face_recognition_models-0.3.0-py2.py3-none-any.whl
    python -m pip install face_recognition-1.3.0-py2.py3-none-any.whl
    

    pip install dlib
    pip install face_recognition
    



    安装成功

    facerec_on_raspberry_pi.py

    facerec_from_webcam_faster.py

    (4)结合微服务的进阶任务

    安装docker

    #脚本安装docker
    curl -fsSL https://get.docker.com -o get-docker.sh
    #执行安装脚本(使用阿里云镜像)
    sh get-docker.sh --mirror Aliyun
    #填加用户到docker组
    sudo usermod -aG docker $USER
    #验证docker版本
    docker --version
    


    配置docker的镜像加速

    sudo nano /etc/docker/daemon.json
    
    
    {
      "registry-mirrors": ["https://arsotopd.mirror.aliyuncs.com"]
    }
    

    编辑完成后,restart一下docker

    service docker restart
    

    定制自己的opencv镜像

    下载facerec_on_raspberry_pi示例镜像并开启容器

    sudo docker run -it 
    --name face_recognition 
    --device /dev/vchiq 
    registry.cn-hangzhou.aliyuncs.com/denverdino/face_recognition 
    bash
    

    查看facerec_on_raspberry_pi示例代码及结果

    python3 tel5.py
    


    facerec_from_webcam_faster.py

    权限分配

    # 允许所有用户访问显示接口,在树莓派拥有者端操作比较方便
    xhost +
    

    创建容器

    sudo docker run -it --rm --device=/devideo0 -e DISPLAY=unix$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -v /home/pi/Desktop/face-recognition:/face-recognition demosense/raspberrypi3-opencv ash
    

    运行结果

    (5)以小组为单位,发表一篇博客,记录遇到的问题和解决方法,提供小组成员名单、分工、各自贡献以及在线协作的图片

    问题及解决

    opencv安装问题

    解决:手动加载一个库文件

    sudo nano .bashrc
    
    export LD_ sudo nano .bashrc PRELOAD=/usr/lib/arm-linux-gnueabihf/libatomic.so.1
    

    安装facerec_on_raspberry_pi速度慢

    解决:网上直接下载相关模块
    make j4翻车

    解决:装完依赖直接安装opencv

    协作

    学号 姓名 分工
    031702234 林银河 资料查询,现场及在线指导
    031702241 苏杰隆 资料查询,实际操作
    031702236 王耀鑫 资料查询,博客撰写

    我们都在同一个城市,所以6月5日下午一起做实验,第二天在线上完成最后的工作。


  • 相关阅读:
    手机APP测试环境搭建---appium
    Python实现H5页面
    Git的基础学习
    python UI自动化测试
    python selenium常用基本方法---H5和键盘鼠标操作
    python基础方法
    ResultSetMetaData和DatabaseMetaData实现数据库中属性,属性值,属性所赋值的获取等
    DAO模型设计实现数据的 增,删,改,查方法
    利用反射及jdbc元数据实现通用的查询方法
    PreparedStatement接口及其方法的使用
  • 原文地址:https://www.cnblogs.com/lyhtsl/p/13061290.html
Copyright © 2020-2023  润新知