赞
踩
目录
要实现图像识别,首先就是要获取图像,所以懂得如何安装及使用树莓派CSI摄像头就非常重要。
图.树莓派CSI摄像头
(1) 进入树莓派终端系统,输入以下指令进行下载并安装最新的内核,GPU 固件及应用程序
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo apt-get update
- sudo apt-get upgrade
- </code></span></span>
(2) 运行以下命令树莓派配置工具来激活摄像头模块
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo raspi-config
- </code></span></span>
依次选择Interfacing Options——>Camera——>Enable——>tab——>Finish
(3)重启树莓派
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo reboot
- </code></span></span>
(4)测试摄像头
输入命令行,如果得到下面的结果,则证明摄像头连接成功
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>vcgencmd get_camera
- </code></span></span>
输入命令,在桌面会显示一张命名为image1.jpg的图片
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>raspistill -o Desktop/image1.jpg
- </code></span></span>
(5)至此,树莓派摄像头软硬件配置到此完成
OpenCV是开源计算机视觉库,拥有强大的内置函数和开源社群。OpenCV配合便携开源廉价的树莓派,可以直接读取来自树莓派摄像头PiCamera的视频,进行人脸识别、边缘检测、语义分割、自动驾驶、图像识别等各种计算机视觉开发。
(1)更新树莓派
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo apt-get update
- sudo apt-get upgrade
- </code></span></span>
(2)安装依赖
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>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
- </code></span></span>
(3)安装python3
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo apt-get install python3 python3-setuptools python3-dev
- </code></span></span>
(4)设置pip工具
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>wget https://bootstrap.pypa.io/get-pip.py
- sudo python3 get-pip.py
- </code></span></span>
(5)增大swap空间
找到CONF_SWAPSIZE这个变量,将100改成1024,表示swap大小从100MB增加到1024MB,可以方便OpenCV使用4核编译ctrl+o保存,ctrl+d退出
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo nano /etc/dphys-swapfile
- </code></span></span>
(6)重启swapfile文件
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo /etc/init.d/dphys-swapfile stop
- sudo /etc/init.d/dphys-swapfile start
- </code></span></span>
(7)下载OpenCV3.4.1和OpenCV-contrib
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.4.1.zip
- wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.4.1.zip
- </code></span></span>
(8)解压OpenCV安装包
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>unzip opencv.zip
- unzip opencv_contrib.zip
- </code></span></span>
(9)安装numpy
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo pip3 install numpy
- </code></span></span>
(10)设置Cmake编译参数,注意参数名、等号和参数值之间不能有空格,但每行末尾“\”之前有空格,参数值最后是两个英文的点
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>cd /home/pi
- cd ~/opencv-3.4.1/
- 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=~/opencv/opencv_contrib-3.4.1/modules \
- -D ENABLE_PRECOMPILED_HEADERS=OFF \
- -D BUILD_EXAMPLES=ON ..
- </code></span></span>
(11)编译并安装OpenCV
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo make install
- </code></span></span>
(12)更新动态链接库
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo ldconfig
- </code></span></span>
(13)安装完毕,测试OpenCV版本
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>python3
- import cv2
- cv2.__version__
- </code></span></span>
出现opencv版本3.4.1代表安装完毕!
(14)恢复swap空间
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo nano /etc/dphys-swapfile
- </code></span></span>
将CONF_SWAPSIZE这个变量由1024改成100
(15)重启swapfile文件
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo /etc/init.d/dphys-swapfile stop
- sudo /etc/init.d/dphys-swapfile start
- </code></span></span>
介绍如何在树莓派上,使用 OpenCV 和 Python 完成人脸检测项目
1. OpenCV库准备
2. Python3语言准备
3. 人脸识别代码下载
(1) 进入网址 https://github.com/Mjrovai/OpenCV-Face-Recognition
(2) 下载zip代码压缩包,将文件存放至树莓派/home/pi目录下解压缩
OpenCV 具备很强的计算效率,且专门用于实时应用,它非常适合使用摄像头的实时人脸识别,要创建完整的人脸识别项目,我们必须完成3个阶段:
(1)人脸数据收集
人脸识别的最基础任务是人脸检测。你必须首先搜集人脸信息(第 1 阶段)才能在未来与捕捉到的新人脸对比时(第 3 阶段)识别它,具体步骤如下:
a)打开终端,进入目录/home/pi/OpenCV-Face-Recognition-master/FacialRecognition
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>cd /home/pi/OpenCV-Face-Recognition-master/FacialRecognition
- </code></span></span>
b)创建dataset文件夹储存人脸样本,和trainer文件夹储存训练数据
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>mkdir dataset
- mkdir trainer
- </code></span></span>
c)打开01_face_dataset.py
d) 运行代码Run,输入用户ID(可以是1、2、3、4等整数)随后看到弹出image视频框,此时在收集人脸信息,对准人脸耐心等待
e) 打开dataset文件夹,可以看到搜集到的人脸图像,搜集到的图片阅读,人脸检测越准确
Tips:
如果人脸颠倒了,可以加#注释掉如下代码
(2)训练识别器
在第 2 阶段中,我们需要从数据集中抽取所有的用户数据,并训练 OpenCV 识别器,这一过程可由特定的 OpenCV 函数直接完成。这一步将在「trainer/」目录中保存为.yml 文件。
a)确定在 Rpi 中已经安装了 PIL 库,如果没有的话,在终端运行以下命令:
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>pip install pillow
- </code></span></span>
b) 打开02_face_training.py ,运行
c) 等待运行完成
(3)人脸识别
b) 打开03_face_recognition.py ,运行,可以看到如下结果,人脸识别成功,其他具体功能自行探索。
此次在完成人脸识别项目的过程中,遇到了许多的小困难,具体错误及收获如下:
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>错误信息1:
- fatal error: boostdesc_bgm.i: 没有那个文件或目录
- #include "boostdesc_bgm.i"
- </code></span></span>
解决方法:
树莓派安装opencv时丢失的文件:
链接:百度网盘 请输入提取码
提取码:mbsj
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>将这些文件复制到/home/pi/opencv/opencv_contrib-3.4.1/modules/xfeatures2d/src目录即可继续编译。建议大家直接用xftp的方式将文件复制到该目录下即可。
- </code></span></span>
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>错误信息2:
- /home/pi/opencv/opencv-3.4.1/modules/stitching/include/opencv2/stitching/detail
- /matchers.hpp:52:12: fatal error: opencv2/xfeatures2d/cuda.hpp: 没有那个文件或目录
- </code></span></span>
解决方法:
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>错误的原因是缺少cuda.hpp文件,这些文件在opencv_contrib-3.4.1/modules/xfeatures2d/include/opencv2目录下,所以直接将这个目录下的文件拷贝到opencv-3.4.1/modules/stitching/include/opencv2/即可
- </code></span></span>
通过此次的实验学习,初步掌握了识别人脸所需要的具体步骤,还知道了很多拓展知识,运行的代码主要是开源的python代码,python是一门高集成度的语言,我们在学习的时候看不到它的底层,用的时候就是直接调函数即可,这或许是python流行的一大原因。通过此次实验也使我们小组对树莓派有了一定的了解。
目录
要实现图像识别,首先就是要获取图像,所以懂得如何安装及使用树莓派CSI摄像头就非常重要。
图.树莓派CSI摄像头
(1) 进入树莓派终端系统,输入以下指令进行下载并安装最新的内核,GPU 固件及应用程序
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo apt-get update
- sudo apt-get upgrade
- </code></span></span>
(2) 运行以下命令树莓派配置工具来激活摄像头模块
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo raspi-config
- </code></span></span>
依次选择Interfacing Options——>Camera——>Enable——>tab——>Finish
(3)重启树莓派
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo reboot
- </code></span></span>
(4)测试摄像头
输入命令行,如果得到下面的结果,则证明摄像头连接成功
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>vcgencmd get_camera
- </code></span></span>
输入命令,在桌面会显示一张命名为image1.jpg的图片
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>raspistill -o Desktop/image1.jpg
- </code></span></span>
(5)至此,树莓派摄像头软硬件配置到此完成
OpenCV是开源计算机视觉库,拥有强大的内置函数和开源社群。OpenCV配合便携开源廉价的树莓派,可以直接读取来自树莓派摄像头PiCamera的视频,进行人脸识别、边缘检测、语义分割、自动驾驶、图像识别等各种计算机视觉开发。
(1)更新树莓派
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo apt-get update
- sudo apt-get upgrade
- </code></span></span>
(2)安装依赖
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>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
- </code></span></span>
(3)安装python3
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo apt-get install python3 python3-setuptools python3-dev
- </code></span></span>
(4)设置pip工具
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>wget https://bootstrap.pypa.io/get-pip.py
- sudo python3 get-pip.py
- </code></span></span>
(5)增大swap空间
找到CONF_SWAPSIZE这个变量,将100改成1024,表示swap大小从100MB增加到1024MB,可以方便OpenCV使用4核编译ctrl+o保存,ctrl+d退出
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo nano /etc/dphys-swapfile
- </code></span></span>
(6)重启swapfile文件
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo /etc/init.d/dphys-swapfile stop
- sudo /etc/init.d/dphys-swapfile start
- </code></span></span>
(7)下载OpenCV3.4.1和OpenCV-contrib
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.4.1.zip
- wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.4.1.zip
- </code></span></span>
(8)解压OpenCV安装包
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>unzip opencv.zip
- unzip opencv_contrib.zip
- </code></span></span>
(9)安装numpy
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo pip3 install numpy
- </code></span></span>
(10)设置Cmake编译参数,注意参数名、等号和参数值之间不能有空格,但每行末尾“\”之前有空格,参数值最后是两个英文的点
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>cd /home/pi
- cd ~/opencv-3.4.1/
- 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=~/opencv/opencv_contrib-3.4.1/modules \
- -D ENABLE_PRECOMPILED_HEADERS=OFF \
- -D BUILD_EXAMPLES=ON ..
- </code></span></span>
(11)编译并安装OpenCV
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo make install
- </code></span></span>
(12)更新动态链接库
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo ldconfig
- </code></span></span>
(13)安装完毕,测试OpenCV版本
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>python3
- import cv2
- cv2.__version__
- </code></span></span>
出现opencv版本3.4.1代表安装完毕!
(14)恢复swap空间
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo nano /etc/dphys-swapfile
- </code></span></span>
将CONF_SWAPSIZE这个变量由1024改成100
(15)重启swapfile文件
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>sudo /etc/init.d/dphys-swapfile stop
- sudo /etc/init.d/dphys-swapfile start
- </code></span></span>
介绍如何在树莓派上,使用 OpenCV 和 Python 完成人脸检测项目
1. OpenCV库准备
2. Python3语言准备
3. 人脸识别代码下载
(1) 进入网址 https://github.com/Mjrovai/OpenCV-Face-Recognition
(2) 下载zip代码压缩包,将文件存放至树莓派/home/pi目录下解压缩
OpenCV 具备很强的计算效率,且专门用于实时应用,它非常适合使用摄像头的实时人脸识别,要创建完整的人脸识别项目,我们必须完成3个阶段:
(1)人脸数据收集
人脸识别的最基础任务是人脸检测。你必须首先搜集人脸信息(第 1 阶段)才能在未来与捕捉到的新人脸对比时(第 3 阶段)识别它,具体步骤如下:
a)打开终端,进入目录/home/pi/OpenCV-Face-Recognition-master/FacialRecognition
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>cd /home/pi/OpenCV-Face-Recognition-master/FacialRecognition
- </code></span></span>
b)创建dataset文件夹储存人脸样本,和trainer文件夹储存训练数据
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>mkdir dataset
- mkdir trainer
- </code></span></span>
c)打开01_face_dataset.py
d) 运行代码Run,输入用户ID(可以是1、2、3、4等整数)随后看到弹出image视频框,此时在收集人脸信息,对准人脸耐心等待
e) 打开dataset文件夹,可以看到搜集到的人脸图像,搜集到的图片阅读,人脸检测越准确
Tips:
如果人脸颠倒了,可以加#注释掉如下代码
(2)训练识别器
在第 2 阶段中,我们需要从数据集中抽取所有的用户数据,并训练 OpenCV 识别器,这一过程可由特定的 OpenCV 函数直接完成。这一步将在「trainer/」目录中保存为.yml 文件。
a)确定在 Rpi 中已经安装了 PIL 库,如果没有的话,在终端运行以下命令:
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>pip install pillow
- </code></span></span>
b) 打开02_face_training.py ,运行
c) 等待运行完成
(3)人脸识别
b) 打开03_face_recognition.py ,运行,可以看到如下结果,人脸识别成功,其他具体功能自行探索。
此次在完成人脸识别项目的过程中,遇到了许多的小困难,具体错误及收获如下:
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>错误信息1:
- fatal error: boostdesc_bgm.i: 没有那个文件或目录
- #include "boostdesc_bgm.i"
- </code></span></span>
解决方法:
树莓派安装opencv时丢失的文件:
链接:百度网盘 请输入提取码
提取码:mbsj
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>将这些文件复制到/home/pi/opencv/opencv_contrib-3.4.1/modules/xfeatures2d/src目录即可继续编译。建议大家直接用xftp的方式将文件复制到该目录下即可。
- </code></span></span>
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>错误信息2:
- /home/pi/opencv/opencv-3.4.1/modules/stitching/include/opencv2/stitching/detail
- /matchers.hpp:52:12: fatal error: opencv2/xfeatures2d/cuda.hpp: 没有那个文件或目录
- </code></span></span>
解决方法:
- <span style="background-color:#f5f5f5"><span style="color:#333333"><code>错误的原因是缺少cuda.hpp文件,这些文件在opencv_contrib-3.4.1/modules/xfeatures2d/include/opencv2目录下,所以直接将这个目录下的文件拷贝到opencv-3.4.1/modules/stitching/include/opencv2/即可
- </code></span></span>
通过此次的实验学习,初步掌握了识别人脸所需要的具体步骤,还知道了很多拓展知识,运行的代码主要是开源的python代码,python是一门高集成度的语言,我们在学习的时候看不到它的底层,用的时候就是直接调函数即可,这或许是python流行的一大原因。通过此次实验也使我们小组对树莓派有了一定的了解。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。