人脸识别系统-开放实验报告范文
- 格式:doc
- 大小:722.50 KB
- 文档页数:12
一、实习背景与目的随着科技的飞速发展,人工智能技术在各个领域得到了广泛应用。
人脸识别技术作为一种生物识别技术,以其高精度、非接触、便捷性等特点,在安防、金融、医疗、教育等多个领域展现出巨大的应用潜力。
为了深入了解人脸识别技术的原理、应用和发展趋势,我于近期在某科技公司进行了为期一个月的人脸识别技术实习。
本次实习的主要目的是:1. 学习人脸识别技术的基本原理和实现方法;2. 了解人脸识别技术的应用场景和发展趋势;3. 通过实际操作,提高自己的编程能力和问题解决能力;4. 为今后从事相关领域的研究和工作打下基础。
二、实习内容与过程1. 人脸识别技术理论学习在实习初期,我重点学习了人脸识别技术的基本原理和实现方法。
主要包括以下几个方面:(1)人脸检测:通过图像处理技术,从图像中检测出人脸区域。
(2)人脸特征提取:对人脸图像进行特征提取,包括人脸轮廓、纹理、颜色等。
(3)人脸比对:将待识别的人脸与数据库中的人脸进行比对,确定其身份。
(4)人脸跟踪:在视频中实时跟踪人脸,实现人脸的连续识别。
通过学习,我对人脸识别技术的原理和流程有了较为全面的认识。
2. 人脸识别系统开发实践在理论学习的基础上,我参与了公司人脸识别系统的开发实践。
主要工作如下:(1)系统需求分析:与客户沟通,了解其对人脸识别系统的具体需求,包括识别精度、识别速度、系统稳定性等。
(2)系统设计:根据需求分析,设计系统架构,包括前端界面、后端服务器、数据库等。
(3)代码编写:使用Python语言和OpenCV、Dlib等开源库,实现人脸检测、特征提取、比对等功能。
(4)系统测试:对系统进行功能测试、性能测试和稳定性测试,确保系统满足客户需求。
在开发过程中,我遇到了许多技术难题,如光照变化对识别精度的影响、人脸遮挡导致的识别失败等。
通过查阅资料、请教同事和不断尝试,我逐步解决了这些问题。
3. 项目总结与反思在实习过程中,我深刻体会到了以下几点:(1)人脸识别技术虽然发展迅速,但仍存在许多挑战,如光照、姿态、表情等因素对识别精度的影响。
人脸识别实习报告一、实习背景及目的随着科技的不断发展,人工智能技术逐渐应用于各个领域,其中人脸识别技术在安防、金融、交通等领域发挥着重要作用。
本次实习,我选择了人脸识别作为研究方向,旨在了解人脸识别技术的原理,掌握人脸识别系统的开发与运用,提高自己在人工智能领域的实践能力。
二、实习内容与过程1. 学习人脸识别技术原理在实习初期,我通过阅读相关文献和资料,对人脸识别技术有了基本的了解。
人脸识别技术主要包括人脸检测、特征提取和相似度匹配三个环节。
人脸检测是指从图像中定位出人脸区域,特征提取是从人脸图像中提取出具有区分度的特征向量,相似度匹配则是根据特征向量计算人脸之间的相似度,从而实现人脸识别。
2. 学习人脸识别算法在人脸识别技术中,算法是核心部分。
目前主流的人脸识别算法有深度学习算法和传统算法。
深度学习算法在人脸识别中取得了显著的成果,如卷积神经网络(CNN)等。
传统算法主要包括特征脸(Eigenface)和局部二值模式(LBP)等。
我通过对比分析,选择了基于深度学习的人脸识别算法进行实践。
3. 开发人脸识别系统为了更好地实践人脸识别技术,我利用开源框架搭建了一个人脸识别系统。
系统主要包括图像预处理、特征提取、相似度匹配和识别输出四个部分。
在图像预处理环节,我对输入的图像进行灰度化、归一化和去噪处理。
特征提取环节采用卷积神经网络模型提取人脸特征。
相似度匹配环节使用欧氏距离计算特征向量之间的相似度。
最后,根据相似度阈值判断是否为人脸识别成功。
4. 测试与优化人脸识别系统在系统开发完成后,我对人脸识别系统进行了测试。
测试数据包括正常光线条件下的人脸图像和不同光照、表情、姿态条件下的人脸图像。
通过测试,我发现系统在光线充足、人脸图像质量较高的情况下识别效果较好。
然而,在光照不足、人脸图像质量较低的情况下,识别效果仍有待提高。
针对这一问题,我对人脸识别系统进行了优化,包括调整相似度阈值、改进特征提取模型等。
人脸识别综合实践报告下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by the editor. I hope that after you download them, they can help yousolve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!In addition, our shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts,other materials and so on, want to know different data formats and writing methods, please pay attention!人脸识别技术在如今的社会中得到了广泛的应用,其在安防、金融、医疗等领域发挥了重要作用。
人脸识别报告范文
一、实验的背景与目的
人脸识别是一种比较先进的生物识别技术,是利用计算机视觉和图像
处理技术来识别人的脸部特征,判断两张人脸是否为同一个人。
近年来,
人脸识别技术已经被应用于许多安全领域,如门禁系统、人员身份认证系统、消费系统等等,以确保人们的个人信息安全。
本实验的目的是研究和
比较不同类型的人脸识别算法,以达到准确识别人脸的效果。
二、实验方法与流程
本实验主要利用Python语言进行实现,主要流程如下:
1.数据准备:首先收集一定数量的人脸数据作为测试数据,将其存储
在电脑的硬盘中。
2.算法选择:选择不同类型的人脸识别算法,如PCA、LDA、SVM等等,来实现人脸识别的功能。
3.算法实现:将选定的算法应用到测试数据上,以获得准确的识别结果。
4.结果分析:对比不同类型的算法的准确率,以及分析准确率的影响
因素,以期获得更优良的人脸识别效果。
三、实验结果
1.算法的对比
本实验选择了PCA、LDA、SVM算法进行人脸识别实验,实验结果如下:
(1)PCA算法:PCA算法的准确率为97.7%,本实验中,PCA算法的识别精度较高,但识别速度较慢,耗时较多。
(2)LDA算法:LDA算法的准确率为93.2%。
第1篇一、实验目的1. 了解人脸识别的基本原理和流程。
2. 掌握人脸识别算法的实现和应用。
3. 分析不同人脸识别算法的性能和优缺点。
4. 评估人脸识别技术在实际应用中的可行性和效果。
二、实验环境1. 操作系统:Windows 10/Ubuntu 18.042. 编程语言:Python3. 开发工具:PyCharm/VS Code4. 库:OpenCV、dlib、TensorFlow、Keras等5. 硬件要求:CPU:Intel Core i5以上;内存:8GB以上三、实验内容1. 人脸检测2. 特征提取3. 人脸识别4. 性能评估四、实验步骤1. 人脸检测- 使用OpenCV或dlib库实现人脸检测功能。
- 预处理输入图像,如灰度化、缩放、裁剪等。
- 运用人脸检测算法(如Haar cascades、SSD、MTCNN等)进行人脸定位。
- 输出检测到的人脸位置信息。
2. 特征提取- 使用深度学习或传统方法提取人脸特征。
- 深度学习方法:使用卷积神经网络(CNN)提取人脸特征,如VGG、ResNet 等。
- 传统方法:使用LBP、HOG、PCA等算法提取人脸特征。
- 将提取到的特征进行归一化处理。
3. 人脸识别- 使用训练好的模型进行人脸识别。
- 将提取到的人脸特征与数据库中的特征进行比对。
- 根据比对结果判断是否为同一个人。
4. 性能评估- 使用测试集评估人脸识别算法的性能。
- 计算识别准确率、召回率、F1值等指标。
- 分析不同算法的性能和优缺点。
五、实验结果与分析1. 人脸检测- 比较不同人脸检测算法的检测速度和准确率。
- 分析算法在不同光照、姿态、表情等条件下的表现。
2. 特征提取- 比较不同特征提取方法的提取效果。
- 分析特征提取对识别性能的影响。
3. 人脸识别- 计算识别准确率、召回率、F1值等指标。
- 分析不同算法的识别性能。
1. 总结实验过程中遇到的问题和解决方法。
2. 分析实验结果,得出实验结论。
实习报告:智能人脸识别考勤系统一、实习背景及目的随着科技的快速发展,人工智能技术逐渐渗透到各行各业,为人脸识别考勤系统带来了新的机遇。
本次实习,我有幸参与了一款智能人脸识别考勤系统的开发与测试工作,旨在了解人脸识别技术在实际应用中的优势和不足,提高自己的实践能力。
二、实习内容与过程1. 了解人脸识别考勤系统的原理和关键技术在实习初期,我通过查阅资料和请教同事,对人脸识别考勤系统的原理和关键技术有了初步了解。
人脸识别考勤系统主要利用计算机视觉和人脸识别技术,实现对员工上下班打卡的自动识别和记录。
其中,人脸识别技术包括人脸检测、特征提取、特征匹配等环节。
2. 参与系统开发与测试在掌握基本原理后,我参与了系统的开发与测试工作。
首先,我们使用开源人脸识别库进行人脸检测和特征提取,然后通过搭建的特征匹配模型实现人脸识别。
在测试过程中,我们针对不同场景、光线、角度等条件进行测试,以验证系统的稳定性和准确性。
3. 分析系统存在的问题并提出优化方案在实际应用中,我们发现系统存在以下问题:识别速度较慢、部分场景下识别准确率不高、易受光照和表情变化影响等。
为解决这些问题,我们提出了以下优化方案:(1)使用卷积神经网络(CNN)进行特征提取,提高识别速度和准确性;(2)对系统进行光照校正,降低光照对识别结果的影响;(3)引入表情识别技术,减少表情变化对识别结果的影响。
4. 撰写实习报告在实习结束后,我对本次实习的内容进行了总结,撰写了实习报告,并对未来人脸识别考勤系统的发展趋势进行了展望。
三、实习收获与反思通过本次实习,我深入了解了智能人脸识别考勤系统的原理和关键技术,提高了自己的实际操作能力。
同时,我也认识到人脸识别技术在实际应用中仍存在一定的局限性,需要不断优化和改进。
此外,我还意识到在团队合作中,沟通和协作能力的重要性。
总之,本次实习让我收获颇丰,我将以此为契机,继续深入学习人工智能相关知识,为未来的工作打下坚实基础。
人脸识别实验报告模板实验名称:人脸识别实验实验目的:通过实验,了解和掌握人脸识别的基本原理和方法,能够实现简单的人脸识别功能。
实验原理:人脸识别是一种通过计算机视觉技术来识别和验证人脸的技术。
其基本原理包括以下几个步骤:1. 采集样本:首先,需要采集一定数量的人脸图像作为样本。
这些图像应包含不同的人脸姿态、光照条件和表情,以提高识别的鲁棒性。
2. 特征提取:接下来,需要对采集到的人脸图像进行特征提取。
常用的特征提取算法包括主成分分析(PCA)和线性判别分析(LDA)等。
3. 特征匹配:通过比较待识别人脸的特征与已知人脸样本的特征,进行特征匹配。
常用的匹配算法包括欧氏距离、余弦相似度等。
4. 决策判定:最后,根据特征匹配的结果,根据一定的判定准则(如阈值)进行决策判定,判断待识别人脸是否属于已知人脸样本中的某一人。
实验步骤:1. 采集样本:使用摄像头采集一组不同人的人脸图像,并存入电脑中。
2. 特征提取:使用PCA算法对采集到的人脸图像进行特征提取,并将特征保存。
3. 特征匹配和决策判定:对于待识别的人脸图像,使用PCA算法提取特征,并与已知人脸样本进行特征匹配。
根据一定的阈值确定识别结果。
4. 实验结果分析:根据实验数据,分析人脸识别实验的准确率和误识率,并讨论可能产生误识别的原因。
实验结果:在我们的实验中,我们采集了10个不同人的人脸图像作为样本,然后将待识别的人脸图像与样本进行特征匹配。
在设置阈值为0.6的情况下,我们得到了以下实验结果:准确率为90%,误识率为10%。
实验总结:通过本次实验,我们了解了人脸识别的基本原理和方法,并通过实际操作实现了简单的人脸识别功能。
在实验过程中,我们发现识别结果受到许多因素的影响,如光照条件、人脸姿态等。
因此,在实际应用中,需要综合考虑各种因素,采用多种方法来提高人脸识别的准确率和鲁棒性。
同时,还需要保护个人隐私,确保人脸识别技术的合法合规使用。
实验创新点:本次实验的创新点在于我们采用了多种算法进行特征提取和特征匹配,以提高识别准确率和鲁棒性。
一、实习背景随着人工智能技术的飞速发展,人脸识别技术作为一种新兴的生物识别技术,在各个领域都得到了广泛的应用。
为了深入了解人脸识别技术的原理和应用,提高自己的实践能力,我在某科技公司进行了为期一个月的人脸识别系统实习。
二、实习目的1. 熟悉人脸识别技术的原理和流程。
2. 掌握人脸识别系统的开发过程,包括数据采集、预处理、特征提取、模型训练和识别等环节。
3. 提高自己的编程能力和团队协作能力。
三、实习内容1. 人脸识别技术原理实习期间,我首先学习了人脸识别技术的原理。
人脸识别技术主要包括以下几个步骤:(1)人脸检测:通过图像处理技术,从视频流或静态图像中检测出人脸的位置和大小。
(2)人脸预处理:对检测到的人脸进行预处理,包括灰度化、归一化、人脸对齐等。
(3)特征提取:提取人脸图像的特征,如人脸轮廓、纹理、关键点等。
(4)模型训练:利用已标注的人脸数据集,训练人脸识别模型。
(5)人脸识别:将待识别的人脸与训练好的模型进行比对,识别出对应的人脸。
2. 人脸识别系统开发在了解了人脸识别技术的原理后,我开始参与人脸识别系统的开发。
以下是开发过程中的一些关键步骤:(1)数据采集:收集大量的人脸数据,包括不同角度、光照条件、表情等。
(2)数据预处理:对采集到的人脸数据进行预处理,包括人脸检测、人脸对齐、人脸归一化等。
(3)特征提取:采用深度学习算法,如卷积神经网络(CNN),提取人脸图像的特征。
(4)模型训练:利用预处理后的数据,训练人脸识别模型。
(5)系统集成:将人脸识别模型集成到系统中,实现人脸识别功能。
3. 实习成果在实习期间,我参与了以下项目:(1)基于Android的人脸识别门禁系统(2)基于Web的人脸识别考勤系统(3)基于Python的人脸识别视频监控系统以上项目均成功实现了人脸识别功能,并具有一定的实用价值。
四、实习体会1. 理论与实践相结合:通过实习,我深刻体会到理论与实践相结合的重要性。
在理论学习的基础上,通过实际操作,我更好地理解了人脸识别技术的原理和应用。
开放性实验报告《人脸识别系统》小组成员:姓名李宏利学号 *********指导老师:*** 2011 年12 月【实验名称】人脸识别系统【实验目的】 1.对人脸识别系统的图像预处理有一定的掌握;2.对后续操作只简单了解;3.通过功能模块实现人脸识别系统。
【实验内容】 1.系统需求分析;2.系统设计;3.系统实现。
【实验步骤】一、系统需求分析1、目的与背景当前社会上频繁出现的入室偷盗、抢劫、伤人等案件的不断发生,鉴于此种原因,防盗门开始走进千家万户,给家庭带来安宁;然而,随着社会的发展,技术的进步,生活节奏的加速,消费水平的提高,人们对于家居的期望也越来越高,对便捷的要求也越来越迫切,基于传统的纯粹机械设计的防盗门,除了坚固耐用外,很难快速满足这些新兴的需求:便捷,开门记录等功能。
广义的人脸识别实际包括构建人脸识别系统的一系列相关技术,包括人脸图像采集、人脸定位、人脸识别预处理、身份确认以及身份查找等;而狭义的人脸识别特指通过人脸进行身份确认或者身份查找的技术或系统。
人脸识别生物特征识别技术所研究的生物特征包括脸、指纹、手掌纹、虹膜、视网膜、声音(语音)、体形、个人习惯(例如敲击键盘的力度和频率、签字)等,相应的识别技术就有人脸识别、指纹识别、掌纹识别、虹膜识别、视网膜识别、语音识别(用语音识别可以进行身份识别,也可以进行语音内容的识别,只有前者属于生物特征识别技术)、体形识别、键盘敲击识别、签字识别等。
人脸识别主要用于身份识别。
由于视频监控正在快速普及,众多的视频监控应用迫切需要一种远距离、用户非配合状态下的快速身份识别技术,以求远距离快速确认人员身份,实现智能预警。
人脸识别技术无疑是最佳的选择,采用快速人脸检测技术可以从监控视频图象中实时查找人脸,并与人脸数据库进行实时比对,从而实现快速身份识别二.系统设计1)理论知识fisher概念引出在应用统计方法解决模式识别问题时,为了解决“维数灾难”的问题,压缩特征空间的维数非常必要。
人脸识别实验报告人脸识别实验报告引言:人脸识别技术是一种通过计算机对人脸特征进行识别和验证的技术,近年来得到了广泛的应用。
本实验旨在探索人脸识别技术的原理、应用和潜在问题,并通过实验验证其准确性和可靠性。
一、人脸识别技术的原理人脸识别技术基于计算机视觉和模式识别的原理,通过对人脸图像的特征提取和匹配来实现。
首先,通过摄像头或图像采集设备获取人脸图像,然后对图像进行预处理,包括灰度化、归一化和增强等步骤。
接下来,使用特征提取算法,如主成分分析(PCA)或线性判别分析(LDA),从图像中提取出关键的人脸特征。
最后,将提取到的特征与数据库中的已知人脸特征进行比对和匹配,从而确定身份或验证是否为同一人。
二、人脸识别技术的应用1. 安全领域:人脸识别技术可以应用于门禁系统、监控系统和边境安全等领域,提高安全性和便利性。
例如,在机场安检中,人脸识别技术可以快速准确地识别旅客身份,加快通关速度,同时防止恶意伪装和非法入境。
2. 金融领域:人脸识别技术可以应用于银行、支付和ATM等领域,提高身份验证的准确性和安全性。
通过与用户事先录入的人脸特征进行比对,可以防止盗用身份和欺诈行为,保护用户的财产安全。
3. 教育领域:人脸识别技术可以应用于学生考勤、校园门禁和图书馆管理等方面,提高管理效率和准确性。
学校可以通过人脸识别系统自动记录学生的考勤情况,实现无纸化管理,同时确保学生的个人信息安全。
三、人脸识别技术的实验验证为了验证人脸识别技术的准确性和可靠性,我们进行了一系列实验。
首先,我们收集了一组包含不同人脸特征的图像数据集,并进行了预处理。
然后,使用PCA算法对图像数据进行特征提取,并建立了一个人脸特征数据库。
接下来,我们使用不同的测试图像进行实验,通过与数据库中的人脸特征进行比对,判断是否识别正确。
实验结果显示,人脸识别技术在正常情况下具有较高的准确性。
对于清晰、光照均匀的人脸图像,识别率可以达到90%以上。
然而,当面部表情、光照条件和角度发生变化时,识别率会有所下降。
开放性实验报告《人脸识别系统》小组成员:姓名李宏利学号 *********指导老师:*** 2011 年12 月【实验名称】人脸识别系统【实验目的】 1.对人脸识别系统的图像预处理有一定的掌握;2.对后续操作只简单了解;3.通过功能模块实现人脸识别系统。
【实验内容】 1.系统需求分析;2.系统设计;3.系统实现。
【实验步骤】一、系统需求分析1、目的与背景当前社会上频繁出现的入室偷盗、抢劫、伤人等案件的不断发生,鉴于此种原因,防盗门开始走进千家万户,给家庭带来安宁;然而,随着社会的发展,技术的进步,生活节奏的加速,消费水平的提高,人们对于家居的期望也越来越高,对便捷的要求也越来越迫切,基于传统的纯粹机械设计的防盗门,除了坚固耐用外,很难快速满足这些新兴的需求:便捷,开门记录等功能。
广义的人脸识别实际包括构建人脸识别系统的一系列相关技术,包括人脸图像采集、人脸定位、人脸识别预处理、身份确认以及身份查找等;而狭义的人脸识别特指通过人脸进行身份确认或者身份查找的技术或系统。
人脸识别生物特征识别技术所研究的生物特征包括脸、指纹、手掌纹、虹膜、视网膜、声音(语音)、体形、个人习惯(例如敲击键盘的力度和频率、签字)等,相应的识别技术就有人脸识别、指纹识别、掌纹识别、虹膜识别、视网膜识别、语音识别(用语音识别可以进行身份识别,也可以进行语音内容的识别,只有前者属于生物特征识别技术)、体形识别、键盘敲击识别、签字识别等。
人脸识别主要用于身份识别。
由于视频监控正在快速普及,众多的视频监控应用迫切需要一种远距离、用户非配合状态下的快速身份识别技术,以求远距离快速确认人员身份,实现智能预警。
人脸识别技术无疑是最佳的选择,采用快速人脸检测技术可以从监控视频图象中实时查找人脸,并与人脸数据库进行实时比对,从而实现快速身份识别二.系统设计1)理论知识fisher概念引出在应用统计方法解决模式识别问题时,为了解决“维数灾难”的问题,压缩特征空间的维数非常必要。
fisher方法实际上涉及到维数压缩的问题。
fisher分类器是一种几何分类器, 包括线性分类器和非线性分类器。
线性分类器有:感知器算法、增量校正算法、LMSE 分类算法、Fisher分类。
若把多维特征空间的点投影到一条直线上,就能把特征空间压缩成一维。
那么关键就是找到这条直线的方向,找得好,分得好,找不好,就混在一起。
因此fisher方法目标就是找到这个最好的直线方向以及如何实现向最好方向投影的变换。
这个投影变换恰是我们所寻求的解向量*W,这是fisher算法的基本问题。
样品训练集以及待测样品的特征数目为n。
为了找到最佳投影方向,需要计算出各类均值、样品类内离散度矩阵S和总类间离散度矩i阵S、样品类间离散度矩阵b S,根据Fisher准则,找到最佳投影准w则,将训练集内所有样品进行投影,投影到一维Y空间,由于Y空间是一维的,则需要求出Y空间的划分边界点,找到边界点后,就可以对待测样品进行进行一维Y空间的投影,判断它的投影点与分界点的关系,将其归类。
Fisher 法的核心为二字:投影。
1) 一维实现方法(1) 计算给类样品均值向量i m ,i m 是各个类的均值,i N 是i ω类的样品个数。
11,2,...,ii X im X i nN ω∈==∑(2) 计算样品类内离散度矩阵i S 和总类间离散度矩阵w S1()()1,2,...,iTi i i X w ii S X m X m i nS S ω∈==--==∑∑(3) 计算样品类间离散度矩阵b S1212()()Tb S m m m m =--(4) 求向量*W我们希望投影后,在一维Y 空间各类样品尽可能地分开,也就是说我们希望两类样品均值之差(12m m -)越大越好,同时希望各类样品内部尽量密集,即希望类内离散度越小越好,因此,我们可以定义Fisher 准则函数:()T b F Tw W S WJ W W S W =使得()F J W 取得最大值的*W 为*112()w W S m m -=-(5) 将训练集内所有样品进行投影*()T y W X =(6) 计算在投影空间上的分割阈值0y 在一维Y 空间,各类样品均值i m 为11,2,...,ii y im y i n N ω∈==∑样品类内离散度矩阵2i s 和总类间离散度矩阵w s22()ii i y s y m ω∈=-∑21w i i s s ==∑【注】【阈值0y 的选取可以由不同的方案: 较常见的一种是1122012N m N m y N N +=+另一种是121201ln(()/())22m m P P y N N ωω+=++-】(7) 对于给定的X ,计算出它在*W 上的投影y (8) 根据决策规则分类0102y y X y y X ωω>⇒∈⎧⎨<⇒∈⎩2) matlab 编程1、matlab程序分为三部分。
程序框图如下图所示。
三、 系统实现这个函数将所有训练样本的二维图像转换成一维列向量。
接着,它把这些一维列向量组合到一行里面构造出二维向量T ,即每个单元的信息量是一幅图片 PCA 提取特征值Fisher 分类器设计。
从fisher 线性空间中提取图像这个函数将源图像提取成特征脸,然后比较它们之间的欧几里得距离mainCreatDataBase FisherfaceCore Recognition打开程序进行人脸识别变化角度四、代码实现A.第一部分:CreatDatabase.mfunction T = CreatDatabase(TrainDatabasePath)TrainFiles = dir(TrainDatabasePath);Train_Number = 0;%%%%%%%%统计文件数%%%%%%%%%%%%%for i = 1:size(TrainFiles,1)ifnot(strcmp(TrainFiles(i).name,'.')|strcmp(TrainFiles(i).name,'..')|strcmp(Trai nFiles(i).name,'Thumbs.db'))Train_Number = Train_Number + 1;endend%%%%%%%%二维转一维%%%%%%%%%%%%T = [];for i = 1 : Train_Numberstr = int2str(i);%把文件索引转换为字符串格式str = strcat('\',str,'.pgm');str = strcat(TrainDatabasePath,str);img = imread(str);[irow icol] = size(img);temp = reshape(img',irow*icol,1);T = [T temp];endT = double(T);B.第二部分:FisherfaceCorefunction [m_database V_PCA V_Fisher ProjectedImages_Fisher Class_numberClass_population] = FisherfaceCore(T)%%%%%%%%返回值注释%%%%%%%%%%%%m_database --- (M*Nx1)维的训练样本均值%V_PCA --- (M*Nx(P-C)训练样本协方差的特征向量%V_Fisher --- ((P-C)x(C-1)) 最大的(C-1)维J = inv(Sw) * Sb的特征矩阵%ProjectedImages_Fisher --- ((C-1)xP)维训练样本,这些样本从fisher线性空间中提取%%%%%基本量赋值 %%%%%%%%%Class_number=(size(T,2))/9; 类的数目,除以8取决于样本中有多少类人Class_population = 9;%每一类的图像数目P = Class_population * Class_number; %总训练样本的数目%%%%%计算均值%%%%%m_database = mean(T,2);%°包含T每一行均值的列向量%%%%计算方差%%%%%A = T - repmat(m_database,1,P);%%%%%计算特征脸的算法%%%%%%L = A' * A;[V D] = eig(L);V = fliplr(V);%%%%筛选小的特征值%%%%%L_eig_vec = [];dig = fliplr(max(D));for i = 1 : Class_numberL_eig_vec = [L_eig_vec V(:,i)/sqrt(dig(i))];end%%%%计算特征矩阵的协方差矩阵C%%%%%V_PCA = A * L_eig_vec;%V_PCA就是降维后的协方差矩阵ProjectedImages_PCA = [];for i = 1 : Ptemp = V_PCA'*A(:,i);ProjectedImages_PCA = [ProjectedImages_PCA temp];end%%%%%fisher分类器的设计方法%%%%%%%%%计算在特征空间里面每一个类的均值%%%%%m_PCA = mean(ProjectedImages_PCA,2) %特征空间总的均值m = zeros( Class_number, Class_number );Sw = zeros( Class_number, Class_number);Sb = zeros( Class_number, Class_number);for i = 1 : Class_numberm(:,i) =mean( ( ProjectedImages_PCA(:,((i-1)*Class_population+1):i*Class_population) ),2 )'; %每一类的样本分别求均值S = zeros(Class_number, Class_number);for j = ((i-1) * Class_population + 1) : ( i*Class_population ) S = S + ( ProjectedImages_PCA(:,j) - m(:,i)) * (ProjectedImages_PCA(:,j) - m(:,i))';endSw = Sw + S;Sb = Sb + (m(:,i) - m_PCA) * (m(:,i) - m_PCA)'end%%%%%%¼计算fisher判别准则,目标是获取最大类间离散度和最小类内离散度%%%%%%%%%%%%ÎÒÃǵÄÄ¿±êÊÇ£º»ñÈ¡×î´óÀà¼äÀëÉ¢¶ÈºÍ×îСµÄÀàÄÚÀëÉ¢¶È¡£[J_eig_vec, J_eig_val] = eig(Sb,Sw);J_eig_val = max(J_eig_val);J_eig_vec = fliplr(J_eig_vec);%%%%%%去除0特征根和排序for i = 1 : Class_number - 1V_Fisher(:,i) = J_eig_vec(:,i);%fisher判别法将N维映射到C-1维end%%%%%从fisher线性空间中提取图像%Yi = V_Fisher' * V_PCA' * (Ti - m_database)for i = 1: Class_number * Class_populationProjectedImages_Fisher(:,i) = V_Fisher' * ProjectedImages_PCA(:,i); end%由PCA过渡到FLD%img_fisher = w_fisher' * pca_img;%ProjectedImages_Fisher = V_Fisher' * ProjectedImages_PCA;C.第三部分:Recognition.mfunction OutputName = Recognition(TestImage, m_database, V_PCA, V_Fisher,ProjectedImages_Fisher, Class_number, Class_population)%函数描述:这个函数将源图像提取成特征脸,然后比较它们之间的欧几里得距离%输入量: TestImage ---测试样本的路径%%V_PCA --- (M*Nx(P-C)训练样本协方差的特征向量%V_Fisher --- ((P-C)x(C-1)) 最大的(C-1)维J = inv(Sw) * Sb的特征矩阵%ProjectedImages_Fisher --- ((C-1)xP)维训练样本,这些样本从fisher线性空间中提取%Class_number---类的数目%Class_population---每一类图像的数目%返回值: OutputName ---在训练样本中的被识别的图像的名字Train_Number = size(ProjectedImages_Fisher,2); %%%%%%%%%%%%%%%%%%%%%%%%从测试样本中提取PCA特征%%%%%%%%%%%%%%%%%%% InputImage = imread(TestImage);temp = InputImage(:,:,1);[irow icol] = size(temp);InImage = reshape(temp',irow*icol,1);Difference = double(InImage)-m_database;ProjectedTestImage = V_Fisher' * V_PCA' * Difference; %%%%%%%%%%%%%%%%%%%%%%%%计算欧几里得几何距离%%%%%%%%%%%%%%%%Euc_dist = [];for i = 1 : Train_Numberq = ProjectedImages_Fisher(:,i);temp = ( norm( ProjectedTestImage - q ))^2 ;Euc_dist = [Euc_dist temp];endEuc_dist2 = [];for i=1 : Class_numberdist = mean(Euc_dist(((i-1)*Class_population+1):(i*Class_population))); Euc_dist2 = [Euc_dist2 dist];end[Euc_dist_min ,Recognized_index] = min(Euc_dist2);Recognized_index = (Recognized_index - 1) * Class_population + 1; OutputName = strcat(int2str(Recognized_index),'.pgm');。