基于神经网络的人脸识别实验报告
基于CNN的人脸识别技术研究

基于CNN的人脸识别技术研究一、绪论随着人工智能技术的发展,人脸识别技术作为其中的重要分支,也得到了越来越广泛的应用。
人脸识别技术是指通过计算机视觉技术,对图像中的人脸信息进行检测、提取、匹配等处理,以实现对个体身份的自动识别。
在安全防范、金融支付、智能家居等领域,人脸识别技术正在发挥越来越重要的作用。
其中,基于卷积神经网络(CNN)的人脸识别算法,在实践中表现出了很高的准确性和稳定性,因此备受研究者的关注。
二、卷积神经网络简介CNN是一种经典的深度学习模型,也是目前计算机视觉领域最为常用的模型之一。
CNN包含的核心组件是卷积层、池化层和全连接层。
在应用中,CNN将输入图像经过多层卷积运算、非线性激活函数和池化操作,然后再通过多层全连接层进行分类或回归处理,从而得到最终的输出。
三、基于CNN的人脸检测算法人脸检测是人脸识别的前置技术,其主要任务是在一张图像中精确地找到所有的人脸位置和大小。
基于CNN的人脸检测算法主要包括以下两大类:1、基于区域提议的检测算法:该方法先通过候选框生成算法,在图像中提取出可能包含人脸的区域,然后对每个候选框进行分类和回归操作,最终生成人脸位置和大小的精确结果。
其中,R-CNN、Fast R-CNN和Faster R-CNN属于经典的基于区域提议的人脸检测算法。
2、单阶段检测算法:该方法在输入图像上直接进行检测,不需要生成候选框,具有检测速度快的优点。
其中,YOLO和SSD是最典型的单阶段检测算法。
这些算法在人脸检测中也有广泛的应用,取得了很高的检测准确率和速度。
四、基于CNN的人脸识别算法在基于CNN的人脸识别算法中,主要有两个关键问题需要解决。
首先是如何从输入的人脸图像中提取出判别信息,这通常采用卷积神经网络来实现;其次是如何将提取的信息进行相似度比较和分类处理,多数算法采用支持向量机(SVM)或softmax分类器实现。
在考察基于CNN的人脸识别算法中,需要关注的指标主要有以下几个:1、识别准确率:该指标是衡量算法性能的重要指标,即算法在大规模人脸数据集上的准确率。
使用神经网络算法实现人脸识别技术

使用神经网络算法实现人脸识别技术近年来,随着人工智能技术的不断发展,人脸识别技术越来越受到人们的关注。
人脸识别技术被广泛应用于各个领域,如人脸门禁、身份证认证、支付授权等。
这些应用能够大大提高工作效率,带来无限便利。
本文将介绍如何使用神经网络算法实现人脸识别技术。
一、人脸识别技术的基本原理人脸识别技术的基本原理是通过摄像头采集人的面部图像,然后将图像进行分析,提取人脸特征,最后对其进行比对识别。
通常人脸识别技术分为三个阶段:人脸检测、人脸对齐和人脸识别。
人脸检测:其主要目的是从一张图片中找到所有的人脸区域并标注出来,通常采用分类器实现。
常见的分类器有Haar分类器、HOG分类器、深度学习分类器等。
其中,深度学习分类器具有更高的检测精度和识别率。
人脸对齐:对检测到的人脸进行标准化处理,使得所有的人脸都具有标准的位置、大小、朝向和光照等特征。
人脸识别:根据对齐后的人脸图像提取特征,并将其与事先存储的特征比对,从而实现人脸识别。
二、神经网络算法在人脸识别中的应用神经网络是近年来兴起的一种人工智能方法,其模拟了人类大脑神经元之间的相互连接和信息传递。
神经网络算法因其能够对数据进行非线性映射和高维特征提取而在人脸识别中得到了广泛应用。
神经网络算法的核心是深度学习,其中卷积神经网络(CNN)是应用最为广泛的。
CNN由多个卷积层、池化层、全连接层等组成,可以有效地提取图像特征。
当然,在使用CNN之前,需要先进行数据预处理和特征选择,以增强算法的准确性。
三、神经网络算法在人脸识别中的优势相比于其他的人脸识别算法,神经网络算法具有以下优势:1. 可以自动提取图像特征,无需人工干预和设计特征;2. 对图像变形和光照变化的适应性较强;3. 模型的可扩展性非常好,可以扩展到海量数据的处理;4. 算法的预测速度很快,可以实时进行识别。
四、神经网络算法在人脸识别中的应用案例目前,神经网络算法在人脸识别中得到了广泛应用。
例如,Face++、DeepFace、FaceNet等开发的人脸识别系统,都使用了深度学习算法。
利用神经网络进行人脸识别技术研究

