经典人脸识别算法(特征脸,FISHERFACE,LBP)

article/2025/10/4 17:41:50

首先,只是基于对算法的主要是想的介绍和理解,对于涉及到的PCA以及直方图比较提到的方法等等可以自己再去深入研究。

其次,只是用作笔记记录。

参考了CSDN博客:https://blog.csdn.net/smartempire/article/details/23377385

https://blog.csdn.net/wanghz999/article/details/78817265

Eigenfaces的原理:
Eigenfaces就是特征脸的意思,是一种从主成分分析(Principal Component Analysis,PCA)中导出的人脸识别和描述技术。特征脸方法的主要思路就是将输入的人脸图像看作一个个矩阵,通过在人脸空间中一组正交向量,并选择最重要的正交向量,作为“主成分”来描述原来的人脸空间。
PCA:
在很多应用中,需要对大量数据进行分析计算并寻找其内在的规律,但是数据量巨大造成了问题分析的复杂性,因此我们需要一些合理的方法来减少分析的数据和变量同时尽量不破坏数据之间的关联性。于是这就有了主成分分析方法,
PCA作用:

数据降维。减少变量个数;
确保变量独立;提供一个合理的框架解释。

去除噪声,发现数据背后的固有模式。

PCA的主要过程:


特征中心化:将每一维的数据(矩阵A)都减去该维的均值,使得变换后(矩阵B)每一维均值为0;
计算变换后矩阵B的协方差矩阵C;

计算协方差矩阵C的特征值和特征向量;

选取大的特征值对应的特征向量作为”主成分”,并构成新的数据集;
特征脸方法

特征脸方法就是将PCA方法应用到人脸识别中,将人脸图像看成是原始数据集,使用PCA方法对其进行处理和降维,得到“主成分”——即特征脸,然后每个人脸都可以用特征脸的组合进行表示。这种方法的核心思路是认为同一类事物必然存在相同特性(主成分),通过将同一目标(人脸图像)的特性寻在出来,就可以用来区分不同的事物了。
特征脸方法的过程(先计算特征脸,然后识别人脸):

将训练集中的N个人脸拉成一列(reshape(1,1)),然后组合在一起形成一个大矩阵A。若人脸图像大小为m * m,则矩阵A的维度是m * m * N;
将N个人脸在对应的维度求平均,得到一个“平均脸”;
将矩阵A中N个图像都减去“平均脸”,得到新矩阵B;
计算B的协方差矩阵;
计算协方差矩阵的特征值和特征向量(特征脸);
将训练集图像和测试集图像都投影到特征向量空间中,再使用聚类方法(最近邻或k近邻等)得到里测试集中的每个图像最近的图像,进行分类即可。或者通过计算测试图片和已知图片的欧氏距离与自己设定的阈值进行比较,如果均大于阈值则不符合,否则符合某一张图片。
特征脸识别的局限性

要让系统准确识别需要保证人脸图像满足:

待识别图像中人脸尺寸接近特征脸中人脸的尺寸;
待识别人脸图像必须为正面人脸图像。
若不满足此条件,识别错误率很高。从PCA方法的过程可以看出,特征脸识别的方法是以每张人脸的一个维度(可以看出是矩阵的一列)为单位进行处理的,求得的特征向量(特征脸)中包含训练集每个纬度的绝大部分信息。但是若测试集中人脸尺寸不同,那么与特征脸中维度的也就没法对应起来。
<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
FisherFace算法:
Fisher线性判别分析(linear discriminant analysis,LDA)
两类的线性判别问题可以看做所有的样本投影到一个方向(或者说是一个维度空间中),然后再这个空间中确定一个分类的阈值。过这个阈值点且与投影方向垂直的超平面就是分类面。判别思路是选择投影方向,使得投影后两类相隔尽可能远,类内又尽可能聚集(类间方差最大,类内方差最小)。


它的过程分为:

确定最优的投影方向:
在这个方向上确定分类阈值;

Fisherfaces方法结合了PCA和LDA的优点,其具体过程如下:


PCA降维:对原始样本进行PCA处理,获取PCA处理之后的新样本;

LDA特征提取:对降维后的样本使用Fisher线性判别方法,确定一个最优的投影方向,构造一个一维的特征空间(这就被称为Fisherfaces),将多维的人脸图像投影到Fisherfaces特征空间,利用类内样本数据形成一组特征向量,这组特征向量就代表了人脸的特征。

<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
LBP算法:
最初的LBP是定义在像素3x3邻域内的,以邻域中心像素为阈值,将相邻的8个像素的灰度值与其进行比较,若周围像素值大于中心像素值,则该像素点的位置被标记为1,否则为0。这样,3x3邻域内的8个点经比较可产生8位二进制数(通常转换为十进制数即LBP码,共256种),即得到该邻域中心像素点的LBP值,并用这个值来反映该区域的纹理信息


改进的LBP:
圆形LBP算子:


