《深度学习》OpenCV FisherFaces算法人脸识别 原理及案例解析
目录
一、FisherFaces算法
1、什么是FisherFaces算法
2、原理
3、特点
4、算法步骤
1)数据预处理
2)特征提取
3)LDA降维
4)特征投影
5)人脸识别
二、案例解析
1、完整代码
运行结果:
一、FisherFaces算法
1、什么是FisherFaces算法
Fisherfaces采用LDA(Linear Discriminant Analysis,线性判别分析)实现人脸识别。
2、原理
在低维表示下,首先将训练集样本集投影到一条直线A上,让投影后的点满足: 同类间的点尽可能地靠近、异类间的点尽可能地远离

3、特点
FisherFaces算法具有计算效率高、识别准确度高、对光照和表情变化具有一定的鲁棒性等特点。
4、算法步骤
1)数据预处理
首先,收集人脸图像数据库,并对每个人脸图像进行预处理,如裁剪、旋转、缩放等,以确保图像的一致性和准确性。
2)特征提取
对预处理后的人脸图像进行特征提取。这些特征可以包括人脸的形状、眼睛、嘴巴、鼻子等部位的几何特征,以及纹理、颜色等特征。在FisherFaces算法中,这些特征被表示为高维向量。
3)LDA降维
利用LDA算法对提取的特征向量进行降维。通过计算类间散度矩阵和类内散度矩阵,找到最优的投影方向,使得投影后的数据类间方差最大,类内方差最小。
4)特征投影
将原始人脸图像投影到降维后的低维空间中,得到人脸的特征向量。这些特征向量用于后续的人脸识别。
5)人脸识别
在识别阶段,将待识别的人脸图像进行同样的预处理和特征提取,然后投影到低维空间中,得到其特征向量。接着,计算待识别人脸的特征向量与数据库中已知人脸的特征向量之间的距离(如欧氏距离),最后,根据距离大小判断待识别人脸的身份。
二、案例解析
1、完整代码
import cv2
import numpy as npdef image_re(image): # 定义一个函数输入图片地址,自动读取并缩放图片尺寸a = cv2.imread(image,0)a = cv2.resize(a,(140,180))return aimages = []
a = image_re('pyy2.png') # 将读取到的图片全部存入一个列表
b = image_re('pyy3.png')
c = image_re('zly1.png')
d = image_re('zly2.png')
images.append(a)
images.append(b)
images.append(c)
images.append(d)
labels = [0,0,1,1] # 设置读入列表图片的标签pre_image = image_re('pyy1.png') # 读取待识别图像"""创建一个FisherFace的人验特征识别器"""
recognizer = cv2.face.FisherFaceRecognizer_create()# 函数FaceRecognizertrain用给定的数据和相关标签训练生成的实例模型。
# src: 训练图像,用来学习的人险图像
# labels: 标签,人脸图像对应的标签
recognizer.train(images,np.array(labels))# confidence:大小介于0到20000,只要低于5000都被认为是可的结果
label,confidence = recognizer.predict(pre_image)
dic = {0:'pyy',1:'zly'}
print('这人是:',dic[label])
print("置信度为:",confidence)# 在图片上标记识别出来的内容
aa = cv2.putText(cv2.imread('pyy1.png').copy(),dic[label],(10,30),cv2.FONT_HERSHEY_SIMPLEX, 0.9, (0,0,255), 2)
cv2.imshow( 'xx',aa)
cv2.waitKey(0)
运行结果:


相关文章:
《深度学习》OpenCV FisherFaces算法人脸识别 原理及案例解析
目录 一、FisherFaces算法 1、什么是FisherFaces算法 2、原理 3、特点 4、算法步骤 1)数据预处理 2)特征提取 3)LDA降维 4)特征投影 5)人脸识别 二、案例解析 1、完整代码 运行结果: 一、Fish…...
基于Python+Flask的天气预报数据可视化分析系统(源码+文档)
简介: 本系统是一个集数据收集、处理、分析和可视化于一体的天气预报数据平台。通过Python和Flask框架的结合,我们能够高效地构建出一个用户友好的Web界面,让用户能够轻松访问并理解复杂的天气数据。系统不仅能够实时获取最新的天气信息&…...
深入解析 Flutter兼容鸿蒙next全体生态的横竖屏适配与多屏协作兼容架构
目录 写在前面 1. Flutter 的基本适配机制 1.1 响应式布局 1.2 逻辑像素 2. 横屏与竖屏的适配 2.1 方向感知 2.2 针对方向的布局优化 3. 多屏协作的实现 3.1 适配多屏显示 3.2 使用 StreamBuilder 和 Provider 3.3 多设备协作的挑战 4. 实践中的应用场景 4.1 移动办…...
【Spring】Spring实现加法计算器和用户登录
加法计算器 准备工作 创建 SpringBoot 项目:引入 Spring Web 依赖,把前端的页面放入项目中 **<!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport"…...
电脑d盘不见了怎么恢复?
在使用电脑的时候,我们可能会遇到这样一个问题,电脑里的D盘突然不见了,在“此电脑”中看不到D盘了。这这个情况可能会让人感到非常困惑甚至是头疼,因为D盘里面可能存放着非常重要的文件。今天的内容要和大家分析一下D盘不见的原因…...
电子商务网站维护技巧:保持WordPress、主题和插件的更新
在这个快节奏的数字时代,维护一个电子商务网站的首要任务之一是保持WordPress、主题和插件的最新状态。过时的软件不仅可能导致功能故障,还可能带来安全风险。本文将深入探讨如何有效地更新和维护您的WordPress网站,以确保其安全性和性能。 …...
交叉编译--目标平台aarch64 ubuntu 22.04
开发宿主机: ubuntu22.04虚拟机(PC) 目标平台: 地平线x3派/x3 Module , ubuntu22.04, ros2 humble 基于地平线x3开发板 5核 4G的内存的有限的资源,直接在目标机上编译虽然也可以,但耗时太长&a…...
【pytorch】昇思大模型配置python的conda版本
首先,切换conda的源,可以参考这篇文章,如果python的版本比较老的话不推荐使用清华源。 比如算子开发文档中推荐的python版本是3.7.5,比较老,使用清华源无法安装。 之后就是比较重要的,修改~/.bashrc。 把…...
nodejs的卸载和nvm安装
由于项目需求,需要多版本控制的nodejs,所以要把原来的nodejs卸载干净,然后再装nvm 常见问题 1.在安装nvm的时候没有卸载node,导致使用nvm安装完之后,node和npm都不可用。 2.在第一次使用nvm安装node后,要…...
网络七层架构
目录标题 网络七层架构从正确认识网络七层架构开始 网络七层架构 简介: 网络七层架构是指ISO/OSI模型,它是国际标准化组织(ISO)制定的一种用于计算机网络体系结构的参考模型。该模型将计算机网络的功能划分为七个层次,…...
2024年华为OD机试真题-敏感字段加密-Java-OD统一考试(E卷)
最新华为OD机试考点合集:华为OD机试2024年真题题库(E卷+D卷+C卷)_华为od机试题库-CSDN博客 每一题都含有详细的解题思路和代码注释,精编c++、JAVA、Python三种语言解法。帮助每一位考生轻松、高效刷题。订阅后永久可看,发现新题及时跟新。 题目描述 给定一个由多个…...
图神经网络黑书笔记--术语
一、图的基本概念 图由节点集合和边集合组成。节点代表实体,边代表实体之间的关系。节点、边、整个图都可以与丰富的信息相关联,这些信息被表征为节点/边/图的特征。 中心度:是度量节点的重要性。如果许多其他重要的节点也连接到该节点&a…...
原型基于颜色的图像检索与MATLAB
原型基于颜色的图像检索与MATLAB 摘要 基于内容的检索数据库(图像)已经变得越来越受欢迎。为了达到这一目的,需要发展算法检测/模拟工具,但市场上没有合适的商业工具。 本文介绍了一个模拟环境,能够从数据库中检索图像直方图的相似之处。该…...
【C++笔试强训】如何成为算法糕手Day9
学习编程就得循环渐进,扎实基础,勿在浮沙筑高台 循环渐进Forward-CSDN博客 目录 循环渐进Forward-CSDN博客 添加逗号 思路: 代码实现: 跳台阶 思路: 代码实现: 扑克牌顺子 思路…...
初识算法 · 二分查找(1)
目录 前言: 二分查找 题目解析 算法原理 算法编写 搜索插入位置 题目解析 算法原理 算法编写 前言: 本文呢,我们从滑动窗口窗口算法移步到了二分查找算法,我们简单了解一下二分查找算法,二分查找算法是一个十…...
数据结构:数字统计
请统计某个给定范围[L, R]的所有整数中,数字2出现的次数。 比如给定范围[2, 22],数字2在数2中出现了1次,在数12中出现1次,在数20中出现1次,在数21中出现1次,在数22中出现2次,所以数字2在该范围…...
网页前端开发之HTML入门
HTML入门 HTML全称HyperText Markup Language,中文译为:超文本标记语言。 它有一个同胞兄弟叫:XML,全称Extensible Markup Language,中文译为:可扩展标记语言。 简单来讲,它们都是标记语言。 …...
Python do while 实现案例
在 Python 中没有传统的 do while 循环语法。 但是可以通过使用 while True 结合条件判断来实现类似 do while 的效果。 一、语法 while True:# 执行某些操作#...if not condition:break 这里先无条件地执行一次循环体中的代码,然后在每次循环结束时检查条件&#…...
docker网络管理详解 一
一 生产故障:docker 同一宿主机不能通信 1. 检查容器网络配置 1.1 查看容器的网络信息 使用 docker inspect 命令查看容器的网络配置,确保它们连接到了正确的网络。 docker inspect -f {{json .NetworkSettings.Networks }} container1 docker inspe…...
前端使用Canvas实现网页电子签名(撤销、下载)
前言:一般在一些后台的流程资料以及审核的场景中会需要电子签名,介绍一种用canvas实现的电子签名,此案例用的是原生js 效果展示: 一、html和css: <div class"divCla2"><canvas id"myCanvas&q…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...
Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...
dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...
智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...
C++.OpenGL (14/64)多光源(Multiple Lights)
多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...
快刀集(1): 一刀斩断视频片头广告
一刀流:用一个简单脚本,秒杀视频片头广告,还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农,平时写代码之余看看电影、补补片,是再正常不过的事。 电影嘛,要沉浸,…...
Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换
目录 关键点 技术实现1 技术实现2 摘要: 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式(自动驾驶、人工驾驶、远程驾驶、主动安全),并通过实时消息推送更新车…...
uniapp 开发ios, xcode 提交app store connect 和 testflight内测
uniapp 中配置 配置manifest 文档:manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号:4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...
