greent00 2020-06-10
# 更新软件源和软件 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
根据教程使用的是OpenCV3.3.0版本
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虚拟机 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 #重新进入前要先执行source ~./profile # 命令行前面是否有(cv),以此作为是否在虚拟机的判断
pip install numpy
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 ..
sudo nano /etc/dphys-swapfile #虚拟机中sudo才可以修改 # 重启swap服务 sudo /etc/init.d/dphys-swapfile stop sudo /etc/init.d/dphys-swapfile start
make j4
编译成功
sudo make install sudo ldconfig
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 #建立软链
在建立软链过程中有可能会失败,或者直接将/usr/local/lib/python3.7/site-packages/下的cv2利用mv命令移动到~/.virtualenvs/cv/lib/python3.7/site-packages/目录下,命令如下:
sudo mv /usr/local/lib/python3.7/site-packages/cv2.cpython-37m-arm-linux-gnueabihf.so ~/.virtualenvs/cv/lib/python3.7/site-packages/cv2.so
source ~/.profile workon cv python import cv2 cv2.__version__ #查看cv2版本
pip install "picamera[array]"
# 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(3) #此处把0.1改成了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)
pip install dlib pip install face_recognition
验证是否安装成功:
#退出python虚拟机 deactivate #脚本安装docker sudo curl -sSL https://get.docker.com | sh #填加用户到docker组 sudo usermod -aG docker pi #重新登陆以用户组生效 exit && ssh #验证docker版本 docker --version
sudo docker pull sixsq/opencv-python
docker run -it [imageid] /bin/bash pip install "picamera[array]" dlib face_recognition
docker commit [containerid] [自定义镜像名]
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
python3 facerec_on_raspberry_pi.py
在Windows系统中安装XMing
启动putty
查看DISPLAY环境变量值
编辑并启动脚本run.sh
xhost + #允许来自任何主机的连接 docker run -it --rm -v ${PWD}/workdir:/worksapce --net=host -v $HOME/.Xauthority:/root/.Xauthority -e DISPLAY=:0.0 \ #此处填写上面查看到的变量值 -e QT_X11_NO_MITSHM=1 --device=/dev/vchiq --device=/dev/video0 myopencv recognition.py
问题1:安装虚拟机时报错,错误如下图:
解决方案:在~./profile中追加两句:
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv export VIRTUALENVWRAPPER_ENV_BIN_DIR=bin
问题2:编译过程中没有hpp类文件,如下图:
解决方案:其实这个文件是存放在opencv-contrib目录下的,打开报错文件路径,将其hpp文件路径改为绝对路径
sudo nano /home/pi/opencv-3.3.0/modules/stitching/include/opencv2/stitching/detail/matchers.hpp #include "opencv2/xfeatures2d/cuda.cpp" //改为以下一句 #include "/.../opencv_contrib-3.3.0/modules/xfeatures2d/include/opencv2/xfeatures2d/cuda.cpp"
之后的hpp文件也是以上的方法,后面不在赘述
问题3:编译OpenCV过程中报错没有定义AVFMT_PAWPICTURE,如下图:
解决方案:找到报错文件路径,编译文件,在文件顶部添加以下内容:
#编辑文件 sudo nano /home/pi/opencv-3.3.0/modules/videoio/src/cap_ffmpeg_impl.hpp ##添加以下内容 #define AV_CODEC_FLAG_GLOBAL_HEADER (1 << 22) #define CODEC_FLAG_GLOBAL_HEADER AV_CODEC_FLAG_GLOBAL_HEADER #define AVFMT_RAWPICTURE 0x0020
问题4:找不到boostdesc_bgm.i文件
解决方案:在本机直接下载该文件,将这些文件复制到树莓派的/home/pi/opencv/opencv_contrib-3.3.0/modules/xfeatures2d/src目录中即可。
参考博客,里面附带资源
问题5:char转换错误,此处忘记截图
解决方案:打开错误文件,修改代码
问题6:在安装OpenCV后创建软链失败,导致验证结果错误
解决方案:直接将CV2文件移到相应的目录下即可。
问题7:在pip install face_recognition时下载的非常慢,还一直报网络错误
解决方案:在本机打开终端下载时显示的网站下载相应的文件,然后再复制保存到相应的文件夹安装即可。
问题8:树莓派无法连接WiFi,这个真的是把我们给坑惨了[吐血]
解决方案:搞了一下午,才发现是电源没有接好,原来电源没有接好是会影响树莓派联网??所以,下次得记得一定要接好电源。
问题9:在commit镜像是显示空间不足,错误如下图:
解决方案:删除了一些垃圾,空出来了200多M的空间,得以解决。
学号 | 姓名 | 各自贡献 |
---|---|---|
031702301 | 王瑞卿 | 查阅资料,编写部分博客 |
031702312 | 鲍冰如 | 实际操作树莓派 |
031702313 | 周丽榕 | 查阅资料,编写部分博客 |