树莓派人脸识别------实验步骤
Posted _WILLPOWER_
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了树莓派人脸识别------实验步骤相关的知识,希望对你有一定的参考价值。
人脸识别
前期工作
- 首先我们需要把开发文档的代码复制过来
通过mobaxterm登录树莓派,然后将FacialRecognitionProject
复制到家目录,直接拖动文件夹到目录侧即可
直接拖动到如下图
因为我们后续需要用到摄像头模块,因此后续的我们不能在mobaxterm中操作(因为摄像头输出的视频信号mobaxterm中兼容性不好)因此我们采用vnc方式连接
- 通过vnc连接上树莓派(直接使用之前搭建环境的时候,建立的vnc连接即可)
然后我们通过快捷键ctrl+alt+t
打开终端如下
注意在vnc中不能使用ctrl+c
以及ctrl+v
来粘贴复制
只能使用ctrl+ins
来进行复制,shift+ins
来进行粘贴
或者你鼠标右键也是可以的
然后通过cd命令进入我们的家目录中的实验代码中
cd /home/pi/FacialRecognitionProject
(注意可以使用tab来进行命令补全,没必要将每个词输完)
看到前面目录的位置发生变化,即为成功,如下图
- 运行设备查看命令,查看当前摄像头设备
v4l2-ctl --list-device
看到如下设备即为成功,如果没有,说明摄像头模块插的有问题,需要检查(切勿带电拔插摄像头模块,最好关机后从新插入)
记得记住摄像头的编号,有可能会不一样,这里根据/dev/video0可以看出设备编号为0(如果不为0,后面代码需要修改编号!)
采集数据
该数据集将储存每张人脸的 ID 和一组用于人脸检测的灰度图。
- 如果你之前获取到的摄像头编号不是0,那么首先需要修改代码(如果是0的不需要修改)
输入
gedit /home/pi/FacialRecognitionProject/01_face_dataset.py
然后会弹出如下编辑器
然后点右上角save保存,然后叉掉退出即可
然后我们开始第一步采集人脸数据
首先确定好摄像头的方位(可以根据网线插头看你的方位),如果你是如下拿摄像头的则不需要修改代码
但是如果你是反着来的(如下图)
记得将01_face_training.py以及02_face_recongnition.py
中
#img = cv2.flip(img, -1) # flip video image vertically`前的#号删除
(使用gedit工具即可)
在命令行输入
python3 01_face_dataset.py
然后我们可以看到如图让输入用户的id,这个id最后在识别中对应着用户识别的名字,我们这里统一设置成1,方便我们后续修改人的姓名
按下1后输入回车键
然后将摄像头对准自己,摄像头会在识别到人脸后,打开画面采集你的人像,每识别到你的脸一次就会采集一次,总共会采集30次
下面的代码决定了采集的次数
采集完毕后会自动结束
数据预处理
在采集到人像后,程序会将人像转换为灰度图像,方便后续的训练。因此在训练之前我们为了保证数据的高质量,我们必须要将有些错误采集的数据进行清理。
点击文件夹
然后点击我们刚才的工作文件夹
再点击数据集文件夹
在这里储存的就是我们刚才采集的数据图片,双击我们即可查看到图片
然后查看图片是否是我们的人像数据
我们要查阅所有的图片,直至把所有的错误数据集都删除!
数据训练
在命令行输入
python3 02_face_training.py
然后等待训练完成
在训练完成后,在文件夹trainer
中保存的我们训练后的信息文件
这是一个yaml文件,其中保存的就是我们训练后得到的具体人脸的特征信息,后续就可以用这个文件来识别具体的人像
文件信息如下
识别人脸
首先我们要修改我们的文件,将自己想要等会识别后显示的名字写上去
命令行输入
gedit 03_face_recognition.py
保存后退出
然后命令行输入
python3 03_face_recognition.py
开始人脸识别,效果如下图
以上是关于树莓派人脸识别------实验步骤的主要内容,如果未能解决你的问题,请参考以下文章