zoukankan      html  css  js  c++  java
  • 系统综合实践第七次实践作业第22组

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

    安装依赖

    # 更新软件源和软件
    sudo apt-get update && sudo apt-get upgrade
    #cmake开发者工具
    sudo apt-get install build-essential cmake pkg-config
    # 图片I/O包
    sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
    # 视频I/O包
    sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev$ sudo apt-get install libxvidcore-dev libx264-dev
    # 安装GTK
    sudo apt-get install libgtk2.0-dev libgtk-3-dev
    # 安装性能优化包
    sudo apt-get install libatlas-base-dev gfortran
    # 安装python
    sudo apt-get install python2.7-dev python3-dev
    

    下载OpenCV源码

    cd ~
    wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.3.0.zip
    unzip opencv.zip
    wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.3.0.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虚拟机

    # 安装python虚拟机
    sudo pip install virtualenv virtualenvwrapper
    sudo rm -rf ~/.cache/pip
    
    # 配置 ~/.profile,添加以下内容:
    # virtualenv and virtualenvwrapper
    export WORKON_HOME=$HOME/.virtualenvs
    export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
    source /usr/local/bin/virtualenvwrapper.sh
      
    # 使之生效
    source ~./profile
      
    # 创建cv虚拟环境
    mkvirtualenv cv -p python3
      
    # 进入虚拟机
    workon cv    
    

    安装numpy

    pip install numpy
    

    编译OpenCV

    配置

    cd ~/opencv-3.3.0/
    mkdir build
    cd build
    # 设置cmake构建选项
    cmake -D CMAKE_BUILD_TYPE=RELEASE 
        -D CMAKE_INSTALL_PREFIX=/usr/local 
        -D INSTALL_PYTHON_EXAMPLES=ON 
        -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.3.0/modules 
        -D BUILD_EXAMPLES=ON ..
    

    编译前,需要增大交换空间CONF_SWAPSIZE=1024,避免内存不足,重启swap服务

    sudo nano /etc/dphys-swapfile  #虚拟机中sudo才可以修改
    # 重启swap服务
    sudo /etc/init.d/dphys-swapfile stop
    sudo /etc/init.d/dphys-swapfile start
    

    开始编译

    make -j4
    

    安装OpenCV

    sudo make install
    sudo ldconfig
    

    检查OpenCV安装位置,并建立软链

    ls -l /usr/local/lib/python3.7/site-packages/ #查看cv2
    cd ~/.virtualenvs/cv/lib/python3.7/site-packages/
    ln -s /usr/local/lib/python3.7/site-packages/cv2.cpython-37m-arm-linux-gnueabihf.so cv2.so #建立软链
    

    验证安装

    source ~/.profile 
    workon cv
    python
    import cv2
    cv2.__version__  
    

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

    picamera模块安装

    pip install "picamera[array]"
    

    导入程序代码进行拍照测试

     # 导入必要的依赖包
      from picamera.array import PiRGBArray
      from picamera import PiCamera
      import time
      import cv2
      # 初始化摄像头
      camera = PiCamera()
      rawCapture = PiRGBArray(camera)
      # 调整感光时间
      time.sleep(3)
      # 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)
    

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

    在cv中安装依赖

    pip install dlib
    pip install face_recognition
    

    运行下载的facerec_on_raspberry_pi.py文件

    python3 facerec_on_raspberry_pi.py
    

    安装webcam

    sudo apt-get install fswebcam
    

    运行下载的facerec_from_webcam_faster.py文件

    python3 facerec_from_webcam_faster.py
    

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

    docker安装

    curl -fsSL https://get.docker.com -o get-docker.sh
    sh get-docker.sh --mirror Aliyun
    

    拉取镜像

    sudo docker pull sixsq/opencv-python
    

    进入容器并安装所需依赖

    docker run -it [imageid] /bin/bash
    pip install "picamera[array]" dlib face_recognition
    

    commit更新容器建立新的镜像

    docker commit [containerid] [自定义镜像名]
    

    编写dockerfile文件构建镜像并运行程序

    dockerfile文件:

    FROM my-opencv
    
    MAINTAINER GROUP20
    
    RUN mkdir /workspace
    
    WORKDIR /worksapce
    
    COPY /workspace .
    

    构建镜像

    sudo docker build myopencv .
    

    运行容器

    docker run -it --device=/dev/vchiq --device=/dev/video0 myopencv myopencv
    

    运行facerec_on_raspberry_pi.py

    python3 facerec_on_raspberry_pi.py
    

    (5)遇到的问题和解决方法,提供小组成员名单、分工、各自贡献以及在线协作的图片

    遇到的问题及解决方法

    装包问题?

    描述:在安装各类依赖的时候就很容易给自己绕进去---”xx包依赖于xx包,但xx包已安装,因为你要求这样。。“

    分析:很好李姐,因为你安装的不同包依赖的同一包的不同版本(雾),出现了冲突。但也不全是apt-get的锅,跟你换的源也有一定关系。

    解决:

    一般解决:安装aptitude(一个更负责的apt-get)

    sudo apt-get install aptitude

    特别的:重新烧制系统后(如果你中毒太深aptitude也安装不了),我大胆的尝试不换源,结果一路顺风(速度也没有受到影响,这实在是太迷了)。

    解压问题?

    描述:opencv-contrib.zip似乎不能用unzip解压。

    解决:jar xvf opencv-contrib.zip

    虚拟环境问题?

    描述:putty中用workon cv可以进入环境,但是因为要display进入vnc图像界面打开终端却不能进入了。

    解决:把虚拟环境脚本放到bashrc里(类似于全局变量。。)

    vim ~/.bashrc

    在最后添加

    source /usr/local/bin/virtualenvwrapper.sh

    然后重启终端

    问题的问题?

    这次实验战线拖的太长,经常忘记之前遇到的一些问题,在写报告的时候也不好复盘,以后记得在遇到有价值的问题的时候截图。

    小组分工

    学号 姓名 分工
    071708131 许宏健 查找资料,帮忙解决遇到的问题
    081700414 贾懿 操作树莓派,解决实际问题
    021700913 林立 查找资料,帮忙解决遇到的问题,编写博客

    在线协作图片

  • 相关阅读:
    像草一样,朝海生长
    那一次,我们属于彼此
    discuz !NT 3.5 论坛整合 .net 网站用户登录,退出
    oracel 10g 网络服务管理: 主机登录
    断章
    屏蔽浏览器左下角的js错误提示
    IE下载的文件自动加上中括号的Bug解决方案
    oracle下重置用户的所有序列
    循环追加表空间的数据文件的存储过程
    查询所有连接到ORACLE服务器的客户端IP地址的方法
  • 原文地址:https://www.cnblogs.com/hurricane1/p/13097511.html
Copyright © 2011-2022 走看看