(
课件网) “认识”一个人 川教版 八年级上 新知导入 如何从“图片”认识一个人 基于图片的人脸识别训练过程 输入训练图 机器训练 获得特征 新知讲解 识 别 训 练 人脸识别系统组成 新知讲解 下面用同一个人的两张图片“img01.jpg”和“img02.jpg”来训练, 这两张图片上是同一个人,标签为“0”。 识 别 训 练 新知讲解 步骤一:准备工作 识 别 训 练 安装opencv-contrib 为了保证版本相同,先卸载以前的OpenCV如果你以前安装过OpenCV,那么请先卸载干净,否则等Contrib版的装好以后,可能出现无法识别的情况。因为识别的还是之前的版本。 利用PIP命令即可卸载:pip uninstall opencv-python 新知讲解 安装Contrib版OpenCV, Python版的Contrib装起来也非常简单,一行命令即可。 安装命令: pip install opencv-contrib-python 步骤一:准备工作 识 别 训 练 新知讲解 知 识 卡 LBPH是Local Binary Patterns Histograms的缩写,翻译过来就是局部二进制编码直方图。LBPH的主要思想是以当前点与其相邻点的相对关系作为处理结果。正因如此,在图像灰度整体发生变化时,提取的信息仍能保持不变。此方法在人脸识别中运用非常广泛,本节的程序就使用了这种方法来训练机器。OpenCV还提供了另外两种人脸识别方法,分别是EigenFace和FisherFacea LBPH识别器 新知讲解 步骤二:人脸识别训练 识 别 训 练 人脸识别训练流程图 引入模块 输入训练图片 设置图片标签为“0” 加入LBPH识别器 机器训练 新知讲解 识 别 训 练 步骤二:人脸识别训练 导入人脸识别训练代码如右图 新知讲解 识 别 训 练 步骤二:人脸识别训练 程序运行结果 新知讲解 步骤三:多个不同的人脸识别训练 识 别 训 练 多个不同的人脸识别训练与单个人脸识别训练的原理相同,区别在于添加训练图片时选用不同人的照片。 以识别两个人为例,只需再增加另一个人的图片进行训练即可。保留前面的“img01.jpg”和“img02.jpg”,这两张图片都是同一个人,标签为“0”; 增加两张训练图片“img11.jpg”和“img12.jpg”,这两张图片为同一个人,标签为“1” 新知讲解 步骤三:多个不同的人脸识别训练 识 别 训 练 多个不同人脸识别训练的程序代码如右图 新知讲解 步骤三:多个不同的人脸识别训练 识 别 训 练 程序运行结果 新知讲解 识 别 训 练 拓 展 延 伸 从视频中“认识”一个人,需要采集足够多的人脸图像信息让机器训练,过程如右图。 人脸数据采集 机器训练并生成训练模型文件 新知讲解 识 别 训 练 人脸数据采集。通过摄像头扫描捕捉需要的人脸图像信息,在程序所在的目录创建一个“Facedata”文件夹,用来存放采集的人脸数据,源代码如右图 拓 展 延 伸 新知讲解 识 别 训 练 拓 展 延 伸 程序运行后,先要用户设置一个人脸图片标签。输人标签“0”并按回车键后,摄像头开始自动采集视频中人脸图像并保存到“Facedata”文件夹中。 程序运行后,在id后面输入一个人脸图片标签 新知讲解 识 别 训 练 拓 展 延 伸 人脸数据训练 需要安装pillow库 安装步骤如右图 1、在开始菜单中输入cmd,打开命令提示符窗口 2、在命令提示符中输入"pip install pillow",进行pillow库的安装,当安装完成后有"Successfully installed"字样 3、确认pillow库成功安装,进入到Python后倒入该库,如果没有报错就表示Pillow库安装成功,可以正常使用 新知讲解 识 别 训 练 拓 展 延 伸 在程序所在目录创建一个“face_trainer"文件夹,存放训练后的模型文件,源代码程序见右图 新知讲解 代码运行后,导入训练图片和对应标签进行训练,最后在“face_trainer”文件夹中生成训练后的模型文件trainer.yml。 识 别 训 练 拓 展 延 伸 新知讲解 ... ...