OpenCV中Fisherfaces人脸识别器识别人脸实战(附Python源码)

简介: OpenCV中Fisherfaces人脸识别器识别人脸实战(附Python源码)

需要源码和图片请点赞关注收藏后评论区留言私信~~~

Fisherfaces是由Ronald Fisher最早提出的,这也是它名字的又来,它基于LDA线性判别分析技术,该方法将人脸数据转换到另外一个空间维度做投影计算,最后根据不同人脸数据的投影距离判断其相似度。开发者同样需要通过以下三个方法完成人脸识别操作

1:通过cv2.face.FisherFaceRecognizer_create(num_components,threshold)

参数说明如下

num_components:可选参数 通过Fisherface方法判断分析时保留的分量个数,建议使用默认值

threshold 可选参数 人脸识别时使用的阈值 建议使用默认值

2:创建识别器对象后 需要通过对象的train方法训练识别器,建议每个人都给出两张以上的人脸图像作为训练样本

recognizer.train(src,train)

参数说明如下

src 用来训练的人脸图像样本列表 格式为list 样本图像宽高必须一致

labels 样本对应的标签,格式为数组,元素类型为整数

3:训练识别器后可以通过识别器的predict方法识别人脸。该方法对比样本的特征,给出最相近的结果和评分

label,confidence=recognizer.predict(src)

label 与样本匹配程度最高的标签纸

confidence 匹配程度最高的信用度评分,评分小于5000程度较高,0分表示两幅图像完全一样

下面以两个人的照片作为训练样本

待识别照片如下

程序输出如下

confidence=2327.1708678

Mike

程序对比样本特征分析得出,被识别的人物特征最接近的是KaiKai

部分代码如下

import cv2
import numpy as np
photos = list()  # 样本图像列表
lables = list()  # 标签列表
photos.append(cv2.imread("face\\Mike1.png", 0))  # 记录第1张人脸图像
lables.append(0)  # 第1张图像对应的标签
photos.append(cv2.imread("face\\Mike2.png", 0))  # 记录第2张人脸图像
lables.(0)  # 第2张图像对应的标签
photos.append(cv2.imread("face\\Mike3.png", 0))  # 记录第3张人脸图像
lables.append(0)  # 第3张图像对应的标
photos.append(cv2.imread("face\\kaikai1.png", 0))  # 记录第4张人脸图像
lables.append(1)  # 第4张图像对应的标签
photos.appen(.imread("face\\kaikai2.png", 0))  # 记录第5张人脸图像
lables.append(1)  # 第5张图像对应的标签
photos.apv2.imread("face\\kaikai3.png", 0))  # 记录第6张人脸图像
lables.append(1)  # 第6张图像对应的标签
names = {"0": "Mike", "1": "kaikai"}  # 标签对应的名称字典
recognizer = cv2.face.FisherFaceRecognizer_create()  # 创建线性判别分析识别器
recognizer.train(photos, np.array(lables))  # 识别器开始训练
i = cv2.imrad("face\\Mike4.png", 0)  # 待识别的人脸图像
label, confdce = recognizer.predict(i)  # 识别器开始分析人脸图像
print("cofidence = " + str(confidence))  # 打印评分
print(name[strbe)  # 数组字典里标签对应的名字
cv2.waitKey()  # 按下何键盘按键后
cv2.destroyAllWindows()  # 释放所有窗体

创作不易 觉得有帮助请点赞关注收藏~~~

相关文章
|
计算机视觉
Opencv学习笔记(八):如何通过cv2读取视频和摄像头来进行人脸检测(jetson nano)
如何使用OpenCV库通过cv2模块读取视频和摄像头进行人脸检测,并提供了相应的代码示例。
623 1
|
计算机视觉 Windows Python
windows下使用python + opencv读取含有中文路径的图片 和 把图片数据保存到含有中文的路径下
在Windows系统中,直接使用`cv2.imread()`和`cv2.imwrite()`处理含中文路径的图像文件时会遇到问题。读取时会返回空数据,保存时则无法正确保存至目标目录。为解决这些问题,可以使用`cv2.imdecode()`结合`np.fromfile()`来读取图像,并使用`cv2.imencode()`结合`tofile()`方法来保存图像至含中文的路径。这种方法有效避免了路径编码问题,确保图像处理流程顺畅进行。
2848 1
|
XML 机器学习/深度学习 人工智能
使用 OpenCV 和 Python 轻松实现人脸检测
本文介绍如何使用OpenCV和Python实现人脸检测。首先,确保安装了OpenCV库并加载预训练的Haar特征模型。接着,通过读取图像或视频帧,将其转换为灰度图并使用`detectMultiScale`方法进行人脸检测。检测到的人脸用矩形框标出并显示。优化方法包括调整参数、多尺度检测及使用更先进模型。人脸检测是计算机视觉的基础技术,具有广泛应用前景。
982 10
|
机器学习/深度学习 计算机视觉
目标检测笔记(六):如何结合特定区域进行目标检测(基于OpenCV的人脸检测实例)
本文介绍了如何使用OpenCV进行特定区域的目标检测,包括人脸检测实例,展示了两种实现方法和相应的代码。
709 1
目标检测笔记(六):如何结合特定区域进行目标检测(基于OpenCV的人脸检测实例)
|
算法 计算机视觉 Python
python利用opencv进行相机标定获取参数,并根据畸变参数修正图像附有全部代码(流畅无痛版)
该文章详细介绍了使用Python和OpenCV进行相机标定以获取畸变参数,并提供了修正图像畸变的全部代码,包括生成棋盘图、拍摄标定图像、标定过程和畸变矫正等步骤。
python利用opencv进行相机标定获取参数,并根据畸变参数修正图像附有全部代码(流畅无痛版)
|
机器学习/深度学习 算法 计算机视觉
【Python篇】Python + OpenCV 全面实战:解锁图像处理与视觉智能的核心技能
【Python篇】Python + OpenCV 全面实战:解锁图像处理与视觉智能的核心技能
744 7
|
计算机视觉 Python
python利用pyqt5和opencv打开电脑摄像头并进行拍照
本项目使用Python的PyQt5和OpenCV库实现了一个简单的摄像头应用。用户可以通过界面按钮打开或关闭摄像头,并实时预览视频流。点击“拍照”按钮可以捕捉当前画面并保存为图片文件。该应用适用于简单的图像采集和处理任务。
1285 0
python利用pyqt5和opencv打开电脑摄像头并进行拍照
|
机器学习/深度学习 人工智能 监控
利用Python和OpenCV实现实时人脸识别系统
【8月更文挑战第31天】本文将引导您了解如何使用Python结合OpenCV库构建一个简易的实时人脸识别系统。通过分步讲解和示例代码,我们将探索如何从摄像头捕获视频流、进行人脸检测以及识别特定个体。本教程旨在为初学者提供一条明晰的学习路径,帮助他们快速入门并实践人脸识别技术。
1260 1
|
机器学习/深度学习 算法 机器人
|
存储 编解码 API
python多种方法压缩图片,opencv、PIL、tinypng、pngquant压缩图片
python多种方法压缩图片,opencv、PIL、tinypng、pngquant压缩图片
2348 1

推荐镜像

更多