利用神经网络进行人脸识别技术研究一、背景介绍近年来,随着信息技术的迅速发展,人工智能开始崭露头角,人脸识别技术应运而生。
人脸识别技术是一种以数字图像的处理和模式识别为基础的高科技技术,其应用领域非常广泛,例如安防监控、门禁管理、身份认证等。
其中,利用神经网络进行的人脸识别技术更是成为当前领域的研究热点。
二、神经网络及其应用神经网络是一种模拟人类神经系统的计算模型,其拥有自我训练的能力,能够从大量的数据中学习并进行预测。
近年来,神经网络的应用得到了广泛关注,已经成为了许多领域中不可或缺的工具。
在人脸识别技术中,神经网络常被用来构建特征提取模型和分类模型。
特征提取模型的目的是提取人脸图像中的关键特征,例如面部特征、眼睛、嘴巴等。
分类模型的目的是将提取的特征归类为某个人,从而实现人脸识别的功能。
三、基于神经网络的人脸识别技术研究基于神经网络的人脸识别技术已经得到了广泛的研究和应用。
这里我们将介绍其中几种重要的技术。
1、卷积神经网络卷积神经网络是一种特殊的神经网络,其能够有效地提取图像特征。
在人脸识别中,卷积神经网络可以用于对人脸图像进行特征提取,从而得到更好的分类结果。
2、深度学习深度学习是对神经网络模型的高度抽象和优化,通过构建深层次的网络结构进行特征提取。
在人脸识别中,深度学习能够更加准确地提取人脸图像中的特征,从而得到更好的分类结果。
3、多模态融合多模态融合是指利用多种不同类型的信息进行分类。
在人脸识别中,可以利用图像、音频和视频等多种不同类型的信息进行分类,从而提高人脸识别的准确度和稳定性。
四、研究进展及应用前景基于神经网络的人脸识别技术在近年来有了很大的进展,其研究已经深入到特征提取、分类模型和多模态融合等不同方面。
随着技术的不断发展,其应用前景也将逐渐扩展到更多的领域,例如智能家居、自动售货机、自助服务等。
总的来说,基于神经网络的人脸识别技术极大地提高了人们对安全性和隐私的保护。
我们可以期待这项技术在未来的应用中发挥更多的作用。
基于机器学习的人脸识别技术实验报告

基于机器学习的人脸识别技术实验报告一、引言在当今数字化社会的背景下,人脸识别技术逐渐成为了一种广泛应用的生物特征识别技术。
本实验旨在通过机器学习方法,探索人脸识别技术的原理、应用以及性能评估,为该领域的进一步研究提供参考。
二、实验目的1. 理解人脸识别技术的基本原理和流程;2. 了解常用的机器学习算法在人脸识别中的应用;3. 实验评估人脸识别算法的性能,并比较不同算法的优缺点。
三、实验方法本次实验采用以下步骤进行:1. 数据收集与预处理为了构建一个可靠的人脸识别模型,我们首先需要收集一定数量的人脸图像数据。
通过采用公开数据集或自行采集图像,并进行预处理操作如灰度化、归一化等,以减少噪声对模型的影响。
2. 特征提取与降维在完成数据预处理后,利用机器学习方法从人脸图像中提取重要的特征信息,并进行降维处理。
常用的特征提取方法包括主成分分析(PCA)、线性判别分析(LDA)等。
3. 模型训练与优化选择合适的机器学习算法如支持向量机(SVM)、神经网络等,并利用提取得到的特征进行模型的训练与优化。
在模型训练过程中,需要注意选择适当的参数以及采用交叉验证等方法进行模型的评估和调整。
4. 人脸识别性能评估通过使用测试数据集对训练得到的模型进行性能评估。
常用的评估指标包括准确率、召回率、F1值等。
四、实验结果与分析在本次实验中,我们使用了XXX数据集进行人脸识别实验。
首先,我们对数据集进行预处理,包括图像灰度化和归一化等操作。
然后,我们采用PCA方法对人脸图像进行特征提取和降维,选取了前150个主成分。
接着,我们选用了SVM算法对降维后的数据进行训练和优化,调整了模型的超参数。
经过实验,我们得到了以下结果:在测试集上,我们的人脸识别模型达到了97%的准确率。
同时,我们还进行了与其他算法的性能比较,发现XXX算法在准确率上明显优于其他算法。
综合考虑计算速度和准确率等指标,我们认为XXX算法在人脸识别应用中具有较高的性能和实用性。
人脸识别实训报告

