python实现人脸识别

python实现人脸识别

文章目录

前言

让学生了解数字图像处理在人工智能方面的应用。通过一个人脸识别系统的开发,提高学生综合运用面向对象程序设计思想、数字图像处理等专业知识和技术的能力;通过了解人脸识别系统开发方法与步骤,为以后从事图像分析与图像理解等人工智能方面的相关工作奠定基础。

一、项目介绍

1. 技术介绍
cv2: 在本项目中主要用于:
a. 图像的读取
b. 图像大小的改变
c. 人脸的检测(非识别,检测的目的在于裁剪图片,从而减少周围环境的影响)
d. 存储图片(写明存储的相对/绝对路径)
f. 通过窗体展示图片(可为窗体赋以名称)
Tips: 在安装的时候是安装的opencv,但是在导入(import)库的时候是导入cv2。
numpy:
a. Python 语言的一个扩展程序库,常被简写为np,支持大量的维度数组与矩阵运算(在线性代数中会学习数组与矩阵及其简单运算),此外也针对数组运算提供大量的数学函数库。
b. 简而言之,只需要调用一个方法即可完成数组和矩阵的相关运算(在本项目中需要了解矩阵之间的相加减、矩阵之间的乘法、以及矩阵与常数的乘除法)一张图像我们可以采用二维数组的形式进行存储(数字化),二维数组可以用矩阵的形式表示。因此对图像的操作我们可以转为对矩阵的运算,而numpy库恰好为我们提供了丰富的api(接口)帮我们完成运算的工作。
Tkinter: 图形开发界面库(python常用的GUI库)
2. 开发工具:
Pycharm: python语言开发IDE(学生可通过学校邮箱申请免费使用)
3. 开发环境
Python: 目前来说任何版本都可以,不过建议使用python3进行编写。

——–(当你有了以上的基础知识之后就可以开始学习人脸识别了)——–

二、内容

1.什么是人脸识别

首先,我们先了解一下什么叫人脸识别:

python实现人脸识别
通过上述文字,我们可以注意到 三点
(1)我们的数据必须是包含人脸的图像或者视频流(保证数据的有效性)
(2)第一步要检测和跟踪到图像或视频流中的人脸
(3)第二步才是对人脸进行面部识别
由于我们提供的所有数据集均包含了人脸,因此我们 仅需完成第二和第三小点的工作。

; 2.实现步骤

使用python+OpenCV实现人脸识别系统,要求系统带有界面和菜单。人脸识别系统实现步骤如下:
1、搭建python编译环境,并预导入OpenCV库
(OpenCV是什么,有什么用已经在第二大部分有详细解释)

2、创建正面人脸图像采集和识别程序,该程序分为人脸图像采集和人脸图像识别2个部
(即在”什么是人脸识别”中我们提到的需要同学们完成的两个工作)
注意,该系统所用图像数据均为灰度图像(什么是灰度图像?为什么要使用灰度图像?针对该问题,同学们可以自行思考,然后百度查阅)。

3、人脸图像采集步骤,每个人至少采集5-7张正面图像
(图像数据均会提供,此处同学们可以思考一下5-7张图片,是否是硬性要求?增加和减少采集数量是否会对我们机器的学习产生影响):
方法一:
(1) 打开人脸图像并显示在界面上。
(2) 用鼠标选取人脸各个眼睛中心位置。
(3) 依据人眼坐标,用下图采集人脸区域,并对人脸区域进行几何归一化。

python实现人脸识别

几何归一化的目的是使用图像缩放技术把原始人脸区域图像缩放到统一的像素大小。比如规定图像大小是64×64,则按照上图人脸区域缩放倍数为β=2d/128。这样通过固定人眼坐标,保证了其他部位如鼻、嘴、脸颊等位置都保持在相对标准的位置,体现人脸在图像平面内的尺度不变性。
上面说了一大堆,简而言之把所有图像标记好的人脸区域都改变成大小统一的图像,然后进行保存。该项目中,我建议大家统一保存为128×128的大小。
(4) 对归一化后的人脸区域图像进行灰度归一化。
灰度归一化的目的是去除一定条件下的光照影响,灰度归一化的方法很多,这里可以使用比较典型的直方图均衡化方法。
(5)对每个采集的人脸图像按人脸类别进行编号形成人脸库。

方法二:
使用我们之前提到的cv2,通过cv.CascadeClassifier()接口,帮助实现人脸的自动检测。这是opencv自带的模型,是官方已经训练好的模型。值得注意的是该方法的参数为字符串类型,指向了模型的存储路径,本项目中我建议将路径指向haarcascade_frontalface_alt.xml。
上述方法会为我们返回一个分类器,有了分类器就可以进行人脸检测了。通过分类器我们可以调用detectMultiScale使其给我们返回检测的结果。
具体的使用方法可以参考以下博客,博客中已经解释的非常的清楚了,这里不过多阐述
https://www.cnblogs.com/lyx2018/p/7073025.html

Original: https://blog.csdn.net/qq_46213352/article/details/118744697
Author: 红糖毛血旺
Title: python实现人脸识别

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/702121/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球