摸鱼一号选手

导航

 

(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 林立 查找资料,帮忙解决遇到的问题,编写博客

在线协作图片

posted on 2020-06-12 10:38  摸鱼一号选手  阅读(163)  评论(2编辑  收藏  举报