Xp=Xc+Rcos(2πp/p)
Yp=Yc-Rsin(2πp/p)
Xc,Yc为领域中心点,Xp,Yp为某个采样点,通过上式可以计算出任意个采样点的坐标,计算得到的坐标未必是整数值,可以通过双线性插值来得到该采样点的像素值
LBP等价模式:
一个LBP算子可以产生不同的二进制模式,对于半径为R的圆形区域内含有P个采样点的LBP算子将会产生2^P种模式。很显然,随着邻域集内采样点数的增加,二进制模式的种类是急剧增加的。例如:5×5邻域内20个采样点,有220=1,048,576种二进制模式。如此多的二值模式无论对于纹理的提取还是对于纹理的识别、分类及信息的存取都是不利的。同时,过多的模式种类对于纹理的表达是不利的。例如,将LBP算子用于纹理分类或人脸识别时,常采用LBP模式的统计直方图来表达图像的信息,而较多的模式种类将使得数据量过大,且直方图过于稀疏。因此,需要对原始的LBP模式进行降维,使得数据量减少的情况下能最好的代表图像的信息。
为了解决二进制模式过多的问题,提高统计性,Ojala提出了采用一种“等价模式”(Uniform Pattern)来对LBP算子的模式种类进行降维。Ojala等认为,在实际图像中,绝大多数LBP模式最多只包含两次从1到0或从0到1的跳变。因此,Ojala将“等价模式”定义为:当某个LBP所对应的循环二进制数从0到1或从1到0最多有两次跳变时,该LBP所对应的二进制就称为一个等价模式类。如00000000(0次跳变),00000111(只含一次从0到1的跳变),10001111(先由1跳到0,再由0跳到1,共两次跳变)都是等价模式类。除等价模式类以外的模式都归为另一类,称为混合模式类,例如10010111(共四次跳变)。将许多类减少成为P(P-1)+2种

LBP对光照有明显的鲁棒性

不是直接用计算得到的LBP值之后进行人脸识别,而是将一张人脸照片分为若干子区域,并在子区域内根据LBP值统计其直方图,以直方图作为其判别特征,可以避免一定范围内图像没有完全对准的情况,同时也对LBP做了降维处理

对于得到的直方图特征,有多种方法可以判别其相似性,假设已知人脸的直方图为Mi,待匹配人脸的直方图为Si,那么通过:
(1)直方图交叉核方法
(2)卡方统计方法


http://chatgpt.dhexx.cn/article/hBOhKlZa.shtml

相关文章

人脸识别算法及系统

首先说下哦 也就给自己当个记事本发了 内容可能也是老生常谈 不喜勿喷 人脸识别的目标 总结两点&#xff0c;第一&#xff0c;认出同一个人&#xff0c;不管你的状态怎么变&#xff0c;都能知道你就是你。第二、区分不同的人&#xff0c;可能这两个人长得很像&#xff0c;或者…

人脸检测:人脸检测算法综述

https://blog.csdn.net/SIGAI_CSDN/article/details/80751476 问题描述 人脸检测的目标是找出图像中所有的人脸对应的位置&#xff0c;算法的输出是人脸外接矩形在图像中的坐标&#xff0c;可能还包括姿态如倾斜角度等信息。下面是一张图像的人脸检测结果&#xff1a; 虽然人…

人脸检测技术——深度学习算法原理

人脸检测技术——深度学习算法原理 人脸检测技术——深度学习算法原理1. 通用目标检测网络1.1 faster-rcnn检测算法的基本原理1.2 faster-rcnn应用于人脸检测 2. 专门应用于人脸检测的卷积神经网络2.1 专门用于人脸检测的卷积神经网络的发展现状2.2 cascadeCNN2.3 MTCNN 3. 人脸…

什么是人脸识别,人脸识别算法大致分为几种?

如果要给人脸识别下个定义&#xff0c;它是利用人的生物特征实现个体区分的一种技术&#xff0c;一般包括图像采集、特征定位、身份的确认和查找三个环节。简单来说&#xff0c;人脸识别就是从图像中提取面部特征关键点&#xff0c;比如骨骼特征、眉毛高度等&#xff0c;通过比…

基于深度学习的人脸识别算法

基于深度学习的人脸识别算法 简介Contrastive LossTriplet LossCenter LossA-Softmax Loss参考文献&#xff1a; 简介 我们经常能从电影中看到各种神奇的人脸识别技术&#xff0c;例如图1。人脸识别技术是基于面部特征信息进行身份识别的一种生物识别技术。该技术在图片/视频中…

人脸检测算法分类

由于上次在Altea申请的License到期了&#xff0c;因为申请还挺麻烦的&#xff0c;而且申请周期太长了&#xff0c;最后主要因为本人的电脑实在太。。。&#xff0c;编译一个SOC-FPGA的程序需要6-10个小时。。。所以现在基本搁置了OpenCL的学习&#xff0c;开始接触机器视觉。各…

人脸识别算法原理过程详解

本文为转载内容&#xff0c;由于找不到源作者链接&#xff0c;故特此说明。 人脸识别各算法详解 最近&#xff0c;由于工作需要&#xff0c;为了找到一款高效的人脸识别算法&#xff0c;对各种人脸识别算法都研究了一番&#xff0c;以下记录的是各算法的理论基础。 一.MTCNN…

