1. 人脸识别算法的分类
人脸识别法主要集中在二维图像方面,二维人脸识别主要利用分布在人脸上从低到高80个节点或标点,通过测量眼睛、颧骨、下巴等之间的间距来进行身份认证。人脸识别算法主要有:
1.基于模板匹配的方法:模板分为二维模板和三维模板,核心思想:利用人的脸部特征规律建立一个立体可调的模型框架,在定位出人的脸部位置后用模型框架定位和调整人的脸部特征部位,解决人脸识别过程中的观察角度、遮挡和表情变化等因素影响。
2.基于奇异值特征方法:人脸图像矩阵的奇异值特征反映了图像的本质属性,可以利用它来进行分类识别。
3.子空间分析法:因其具有描述性强、计算代价小、易实现及可分性好等特点,被广泛地应用于人脸特征提取,成为了当前人脸识别的主流方法之一。
4.局部保持投影(Locality Preserving Projections,LPP)是一种新的子空间分析方法,它是非线性方法Laplacian Eigen map的线性近似,既解决了PCA等传统线性方法难以保持原始数据非线性流形的缺点,又解决了非线性方法难以获得新样本点低维投影的缺点。
5.主成分分析(PCA)
PCA模式识别领域一种重要的方法,已被广泛地应用于人脸识别算法中,基于PCA人脸识别系统在应用中面临着一个重要障碍:增量学习问题。增量PCA算法由新增样本重构最为重要 PCS,但该方法随着样本的增加, 需要不断舍弃一些不重要PC,以维持子空间维数不变, 因而该方法精度稍差。
6.其他方法:弹性匹配方法、特征脸法(基于KL变换)、人工神经网络法、支持向量机法、基于积分图像特征法(adaboost学习)、基于概率模型法。 二维人脸识别方法的最大不足是在面临姿态、光照条件不同、表情变化以及脸部化妆等方面较为脆弱,识别的准确度受到很大限制,而这些都是人脸在自然状态下会随时表现出来的。三维人脸识别可以极大的提高识别精度,真正的三维人脸识别是利用深度图像进行研究,自90年代初期开始,已经有了一定的进展。三维人脸识别方法有:
1.基于图像特征的方法:采取了从3D结构中分离出姿态的算法。首先匹配人脸整体的尺寸轮廓和三维空间方向;然后,在保持姿态固定的情况下,去作脸部不同特征点(这些特征点是人工的鉴别出来)的局部匹配。
2.基于模型可变参数的方法:使用将通用人脸模型的3D变形和基于距离映射的矩阵迭代最小相结合,去恢复头部姿态和3D人脸。随着模型形变的关联关系的改变不断更新姿态参数,重复此过程直到最小化尺度达到要求。基于模型可变参数的方法与基于图像特征的方法的最大区别在于:后者在人脸姿态每变化一次后,需要重新搜索特征点的坐标,而前者只需调整3D变形模型的参数。
2. 人脸识别的识别算法
人脸识别的基本方法
人脸识别的方法很多,以下介绍一些主要的人脸识别方法。
(1)几何特征的人脸识别方法
几何特征可以是眼、鼻、嘴等的形状和它们之间的几何关系(如相互之间的距离)。这些算法识别速度快,需要的内存小,但识别率较低。
(2)基于特征脸(PCA)的人脸识别方法
特征脸方法是基于KL变换的人脸识别方法,KL变换是图像压缩的一种最优正交变换。高维的图像空间经过KL变换后得到一组新的正交基,保留其中重要的正交基,由这些基可以张成低维线性空间。如果假设人脸在这些低维线性空间的投影具有可分性,就可以将这些投影用作识别的特征矢量,这就是特征脸方法的基本思想。这些方法需要较多的训练样本,而且完全是基于图像灰度的统计特性的。目前有一些改进型的特征脸方法。
(3)神经网络的人脸识别方法
神经网络的输入可以是降低分辨率的人脸图像、局部区域的自相关函数、局部纹理的二阶矩等。这类方法同样需要较多的样本进行训练,而在许多应用中,样本数量是很有限的。
(4)弹性图匹配的人脸识别方法
弹性图匹配法在二维的空间中定义了一种对于通常的人脸变形具有一定的不变性的距离,并采用属性拓扑图来代表人脸,拓扑图的任一顶点均包含一特征向量,用来记录人脸在该顶点位置附近的信息。该方法结合了灰度特性和几何因素,在比对时可以允许图像存在弹性形变,在克服表情变化对识别的影响方面收到了较好的效果,同时对于单个人也不再需要多个样本进行训练。
(5)线段Hausdorff 距离(LHD) 的人脸识别方法
心理学的研究表明,人类在识别轮廓图(比如漫画)的速度和准确度上丝毫不比识别灰度图差。LHD是基于从人脸灰度图像中提取出来的线段图的,它定义的是两个线段集之间的距离,与众不同的是,LHD并不建立不同线段集之间线段的一一对应关系,因此它更能适应线段图之间的微小变化。实验结果表明,LHD在不同光照条件下和不同姿态情况下都有非常出色的表现,但是它在大表情的情况下识别效果不好。
(6)支持向量机(SVM) 的人脸识别方法
近年来,支持向量机是统计模式识别领域的一个新的热点,它试图使得学习机在经验风险和泛化能力上达到一种妥协,从而提高学习机的性能。支持向量机主要解决的是一个2分类问题,它的基本思想是试图把一个低维的线性不可分的问题转化成一个高维的线性可分的问题。通常的实验结果表明SVM有较好的识别率,但是它需要大量的训练样本(每类300个),这在实际应用中往往是不现实的。而且支持向量机训练时间长,方法实现复杂,该函数的取法没有统一的理论。
人脸识别的方法很多,当前的一个研究方向是多方法的融合,以提高识别率。
在人脸识别中,第一类的变化是应该放大而作为区分个体的标准的,而第二类的变化应该消除,因为它们可以代表同一个个体。通常称第一类变化为类间变化,而称第二类变化为类内变化。对于人脸,类内变化往往大于类间变化,从而使在受类内变化干扰的情况下利用类间变化区分个体变得异常困难。正是基于上述原因,一直到21 世纪初,国外才开始出现人脸识别的商用,但由于人脸识别算法非常复杂,只能采用庞大的服务器,基于强大的计算机平台。
如果可以的话,可以Te一下colorreco,更好的技术解答。
3. 人脸识别是靠什么技术实现的
人脸识别门禁技术如今已渐趋成熟,曾经很多企业、社区、景区、工地所依赖的指纹识别门禁、门禁卡门禁、密码锁门禁如今正被人脸识别门禁所取代,为各行业领域带来了极大的便捷。但人脸识别技术作为一种新兴的人员身份鉴别技术,大部分人对于这项技术还是相对陌生,关于与人脸识别相关的问题也时有发生,为了让大家快速学会使用人脸识别门禁系统,今天宝比万像人脸识别就来教大家如何学会人脸识别门禁的人脸信息录入使用。
启动设备
1.默认打开宝比万像人脸识别门禁考勤设备端APP,进入“宝比万像人脸识别门禁考勤系统设备端APP”启动页
2.默认进入人脸认证页面。
3.在人脸认证界面,点击“首页”按钮,返回人脸设备主菜单。
人脸验证
1.在人脸识别主界面点击“人脸认证”菜单进行人脸验证
2.人脸认证:通过认证,闸门开启,并显示人脸ID,姓名。
3.人脸认证:没有登记的人脸进行验证,提示“人脸无登记”。
人脸登记
1.在人脸识别主界面点击“人脸登记+”,弹出登录界面。
2.输入登录账号、密码(xxxxxx),点击登录。
3.输入姓名,点击下一步,跳转到人脸登记界面。
4.人脸登记初始化页面。提示登记这,请面对摄像头。
5.人脸登记:拍摄成功后“确认注册”,提升“人脸登记成功”。
6.点解“重新获取”,即对需要登记的人脸进行重新拍摄登记。
7.已登记成功的用户,再次进行人脸登记,则提示;已登记。
8.点击当前页面的返回剪头,即返回到人脸识别设备APP首页。
4. viola jones算法可以识别脸部特征吗
可以试试这个人脸识别算法:基于特征脸(PCA)的人脸识别方法特征脸方法是基于KL变换的人脸识别方法,KL变换是图像压缩的一种最优正交变换。高维的图像空间经过KL变换后得到一组新的正交基,保留其中重要的正交基,由这些基可以张成低维线性空间。如果假设人脸在这些低维线性空间的投影具有可分性,就可以将这些投影用作识别的特征矢量,这就是特征脸方法的基本思想。这些方法需要较多的训练样本,而且完全是基于图像灰度的统计特性的。目前有一些改进型的特征脸方法。
此问题由colorreco人脸识别回答。
5. 人脸识别,为什么计算机可以认出人的模样
人脸识别技术经历了近四十年的发展,在近年来逐步涌现出了一批可以投入实际应用的成果。如谷歌(微博)眼镜中的身份识别、智能手机上的人脸解锁等功能正渐渐影响着我们的生活,而指定人脸识别等应用更是早早地进入了安防领域的最前线。在这项技术的发展过程中曾经出现
间的欧式距离,取最小距离所对应的人脸图像的身份作为测试人脸图像的身份。打个比方,这就像是警察局里指认嫌疑人时所用的“拼脸”方法,它以一个基础脸型为底,将合适的眼睛、眉毛等五官放上去,最终组成一个与嫌疑人最像的人脸图。计算机所做的事情也大致如此,只是它的“眼睛”、“眉毛”等五官更加抽象。
6. 想问一下有没有比较方便的人脸识别算法,求推荐
主流的人脸识别技术基本上可以归结为三类,即:基于几何特征的方法、基于模板的方法和基于模型的方法。
1. 基于几何特征的方法是最早、最传统的方法,通常需要和其他算法结合才能有比较好的效果;
2. 基于模板的方法可以分为基于相关匹配的方法、特征脸方法、线性判别分析方法、奇异值分解方法、神经网络方法、动态连接匹配方法等。
3. 基于模型的方法则有基于隐马尔柯夫模型,主动形状模型和主动外观模型的方法等。
1. 基于几何特征的方法
人脸由眼睛、鼻子、嘴巴、下巴等部件构成,正因为这些部件的形状、大小和结构上的各种差异才使得世界上每个人脸千差万别,因此对这些部件的形状和结构关系的几何描述,可以做为人脸识别的重要特征。几何特征最早是用于人脸侧面轮廓的描述与识别,首先根据侧面轮廓曲线确定若干显着点,并由这些显着点导出一组用于识别的特征度量如距离、角度等。Jia 等由正面灰度图中线附近的积分投影模拟侧面轮廓图是一种很有新意的方法。
采用几何特征进行正面人脸识别一般是通过提取人眼、口、鼻等重要特征点的位置和眼睛等重要器官的几何形状作为分类特征,但Roder对几何特征提取的精确性进行了实验性的研究,结果不容乐观。
可变形模板法可以视为几何特征方法的一种改进,其基本思想是 :设计一个参数可调的器官模型 (即可变形模板),定义一个能量函数,通过调整模型参数使能量函数最小化,此时的模型参数即做为该器官的几何特征。
这种方法思想很好,但是存在两个问题,一是能量函数中各种代价的加权系数只能由经验确定,难以推广,二是能量函数优化过程十分耗时,难以实际应用。 基于参数的人脸表示可以实现对人脸显着特征的一个高效描述,但它需要大量的前处理和精细的参数选择。同时,采用一般几何特征只描述了部件的基本形状与结构关系,忽略了局部细微特征,造成部分信息的丢失,更适合于做粗分类,而且目前已有的特征点检测技术在精确率上还远不能满足要求,计算量也较大。
2. 局部特征分析方法(Local Face Analysis)
主元子空间的表示是紧凑的,特征维数大大降低,但它是非局部化的,其核函数的支集扩展在整个坐标空间中,同时它是非拓扑的,某个轴投影后临近的点与原图像空间中点的临近性没有任何关系,而局部性和拓扑性对模式分析和分割是理想的特性,似乎这更符合神经信息处理的机制,因此寻找具有这种特性的表达十分重要。基于这种考虑,Atick提出基于局部特征的人脸特征提取与识别方法。这种方法在实际应用取得了很好的效果,它构成了FaceIt人脸识别软件的基础。
3. 特征脸方法(Eigenface或PCA)
特征脸方法是90年代初期由Turk和Pentland提出的目前最流行的算法之一,具有简单有效的特点, 也称为基于主成分分析(principal component analysis,简称PCA)的人脸识别方法。
特征子脸技术的基本思想是:从统计的观点,寻找人脸图像分布的基本元素,即人脸图像样本集协方差矩阵的特征向量,以此近似地表征人脸图像。这些特征向量称为特征脸(Eigenface)。
实际上,特征脸反映了隐含在人脸样本集合内部的信息和人脸的结构关系。将眼睛、面颊、下颌的样本集协方差矩阵的特征向量称为特征眼、特征颌和特征唇,统称特征子脸。特征子脸在相应的图像空间中生成子空间,称为子脸空间。计算出测试图像窗口在子脸空间的投影距离,若窗口图像满足阈值比较条件,则判断其为人脸。
基于特征分析的方法,也就是将人脸基准点的相对比率和其它描述人脸脸部特征的形状参数或类别参数等一起构成识别特征向量,这种基于整体脸的识别不仅保留了人脸部件之间的拓扑关系,而且也保留了各部件本身的信息,而基于部件的识别则是通过提取出局部轮廓信息及灰度信息来设计具体识别算法。现在Eigenface(PCA)算法已经与经典的模板匹配算法一起成为测试人脸识别系统性能的基准算法;而自1991年特征脸技术诞生以来,研究者对其进行了各种各样的实验和理论分析,FERET'96测试结果也表明,改进的特征脸算法是主流的人脸识别技术,也是具有最好性能的识别方法之一。
该方法是先确定眼虹膜、鼻翼、嘴角等面像五官轮廓的大小、位置、距离等属性,然后再计算出它们的几何特征量,而这些特征量形成一描述该面像的特征向量。其技术的核心实际为“局部人体特征分析”和“图形/神经识别算法。”这种算法是利用人体面部各器官及特征部位的方法。如对应几何关系多数据形成识别参数与数据库中所有的原始参数进行比较、判断与确认。Turk和Pentland提出特征脸的方法,它根据一组人脸训练图像构造主元子空间,由于主元具有脸的形状,也称为特征脸 ,识别时将测试 图像投影到主元子空间上,得到一组投影系数,和各个已知人的人脸图像比较进行识别。Pentland等报告了相当好的结果,在 200个人的 3000幅图像中得到 95%的正确识别率,在FERET数据库上对 150幅正面人脸象只有一个误识别。但系统在进行特征脸方法之前需要作大量预处理工作如归一化等。
在传统特征脸的基础上,研究者注意到特征值大的特征向量 (即特征脸 )并不一定是分类性能好的方向,据此发展了多种特征 (子空间 )选择方法,如Peng的双子空间方法、Weng的线性歧义分析方法、Belhumeur的FisherFace方法等。事实上,特征脸方法是一种显式主元分析人脸建模,一些线性自联想、线性压缩型BP网则为隐式的主元分析方法,它们都是把人脸表示为一些向量的加权和,这些向量是训练集叉积阵的主特征向量,Valentin对此作了详细讨论。总之,特征脸方法是一种简单、快速、实用的基于变换系数特征的算法,但由于它在本质上依赖于训练集和测试集图像的灰度相关性,而且要求测试图像与训练集比较像,所以它有着很大的局限性。
基于KL 变换的特征人脸识别方法
基本原理:
KL变换是图象压缩中的一种最优正交变换,人们将它用于统计特征提取,从而形成了子空间法模式识别的基础,若将KL变换用于人脸识别,则需假设人脸处于低维线性空间,且不同人脸具有可分性,由于高维图象空间KL变换后可得到一组新的正交基,因此可通过保留部分正交基,以生成低维人脸空间,而低维空间的基则是通过分析人脸训练样本集的统计特性来获得,KL变换的生成矩阵可以是训练样本集的总体散布矩阵,也可以是训练样本集的类间散布矩阵,即可采用同一人的数张图象的平均来进行训练,这样可在一定程度上消除光线等的干扰,且计算量也得到减少,而识别率不会下降。
4. 基于弹性模型的方法
Lades等人针对畸变不变性的物体识别提出了动态链接模型 (DLA),将物体用稀疏图形来描述 (见下图),其顶点用局部能量谱的多尺度描述来标记,边则表示拓扑连接关系并用几何距离来标记,然后应用塑性图形匹配技术来寻找最近的已知图形。Wiscott等人在此基础上作了改进,用FERET图像库做实验,用 300幅人脸图像和另外 300幅图像作比较,准确率达到 97.3%。此方法的缺点是计算量非常巨大 。
Nastar将人脸图像 (Ⅰ ) (x,y)建模为可变形的 3D网格表面 (x,y,I(x,y) ) (如下图所示 ),从而将人脸匹配问题转化为可变形曲面的弹性匹配问题。利用有限元分析的方法进行曲面变形,并根据变形的情况判断两张图片是否为同一个人。这种方法的特点在于将空间 (x,y)和灰度I(x,y)放在了一个 3D空间中同时考虑,实验表明识别结果明显优于特征脸方法。
Lanitis等提出灵活表现模型方法,通过自动定位人脸的显着特征点将人脸编码为 83个模型参数,并利用辨别分析的方法进行基于形状信息的人脸识别。弹性图匹配技术是一种基于几何特征和对灰度分布信息进行小波纹理分析相结合的识别算法,由于该算法较好的利用了人脸的结构和灰度分布信息,而且还具有自动精确定位面部特征点的功能,因而具有良好的识别效果,适应性强识别率较高,该技术在FERET测试中若干指标名列前茅,其缺点是时间复杂度高,速度较慢,实现复杂。
5. 神经网络方法(Neural Networks)
人工神经网络是一种非线性动力学系统,具有良好的自组织、自适应能力。目前神经网络方法在人脸识别中的研究方兴未艾。Valentin提出一种方法,首先提取人脸的 50个主元,然后用自相关神经网络将它映射到 5维空间中,再用一个普通的多层感知器进行判别,对一些简单的测试图像效果较好;Intrator等提出了一种混合型神经网络来进行人脸识别,其中非监督神经网络用于特征提取,而监督神经网络用于分类。Lee等将人脸的特点用六条规则描述,然后根据这六条规则进行五官的定位,将五官之间的几何距离输入模糊神经网络进行识别,效果较一般的基于欧氏距离的方法有较大改善,Laurence等采用卷积神经网络方法进行人脸识别,由于卷积神经网络中集成了相邻像素之间的相关性知识,从而在一定程度上获得了对图像平移、旋转和局部变形的不变性,因此得到非常理想的识别结果,Lin等提出了基于概率决策的神经网络方法 (PDBNN),其主要思想是采用虚拟 (正反例 )样本进行强化和反强化学习,从而得到较为理想的概率估计结果,并采用模块化的网络结构 (OCON)加快网络的学习。这种方法在人脸检测、人脸定位和人脸识别的各个步骤上都得到了较好的应用,其它研究还有 :Dai等提出用Hopfield网络进行低分辨率人脸联想与识别,Gutta等提出将RBF与树型分类器结合起来进行人脸识别的混合分类器模型,Phillips等人将MatchingPursuit滤波器用于人脸识别,国内则采用统计学习理论中的支撑向量机进行人脸分类。
神经网络方法在人脸识别上的应用比起前述几类方法来有一定的优势,因为对人脸识别的许多规律或规则进行显性的描述是相当困难的,而神经网络方法则可以通过学习的过程获得对这些规律和规则的隐性表达,它的适应性更强,一般也比较容易实现。因此人工神经网络识别速度快,但识别率低 。而神经网络方法通常需要将人脸作为一个一维向量输入,因此输入节点庞大,其识别重要的一个目标就是降维处理。
PCA的算法描述:利用主元分析法 (即 Principle Component Analysis,简称 PCA)进行识别是由 Anderson和 Kohonen提出的。由于 PCA在将高维向量向低维向量转化时,使低维向量各分量的方差最大,且各分量互不相关,因此可以达到最优的特征抽取。
7. 人脸识别算法的种类
二维人脸识别算法
三维人脸识别算法
8. opencv的人脸识别基于什么特征
基于几何特征的人脸识别方法
基于特征的方法是一种自下而上的人脸检测方法,由于人眼可以将人脸在不此研究人员认为有一个潜在的假设:人脸或人脸的部件可能具有在各种条件下都不会改变的特征或属性,如形状、肤色、纹理、边缘信息等。基于特征的方法的目标就是寻找上述这些不变特征,并利用这些特征来定位入脸。这类方法在特定的环境下非常有效且检测速度较高,对人脸姿态、表情、旋转都不敏感。但是由于人脸部件的提取通常都借助于边缘算子,因此,这类方法对图像质量要求较高,对光照和背景等有较高的要求,因为光照、噪音、阴影都极有可能破坏人脸部件的边缘,从而影响算法的有效性。
模板匹配算法首先需要人TN作标准模板(固定模板)或将模板先行参数化(可变模板),然后在检测人脸时,计算输入图像与模板之间的相关值,这个相关值通常都是独立计算脸部轮廓、眼睛、鼻子和嘴各自的匹配程度后得出的综合描述,最后再根据相关值和预先设定的阈值来确定图像中是否存在人脸。基于可变模板的人脸检测算法比固定模板算法检测效果要好很多,但是它仍不能有效地处理人脸尺度、姿态和形状等方面的变化。
基于外观形状的方法并不对输入图像进行复杂的预处理,也不需要人工的对人脸特征进行分析或是抽取模板,而是通过使用特定的方法(如主成分分析方法(PCA)、支持向量机(SVM)、神经网络方法(ANN)等)对大量的人脸和非人脸样本组成的训练集(一般为了保证训练得到的检测器精度,非人脸样本集的容量要为人脸样本集的两倍以上)进行学习,再将学习而成的模板或者说分类器用于人脸检测。因此,这也是j种自下而上的方法。这种方法的优点是利用强大的机器学习算法快速稳定地实现了很好的检测结果,并且该方法在复杂背景下,多姿态的人脸图像中也能得到有效的检测结果。但是这种方法通常需要遍历整个图片才能得到检测结果,并且在训练过程中需要大量的人脸与非人脸样本,以及较长的训练时间。近几年来,针对该方法的人脸检测研究相对比较活跃。
基于代数特征的人脸识别方法
在基于代数特征的人脸识别中,每一幅人脸图像被看成是以像素点灰度为元素的矩阵,用反映某些性质的数据特征来表示人脸的特征。 设人脸图像 ) , ( y x I 为二维 N M × 灰度图像,同样可以看成是 N M n × = 维列向量,可视为 N M × 维空间中的一个点。但这样的一个空间中,并不是空间中的每一部分都包含有价值的信息,故一般情况下,需要通过某种变换,将如此巨大的空间中的这些点映射到一个维数较低的空间中去。然后利用对图像投影间的某种度量来确定图像间的相似度,最常见的就是各种距离度量。 在基于代数特征的人脸识别方法中,主成分分析法(PCA)和Fisher 线性判别分析(LDA)是研究最多的方法。本章简要介绍介绍了PCA。
完整的PCA(PrincipalComponentAnalysis)人脸识别的应用包括四个步骤:人脸图像预处理;读入人脸库,训练形成特征子空间;把训练图像和测试图像投影的上一步骤中得到的子空间上;选择一定的距离函数进行识别。详细描述如下:
4.1读入人脸库
一归一化人脸库后,将库中的每个人选择一定数量的图像构成训练集,设归一化后的图像是n×n,按列相连就构成n2维矢量,可视为n2维空间中的一个点,可以通过K-L变换用一个低维子空间描述这个图像。
4.2计算K.L变换的生成矩阵
训练样本集的总体散布矩阵为产生矩阵,即
或者写成:
式中xi为第i个训练样本的图像向量,|l为训练样本的均值向量,M为训练样本的总数。为了求n2×n2维矩阵∑的特征值和正交归一化的特征向量,要直接计算的话,计算量太大,由此引入奇异值分解定理来解决维数过高的问题。
4.3利用奇异值分解(AVD)定理计算图像的特征值和特征向量
设A是一个秩为r的行n×r维矩阵,则存在两个正交矩阵和对角阵:
其中凡则这两个正交矩阵和对角矩阵满足下式:
其中为矩阵的非零特征值,
4.4 把训练图像和测试图像投影到特征空间每一副人脸图像向特征脸子空间投影,得到一组坐标系数,就对应于子空间中的一个点。同样,子空间中的任一点也对应于~副图像。这组系数便可作为人脸识别的依据,也就是这张人脸图像的特征脸特征。也就是说任何一幅人脸图像都可以表示为这组特征脸的线性组合,各个加权系数就是K.L变换的展开系数,可以作为图像的识别特征,表明了该图像在子空间的位置,也就是向量
可用于人脸检测,如果它大于某个阈值,可以认为f是人脸图像,否则就认为不是。这样原来的人脸图象识别问题就转化为依据子空间的训练样本点进行分类的问题。
基于连接机制的人脸识别方法
基于连接机制的识别方法的代表性有神经网络和弹性匹配法。
神经网络(ANN)在人工智能领域近年来是一个研究热门,基于神经网络技术来进行人脸特征提取和特征识别是一个积极的研究方向。神经网络通过大量简单神经元互联来构成复杂系统,在人脸识别中取得了较好的效果,特别是正面人脸图像。常用的神经网络有:BP网络、卷积网络、径向基函数网络、自组织网络以及模糊神经网络等n¨。BP网络的运算量较小耗时也短,它的自适应功能使系统的鲁棒性增强。神经网络用于人脸识别,相比较其他方法,其可以获得识别规则的隐性表达,缺点是训练时间长、运算量大、收敛速度慢且容易陷入局部极小点等。Gutta等人结合RBF与树型分类器的混合分类器模型来进行人脸识别乜螂1。Lin等人采用虚拟样本进行强化和反强化学习,采用模块化的网络结构网络的学习加快,实现了基于概率决策的神经网络方法获得了较理想结果,。此种方法能较好的应用于人脸检测和识别的各步骤中。弹性匹配法采用属性拓扑图代表人脸,拓扑图的每个顶点包含一个特征向量,以此来记录人脸在该顶点位置周围的特征信息¨引。拓扑图的顶点是采用小波变换特征,对光线、角度和尺寸都具有一定的适应性,且能适应表情和视角的变化,其在理论上改进了特征脸算法的一些缺点。
基于三维数据的人脸识别方法
一个完整的人脸识别系统包括人脸面部数据的获取、数据分析处理和最终结果输出三个部分。图2-1 显示了三维人脸识别的基本步骤:1 、通过三维数据采集设备获得人脸面部的三维形状信息;2 、对获取的三维数据进行平滑去噪和提取面部区域等预处理;3 、从三维数据中提取人脸面部特征,通过与人脸库中的数据进行比对;4 、用分类器做分类判别,输出最后决策结果。
基于三维数据的方法的代表性是基于模型合成的方法和基于曲率的方法。
基于模型合成的方法,它的基本思想为:输入人脸图像的二维的,用某种技术恢复(或部分恢复)人脸的三维信息,再重新合成指定条件下的人脸图像。典型代表是3D可变形模型和基于形状恢复的3D增强人脸识别算法。3D可变形模型首先通过200个高精度的3D人脸模型构建一个可变形的3D人脸模型,用这个模型来对给定的人脸图像拟合,获得一组特定的参数,再合成任何姿态和光照的人脸图像n卜捌。基于形状恢复的3D增强人脸识别算法是利用通用的3D人脸模型合成新的人脸图像,合成过程改变了一定的姿态与光源情况。
曲率是最基本的表达曲面信息的局部特征,因而最早用来处理3D人脸识别问题的是人脸曲面的曲率。Lee禾lJ用平均曲率和高斯曲率值,将人脸深度图中凸的区域分割出来。
如果你是开发者的话,可以去Tel一下colorreco,更好地技术解答。
9. 人脸识别有什么优化算法还请各位大神赐教,简单一点的。谢谢
人脸识别技术概述
广义的人脸识别主要分为人脸检测(face detection)、特征提取(feature extraction)和人脸识别(face recognition)三个过程,如图1所示。
人脸,人脸识别,人脸识别技术
图1 典型的人脸识别过程
其中,第三步提到的人脸识别是狭义的人脸识别,即将待识别人脸所提取的特征与数据库中人脸的特征进行对比,根据相似度判别分类。而人脸识别又可以分为两个大类:一类是确认(verification),这是人脸图像与数据库中已存的该人图像比对的过程,回答你是不是你的问题;另一类是辨认(identification),这是人脸图像与数据库中已存的所有图像匹配的过程,回答你是谁的问题。显然,人脸辨认要比人脸确认困难,因为辨认需要进行海量数据的匹配。在辨认过程中,海量数据的处理、特征提取和分类算法的选择变得非常重要。识别率和识别速度是人脸识别技术中主要的衡量算法性能的指标。本文后面提到的人脸识别,主要指的是人脸辨认。
人脸识别技术原理
人脸识别算法发展到今天,大致上可以分为两类:基于特征的人脸识别算法和基于外观的人脸识别算法。其中,多数基于特征的人脸识别算法属于早期的人脸识别算法,现在已经不再使用。不过近些年出现了一些新的基于特征的算法,并取得不错的效果。而基于外观的人脸识别算法是由于实现简单,受到广泛关注。接下来将分别介绍两类人脸识别算法。
基于特征的人脸识别算法:早期的人脸识别算法主要是基于特征模板和几何约束来实现的。这一类算法首先对输入图像进行处理,提取出如眼睛、鼻子和嘴等面部特征和外观轮廓。然后计算这些面部特征之间的几何关系,如距离、面积和角度等。这样将输入图像转换为几何特征向量后,使用标准的统计模式识别技术进行匹配分类。由于算法利用了一些直观的特征,计算量小。不过,由于其所需的特征点不能精确选择,限制了它的应用范围。另外,当光照变化、人脸有外物遮挡、面部表情变化时,特征变化较大。所以说,这类算法只适合于人脸图像的粗略识别,无法在实际中应用。
人脸,人脸识别,人脸识别技术
图2 一些典型的面部几何特征示意图
以上这些方法都是通过一些特征模板和几何约束来检测特定的面部特征,并计算特征之间的关系。还有一些方法使用了图像的局部表示来提取特征。其中最受关注的方法是局部二值模式(LBP)算法。LBP方法首先将图像分成若干区域,在每个区域的像素3x3邻域中用中心值作阈值化,将结果看成是二进制数。图3显示了一个LBP算子。LBP算子的特点是对单调灰度变化保持不变。每个区域通过这样的运算得到一组直方图,然后将所有的直方图连起来组成一个大的直方图并进行直方图匹配计算进行分类。
人脸,人脸识别,人脸识别技术
图3 LBP算子
基于特征的人脸识别算法主要的优势在于对姿态、尺度和光照等变化鲁棒。由于多数特征是基于手动选择和先验知识,受图像本身的成像质量影响较少。另外,提取出的面部特征往往维数较低,匹配速度快。这些方法的缺点是自动特征提取的难度较大。如果特征集的鉴别能力弱,再多的后续处理也无法补偿本身的不足。
基于外观的人脸识别算法:基于外观的人脸识别算法也称为整体方法。它们使用图像的全局信息来辨识人脸。最简单的整体方法是用二维数组来存放图像的灰度值,然后直接对输入图像和数据库中的所有图像进行相关性比较。这种方法的缺点非常多,如易受环境影响、计算耗时等。其中一个重要的问题是这样的分类是在一个非常高维的空间中进行的。为了克服维数问题,一些算法使用统计降维方法来获取和保留更有用的信息,最典型的算法就是主成分分析(PCA)算法和线性鉴别分析(LDA)算法。
PCA算法指出任何特定的人脸可以由一个低维的特征子空间表示,并可以用这个特征子空间近似地重建。将输入人脸图像投影到特征子空间上得到的特征与已知的数据库进行比对来确定身份。PCA算法选取的特征最大化了人脸样本间的差异,但也保留了一些由于光照和面部表情产生的不必要的变化。而同一个人由于光照产生的变化可能会大于不同人之间的变化,如图4所示。LDA算法在最大化不同个体之间的样本差异的同时,最小化同一个体内部的样本差异。这样达到了人脸特征子空间的划分。图5是PCA和LDA算法的示例。其中,PCA的特征脸是由组成PCA特征子空间的特征向量按二维图像来排列得到的类似人脸的图像。LDA的Fisher脸也是同样道理。经过特征脸和Fisher脸重构得到的人脸图像在第四行。可以看到,PCA重构脸与输入人脸差异较小,但LDA的Fisher脸很难辨认,但突出了该个体的显着特征。PCA和LDA方法都假设存在一个最优的投影子空间。这个子空间的每个区域对应唯一的一个人。然而,事实上在人脸空间中许多人经常会映射到相同的区域中,因此这种假设并不成立。
来源:海鑫科金
http://www.hisign.com.cn/news/instry/2699.html
10. 求PCA人脸识别算法
a1=imread('a1.jpg');
a2=imread('a2.jpg');
b1=imread('b1.jpg');
b2=imread('b2.jpg');
a1=rgb2gray(a1);
a2=rgb2gray(a2);
b1=rgb2gray(b1);
b2=rgb2gray(b2);
figure,imshow(a1)
figure,imshow(a2)
figure,imshow(b1)
figure,imshow(b2)
a1=double(a1);
a2=double(a2);
b1=double(b1);
b2=double(b2);
a1_lie=a1(:);
a2_lie=a2(:);
b1_lie=b1(:);
b2_lie=b2(:);
c=cat(1,a1_lie',a2_lie',b1_lie',b2_lie');
c_mean=mean(c);
X=[a1_lie-c_mean',a2_lie-c_mean',b1_lie-c_mean',b2_lie-c_mean'];
R=X'*X; % R是4×4的矩阵
[p,q]=eig(R);
u=diag(q); % u是4×1的列向量
u=flipud(u); % flipud(u)实现矩阵的上下翻转, u是4×1的列向量
v=fliplr(p); % fliplr(p)实现矩阵的左右翻转,v是4×4的矩阵
e=zeros(36000,4);
for m=1:3
e(:,m)=X*v(:,m)./(u(m)^(-0.5)); % 参见《模式识别》P226公式9-18
end
p1=zeros(200,180);
p2=zeros(200,180);
p3=zeros(200,180);
for m=1:36000
p1(m)=e(m);
p2(m)=e(m+36000);
p3(m)=e(m+72000);
end
p1=mat2gray(p1);
p2=mat2gray(p2);
p3=mat2gray(p3);
figure,imshow(p1) % 显示第1特征脸
figure,imshow(p2) % 显示第2特征脸
figure,imshow(p3) % 显示第3特征脸
new=c*e(:,1:3); %分别计算4个训练样本分别在第1、第2、第3、特征脸上的投影
p1=imread('p_test1.jpg'); %读入一个测试样本
p1=rgb2gray(p1);
figure,imshow(p1);
p2=double(p1(:));
test=p2'*e(:,1:3);%计算测试样本在3个特征脸上的投影
error=zeros(4,1);
for m=1:4
error(m)=norm((new(m,:)-test));
end
[distence,index]=sort(error); %将列向量error中的数据按从小到大排列
if index(1)==1
result=1;
elseif index(1)==2
result=1;
elseif index(1)==3
result=2;
elseif index(1)==4
result=2;
end
result %result为1时表示测试样本属于第1个人,为2时表示测试样本属于第2个人