一、实训背景随着计算机视觉和人工智能技术的飞速发展,人脸识别技术已经广泛应用于安防、支付、门禁等领域。
为了提高学生对人脸识别技术的理解与应用能力,我们开展了为期一个月的人脸识别实训课程。
本次实训旨在让学生了解人脸识别的基本原理、常用算法,并能够将人脸识别技术应用于实际项目中。
二、实训内容1. 人脸识别技术概述首先,我们对人脸识别技术进行了简要的介绍,包括人脸识别的发展历程、基本分类以及应用领域。
人脸识别技术主要包括人脸检测、人脸特征提取和人脸比对三个环节。
2. 人脸检测人脸检测是人脸识别的基础,其目的是从图像中定位人脸的位置。
在实训中,我们学习了基于Haar特征的Adaboost算法和基于深度学习的卷积神经网络(CNN)进行人脸检测。
通过实验,掌握了使用OpenCV库进行人脸检测的方法。
3. 人脸特征提取人脸特征提取是将人脸图像转化为可以用于识别的特征向量。
在实训中,我们学习了基于局部二值模式(LBP)特征、局部二值模式直方图(LBPH)特征以及深度学习(如VGGFace)提取人脸特征的方法。
通过实验,掌握了不同特征提取方法的应用。
4. 人脸比对人脸比对是将待识别的人脸与数据库中的人脸进行相似度比较,从而实现人脸识别。
在实训中,我们学习了基于距离度量(如欧氏距离、余弦相似度)的人脸比对方法。
通过实验,掌握了OpenCV库中的人脸比对函数的使用。
5. 人脸识别项目实战为了让学生更好地将所学知识应用于实际项目,我们选择了一个人脸识别门禁系统项目进行实战。
在项目中,我们需要完成以下任务:(1)采集人脸图像数据:从网上下载公开的人脸数据集,并进行预处理,如归一化、裁剪等。
(2)训练人脸识别模型:使用训练集数据训练人脸识别模型,包括人脸检测、特征提取和人脸比对。
(3)测试模型性能:使用测试集数据评估人脸识别模型的准确率、召回率等指标。
(4)构建门禁系统:使用训练好的模型构建门禁系统,实现人脸识别、权限控制等功能。
【毕业论文】基于人工神经网络的人脸识别方法研究

2.1 生物识别技术 .................................................................................................... 7
2.1.1 生物识别的定义 .....................................................................................................7 2.1.2 生物识别技术 ........................................................................................................7
基于神经网络的智能人脸识别

基于神经网络的智能人脸识别随着现代科技的不断发展,智能人脸识别被广泛应用于生活和各种场景。
作为计算机视觉领域的重要应用之一,人脸识别技术也在不断进步和提高。
其中,基于神经网络的智能人脸识别技术成为了当前最主流的技术之一。
1. 神经网络的发展及其在人脸识别中的应用神经网络是由一系列数学和统计模型组成的,用于通过数据学习和模拟一些复杂的非线性关系。
神经网络由于其高度灵活性和适应性,特别适用于图像、语音、自然语言等非结构化数据的处理。
在人脸识别方面,神经网络被应用于多个领域。
目前最为流行的应用是基于卷积神经网络(CNN)的人脸识别技术。
CNN 是一种特殊的神经网络结构,由卷积层、池化层、全连接层等构成,可以有效地提取图像特征。
2. 基于神经网络的人脸识别技术的工作原理在基于神经网络的人脸识别技术中,首先需要通过大量的人脸数据训练模型,模型一般采用卷积神经网络结构。
在训练中,深度学习模型会学习到人脸中各种特征,如脸部轮廓、眼、鼻、嘴等局部特征。
在训练后,深度学习模型可以通过输入一张人脸图像来输出一个固定长度的向量,这个向量被称为“人脸特征向量”。
在实际应用中,输入一张需要验证的人脸图像,系统将抽取该图像的特征,与已有的特征向量进行比对。
一般采用欧氏距离或者余弦相似度等算法进行相似度计算,从而判断输入人脸图像是否在已有记录中。
若匹配,系统将返回匹配的人脸信息;否则,系统将提示人脸无法通过验证。
3. 基于神经网络的人脸识别技术的优势相比传统的人脸识别技术,基于神经网络的人脸识别技术具有以下优势:(1)高准确性。
基于神经网络的人脸识别技术,通过大量数据的训练,可以提供高准确率的匹配结果。
(2)高鲁棒性。
神经网络对图像的干扰具有较强的鲁棒性,能够有效地应对光照、角度、姿态等因素对图像质量的影响。
(3)高效性。
相比传统方法,基于神经网络的人脸识别技术的处理速度更快。
4. 基于神经网络的人脸识别技术面临的挑战基于神经网络的人脸识别技术,虽然在匹配准确性、鲁棒性和处理速度等方面表现出良好的性能,但它也不可避免地面临着一些挑战。
专业项目实验报告