浅析人脸识别算法及其应用

前言 随着深度学习和计算机硬件的快速发展&#xff0c;基于深度卷积神经网络的一系列算法都取得了显著的进展&#xff0c;其中人脸识别作为计算机视觉领域中时间最久远、应用最广泛的研究课题之一&#xff0c;近些年也在深度学习的加持下在性能方面获得了大幅提升&#xff0c;…

了解面部识别的不同算法

介绍 任何面部检测和识别程序或系统都必须以人脸识别算法为核心。这些算法由专家分为两大类。几何方法专注于识别特征。为了从图像中提取值&#xff0c;应用了光度统计方法。然后&#xff0c;为了删除变体&#xff0c;将这些值与模板进行比较。此外&#xff0c;算法可以分为两…

人脸识别各算法详解

人脸识别各算法详解 最近&#xff0c;由于工作需要&#xff0c;为了找到一款高效的人脸识别算法&#xff0c;对各种人脸识别算法都研究了一番&#xff0c;以下记录的是各算法的理论基础。 一.MTCNN 本文章主要介绍MTCNN算法的流程&#xff0c;MTCNN主要由三个框架组成&#…

人脸识别算法(包含简单代码)

TOC 人脸识别算法是一种利用计算机视觉和模式识别技术来识别和验证人脸的算法。它可以通过分析图像或视频中的人脸特征&#xff0c;如脸部轮廓、眼睛、鼻子、嘴巴等来识别和区分不同的个体。人脸识别算法在安全认证、身份验证、监控安防、人机交互等领域具有广泛的应用。 以下…

总结几个简单好用的Python人脸识别算法

今天给大家总结几个简单、好用的人脸识别算法。人脸识别是计算机视觉中比较常见的技术&#xff0c;生活中&#xff0c;我们接触最多的人脸识别场景是人脸考勤. 人脸识别的算法最核心的工作是从一张图片中识别出人脸的位置。识别的算法可以说是多种多样&#xff0c; 下面我就来…

追踪AR圣诞老人,免费领200份圣诞礼物

元宇宙 绿心公园 圣诞节 元宇宙&#xff08;Metaverse&#xff09;&#xff0c;是指 利用科技手段进行链接与创造的&#xff0c; 与现实世界映射与交互的虚拟世界&#xff0c; 具备新型社会体系的数字生活空间。 这一概念在2021年走入了大众视野 勾出了人们对“平行宇宙…

圣诞的礼物

呵呵 &#xff0c;与你一起分享哦。。。。。。

圣诞来了,学编程的小伙伴有收到圣诞老人的礼物?

圣诞来了&#xff0c;学编程的小伙伴有收到圣诞老人的礼物&#xff1f;——编程学习笔记满满的惊喜。 编程是编定程序的中文简称&#xff0c;就是让计算机代为解决某个问题&#xff0c;对某个计算体系规定一定的运算方式&#xff0c;使计算体系按照该计算方式运行&#xff0c;…

圣诞老人的礼物_圣诞节设计资源:圣诞老人

圣诞节对人们而言可能意味着很多事情&#xff0c;但是对于设计师而言&#xff0c;这可能是一个不同的议程。 设计师通常会挤满最后一刻的设计临时通知&#xff0c;以赶在圣诞节贺卡&#xff0c;电子贺卡设计&#xff0c;新闻通讯或其他类型的广告活动的截止日期之前。 因此&am…

微信小程序|飞翔的圣诞老人

一、前言 2022年圣诞节即将到来啦,很高兴这次我们又能一起度过~ 此篇文章主要使用小程序实现飞翔的圣诞老人,跟随文章步骤带着圣诞老人翻越障碍一起去送礼物吧。 二、实现步骤 2.1、创建小程序 访问微信公众平台,点击账号注册。选择小程序,并在表单填写所需的各项信息进行…

圣诞节礼物

对于python小白的你&#xff0c;学了python没多久是不是就有了想自己动手做一个小程序的冲动呢&#xff1f;在这里我给大家分享一个我以前做的小程序——“圣诞节礼物”——希望能给大家带来灵感和帮助。 话不多说&#xff0c;先看一下截图&#xff1a; 这是一个小动画&#xf…

2022圣诞代码合集(圣诞树+圣诞老人)

文章目录 前言使用方法圣诞树圣诞老人 前言 圣诞节里的喜悦&#xff0c;飘扬万里&#xff1b;圣诞树上的星星&#xff0c;璀璨耀眼&#xff1b;圣诞星空绽放的烟花&#xff0c;迎来吉祥&#xff1b;圣诞钟声奏响的旋律&#xff0c;传递欢乐&#xff1b;圣诞老人送给你的礼物&a…

圣诞老人来了嘛

Jingle bells jingle bells jingle all the way... 随着歌声的临近&#xff0c;一年一度的圣诞节也如期而至的到来了 传说啊&#xff0c;圣诞老人为奥丁神后裔。也传说称圣诞老人由尼古拉而来&#xff0c;所以圣诞老人也称St.Nicholas。据说他原是小亚细亚每拉城的主教&#xf…