实验报告一、实验目的1. 了解人脸识别技术的基本原理和流程。
2. 掌握机器学习在人脸识别中的应用。
3. 设计并实现一个简单的人脸识别系统。
4. 评估系统的人脸识别性能。
二、实验环境1. 操作系统:Windows 102. 编程语言:Python3. 开发工具:PyCharm4. 库:OpenCV、dlib、numpy、scikit-learn三、实验原理人脸识别技术是计算机视觉和人工智能领域的一个重要分支。
其基本原理是通过提取人脸图像的特征,将这些特征与已知的人脸特征进行匹配,从而实现人脸识别。
1. 人脸检测:首先,需要从图像中检测出人脸的位置,常用的方法有基于Haar特征的级联分类器、基于深度学习的卷积神经网络等。
2. 特征提取:检测到人脸后,提取人脸的特征,常用的方法有LBP(局部二值模式)、HOG(方向梯度直方图)等。
3. 特征匹配:将提取的特征与已知的人脸特征进行匹配,常用的方法有基于KNN (K最近邻)的分类器、基于神经网络的特征分类器等。
四、实验步骤1. 数据准备:收集人脸图像数据,包括正面、侧面、不同光照条件、不同表情的人脸图像。
2. 人脸检测:使用OpenCV库中的Haar特征级联分类器进行人脸检测。
3. 特征提取:使用dlib库中的LBP特征提取方法提取人脸图像的特征。
4. 特征匹配:使用scikit-learn库中的KNN分类器进行特征匹配。
5. 系统实现:使用Python编写程序,实现人脸识别系统。
6. 系统测试:使用测试数据对系统进行测试,评估系统的人脸识别性能。
五、实验结果与分析1. 人脸检测结果:通过实验,我们发现Haar特征级联分类器能够较好地检测出人脸,但在某些情况下可能会出现误检或漏检。
2. 特征提取结果:使用LBP特征提取方法提取人脸图像的特征,实验结果表明LBP特征能够较好地描述人脸图像。
3. 特征匹配结果:使用KNN分类器进行特征匹配,实验结果表明KNN分类器能够较好地识别出人脸。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于神经网络的人脸识实验报告别一、 实验要求采用三层前馈BP 神经网络实现标准人脸YALE 数据库的识别。
二、BP 神经网络的结构和学习算法实验中建议采用如下最简单的三层BP 神经网络,输入层为],,,[21n x x x X =,有n 个神经元节点,输出层具有m 个神经元,网络输出为],,,[21m y y y Y =,隐含层具有k 个神经元,采用BP 学习算法训练神经网络。
BP 神经网络的结构BP 网络在本质上是一种输入到输出的映射,它能够学习大量的输入与输出之间的映射关系,而不需要任何输入和输出之间的精确的数学表达式,只要用已知的模式对BP 网络加以训练,网络就具有输入输出对之间的映射能力。
BP 网络执行的是有教师训练,其样本集是由形如(输入向量,期望输出向量)的向量对构成的。
在开始训练前,所有的权值和阈值都应该用一些不同的小随机数进行初始化。
BP 算法主要包括两个阶段: (1) 向前传播阶段①从样本集中取一个样本(X p ,Y p ),将X p 输入网络,其中X p 为输入向量,Y p 为期望输出向量。
②计算相应的实际输出O p 。
在此阶段,信息从输入层经过逐级的变换,传送到输出层。
这个过程也是网络在完成训练后正常运行时执行的过程。
在此过程中,网络执行的是下列运算: (1)(2)()21(...((())...))n p n p O F F F X W W W =(2) 向后传播阶段①计算实际输出O p 与相应的理想输出Y p 的差; ②按极小化误差的方法调整权矩阵。
这两个阶段的工作一般应受到精度要求的控制,定义211()2mp pj pj j E y o ==-∑ (1)作为网络关于第p 个样本的误差测度(误差函数)。
而将网络关于整个样本集的误差测度定义为p E E =∑ (2)如前所述,将此阶段称为向后传播阶段,也称之为误差传播阶段。
为了更清楚地说明本文所使用的BP 网络的训练过程,首先假设输入层、中间层和输出层的单元数分别是N 、L 和M 。
X=(x 0,x 1,…,x N-1)是加到网络的输入矢量,H=(h 0,h 1,…,h L-1)是中间层输出矢量,Y=(y 0,y 1,…,y M-1)是网络的实际输出矢量,并且用D=(d 0,d 1,…,d M-1)来表示训练组中各模式的目标输出矢量。
输出单元i 到隐单元j 的权值是V ij ,而隐单元j 到输出单元k 的权值是W jk 。
另外用θk 和Φj 来分别表示输出单元和隐单元的阈值。
于是,中间层各单元的输出为:10()N j ij i j i h f V x φ-==+∑ (3)而输出层各单元的输出是:10()L k jk j k j y f W h θ-==+∑ (4)其中f(*)是激励函数,采用S 型函数:1()1xf x e-=+ (5) 在上述条件下,网络的训练过程如下:(1) 选定训练集。
由相应的训练策略选择样本图像作为训练集。
(2) 初始化各权值V ij ,W jk 和阈值Φj ,θk ,将其设置为接近于0的随机值,并初始化精度控制参数ε和学习率α。
(3) 从训练集中取一个输入向量X 加到网络,并给定它的目标输出向量D 。
(4) 利用式(7)计算出一个中间层输出H ,再用式(8)计算出网络的实际输出Y 。
(5) 将输出矢量中的元素y k 与目标矢量中的元素d k 进行比较,计算出M 个输出误差项:()(1)k k k k k d y y y δ=--对中间层的隐单元也计算出L 个误差项:1*0(1)M Jj j k jk k h h W δδ-==-∑(6) 依次计算出各权值和阈值的调整量:()(/(1))*((1)1)**jk jk k j W n L W n h αδ∆=+∆-+ (6)*()(/(1))*((1)1)**ij ij j iV n N V n x αδ∆=+∆-+ (7) ()(/(1))*((1)1)*k k k n L n θαθδ∆=+∆-+ (8)*()(/(1))*((1)1)*j j jn L n φαφδ∆=+∆-+ (9) (7) 调整权值和阈值:(1)()()jk jk jk W n W n W n +=+∆,(1)()()ij ij ij V n V n V n +=+∆(1)()()k k k n n n θθθ+=+∆,(1)()()j j n n n φφφ+=+∆(8) 当k 每经历1至M 后,判断指标是否满足精度要求:E ≤ε,其中E 是总误差函数,且1201()2M k k k E d y -==-∑。
如果不满足,就返回(3),继续迭代。
如果满足,就进入下一步。
(9) 训练结束,将权值和阈值保存在文件中。
这时可以认为各个权值已经达到稳定,分类器形成。
再一次进行训练时,直接从文件导出权值和阈值进行训练,不需要进行初始化。
BP 算法流程图YALE 数据库是由耶鲁大学计算视觉与扼制中心创立,包括15位志愿者,每个人有11张不同姿势、光照和表情的图片,共计165张图片,图片均为80*100像素的BMP 格式图像。
我们将整个数据库分为两个部分,每个人的前5幅图片作为网络的训练使用,后6副图片作为测试使用。
测试样例:三、实验结果四、源代码:function main()%%clcclear all;%close all;load('date1_5.mat','feature');warning off allSamNum=35; %输入样本数量TestSamNum=35; %测试样本数量ForcastSamNum=20; %预测样本数量HiddenUnitNum=8; %中间层隐节点数量取8InDim=40; %网络输入维度OutDim=4; %网络输出维度%%inputp=[];t=[];pnew=[];for i=1:55if(mod(i,11)<=7&&mod(i,11)>0)p=[p;feature(i,:)];elsepnew=[pnew;feature(i,:)];endendp=p';pnew=pnew';%%outputs1=[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ];s2=[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ];s3=[0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ];s4=[1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 ];t=[s1;s2;s3;s4];size(t) %%4*35 输出size(p) %%40*35 输入[SamIn,minp,maxp,tn,mint,maxt]=premnmx(p,t); %原始样本对(输入和输出)初始化rand('state',sum(100*clock)) %依据系统时钟种子产生随机数SamOut=tn;TestSamIn=SamIn; %这里取输入样本与测试样本相同因为样本容量偏少TestSamOut=SamOut; %也取输出样本与测试样本相同MaxEpochs=50000; %最多训练次数为50000lr=0.035; %学习速率为0.035E0=0.65*10^(-3); %目标误差为0.65*10^(-3)W1=0.5*rand(HiddenUnitNum,InDim)-0.2; %初始化输入层与隐含层之间的权值B1=0.5*rand(HiddenUnitNum,1)-0.2; %初始化输入层与隐含层之间的阈值W2=0.5*rand(OutDim,HiddenUnitNum)-0.2; %初始化输出层与隐含层之间的权值B2=0.5*rand(OutDim,1)-0.2; %初始化输出层与隐含层之间的阈值ErrHistory=[]; %给中间变量预先占据内存for i=1:MaxEpochs% HiddenOut=logsig(W1*SamIn+repmat(B1,1,SamNum)); % 隐含层网络输出HiddenOut=1./(1+exp(-(W1*SamIn+repmat(B1,1,SamNum)))); % 隐含层网络输出NetworkOut=W2*HiddenOut+repmat(B2,1,SamNum); % 输出层网络输出Error=SamOut-NetworkOut; % 实际输出与网络输出之差SSE=sumsqr(Error) ; %能量函数(误差平方和)ErrHistory=[ErrHistory SSE];if SSE<E0,break, end% 调整权值(阈值)Delta2=Error;Delta1=W2'*Delta2.*HiddenOut.*(1-HiddenOut);dW2=Delta2*HiddenOut';dB2=Delta2*ones(SamNum,1);dW1=Delta1*SamIn';dB1=Delta1*ones(SamNum,1);%对输出层与隐含层之间的权值和阈值进行修正W2=W2+lr*dW2;B2=B2+lr*dB2;%对输入层与隐含层之间的权值和阈值进行修正W1=W1+lr*dW1;B1=B1+lr*dB1;endHiddenOut=1./(1+exp(-((W1*SamIn+repmat(B1,1,TestSamNum))))); % 隐含层输出最终结果NetworkOut=W2*HiddenOut+repmat(B2,1,TestSamNum); % 输出层输出最终结果a=postmnmx(NetworkOut,mint,maxt); % 还原网络输出层的结果%%% 利用训练好的网络进行预测pnewn=tramnmx(pnew,minp,maxp); %归一化;HiddenOut=1./(1+exp(-(W1*pnewn+repmat(B1,1,ForcastSamNum))));anewn=W2*HiddenOut+repmat(B2,1,ForcastSamNum); % 输出层输出预测结果%把网络预测得到的数据还原为原始的数量级;anew=postmnmx(anewn,mint,maxt);answer=zeros(1,size(anew,2));d=1;for j=1:20for i=4:-1:1answer(j)=answer(j)+anew(i,j)*d;d=d*2;endd=1;endanswer=answer+0.5;answer=floor(answer)function [feature] = read_can_use()clc,clear;%%for i=1:5for jj=1:11%%s1='YALE\subject0';s2=int2str(i);s22='_';s222=int2str(jj);s3='.bmp';str=strcat(s1,s2);str=strcat(str,s22);str=strcat(str,s222);str=strcat(str,s3);a2=imread(str);M=double(a2);%%num=1;for j=1:10for k=1:4x=i;%将图片的灰度矩阵划分成32块小矩阵temp_num1=size(M,1)./10;%100*80temp_num2=size(M,2)./4;temp=M((j-1)*temp_num1+1:j*temp_num1,(k-1)*temp_num2+1:k*temp_num2);%对每个小矩阵进行SVD变换[u,temp1,v]=svd(temp);%提取最大的SVD系数作为特征值temp2=temp1(num,num);%得到所有图片的特征矩阵feature((x-1)*11+jj,(j-1)*4+k)=temp2;endendendendsave('date1_5','feature');。