为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 基于子图分割的人脸特征提取算法性能比较研究论文

基于子图分割的人脸特征提取算法性能比较研究论文

2017-09-30 50页 doc 543KB 37阅读

用户头像

is_435706

暂无简介

举报
基于子图分割的人脸特征提取算法性能比较研究论文基于子图分割的人脸特征提取算法性能比较研究论文 毕业设计(论文) 设计(论文)题目 基于子图分割的人脸特征提取算法 性能比较研究 学生姓名 学生学号 专业班级 指导老师 院长 (系主任) 年5月27日 毕业设计(论文) 第 I 页 基于子图分割的人脸特征提取算法性能比较研究 摘 要 人脸识别技术是国内外共同关注的一个前沿课题,在现代经济和社会的发展中有着十 分广泛的应用领域和应用前景,如安全系统、罪犯识别、电视会议等,人脸识别技术也是 当前模式识别和人工智能领域的研究热点之一。 本文分析了人脸识别技...
基于子图分割的人脸特征提取算法性能比较研究论文
基于子图分割的人脸特征提取算法性能比较研究论文 毕业设计(论文) 设计(论文)目 基于子图分割的人脸特征提取算法 性能比较研究 学生姓名 学生学号 专业班级 指导老师 院长 (系主任) 年5月27日 毕业设计(论文) 第 I 页 基于子图分割的人脸特征提取算法性能比较研究 摘 要 人脸识别技术是国内外共同关注的一个前沿课题,在现代经济和社会的发展中有着十 分广泛的应用领域和应用前景,如安全系统、罪犯识别、电视会议等,人脸识别技术也是 当前模式识别和人工智能领域的研究热点之一。 本文分析了人脸识别技术的研究现状,结合已有的研究基础提出了基于变异系数的人 脸特征提取算法和基于奇异值分解的人脸特征提取算法,并结合子图分割思想和神经网络 技术对算法进行了评价。在基于变异系数的算法中,选择合适的变异系数代表原图的特征 减少了图像信息的冗余。进一步研究表明去除包含信息量少的子图能在一定程度上提高识 别率并节约计算资源。在基于奇异值分解的算法中,将图像变换后的奇异值作为特征,这 具有一些良好的性质,如稳定性、比例不变性和旋转不变性。和一些人脸识别方法相比, 本文提出的两种人脸识别算法具有较好的性能,基于ORL人脸库的性能模拟实验表明,算法具有较高识别率。此外,本文在VC++ 6.0环境下,作者依据前期研究成果并结合图像处 理和模式识别的基本原理开发了一个静态人脸图像识别演示系统。该系统能有效快捷的进 行人脸识别。 关键词:人脸识别,子图分割,变异系数,奇异值分解,反向传播神经网络 毕业设计(论文) 第 II 页 Comparison Research on Performance of Face Feature Extraction Algorithms Based on Sub-image Segmentation Abstract Face recognition technology is front-line task in pattern recognition domain, which can be used in all kinds of fields, such as security systems, criminal identifications, teleconferences and entertainment. Face recognition is also one of hot spots in pattern recognition and artificial intelligence. This thesis analyzes the actuality of automated face recognition. Combined with the previous research, two face feature extraction algorithms (coefficients of variances (CV) and singular value decomposition (SVM)) are proposed. Based on sub-image dividing idea and back-propagation neural networks, the performances of these algorithms are evaluated. In the face feature extraction algorithms based on CV, suitable coefficients are selected to denote images, which can reduce image information redundancy. The further research shows that the recognition rate can be improved and the computing recourse can be cut down if the sub-image including little information is removed. In the face feature extraction algorithms based on SVD, singular values of image have some good characteristics, such as stability, scale fixity and angle fixity. Compared with some algorithms, the proposed algorithms’ performances are higher. Based on ORL database, experiments results show that our algorithms have high recognition rate. Otherwise, a static face picture recognition system is developed based on the previous research. The system is realized by using VC++ 6.0 and theories of image proceeding and pattern reorganization. The system can recognize face image effectively and easily. Key Words: face recognition, sub-image segmentation, coefficients of variances, singular value decomposition, back-propagation neural networks 目 录 毕业设计(论文) 第 III 页 摘 要.................................................................................................................................................I ABSTRACT....................................................................................................................................II 1. 绪论 ................................................................... 1 1.1 课题研究背景 ......................................................................................................................... 1 1.2 课题研究内容 ......................................................................................................................... 2 1.3 论文组织结构 ......................................................................................................................... 3 2. 人脸识别综述 ........................................................... 4 2.1 特征提取算法 ......................................................................................................................... 4 2.1.1 基于几何特征的方法 ................................................................................................... 4 2.1.2 基于模型的方法 ........................................................................................................... 5 2.1.3 基于统计的方法 ........................................................................................................... 5 2.1.4 弹性图匹配方法 ........................................................................................................... 6 2.2 基于三维数据的人脸识别的方法 ........................................................................................ 7 2.2.1 基于曲率的方法 ........................................................................................................... 7 2.2.2 基于模型合成的方法 ................................................................................................... 7 2.3 分类算法 .................................................................................................................................. 7 2.3.1 基于神经网络的方法 ................................................................................................... 7 2.3.2 多分类器集成方法 ....................................................................................................... 8 2.4 总结 .......................................................................................................................................... 8 3. 神经网络概述 .......................................................... 10 3.1 人工神经网络概述 ............................................................................................................... 10 3.2 神经元模型 ............................................................................................................................ 10 3.3 BP神经网络分类器 .............................................................................................................. 11 3.3.1 BP神经网络模型 ........................................................................................................ 11 3.3.2 BP网络学习算法 ........................................................................................................ 12 毕业设计(论文) 第 IV 页 4. 基于子图分割的人脸特征提取算法与人脸识别系统 ........................... 15 4.1 子图分割思想 ....................................................................................................................... 15 4.2子图分割与变异系数相结合的人脸特征提取算法.......................................................... 15 4.2.1变异系数的传统意义及其在图像处理中的应用 .................................................... 15 4.2.2变异系数的几何意义及其在图像处理中的应用 .................................................... 16 4.2.3变异系数的选取 .......................................................................................................... 18 4.3 子图分割与奇异值分解相结合的人脸特征提取算法 ..................................................... 19 4.3.1 奇异值的代数特性及其在图像处理中的应用 ....................................................... 20 4.3.2 奇异值的降维压缩 ..................................................................................................... 21 4.3.3 奇异值的选取 ............................................................................................................. 22 4.4 系统框架 ................................................................................................................................ 23 4.4.1 图像预处理 ................................................................................................................. 23 4.4.2 特征提取算法中系数选取的 ............................................................................ 24 4.4.3 BP神经网络的结构设计............................................................................................ 25 5. 性能分析 .............................................................. 27 5.1 人脸数据库 ............................................................................................................................ 27 5.2 实验结果 ................................................................................................................................ 28 6. 静态人脸图像识别演示系统 ............................................... 35 6.1 系统简介 ................................................................................................................................ 35 6.2 系统的基本技术要求 ........................................................................................................... 35 6.3 系统中的关键技术 ............................................................................................................... 35 6.4 系统的软硬件平台 ............................................................................................................... 35 6.5 系统实现 ................................................................................................................................ 36 6.5.1 系统流程图 ................................................................................................................. 36 6.5.2 系统总体编程框架 ..................................................................................................... 36 6.5.3 程序使用说明 ............................................................................................................. 38 毕业设计(论文) 第 V 页 7. 总结 .................................................................. 43 致 谢 .................................................................... 44 参考文献 .................................................................. 45 附录 攻读学位期间的研究成果 ............................................... 47 毕业设计(论文) 第 1 页 1. 绪论 1.1 课题研究背景 人脸识别技术作为多学科领域的、具有挑战性的难题,它覆盖了数字图像处理、模式 识别、计算机视觉、神经网络、心理学、生理学、数学等诸多学科的内容。同时人脸识别 也具有十分广泛的应用意义。在国家安全方面,人脸识别技术可以应用于对罪犯、恐怖分 子的追踪识别,对犯罪高发地区的监视或重大嫌疑犯重点地区的布控系统,机场安检口身 份证检查及结合犯罪嫌疑人识别系统的安检口控制系统;在军事方面,人脸识别技术可以 应用于数字化士兵的交互通讯,从而进行敌我识别,信息提取等;在公众安全方面,人脸 识别技术应用于智能视频监控、电脑网络安全、访问控制、司机驾照验证、自动门卫系统, 也可以应用于各类银行卡、金融卡、信用卡的持卡人的身份验证;在人机交互方面,计算 机可以通过人脸识别确定目前是谁在它的视野当中,根据不同人的身份提供不同的服务; 在家庭娱乐等方面,通过人脸识别,可以实现能够识别主人身份的智能玩具和机器人,具 有真实人脸的虚拟游戏玩家等 [1,2]。 在六十年代初期,人脸识别就引起了研究者的强烈兴趣。最近几年来,人脸识别研究 越来越受到学术和商业界的关注,人脸识别的输入图像通常有三类情况:正面、侧面、倾 斜。目前,对正面人脸识别最多,它的发展主要分为三个阶段: 第一阶段以Bertillon,Allen和Parke为代表,主要研究人脸识别所需要的面部特征。 在Bertillon系统中,采用一个简单语句与数据库中的一张人脸建立联系,取得了较好的识 别效果。Allen为待识别的人脸设计了一个有效特征,从而提高了人脸的识别率。Parke把 它用计算机实现,并产生了较高质量的人脸灰度图模型。这一阶段的特点是识别过程几乎 完全依赖于操作人员[3,4,5]。 第二阶段是人机交互识别阶段。Goldstion等人用几何特征参数来表示人脸正面图像,采用21维特征矢量表示人脸面部特征,并设计了基于这一特征表示法的识别系统。Kaya 和Kobayashi采用统计识别的方法,用欧氏距离来表征人脸特征。总的来说,这类方法需 要利用操作员的某些先验知识,还是摆脱不了人的干预。 毕业设计(论文) 第 2 页 第三阶段可以说是真正的人脸识别阶段,近几年来,随着高性能计算机的发展,人脸 识别的方法有了较大的突破,目前已经提出了多种机器全自动识别系统。国内关于人脸自 动识别的研究始于80年代,我国许多高校、研究机构在图像处理和模式识别领域有很好的 研究基础,积极开展了对包括人脸识别在内的基于人体生物特征识别技术的基础研究和应 用开发工作。本文相信在不久的将来,这一研究领域的研究和产品开发工作将处于世界的 前列。总之,人脸识别技术有着非常广阔的应用前景,自动的人脸识别系统在各种不同的 领域中的应用必将对人们的生活产生深远的影响[6,7]。 1.2 课题研究内容 人脸识别技术就是利用计算机分析人脸图像,进而从中提取出有效的识别信息,用来 “辨认”身份的一门技术。从广义上来讲,人脸识别大致包括以下五个方面的内容[3]: (1)人脸的定位与检测:即从静态图片或者视频序列中是否检测出人脸的存在并且确定 其位置,最后分离出来。然而,人脸是一个极为复杂的、多维的、典型的非刚性模式,其 中蕴含的信息也远远多于人身体的其他部位。因此,要对人脸做出准确的检测与定位,将 是一个非常具有挑战性的任务。首先,人脸具有相当复杂的细节变化,不同的外貌如脸形、 肤色等,不同的喜怒哀乐表情,以及局部特征如眼睛、嘴的开和闭等。其次,人脸还受到 光照和复杂的背景的影响。人脸定位检测是人脸识别的前期工作,所以人脸检测与定位是 人脸识别过程的一个重要环节。 (2)人脸的表征:确定表示检测出的人脸和数据库中的已知人脸的描述方式。通常表示 的方法包括几何特征(如欧式距离、曲率、角度)、代数特征(矩阵特征向量)、固定特征模板、 特征脸等。人脸图像信息数据量巨大,为了提高检测和识别的运算速度,提高图像传输和 匹配检索速度,必须对图像进行数据压缩,降低向量维数,即用尽可能少的数据表示尽可 能多的信息。人脸表征在提取人脸特征的同时,也实现了对原始图像的数据降维。 (3)人脸识别:就是将待识别的人脸与数据库中的己知人脸进行比较,得出相关信息。 这一过程的核心是选择适当的人脸表示方式和匹配策略。目前国内外研究人脸识别的方法 层出不穷,根据人脸表征方式的不同常用的方法总体可以分为:基于几何特征的识别方法、 基于统计特征的识别方法和基于连接机制的识别方法。基于几何特征的方法是通过人脸面 毕业设计(论文) 第 3 页 部拓扑结构几何关系的先验知识,利用基于结构的方法提取人脸面部主要器官特征,将人 脸用一组几何特征矢量表示。统计特征的识别方法将人脸用代数特征矢量来表示。代数特 征有图像本身的灰度分布决定,它描述了图像的内在信息。这种识别方法通过对图像灰度 进行各种代数变换和矩阵分解,从整体上捕捉和描述人脸的特征。连接机制的识别方法主 要有弹性图匹配方法,这类方法采用属性拓扑图代表人脸,它对光线、尺寸、角度具有一 定的不变性,并能在一定程度上容忍表情和视角的变化。 (4)表情/姿态分析:即对待识别人脸的表情或姿态信息进行分析,并对其加以归类。 (5)生理分类:即对待识别人脸的生理特征进行分析,得出其年龄、性别等相关信息, 或者从几幅相关的图像推导出希望得到的人脸图像,如从父母图像推导出孩子的脸部图像、 基于年龄增长的人脸图像估算等。 1.3 论文组织结构 本文的组织安排如下: 第一章 绪论 讨论课题研究的背景历史和研究内容。 第二章 人脸识别综述 主要介绍目前常用的人脸识别方法,按照识别特征的不同进行 了分类综述,讨论各种方法的关键技术和优缺点。 第三章 神经网络概述 阐述神经网络的基本理论和BP算法,讨论将反向传播神经网络 应用于模式识别的理论。 第四章 基于子图分割的人脸识别系统 详细介绍子图分割思想和本文提出的基于变异 系数和奇异值分解的人脸识别方法,并介绍了人脸识别系统的整体结构和程序的运行流程。 第五章 性能分析 融合子图分割思想和人工神经网技术分别对两个算法进行了模拟实 验,给出实验结果及针对实验结果展开分析,根据分析结果对两种算法的性能进行评价, 第六章 静态人脸图像识别演示系统 简要介绍了作者基于VC++开发的静态人脸图像识别系统的设计与实现。 毕业设计(论文) 第 4 页 2. 人脸识别综述 2.1 特征提取算法 2.1.1 基于几何特征的方法 基于几何特征的方法是早期的人脸识别方法之一[8]。常采用的几何特征有人脸的五官如眼睛、鼻子、嘴巴等的局部形状特征。脸型特征以及五官在脸上分布的几何特征。提取特 征时往往要用到人脸结构的几何关系。识别所采用的几何特征是以人脸器官的形状和几何 关系为基础的特征矢量,本质上是特征矢量之间的匹配,其分量通常包括人脸指定两点间 的欧式距离、曲率、角度等。 文献中记载最早的人脸识别方法就是Bledsoe提出的基于几何特征的方法,该方法以面部特征点之间的距离和比率作为特征,通过最近邻方法来识别人脸。以该方法建立的人脸 识别系统是一个半自动系统,面部特征点必须由人手工定位。也正是由于人工的参与,该 系统对光照变化和姿态变化不敏感。 Kanade首先计算眼角、鼻子、嘴巴、下巴等面部特征之间的距离和它们之间的角度以 及其它几何关系,然后通过这些几何关系进行人脸的识别工作。在一个20人的数据库上识 别率为45%-75%。Brunelli和Poggio [9]通过计算鼻子的宽度和长度、嘴巴位置和下巴形状等 进行识别,在一个47人的人脸库上的识别率为90%。然而,简单模板匹配方法在同一人脸 [10]库上的识别率为100。侧影(Profile)识别也是早期基于几何特征人脸识别的一个重要方法, 其基本原理是从人脸的侧影轮廓线上提取特征点,将侧影转化为轮廓曲线,从中提取基准 点。根据这些点之间的几何特征来进行识别。由于侧影识别相对较简单且应用面小,对侧 影识别的研究较少。 基于几何特征的方法非常直观。识别速度快,内存要求较少,提取的特征在一定程度 上对光照变化不太敏感。但是,当人脸具有一定的表情或者姿态变化时,特征提取不精确, 而且由于忽略了整个图像的很多细节信息,识别率较低,所以近年来已经很少有新的发展。 毕业设计(论文) 第 5 页 2.1.2 基于模型的方法 隐马尔可夫模型(Hidden Markov Model, HMM)是一种常用模型,基于HMM的方法首先 [11]被用于声音识别等身份识别上,之后被Nefian和Hayes引入到人脸识别领域。它是用于描述信号统计特性的一组统计模型。HMM方法的鲁棒性较好,对表情、姿态变化不太敏感, 识别率高。 主动形状模型(Active Shape Model,ASM)方法由Cootes等人提出[12],Cootes对形状和局部灰度表象建模,用建立的ASM在新的图像中定位易变的物体。后来,Lanitis等将其应用于解释人脸图像,在使用ASM找出人脸的形状后,将人脸切割并归一到统一的框架,对这 个与形状无关的人脸采用亮度模型来进行解释和识别。 主动表象模型(Active Appearance Model,AAM)可以看成是对ASM 的进一步扩展[13,14],是一种通用的非线性图像编码模式,通过变形处理将通用人脸模型与输入图像进行匹配, 并将控制参数作为分类的特征向量。 2.1.3 基于统计的方法 基于统计的方法将人脸图像视为随机向量,从而用一些统计方法来分析人脸模式,这 类方法有完备的统计学理论支持,已经有一些较成功的算法。 特征脸(Eigenface)方法由Turk和Pentland提出。对于每一幅人脸图像,按照从上到下、 从左到右的顺序将所有像素的灰度值串成一个高维向量,然后通过主成分分析(Principal Component Analy-sis,PCA)将高维向量降低维数。结合PCA的特征脸方法计算量低,使用 方便,效果良好。但是它对于外界因素所带来的图像差异和人脸自身所造成的差异是不加 区分的,因此外界因素(例如光照、姿态)变化会引起识别率的降低。 Moghaddam等人提出了贝叶斯人脸识别方法是一种基于概率的图像相似度度量方法, 将人脸图像之间的差异分为类间差异和类内差异,其中类间差异表示不同对象之间的本质 差异,类内差异为同一对象的不同图像之间的差异,而实际人脸图像之间的差异为两者之 和。如果类内差异大于类间差异,则认为两幅人脸图像属于同一对象的可能性大。进而提 出了类间差异和类内差异度量的概率模型和计算方法。 毕业设计(论文) 第 6 页 [15]奇异值分解(Singular Value Decomposition,SVD) 是一种有效的代数特征提取方法。奇异值特征具有良好的稳定性、转置不变性、旋转不变性、位移不变性以及镜像变换不变 性等重要性质,因此奇异值分解技术也被应用到人脸识别领域。 2.1.4 弹性图匹配方法 弹性匹配法是一种基于动态链接结构的方法。该方法在二维空间中定义了一种对通常 人脸变形具有一定不变性的距离。采用属性拓扑图代表人脸(图2.1),拓扑图的任一顶点包含一特征向量,用来记录人脸在该顶点位置附近的信息。弹性匹配法对光线、尺寸、角 度具有一定的不变性,并能在一定程度上容忍表情和视角的变化。该方法采用网格作为模 板,将图像之间的比较变为网格之间的比较,在二维空间中为人脸建立属性拓扑图。如图 2.1把拓扑图放置在人脸上,每一节点包含一特征向量,它记录了人脸在该顶点附近的分布 信息,节点间的拓扑连接关系用几何距离来标记,从而构成基于二维拓扑图的人脸描述。 再应用弹性图形匹配技术将库中人脸和待识别的人脸的弹性图进行匹配,找出最相似的人 脸图像。实验表明,弹性图匹配方法识别性能优于特征脸方法,但是计算量和存贮量都比 较大,识别的速度慢。 图2.1 人脸识别的弹性匹配方法 毕业设计(论文) 第 7 页 2.2 基于三维数据的人脸识别的方法 基于三维数据的人脸识别方法特点是使用三维数据,为人脸识别展开了新的思路,但 其信息来源困难,数据存储和计算量巨大。常用方法如下: 2.2.1 基于曲率的方法 由于曲率是表达曲面最自然也是最基本的局部特征。因此人脸曲面的曲率最早被用来 处理3D人脸识别问题 Lee用平均曲率和高斯曲率值将人脸深度图上的凸区域从整个人脸 分割出来。Tanaka还利用两个主曲率的方向。将人脸识别看作一个刚性的自由曲面的3D形 状识别问题 2.2.2 基于模型合成的方法 这类方法的基本思想是:对输入的二维图像。用某种技术恢复或部分恢复人脸的三维 信息。然后重新合成正面或指定姿态的、光照条件较好或指定光照条件的脸部图像。这类 方法的典型代表是基于形状恢复的3D增强人脸识别算法和3D可变形模型。前者利用一个通用的3D人脸模型合成新视图的脸部图像,合成过程部分改变姿态和光源情况。后者首先通 过200个的高精度3D人脸模型,训练建立一个可变形的3D人脸模型,对给定的脸部图像,用这个模型进行拟合,获得一组特定参数,然后合成任何姿态和光照条件的人脸图像。 2.3 分类算法 2.3.1 基于神经网络的方法 神经网络在人脸识别领域有很长的应用历史,1994年就出现了神经网络用于人脸处理的综述性文章。 动态链接结构(Dynamic Link Arehitecture,DLA)是用于人脸识别较有影响的神经网络方法 [16]。DLA试决传统的神经网络中一些概念性问题,其中最突出的是网络中语法关 [17]系的表达。Lawrence和Giles等人采用将自组织映射神经网络(SOM)与卷积神经网络相结合的混合神经网络方法进行人脸识别。SOM实现对图像的采样向量降维,且对图像样本的 毕业设计(论文) 第 8 页 小幅度变形不敏感;卷积网络用来实现相邻像素间的相关性知识,在一定程度对图象的平 移、旋转、尺度和局部变形不敏感。 用于人脸识别的神经网络还有:MLP的一种变形——时滞神经网络(Time Delay Neural Net-works,TDNN)、径向基函数网络(Radial Basis Function Network,RBFN)[18]。Ricanek [19]等人采用的Hopfield网络,能有效地实现低分辨率人脸的联想和识别。 神经网络方法较其他人脸识别方法有着独特优势,通过对神经网络的训练可以获得其 他方法难以实现的关于人脸图像的规则和特征的隐性表示,避免了复杂的特征抽取工作, 并有利于硬件实现。缺点主要在于其方法的可解释性较弱,且要求多张人脸图像作为训练 集,只适合于小型人脸库。 2.3.2 多分类器集成方法 将多个学习系统(例如分类器)组合是目前机器学习的热门课题之一,这种技术已经被广 泛运用到模式识别之中。当前人脸识别方法都只能在特定约束条件下取得较好的性能,然 而在现实应用中,人脸的表象会因为光照方向、姿态、表情变化而产生较大的变化,每种 特定的识别器只对其中一部分变化比较敏感, 因此,将可以整合互补信息的多个分类器集成能够提高整个系统的分类准确率。Gutta等人 [20]提出将集成的RBF与决策树(Decision Tree)结合起来进行人脸识别。结合了全局的模 板匹配和离散特征的优点,在一个350人的人脸库上测试,取得了较好的实验结果。Huang等人在多特征脸空间的基础上,采用神经网络集成(Neural Network Ensemble)的方法,实现了对多视角人脸的识别。首先将人脸深度方向的偏转角度人为的分为几组(多个视角),然后为每个视角训练一个神经网络,最后对所有视角对应的多个神经网络的输出进行集成。实 验表明,该方法不必预先估计偏转角度就可以取得较好的识别性能,而且能实现人脸偏转 角度的自动断。 2.4 总结 人脸自动识别技术已取得了巨大的成就,随着科技的发展,在实际应用中仍然面临困 难,不仅要达到准确、快速的检测并分割出人脸部分,而且要有效的变化补偿、特征描述、 毕业设计(论文) 第 9 页 准确的分类的效果,还需要注重和提高以下几个方面: (1) 人脸的局部和整体信息的相互结合能有效地描述人脸的特征,基于混合模型的方法 值得进一步深入研究,以便能准确描述复杂的人脸模式分布。 (2) 多特征融合和多分类器融合的方法也是改善识别性能的一个手段。 (3) 由于人脸为非刚体性,人脸之间的相似性以及各种变化因素的影响,准确的人脸识 别仍较困难。为了满足自动人脸识别技术具有实时要求,在必要时需要研究人脸与指纹、 虹膜、语音等识别技术的融合方法。 (4) 3D形变模型可以处理多种变化因素,具有很好的发展前景。已有研究也表明,对各 种变化因素采用模拟或补偿的方法具有较好的效果。三维人脸识别算法的选取还处于探索 阶段,需要在原有传统识别算法的基础上改进和创新。 (5) 表面纹理识别算法是一种最新的算法,有待于本文继续学习和研究出更好的方法。 总之,人脸识别是极富挑战性的课题仅仅采用一种现有方法难以取得良好的识别效果, 如何与其它技术相结合,如何提高识别率和识别速度、减少计算量、提高鲁棒性,如何采 用嵌入式及硬件实现,如何实用化都是将来值得研究的。 毕业设计(论文) 第 10 页 3. 神经网络概述 3.1 人工神经网络概述 人工神经网络是指利用工程技术手段模拟人脑神经网络的结构和功能的一种技术,它 的目的是使机器具有人脑那样的感知,学习和推理功能。人工神经网络之所以能取得巨大 的发展,使因为它具有以下特点: (1) 神经网络具有分布式存储信息的特点。神经网络是用大量神经元之间的联结及对各 联结权值的分布来表示特定的信息,因此即使当局部网络受损时,仍具有恢复原来信息的 优点。 (2) 神经网络对信息处理具有自组织,自学习的特点。神经网络中各神经元之间的联结 强度用权值大小来表示,这种权值可以事先给定,也可以适应环境而不断变化,这种过程 称为神经元的学习过程。 (3) 神经网络对信息的处理具有并行的特点。每个神经元都可以根据接收到的信息作独 立的运算和处理,然后将结果传输出去,体现了一种并行处理的概念。 神经网络用于图像识别具有以下优点:神经网络的信息分散存储于联结权值系数中, 这使神经网络具有很高的容错性。在图像识别中,图像往往存在噪声或部分损失,神经网 络可以较好的解决图像的识别问题。另外,神经网络的自组织和自学习功能,大大放松了 传统图像识别方法所需要的约束条件,使得对图像识别问题显出极大的优越性。 3.2 神经元模型 神经网络的处理单元称为神经元,也称为节点。图3.1所示为一个神经元模型的示意图。神经元的输入信号来自外部或者其他神经元的输出。设输入信号分别为:x ,x,…,x,其中n12n 为输入的数目;联结到神经元的权值相应为:w,w,…,w。神经元兴奋阀值为θ。则输入的12n [21]加权和(也称激励电平)可以表示为: n uxw,,,,iii,1 (3.1) 毕业设计(论文) 第 11 页 f(),激励电平通过激发函数的处理,得到神经元的输出为: n yfufuxw,,,,()(),ii,i,1 (3.2) 图3.1 基本神经元模型 令x= -1,w=θ,(3.2)式可以表示为: 00 n yfufxw,,()()ii,i,1 (3.3) 常用的激发函数如下: 阀值型:输出为0或1两种状态 1ur,, ,u,分段线形: (3.4) yfuur,,,()||,r, 0ur,,,, 1S型: (3.5) yfu,,()1exp(),,u上述介绍的人工神经元模型是生物神经元的一种近似,它在模拟生物神经网络时,已 具备了生物神经元的某些特性,但是也忽略了生物神经元的许多特性,如时间延迟等。 3.3 BP神经网络分类器 3.3.1 BP神经网络模型 BP神经网络的拓扑结构属于的阶层型前向神经网络,包括输入层、隐含层和输出 层,隐含层可以使单层或多层,其中,又以单隐含层网络的应用最为普遍。一般习惯将单 隐层前馈网称为三层前馈网或三层感知网。下面我们以一个输出层只含有一个神经元的三 毕业设计(论文) 第 12 页 层前向人工神经网络为例,说明这种网络及其学习算法。 图3.2 标准连接的三层BP神经网络 T如图3.2所示,输入层有n个神经元,对应着n维的输入向量(x,x,…,x);隐含层有m个12n 神经元,每一个神经元分别以一定的权值和输入层、输出层的每一个神经元相连;输出层 神经元的输出,即整个网络的输出为Y。 在给定输入的情况下,隐含层各神经元的输入为: n,,,,wx,jijijjm,1,2,,i,1 (3.6) 隐含层各神经元的输出为: Of,(),jm,1,2,,jj (3.7) 输出层的输出,即网络的输出为: m,,,yfvO,,,jjj,1,, (3.8) 其中,w为输入层神经元i同隐含层神经元j的连接权,v为隐含层神经元j与输出层神经iji元的连接权,θ为隐含层神经元j的阈值,激发函数f常取连续、可导的Sigmoid函数。 j 3.3.2 BP网络学习算法 下面以三层前馈网为例介绍BP网络的学习算法,所得结论可以推广到一般多层前馈网 络的情况。 毕业设计(论文) 第 13 页 BP网络的学习算法采用的是误差反向传播算法(简称BP算法),属于有教师学习中典 型的误差纠正型学习,学习过程由信号的正向传播与误差的反向传播两个过程组成。其基 本思想是:正向传播时,输入样本从输入层传入,经各隐含层逐层处理后,传向输出层。 若输出层的实际输出与期望输出(教师信号)不符,则转入误差的反向传播阶段;误差反 传是将输出误差以某种形式通过隐含层向输入层反传,并将误差分摊给各层的所有单元, 从而获得各层单元的误差信号,此误差信号即作为修正单元间连接权值和单元阈值的依据。 这种正向传播与误差反向传播,是周而复始地进行的,导致网络参数不断的调整,一直进 行到网络输出的误差减少到可接受的程度为止。下面,给出BP网络具体的学习过程。 给定学习样本集合中的一个学习样本p,网络的一次学习大致包含以下几步: (1) 正向传播输入 将学习样本p提供给网络的输入层,通过式子(3.6)至(3.8),计算各个隐层单元和输出层 单元的输入输出。 (2) 计算网络的输出误差 假设学习样本p为(x T,x,…,x),期望输出为γ。当期望输出与网络的实际输出不等时,12np 存在输出误差e,定义如下: p 21ery,,,,ppp2 (3.9) 将以上误差定义式展开至隐含层,有 2m,,,,211,,,,eryrfvO,,,,,,,ppppjjp22,j1,,,,,, (3.10) 进一步展开至输入层,有 22mmn,,,,,,,,11,,,,,,,,,()erfvfrfvfwx,,,,,,,,,,,,,ppjjppjijipj,,22,,,,,jji111,,,,,,,,,,,, (3.11) ewv,in,1,2,,pijjj由上面几个式子不难看出,网络的输出误差实际上是,和(;jm,1,2,,)的函数。而网络训练的目的,就是要通过调整这些参数来减小网络的输出误 差。 毕业设计(论文) 第 14 页 (3) 反向传播误差 根据梯度下降原理,对一个含有自由变量的目标函数而言,目标函数值下降最快的方 向是该目标函数对变量的负梯度方向。因而,我们只要沿着误差函数e对自由参数的负梯p度方向对其进行修正,便可以减少误差函数。具体过程为: ,,,eeeppp,,,,,,,,,,,,,,,,,,wvijjj,,,wv,ijjj (3.12) ,,(0,1)式子中,负号代表梯度下降:为学习率,控制每次对权值修改的步长,将(3.6) ,w,v,,ijjj至(3.11)代入式(3.12),便不难求出,和。 (4) 更新各个连接权值和阈值。 wwwvvv,,,,,,,,,,,,,,ijijijjjjjjj (3.13) (5) 结束。 对于所有的学习样本,均按上述过程调整网络的权值和阈值。然后固定连接权值和阈 值,对所有样本分别进行一次正向计算,求得网络的平均误差 p1,,,ep,pP,1 (3.14) 其中,P为学习样本的总数目。不难看出,平均误差E衡量了网络的总体学习效果。至此,一个迭代计算过程完成。 当E值满足某一精度要求时,说明网络已经成熟,就停止对网络的迭代计算,否则,就 要进行新一轮迭代计算。 毕业设计(论文) 第 15 页 4. 基于子图分割的人脸特征提取算法与人脸识别系统 4.1 子图分割思想 从局部人脸图像中提取特征的思想曾在有关文献中被提及,一般将人脸图像分为5个部[22]分:上半部分、下半部分、眼睛、鼻子和嘴部,再利用奇异值分解从中提取特征,但是 算法要进行人脸部分区域的检测,实现比较复杂;还有的算法运用各加权思想考虑不同局 部对表征整个人脸图像的贡献,再结合离散余弦变换提取特征,但图像划分为不同的情况, 而且也要进行人脸区域的检测,实现也较为复杂。 本文采用一种简单的子图分割思想[23],先将原始图片分割为子图,每个子图均同等对 待,对每个子图进行变换,然后选择代表变换后得到的合适系数或奇异值代表每个子图的 特征,最后将这些子图的特征组合起来作为整副人脸图片的特征向量,如图4.1所示。 [23]图4.1 子图分割思想 4.2子图分割与变异系数相结合的人脸特征提取算法 4.2.1变异系数的传统意义及其在图像处理中的应用 在图像处理中,变异系数一类最基本的统计特征,它计算过程简单,反映的数据特征 意义清晰,因此广为人们所采用。 统计学原理教科书中对变异系数的适用原则是这样规定的,对于不同性质的总体,需 毕业设计(论文) 第 16 页 要用变异系数比较标志变异程度,因为标准差是有计量单位的名数,不同性质总体的计量 单位不同,故不能用标准差进行比较。即使是性质相同的同类总体,只有在平均值相等的 情况下,才能直接用标准差进行比较;在平均值不等的情况下,也要用变异系数才能进行 比较,而不能直接用标准差进行对比。这是因为标准差的大小,不仅受总体各单位标志值 之间差异程度的影响,而且还直接受标志值本身水平高低的影响。对于一般的数列,上述 关于变异系数的适用原则容易应用。 人脸识别面临的挑战之一就是光照的变化,因为光照会改变人脸图像灰度的相对分布, 所以由光照引起的人脸图像变化甚至比因个体差异引起的变化还要大。因此,光照变化会 造成人脸识别系统性能的明显下降。对光照变化的处理已经引起了很多研究者的重视,并 且取得了较大进展。由以上定义可知即使数列的平均值不同(不同光照下的人脸图像的平 均灰度值不同),变异系数依然能准确的反应数据的离散度。本文提出的基于变异系数的 特征提取算法可以在一定程度上的克服人脸图像灰度的相对分布差异问题。 4.2.2变异系数的几何意义及其在图像处理中的应用 随着研究的深入,研究人员推导出变异系数的另一种表达式,这种表达式揭示了变异 系数用于图像处理时的几何意义。 首先给出有关概念的定义,设数据集K={x ,x,…,x}, x(i=1,2,…,n)是不全为零的实数,12ni T我们将它们用一维数组表示为X=( x,x,…,x) 。定义均值(4.1),它表示数据的平均取12n 2ss,值状况;方差(4.2)它是数据取值分散性程度的一个度量;标准差它是方差的开方,与 x数据集量纲一致;变异系数γ=s/它刻画了数据相对的分散性,是一个无量纲的量. n1xx,i,ni,1 (4.1) 2n12sxx,,i,,,11n,i, (4.2) 文献24通过对变异系数的原始定义的演算得出一下定理和推论: n22,,,tg[24]定理1n,1: (4.3) 毕业设计(论文) 第 17 页 n,,,tg,,,tglim[24]n,1n,,推论: 若向量x>0,则有;同时。 (4.4) 推论中条件x>0在数据集K={x,x,…,x},的元素是图像的像素值时自然成立,推论表明12n ,tg,变异系数实际上是正比于向量x与向量e夹角θ的正切,当n足够大时,几乎等于。 上述结论反映了变异系数与数据集在空间上的几何关联关系。 [24]0,0,,,,,n定理2:若向量x>0,则:当且仅当x=ae,a>0为实数,即数据集中 xxein,,,,1,,nii的数据全部相等,当且仅当,即数据集中只有一个非零元素。 图4.2 定理2的几何意义 定理2给出了变异系数取值范围及极值情况分析,它表明当向量x>0是图像数据时,变 异系数范围与图幅大小密切相关。以n=3为例,如图4.2所示,本文考虑的空间在第一象限, ,0,,,tg,,,02,此时是递增函数,故实,向量x与向量e的方向重合,即x=ae时y=0;从图4.2中观察,在第一象限向量e与三个坐标轴的夹角相等并达到最大,故向量x只有与某一坐 xxein,,,,1,,n,标轴方向重合时,亦即ii,时才达到最大,从而取最大值。 本文在处理图像时,先将原图分割成大小为k×j(k<=j)的若干子图,考虑每一个子图 的类型与变异系数的关系,此时该子图的所有象素点的值就构成了数据集向量x,因此上述的n=k×j。前面的结论为本文下面的推断提供了依据,由定理l可得0,,,k,这就界定了 ,,变异系数的波动范围;由定理2的证明过程可以推断:当很小时(通常?0.02k),图像的 毕业设计(论文) 第 18 页 ,,象素值非常接近,图像块大多属于平滑区,当较大时(通常?0.45k),块中存在若干奇异值,表明图像块中可能含有噪声。 ,根据的值可以取出对识别影响很小的平滑区子图,从而将特征集中在更有代表性的 子图上。通过这一步骤不但可以在一定程度上降低复杂度还可以提高准确率。 4.2.3变异系数的选取 图4.3( a )显示了一幅128,92的人脸图,被切割成32维子图后如图4.3(b) (a) (b) 图4.3 被分割的子图 图4.3 (b)经过变异系数变换后得到32维特征值如下表4.1所示,在该表中第(i,j)个值代表 第i行第j列的子图的变异系数。变异系数根据子图的灰度分布变化而变化。 表4.1 子图的变异系数表 子图 第1列 第2列 第3列 第4列 0.2556 0.27278 0.33525 0.20167 第1行 0.42569 0.079301 0.042812 0.40126 第2行 0.48178 0.025851 0.035394 0.38905 第3行 0.42496 0.20144 0.14213 0.2915 第4行 0.14332 0.070743 0.079636 0.1325 第5行 0.67302 0.063904 0.088126 0.40917 第6行 0.40051 0.11782 0.17394 0.57886 第7行 0.39083 0.07277 0.072599 0.6093 第8行 一般认为图像的像素值非常接近时,图像属于平滑区,否则属于非平滑区。根据上文 ,结论,当表4.1中的值?0.02k时,图像的象素值非常接近,图像块大多属于平滑区,计算 毕业设计(论文) 第 19 页 ,该图的平滑区变异系数=0.02*4=0.08,对所有?0.08的变异系数用0代替得到表4.2如下: 表4.2 进过处理后的子图变异系数表 子图 第1列 第2列 第3列 第4列 第1行 0.2556 0.27278 0.33525 0.20167 第2行 0.42569 0 0 0.40126 第3行 0.48178 0 0 0.38905 第4行 0.42496 0.20144 0.14213 0.2915 第5行 0.14332 0 0 0.1325 第6行 0.67302 0.081326 0.088126 0.40917 第7行 0.40051 0.11782 0.17394 0.57886 第8行 0.39083 0 0 0.6093 表4.2对应的子图情况如图4.4(a),被去除的平滑区子图如图4.4(b),平滑区包含的信息 量往往很少,但是当平滑区与非平滑区平等对待时,不仅浪费计算资源,还会造成识别的 干扰,不利于总的识别率。本算法选择去除这些平滑区子图。 (a) (b) 图4.4 经变异系数算法处理后的子图 可以很明显的看出图4.4(b)的子图中的信息量非常的少,而图4.4(a)去掉4.4(b)中的子图后人脸特征更加集中。通过模拟试验得出,当采用图4.3(b)的所有子图作特征时识别率是91.50%而采用图4.4(a)的所有子图作特征时的识别率是93.25%。可以得出去除平滑区子图可以使识别率更高。 4.3 子图分割与奇异值分解相结合的人脸特征提取算法 用于识别的图像特征有多种,包括视觉特征、统计特征、变换系数特征以及代数特征 等。其中,代数特征是由图像本身的灰度分布所确定的,它描述了图像的内在信息,而这 毕业设计(论文) 第 20 页 种内在信息对增强图像的识别能力是非常重要的。奇异值就是一种很有效的代数特征,所 以奇异值分解在数据压缩、信号处理和模式分析等许多方面都获得广泛应用。 4.3.1 奇异值的代数特性及其在图像处理中的应用 奇异值分解(SVD)定义如下: mn,mn,若矩阵mn,VvvvR,,[,,...,]UuuuR,,[,,...,]mn1212AR,,则存在正交矩阵,使得TTUAVdiagWpmn,,,[,...,],min(,),,p1AUWV,,即,则该式称为A的奇异值分解,其 TT,,,,,,,...0,(1,2,...,)ip,,12pii中AAAA,为A的奇异值,是或的特征值的平方根,,,,ii即。如公式(4.3)矩阵A的F范数等于该矩阵所有奇异值的平方和,矩阵的2-范数等于该矩阵的最大奇异值. p2AA,,,,,i1F,2i1, (4.3) 图像的奇异值具有以下特征: (1) 奇异值的稳定性 mn,,,,,,,,,,,,,,,...0,...0假设ABR,,1212pp,A,B的奇异值分别,其中pmn,min(,),则: ,,,,,AB112 (4.4) 这意味着当矩阵A有微小扰动时,奇异值的变化不大于扰动矩阵的2-范数。即图像的奇异值特征对图像噪音,图像光照条件不同引起的变换具有不敏感的特性。 (2) 奇异值的比例不变性 ***mn,假设,,,,,...,,,,,,...,12k12kaA,AR,,矩阵A的奇异值为,矩阵的奇异值为则: ***a(,,...,)(,,...,),,,,,,,1212kk (4.5) aA,这说明如果对矩阵A与的奇异值进行标准化处理,则可实现奇异值的比例不变性。 即对图像作行或列的置换运算,图像的奇异值特征不变。 毕业设计(论文) 第 21 页 (3) 奇异值的旋转不变性 mn,,(1,2,...,),min(,)ippmn,,i假设AR,,矩阵A的奇异值为,若p为酉矩阵,则矩阵PA的奇异值与矩阵A的奇异值相同,即: HH22AAIPAPAI,,,,,,()0ii (4.6) 这说明对图像作旋转运算和置换运算,图像的奇异值特征不变。 由以上三点知,奇异值固有的稳定性,比例不变性和旋转不变性,能有效地反映矩阵 特征,因此,在人脸识别中将图像矩阵的奇异值作为识别特征不但必要而且有效。 4.3.2 奇异值的降维压缩 奇异值降维压缩是为了降低神经网络的负担,减少运算量,以达到实时运算的要求。 由上文分析可知,M×N维图像矩阵奇异值个数为pmn,min(,)。如果直接对P个奇异值的特征进行识别,由于P较大,势必增加神经网络的冗余性和结构复杂性,从而影响网络的计算 效率和收敛率。为此需要进行奇异值降维压缩,本文保留图像矩阵的较大的奇异值,忽略 较小奇异值,经过奇异值降维压缩后,原始图像的特性是否改变,原始图像矩阵与奇异值 降维压缩后新得到的图像矩阵的关系如何将通过下面两个定理加以说明。 定理1:若矩阵mn,AR,, A的SVD由定理1给出,且 ,,,,,,,,,,,,......01212rrr,,,则: rankAr(), (4.7) rTTAuvUWV,,,,iiirrri,1 (4.8) 定理1将矩阵表示成了秩,即矩阵的和。同时将矩阵中向量组的相关性问题转化为矩阵 的非零奇异值个数问题,即矩阵的秩等于非零奇异值个数。 mn,定理2: 假设rankArs(),,mnrs,,,AR,, A的SVD由定理1给出,且(均为正整数),则: rW0sTTW(,,...,),diagAUVuv,,,,,,,,s12ssiii001i, (4.9) 毕业设计(论文) 第 22 页 因此: rankAranks()(W),,ss (4.10) mn,AAABbR,,,,minsF (4.11) mn,RS定理2表明,在F范数意义下,As是在空间(秩为s的mxn维矩阵构成的线性空间)中A的一个降秩最佳逼近。也就是说,在F范数意义下,As是A中所有秩为s矩阵的一个最佳逼近。 由定理1和定理2可知,奇异值降维压缩是舍弃某些较小奇异值的过程。将人脸图像矩 阵进行奇异值分解,再通过奇异值降维压缩可获得图像矩阵的有效秩,这里,有效秩为所 保留的奇异值个数。由保留奇异值生成的新的图像矩阵是原始图像矩阵在F范数意义下的一个降秩最佳逼近。 4.3.3 奇异值的选取 根据上文所述思想,本文对每块子图进行分割,分割后得到的图像矩阵是大小相等的, 对每个子图对应的矩阵奇异值分解之后,选择每个矩阵对应的奇异值向量中相同的元素进 行组合,将组合后的向量作为整副图像的特征向量,而选择哪一维具有更好的性能将在下 一节中详细说明。 本文将奇异值大小看作其所包含的能量,并给出经过奇异值分解后包含在不同奇异值 中的能量分布情况,从ORL数据库中随机选择一幅图像进行奇异值分解后的得到图4.5。其中X轴表示对每个子图分解后的奇异值,由于对同样大小的图像分割不同时得到的子图大 小不同,进而得到的奇异值个数也是不同的,为了统一起见,对于不同的分割本文均取前 10个最大的奇异值;Y轴表示根据子图分割得到的不同子图数,从8块子图开始,以8为单位递增到48块;Z轴表示不同各奇异值中所保护的能量占总能量的比例。图中可以看到,最 大的一个奇异值占据了相当的能量,而当分块更细微时,这种趋势更为明显,这种情况在 下一节的实验中也得到了确认,而这样给本文从每块子图中选择奇异值组合为特征向量代 表整个图像提供了依据。 毕业设计(论文) 第 23 页 图4.5 不同分割情况下不同奇异值中所包含的能量 4.4 系统框架 如图4.6是人脸识别系统体系结构图,一个典型的人脸识别系统应该包括图像的载入, 图像的预处理,图像的特征提取,训练分类器,图像识别而这几个步骤。本文根据这一标 准流程进行了一系列的模拟试验。 4.4.1 图像预处理 图像预处理包括位图转换成灰度矩阵和子图分割。 (1)256色图灰度化 由于256色位图的调色板内容比较复杂,使得图像处理的许多算法都没有办法展开,因 此有必要对它进行灰度处理。所谓灰度图像就是图像的每一个像素的R、G、B分量的值是相等的。彩色图像的每个像素的R、G、B分量值是不相同的,所以显示出红蓝绿等各种颜 色。灰度图像就没有这些颜色差异,有的只是亮度上的不同。灰度值大的像素点比较亮, 反之较暗。本文直接给256位图的RGB值各自一个加权系数,然后求和。 毕业设计(论文) 第 24 页 训练过程 识别过程 输入人脸训练图像 输入人脸测试图像 图像预处理: 转换灰度矩阵 and 分割子图 特征提取: 变异系数转换 or 奇异值分解 得到训练样本的特征得到测试样本的特征 向量 向量 用特征向量训练分类用训练好的分类器进 器 行样本匹配,得出识别 结果 图4.6 人脸识别系统体系结构图 (2)子图分割 基于子图分割思想的人脸特征提取则在相当程度上降低了上述算法所遇到的困难。本 文将根据不同的子图切割维数进行实验来获取最佳的子图分割方案,包括将原图分割成8 维,16维,2维,32维,48维,64维,80维。 4.4.2 特征提取算法中系数选取的方案 根据上文提出的两种特征提取算法对图像进行变换后,本文还需要通过模拟实验测试 不同系数的提取方案的识别率。对于具体系数的选取有如下方案: (1) 变异系数的系数选取 毕业设计(论文) 第 25 页 通过4.2.3的详细说明,本文通过分别选取全部的子图的变异系数和选取去除平滑区子 图的变异系数进行模拟实验的比较分析。 (2) 奇异值分解的系数选取 通过4.3.3的详细说明,本文通过分别选取最大的奇异值,第2大的奇异值,第3大的奇异值,第4大的奇异值,第5大奇异值进行模拟实验的比较分析。 4.4.3 BP神经网络的结构设计 由于神经网络的设计没有一个明确的量化标准,这就需要进行大量的实验并综合前人 的研究结果来确定神经网络的具体参数。下面,文中介绍的是怎样在前人设计经验的基础 上设计在这篇论文中用到的BP神经网络模型。BP网络的结构设计包括如下几个方面: (1). BP神经网络权值的初始化 首先要对神经网络进行初始化。训练BP网络时,对权值进行合适的初始化是非常重要 的,如果不当,可能使训练时间增长。如果初始值很大,使得加权后的输入落在传递函数 的饱和区,从而导致其导数f(x)非常小,而在计算权值修正公式中,因为 ,与 f(x)成正比, ,0,,0,,W0因此当f(x)时,有,使得,使得调解过程几乎停顿下来。所以一般总是 希望经过初始加权后的每个神经元的输出值都接近于0,这样可保证每个神经元的权值都能 够在他们S型传递函数变化最大之处进行调节,因此本文一般取初始权值在[-1,1]之间的随 机数,这样每一个神经元可以开始就在传递函数变化最大的地方进行迭代。 (2). BP神经网络学习速率的设置 学习率η控制网络学习过程中网络权重变化的幅度大小,运用BP算法时,需要选择合 适的学习率。固定的学习率可能对训练是不利的,如果学习率太小,使得学习时间会很长; 如果学习率太大,有可能使得网络的权重来回振荡,而不能达到合适的值。可以通过观察 每一次训练后的误差平方和训练曲线降速度来判断所选定的学习率是否合适:如果训练曲 线很快,则说明学习速率合适;若训练曲线振荡现象,则说明学习率过大。 本文规定学习速率为0.005,因为在这个学习速率下,能获得最快的收敛速度。 (3). BP神经网络传递函数的选择 传递函数确定了输入与输出的关系。带权值的输入之和作为传递函数的输入,传递函 毕业设计(论文) 第 26 页 数确定某个处理单元的输出。对于三层的BP神经网络,一般在输入层和隐含层之间采用非 线性传递函数,而在隐含层和输出层之间采用线性函数。 非线性函数中,S型函数是应用最广泛的,它是可微函数,导数比较容易计算。当输入 改变时,输出也连续的改变,和真正的神经元有较大的相似性,因此非常适合利用 BP训练的神经元。常用的S型函数包含对数S型传递函数和双曲面正切S型函数两种。比较性能而 言,双曲面正切S型函数优于对数S型传递函数。因此在本论文中,选择双曲面正切S型函数作为输入层与隐含层之间的传递函数,而选择线性函数作为隐含层和输出层之间的传递函 数。 毕业设计(论文) 第 27 页 5. 性能分析 5.1 人脸数据库 本文在模拟实验中使用了ORL数据库(Olivetti Research Laboratory in Combridge,UK),部分图像如图5.1所示。它包含了400张不同的人脸图像,40个不同的实验者每人10张。对其中一些实验者,图像是在不同的时间、变化的光线、面部表情(张开/合拢眼睛、微笑/不微笑)和面部细节(戴眼镜/不戴眼镜)下拍摄的。所有的图像为实验者的正脸,带有一 定程度的朝上下左右的偏转或倾斜,有相似的黑暗同质背景。该人脸库中的图片在人种, 性别,面部表情等方面都有着很大的可变性,而且该人脸库没有太多多余的边界,基本上 一张图片就是一副人脸,处理起来比较方便。每幅图象的大小为112 ,92像素8bit的灰度图。 为了进行比较,它们被分成没有重叠的、相同大小的训练集和测试集。每个类别随机的选 取6幅图象作为训练集,剩余4幅归为测试集。 图5.1 ORL 人脸库中的部分图片 毕业设计(论文) 第 28 页 5.2 实验结果 在模拟实验阶段,通过变换各种可变因素,观察不同条件下识别率差异,对结果进行 统计和分析,验证本文的算法并研究提高识别率与运行效率的最佳策略。 文中,针对两种特征提取算法总共进行了八组实验对各种参数下的系统性能进行评价: 第一组实验:不同的特征维数对基于变异系数的人脸特征提取算法性能的影响; 第二组实验:去除/保留平滑区子图的变异系数算法的识别率; 第三组实验:不同训练目标集对基于变异系数的人脸特征提取算法性能的影响; 第四组实验:不同的训练迭代次数对基于变异系数的人脸特征提取算法性能的影响; 第五组实验:不同的特征维数对基于奇异值分解的人脸特征提取算法性能的影响; 第六组实验:选取不同的奇异值作特征向量的识别率; 第七组实验:不同训练目标集对基于奇异值分解的人脸特征提取算法性能的影响; 第八组实验:不同的训练迭代次数对基于奇异值分解的人脸特征提取算法性能的影响; 用于实验的BP神经网络的参数设置如表5.1所示。 表5.1 实验中BP神经网络模型参数设置表 BP 1 2 3 4 5 6 7 8 学习速率() ,0.005 0.005 0.005 0.005 0.005 0.005 0.005 0.005 训练迭代次数() 3000 3000 3000 - 3000 3000 3000 - t 训练目标 1e-5 1e-5 1e-5 1e-5 1e-5 1e-5 1e-5 1e-5 隐含层神经元个数 100 100 100 100 100 100 100 100 训练函数 trainrp trainrp trainrp trainrp trainrp trainrp trainrp trainrp 特征维数 - - 16 16 - - 16 16 训练集图片数 240 240 - 240 240 240 - 240 测试集图片数 160 160 - 160 160 160 - 160 (1) 实验一选用不同特征维数来验证特征维数基于变异系数的人脸特征提取算法性能的影 响。本组实验的BP神经网络的参数设置如表5.1所示,实验结果如表5.2和图 5.2所示。在图 5.2中,X轴表示特征维数,Y轴表示所有图片的总识别率。从图中可以看出,当特征维数 毕业设计(论文) 第 29 页 为16时识别率最高,而随着特征维数的增加,识别率呈现不稳定的下降,由于本实验是直 接将图片分割成灰度矩阵,之前没有将多余的边界进行处理,在特征维数增大时,也就是 图片分割会更加细化,一些无用边界信息可能会被单独的分割成一块,导致无用边界也被 当作有用信息处理,使有效信息的比例降低,最终导致识别率降低。 表5.2 不同特征维数对基于变异系数的特征提取算法的性能比较 特征维数 8 16 24 32 48 64 80 测试集识别率 40% 81.87% 85.62% 78.75% 78.12% 84.00% 76.87% 训练集识别率 94.16% 99.16% 100% 100% 100% 100% 100% 总识别率 72.50% 92.25% 94.25% 91.50% 91.25% 93.50% 90.75% 图 5.2 不同特征维数下的识别率 (2) / 在实验二中,为了验证变异系数的几何特性在图像处理中的应用,本文对在不同的子 图维数下去除/保留平滑区子图的变异系数算法的平均识别率进行了比较。本组实验的BP神经网络的参数设置如表5.1所示,实验结果如图5.3所示。根据4.2.3节的分析,由于滑区包 含的信息量往往很少,但是当平滑区与其他边缘区,纹理区平等对待时,不仅浪费计算资 源,还会造成识别的干扰,不利于总的识别率。从图5.3看出从16维开始去除平滑区子图的 识别率比未去除平滑区子图的识别率要高,在本文提出的算法中去除了这些平滑区子图。 毕业设计(论文) 第 30 页 图 5.3 去除与为去除平滑区子图的识别率 (3) 在实验三中,本文尝试了改变训练集和测试集的数目,观察其对基于变异系数的人脸 特征提取算法识别率的影响。用于该实验的BP神经网络的参数设置如表5.1所示,实验结果如表5.3所示,在训练集上的识别率都是100%。在表5.3中可以得到,随着用于训练的图片 的增多,识别的准确率有着明显的提高。由此可见,用于训练的数据越丰富,越能让神经 网络了解所要分辨识别的内容的特点,也就更容易得到好的实验结果。 表5.3 不同的训练集图片的识别率 训练集个数 2 4 6 8 测试集识别率 51.87% 73.33% 85.62% 87.5% 训练集识别率 100% 100% 100% 99.06% 总识别率 61.5% 84% 94.25% 96.75% (4) 在实验四中,本文改变了训练迭代次数,以验证训练次数对识别率的影响。用于该实 验的BP神经网络的参数设置如表5.1所示,实验结果如表5.4和图5.4所示。在训练集上的识 别率都是100%,由于使用的训练函数trainrp有较快的收敛速度,训练次数较少时就已经能 达到很好的效果,识别率随着训练次数的增加而略有增大,但幅度并不明显,当训练次数 为3000时达到较好的效果,但是当训练次数过大时,反而导致识别率的降低,这是因为神 毕业设计(论文) 第 31 页 经网络训练中存在一个重要的问题,过度训练,以至于网络过度适应训练集,但是对于训 练集以外的数据有较差的推广力。 表5.4 不同迭代次数的识别率 迭代次数 1000 2000 3000 4000 6000 8000 测试集识别率 75.62% 85.62% 85.62% 82.50% 82.50% 81.87% 训练集识别率 99.1% 99.58% 100% 99.58% 99.58% 100% 总识别率 89.75% 94.00% 94.25% 92.75% 92.75% 92.75% 图 5.4不同迭代次数的识别率 (5) 在实验五中,本文选用不同特征维数,以此来验证特征维数基奇异值分解的人脸特征 提取算法性能的影响。用于该实验的BP神经网络的参数设置如表5.1所示,实验结果如表5.5和图 5.5所示。在图 5.5中,X轴表示特征维数,Y轴表示所有图片的平均识别率。从图中 可以看出,当特征维数为32时识别率最高,而随着特征维数的增加,识别率呈现不稳定的 下降,由于本实验是直接将图片分割成灰度矩阵,之前没有将多余的边界进行处理,在特 征维数增大时,也就是图片分割会更加细化,一些无用边界信息可能会被单独的分割成一 块,导致无用边界也被当作有用信息处理,使有效信息的比例降低,最终导致识别率降低。 表5.5 不同特征维数下的识别率 特征维数 8 16 24 32 48 64 80 毕业设计(论文) 第 32 页 测试集识别率 70.65% 82.50% 88.75% 91.877% 88.75% 88.75% 88.12% 训练集识别率 94.58% 100% 100% 100% 100% 100% 100% 总识别率 85.00% 93.00% 95.50% 96.75% 95.50% 95.50% 95.25% 图 5.5不同特征维数下的识别率 (6) 在实验六中,本文对每个子图进行奇异值分解后,从得到的奇异值向量中,选择合适 的奇异值构造表示人脸的特征向量。用于该实验的BP神经网络的参数设置如表5.1所示,实验结果如图 5.6所示。对子图进行SVD处理后,本文分别选择第i(i=1,…,5)大的奇异值分别构造特征向量做为整个人脸的特征。从图中的实验结果中可以发现,最大的奇异值具有 最优的识别能力,而且第二大奇异值也具有较好的识别能力;而且当子图分割逐渐细化时, 识别率是稳定提高的,随着子图很细化时,识别率也没有明显降低,而是维持在一个相对 较高的识别率上,表明SVD的容错能力相对较强,而且这个特点,在第二大奇异值所构造 的特征向量上表现的更为明显,在特征维数为80时,识别率依然达到了85%。 毕业设计(论文) 第 33 页 图 5.6 不同奇异值的识别率 (7) 在实验七中,本文尝试了改变训练集和测试集的数目,观察其对基于奇异值分解的人 脸特征提取算法识别率的影响。用于该实验的BP神经网络的参数设置如表5.1所示,实验结果如表5.6所示,在训练集上的识别率都是100%。在表5.6中可以得到,随着用于训练的图 片的增多,识别的准确率有着明显的提高。由此可见,用于训练的数据越丰富,越能让神 经网络了解所要分辨识别的内容的特点,也就更容易得到好的实验结果。 表5.6 不同训练集图片数目的识别率 训练集个数 2 4 6 8 测试集识别率 57.817% 76.25% 91.877% 88.75% 训练集识别率 100% 100% 100% 99.06% 总识别率 66.25% 85.75% 96.75% 98.75% (8) 在实验八中,本文变化了训练迭代次数,以验证训练次数对基于奇异值分解的人脸特 征提取算法识别率的影响。用于该实验的BP神经网络的参数设置如表5.1所示,实验结果如表5.7和图 5.7所示。从迭代2000次开始在训练集上的识别率都是100%,由于使用的训练函数trainrp有较快的收敛速度,训练次数较少时就已经能达到很好的效果,识别率随着训练次 数的增加而略有增大,但幅度并不明显,当训练次数为3000时达到较好的效果,但是当训 毕业设计(论文) 第 34 页 练次数过大时,反倒会导致识别率的降低,这是因为神经网络训练中存在一个重要的问题, 那就是过度训练,以至于网络过度适应训练集,但是对于训练集以外的数据有较差的推广 力。 表5.7 不同迭代次数的识别率 迭代次数 1000 2000 3000 4000 6000 8000 测试集识别率 81.25% 88.12% 91.877% 91.25% 91.87% 91.87% 训练集识别率 99.16% 100% 100% 100% 100% 100% 总识别率 92.00% 95.250% 96.75% 96.50% 96.75% 96.75% 图 5.7不同迭代次数的识别率 毕业设计(论文) 第 35 页 6. 静态人脸图像识别演示系统 6.1 系统简介 该系统是为了识别静态人脸图像而设计的,它通过对人脸图片的一系列处理,最后识 别得出人脸图片中的人物身份。系统可以单独使用,也可以把它作为一个识别系统的软件 核心应用到其他系统中去。 6.2 系统的基本技术要求 下面是系统具体要达到的基本技术要求: (1)可以训练成识别任意个人的系统; (2)人脸图片的识别准确率达到90%; (3)对人脸图片的光照变化,角度,表情,覆盖物(如眼镜)等有较强的适应性; (4)对图片的大小格式有要求,必须是112*92的256色位图; (5)系统能长时间无故障运行; (6)系统的操作要求简单。 6.3 系统中的关键技术 在本系统中用到了很多图像处理中的相关技术:灰度化,子图分割,特征提取,数值 归一,最后使用了神经网络对提取的特征向量进行分析判断,识别人脸身份。 6.4 系统的软硬件平台 因为系统运行的过程当中,主要进行图像处理,在这个过程中要进行大量的数据处理, 所以处理器和内存要求较高,CPU要求主频在600Hz及以上,内存在128MB及以上。 系统可以运行在Windows 98,2000,xp操作系统下。程序调试时需要使用Microsoft Visual C++ 6.0。 毕业设计(论文) 第 36 页 6.5 系统实现 该系统是在VC++环境下,依据图形学和模式识别的基本原理以及VC++的基础类库MFC开发而成,用于实现基本的人脸录入与识别功能。如图6.1,自动人脸识别系统包括常人脸识别包括图像的预处理,特征选择和分类器训练和人脸识别四大功能模块。 6.5.1 系统流程图 训练图生成灰 图像 特征 生成特 训练 分类器 片集 度矩阵 分割 选择 征矩阵 结果 训练 特征 分类器 信息 信息 测试图生成灰 图像 特征 生成特 分类 分类器 片集 度向量 分割 选择 征向量 结果 运算 预处理 特征选择 训练、分类 图 6.1自动人脸识别系统体系图 6.5.2 系统总体编程框架 本系统的程序完整流程如下: 打开多张人脸图片(训练时为训练样本图片,规定每个人要求6张训练样本图,识别时为未知身份的人脸图片)。 函数名称:DisplayMultiDIB 参数: CDC* pDC -指向当前设备上下文(Divice Context)的指针 HDIB * mhDIB -要显示的多个位图的句柄 I nt imgnum -要显示的图片的个数 毕业设计(论文) 第 37 页 将输入的256色位图转换成灰度图 函数名称: Convert256toGray() 参数:HDIB hDIB -图像的句柄 (3)对人脸图片进行子图分割与特征提取 函数名称: DIBDct() 参数: LPSTR lpDIBBits - 指向源DIB图像指针 LONG lWidth - 源图像宽度(象素数) LONG lHeight - 源图像高度(象素数) BP神经网络的初始化与训练 函数名称 BpTrain() 参数: double **data_in -指向输入的特征向量数组的指针 double **data_out -指向理想输出数组的指针 int n_in -输入层结点的个数 int n_hidden -BP网络隐层结点的数目 double min_ex -训练时允许的最大均方误差 int runtimes -BP网络的训练迭代次数 double eta -BP网络的训练步长 int num -输入样本的个数 int out -输出结点数目 (4) 对经过上面(1)(2)步骤后的人脸图片进行识别 函数名称Recognize() 参量 毕业设计(论文) 第 38 页 double **data_in -指向待识别样本特征向量的指针 int num -待识别的样本的个数 int n_in -Bp网络输入层结点的个数 int n_hidden -Bp网络隐层结点的个数 int n_out -Bp网络输出层结点的个数 6.5.3 程序使用说明 在本节将简要演示该程序的运行。 主界面包括绘图区和功能菜单。 图 6.2 主页面 操作流程: 第一步:载入训练集图片: 人脸录入时系统规定每个人要录入6张图片用于训练。 人脸识别时可以载入任意人的任意张图进行识别。 毕业设计(论文) 第 39 页 图 6.3 打开图片 第二步:在name.txt中输入每个人的身份资料。 第三步:图像预处理 图 6.4 256色位图转灰度图 毕业设计(论文) 第 40 页 图 6.5 256色位图转灰度图结果 第四步:人脸图像特征提取,先后选择菜单中的“人脸特征提取”和“特征值归一化 [0,1]” 图 6.6 人脸特征提取 运行结果如下: 图 6.7 运行结果 毕业设计(论文) 第 41 页 第五步:训练神经网络,选择菜单中的“训练神经网络”。 图 6.8 训练神经网络 输入参数: 图 6.9 输入参数 训练结束,结果如下,如果对结果不满意,可以重新调整参数进行训练。 毕业设计(论文) 第 42 页 图 6.10 训练结果 第六步:人脸识别 进行识别前先进行前面第一,三,四步,再选择菜单中的“人脸识别”,识别结果如 下: 图 6.11 识别结果 毕业设计(论文) 第 43 页 7. 总结 计算机人脸识别是一个涉及图像处理、模式识别、计算机视觉和神经网络等多个领域 的研究课题。它有着巨大的商业应用前景,由于其界面友好,即使在已经有了像指纹分析 和虹膜扫描这样非常可靠的生物特征识别技术的情况下,人脸识别技术依然具有极大吸引 力。 本文首先介绍人脸识别的基本情况和发展前景。接下来重点介绍神经网络的基本理论 和BP算法,对于BP神经网络的结构和学习算法作了详细的描述。然后详述作者提出的基于 子图分割思想的两种特征提取算法。在基于变异系数的算法中,原图被分割成若干子图, 将子图转换成变异系数后,通过选取合适的变异系数组成原图的特征向量。在基于奇异值 分解的算法中,原图被分割成若干子图,将子图进行奇异值分解后,选取最合适的奇异值 代表子图组成原图的特征向量。接下来分析了在ORL人脸库上进行的一系列的实验并由此评价两种算法的性能。这些实验主要分别测试两种算法在不同的子图维数,不同的训练集 测试集,不同的训练神经网络迭代次数和选取不同的特征值的情况下的性能。基于ORL人 脸数据库的实验结果表明,特征提取算法是有效的。在基于奇异值分解的算法中最大和次 大的系数或奇异值具有较为理想的性能,而在基于变异系数的算法中变异系数在子图切割 比较细时能方便的去除一些包含信息量很少的变异系数从而提高识别效率。最后介绍了作 者在VC++环境下,依据前期研究成果开发的一个静态人脸图像识别演示系统,该系统能有 效快捷的识别人脸图像。 为了进一步提高实用性,需要进一步研究人脸探测技术,去除图像中的无用边界,更 大限度的提高信息的有效率,并可以尝试使用其它的分类器来提高识别率。 毕业设计(论文) 第 44 页 致 谢 本文是在xx博士精心指导和大力支持下完成的。xx博士以其严谨求实的治学态度、高 度的敬业精神、兢兢业业、孜孜以求的工作作风和大胆创新的进取精神对我产生重要影响。 他渊博的知识、开阔的视野和敏锐的思维给了我深深的启迪。xx博士不但在整个毕业设计过程中给了我无私的帮助与专业的指导,在我追求梦想的道路上,他给我点亮了一盏明灯, 为我插上飞翔的翅膀。很庆幸来到xx大学软件学院,遇到我学业乃至人生的导师!在此, 给予我真挚的感谢和最衷心的祝福:愿您身体健康,万事如意! 大学四年是我人生里一笔宝贵的财富。大学四年是我人生道路上起决定意义的四年, 忠心感谢在这四年中授予我知识的各位老师和培养我的院领导们。 同时,我还要感谢在毕业设计过程中给予我帮助和指导的同学们,尤其是xx同学和xx同学,xx学姐。他们的帮助不但提高了我的理论知识还提高了我的动手能力。 另外,我还要特别感谢我原xxx的每一位室友,是你们的关心与帮助让我成长,是你们 的欢声笑语让我的大学四年色彩斑斓。 特别感谢我深爱的父母和兄弟姐妹,没有你们就没有我的今天。 最后感激所有关心我,支持我的人们! 毕业设计(论文) 第 45 页 参考文献 [1] Yin 1, Basu. A Generating realistic facial expression with wrinkles for model-based coding [J]. Computer Vision and Image Understanding, 2001, 84(2): 201- 240. [2] Aerates G, Pereira F. MPEG-4 facial animation technology: survey, implementation and results [J]. IEEE Transactions on Circuits and Systems for Video Technology, Special Issue on SNHC, 1999, 9(2):290-305. [3] Guo G, Li S. Z., Chan K. L. Support vector machines for face recognition [J] , International Journal of Computer Vision, 2001, 19(3): 631-638. [4] Tanzeem Choudhury. Face Recognition for Smart Environments [J]. IEEE Computer. 2000, 2(1): 50-55. [5] P Jonathon Phillips, Hyeonjoon Moon, Syed Rizvi. The FERET Evaluation. Proceedings of the NATO Advanced Study Institute on Face Recognition [J]. From Theory to Application, 1997, 12(3):44-261. [6] 赵海涛, 龄东军, 余忠. 基于形状和纹理的人脸自动识别[J] ,计算机研究与发展,2003,40(4):40-44. [7] 杨健, 杨静宇. 具有统计不相关性的图像投影鉴别分析及人脸识别[J]. 计算机研究与发展.2003, 40(3):30-35. [8] Cheng Y, Liu K, Yang J. Human face recognition method based on the statistical model of small sample size [J] . SPIE Proc, Intell. Robots and Computer Vision X: Algorithms and Techn.1991, 16(6):85-95. [9] Brunelli R, Poggio T. Face Recognition: Features versus Templates. IEEE Trans on Pattern Analysis and Machine Intelligence[J] ,1993,15(10):1042-1052. [10] Samal A, Iyengar P A. Automatic Recognition and Analysis of Human Faces and Facial Expressions Survey [J] .Pattern Rec-ognition, 1992, 25(1):65- 77. [11] Cootes T F, Taylor C J. Active Shape Models-Their Training and Application[J] .Computer Vision and Image Understanding,1995,61(1):38-59. [12] Copies T F, Edwards G J. Active Appearance Models [J]. IEEE Trans on Pattern Analysis and Machine Intelli-gence, 2001, 23(6):681-685. [13] Matthews I, Baker S. Active Appearance Models Revisited [J] .International Journal of Computer Vision, 2004, 60(2):135-164. [14] Turk M,Pentland A. Eigenfaces for Recognition[J] .Journal of Cognitive Neuroscience, 1991,3(1):71-86. [15] Hong Z Q. Algebraic Feature Extraction of Image for Recognition [J] .Pattern Recognition, 1991, 24(3):212-219. [16] Lades M, Vorbruggen J C. Distortion Invariant Object Recognition in the Dynamic I ink Architecture [J]. IEEE Trans on Computers, 1992, 42(3):300-3l1. [17] Iawrence S. Face Recognition-A Convolution Neural Network Approach [J] . IEEE Trans on Neural Networks, 1997, 8(1):98-113. [18] Ranganath S, Arun K. Face Recognition Using Transform Features and Neural Networks [J]. Pattern 毕业设计(论文) 第 46 页 Recognition, 1997, 30 (10):1615-1622. [19] Haywood K. Hopfield lake Net-works for Pattern Recognition with Applications to Face Recognition[C]. In:Proc of the Intcrnational Joint Conference on Neural Networks.Washington.USA.1999. pp: 3265-3269. [20] Gutta S.Wechsler H.Face Recognition Using Hybrid Classifier Systems[C]. In:Proc of the InternationaI Conference on Neural Networks. W ashington, USA, 1996, pp: 1017-1022. [21] 胡小锋, 赵辉. Visual C++/MATLAB 图像处理与识别实用案例精选[M]. 北京:人民邮电出版社, 2004: 178-230. [22] CHEN FB, GAO XM, ZHANG SL, YANG JY. Human Face Recognition Method Based on Modular PCA[J]. M INI- MICRO SYSTEMS, 2006, 27(10):1943-1947. [23] 张锦, 成奋华等. 基于子图特征组合的人脸识别技术研究[J]. 湖南大学学报: 自然科学版, 2007, 34(6): 70-73. [24] 陈昭炯,叶东毅. 变异系数的新性质及其在图像处理中的应用[J]. 小型微型计算机系统, 2006, 27(1): 162-166. 毕业设计(论文) 第 47 页 附录 攻读学位期间的研究成果 [1] 刘钢, 张锦, 刘雪花. 基于嗅觉仿生模型的人脸识别.在第27届中国控制会议(CCC'08) (已录用) [2] 张锦, 陈超,刘雪花. 基于子图分割的人脸特征提取算法性能比较研究.计算机应用研究增刊(已录用) [3] 张锦, 刘雪花,郑涛. 基于变异系数与奇异值分解的算法性能研究.系统仿真学报(已投稿) 毕业设计(论文) 第 48 页 附录 代码 1. 基于奇异值分解的人脸特诊提取算法 %读入人脸图片,并将其转换成为灰度矩阵,然后将灰度矩阵进行切割,再用SVD分解,并提取图片特 征 %返回参数 %feature为指向装载后的数据文件的变量 %num的值为特征值向量的第几维 %函数声明 function [feature] = allFeature(num) %用户输入特征维数数目 panDuan = 1; while panDuan featureNumber = input('请输入特征维数(仅限于8, 16,24, 32,48,64,80):'); %如果输入的是8.16.24.32.48.64.80,则继续执行代码 if(featureNumber == 8||featureNumber == 16 || featureNumber == 24|| featureNumber == 32 || featureNumber == 48 || featureNumber == 64 || featureNumber == 80 ) panDuan = 0; disp('开始装载图像文件,请等待.......') %如果输入的是其它数字,提示输入有误,请用户重新输入 else fprintf('你输入的不是这5个数中的任何一个,请重新输入!\n\n') end end %得出图片的路径,并自动读入每张图片 dir = ['\1.bmp ' '\2.bmp ' '\3.bmp ' '\4.bmp ' '\5.bmp ' '\6.bmp ' 毕业设计(论文) 第 49 页 '\7.bmp ' '\8.bmp ' '\9.bmp ' '\10.bmp']; for x=1:40, %将数字转换成字符,便于把两个字符连接,组成图片的完整路径 a = int2str(x); b = ['s']; d = [b a]; for i=1:10, %得到每张图片的文件名 e = [d dir(i,1:7)]; % 将图片转化成为灰度矩阵 M = double(imread(e)); %如果用户输入的是8,则执行下段代码,把数据处理得到8维的特征向量 if (featureNumber == 8) for j=1:4, for k=1:2, %将图片的灰度矩阵划分成8块小矩阵 temp=M((j-1)*28+1:j*28,(k-1)*46+1:k*46); %对每个小矩阵进行SVD变换 [u,temp1,v]=svd(temp); %提取一个的SVD系数作为特征值 temp2=temp1(num,num); %得到所有图片的特征矩阵 feature((x-1)*10+i,(j-1)*2+k)=temp2; end end end %如果用户输入的是16,则执行下段代码,把数据处理得到16维的特征向量 if (featureNumber == 16) for j=1:4, for k=1:4, %将图片的灰度矩阵划分成16块小矩阵 毕业设计(论文) 第 50 页 temp=M((j-1)*28+1:j*28,(k-1)*23+1:k*23); %对每个小矩阵进行SVD变换 [u,temp1,v]=svd(temp); %提取一个的SVD系数作为特征值 temp2=temp1(num,num); %得到所有图片的特征矩阵 feature((x-1)*10+i,(j-1)*4+k)=temp2; end end end %如果用户输入的是24,则执行下段代码,把数据处理得到16维的特征向量 if (featureNumber == 24) for j=1:6, for k=1:4, %将图片的灰度矩阵划分成24块小矩阵 temp=M((j-1)*18+1:j*18,(k-1)*23+1:k*23); %对每个小矩阵进行SVD变换 [u,temp1,v]=svd(temp); %提取一个的SVD系数作为特征值 temp2=temp1(num,num); %得到所有图片的特征矩阵 feature((x-1)*10+i,(j-1)*4+k)=temp2; end end end %如果用户输入的是32,则执行下段代码,把数据处理得到32维的特征向量 if (featureNumber == 32) for j=1:8, for k=1:4, %将图片的灰度矩阵划分成32块小矩阵 temp=M((j-1)*14+1:j*14,(k-1)*23+1:k*23); %对每个小矩阵进行SVD变换 [u,temp1,v]=svd(temp); 毕业设计(论文) 第 51 页 %提取最大的SVD系数作为特征值 temp2=temp1(num,num); %得到所有图片的特征矩阵 feature((x-1)*10+i,(j-1)*4+k)=temp2; end end end %如果用户输入的是48,则执行下段代码,把数据处理得到48维的特征向量 if (featureNumber == 48) for j=1:8, for k=1:6, %将图片的灰度矩阵划分成48块小矩阵 temp=M((j-1)*14+1:j*14,(k-1)*15+1:k*15); %对每个小矩阵进行SVD变换 [u,temp1,v]=svd(temp); %提取最大的SVD系数作为特征值 temp2=temp1(num,num); %得到所有图片的特征矩阵 feature((x-1)*10+i,(j-1)*6+k)=temp2; end end end %如果用户输入的是64,则执行下段代码,把数据处理得到64维的特征向量 if (featureNumber == 64) for j=1:8, for k=1:8, %将图片的灰度矩阵划分成64块小矩阵 temp=M((j-1)*14+1:j*14,(k-1)*11+1:k*11); %对每个小矩阵进行SVD变换 [u,temp1,v]=svd(temp); %提取最大的SVD系数作为特征值 temp2=temp1(num,num); %得到所有图片的特征矩阵 毕业设计(论文) 第 52 页 feature((x-1)*10+i,(j-1)*8+k)=temp2; end end end %如果用户输入的是80,则执行下段代码,把数据处理得到80维的特征向量 if (featureNumber == 80) for j=1:10, for k=1:8, %将图片的灰度矩阵划分成80块小矩阵 temp=M((j-1)*11+1:j*11,(k-1)*11+1:k*11); %对每个小矩阵进行SVD变换 [u,temp1,v]=svd(temp); %提取最大的SVD系数作为特征值 temp2=temp1(num,num); %得到所有图片的特征矩阵 feature((x-1)*10+i,(j-1)*8+k)=temp2; end end end end end %输出提示信息,说明图片处理完毕 fprintf('图片装载完毕,请继续下面的操作\n\n'); 2. 基于变异系数的人脸特征提取算法_保留平滑区子图 %保留平滑区子图的基于变异系数的人脸特征提取算法 %读入人脸图片,并将其转换成为灰度矩阵,然后将灰度矩阵进行切割,再计算变异系数,并提取图片特征 %返回参数 %feature为指向装载后的数据文件的变量 %num的值为特征值向量的第几维 %函数声明 毕业设计(论文) 第 53 页 function [feature] = allFeature() %用户输入特征维数数目 panDuan = 1; while panDuan featureNumber = input('请输入特征维数(仅限于8, 16,24, 32,48,64,80):'); %如果输入的是8.16.24.32.48.64.80,则继续执行代码 if(featureNumber == 8||featureNumber == 16 || featureNumber == 24|| featureNumber == 32 || featureNumber == 48 || featureNumber == 64 || featureNumber == 80 ) panDuan = 0; disp('开始装载图像文件,请等待.......') %如果输入的是其它数字,提示输入有误,请用户重新输入 else fprintf('你输入的不是这5个数中的任何一个,请重新输入!\n\n') end end %得出图片的路径,并自动读入每张图片 dir = ['\1.bmp ' '\2.bmp ' '\3.bmp ' '\4.bmp ' '\5.bmp ' '\6.bmp ' '\7.bmp ' '\8.bmp ' '\9.bmp ' '\10.bmp']; for x=1:40, %将数字转换成字符,便于把两个字符连接,组成图片的完整路径 a = int2str(x); b = ['s']; d = [b a]; for i=1:10, %得到每张图片的文件名 毕业设计(论文) 第 54 页 e = [d dir(i,1:7)]; % 将图片转化成为灰度矩阵 M = double(imread(e)); %如果用户输入的是8,则执行下段代码,把数据处理得到8维的特征向量 if (featureNumber == 8) for j=1:4, for k=1:2, %将图片的灰度矩阵划分成8块小矩阵 temp=M((j-1)*28+1:j*28,(k-1)*46+1:k*46); %得到对每个小矩阵的长和宽 sizeofpic=size(temp); %小矩阵的行数 row=sizeofpic(1); %小矩阵的列数 column=sizeofpic(2); %将子图中的灰度值放到一个一维的数组中 for p=1:row; for q=1:column temp2((p-1)*row+q)=temp(p,q); end end %计算每个子图的变异系数 temp3=std(temp2)/mean(temp2); %提取特征值 feature((x-1)*10+i,(j-1)*2+k)=temp3; end end end %如果用户输入的是16,则执行下段代码,把数据处理得到16维的特征向量 if (featureNumber == 16) for j=1:4, for k=1:4, %将图片的灰度矩阵划分成16块小矩阵 毕业设计(论文) 第 55 页 temp=M((j-1)*28+1:j*28,(k-1)*23+1:k*23); %得到对每个小矩阵的长和宽 sizeofpic=size(temp); %小矩阵的行数 row=sizeofpic(1); %小矩阵的列数 column=sizeofpic(2); %将子图中的灰度值放到一个一维的数组中 for p=1:row; for q=1:column temp2((p-1)*row+q)=temp(p,q); end end %计算每个子图的变异系数 temp3=std(temp2)/mean(temp2); %提取特征值 feature((x-1)*10+i,(j-1)*4+k)=temp3; end end end %如果用户输入的是24,则执行下段代码,把数据处理得到16维的特征向量 if (featureNumber == 24) for j=1:6, for k=1:4, %将图片的灰度矩阵划分成24块小矩阵 temp=M((j-1)*18+1:j*18,(k-1)*23+1:k*23); %得到对每个小矩阵的长和宽 sizeofpic=size(temp); %小矩阵的行数 row=sizeofpic(1); %小矩阵的列数 column=sizeofpic(2); 毕业设计(论文) 第 56 页 %将子图中的灰度值放到一个一维的数组中 for p=1:row; for q=1:column temp2((p-1)*row+q)=temp(p,q); end end %计算每个子图的变异系数 temp3=std(temp2)/mean(temp2); %提取特征值 feature((x-1)*10+i,(j-1)*4+k)=temp3; end end end %如果用户输入的是32,则执行下段代码,把数据处理得到32维的特征向量 if (featureNumber == 32) for j=1:8, for k=1:4, %将图片的灰度矩阵划分成32块小矩阵 temp=M((j-1)*14+1:j*14,(k-1)*23+1:k*23); %得到对每个小矩阵的长和宽 sizeofpic=size(temp); %小矩阵的行数 row=sizeofpic(1); %小矩阵的列数 column=sizeofpic(2); %将子图中的灰度值放到一个一维的数组中 for p=1:row; for q=1:column temp2((p-1)*row+q)=temp(p,q); end end 毕业设计(论文) 第 57 页 %计算每个子图的变异系数 temp3=std(temp2)/mean(temp2); %提取特征值 feature((x-1)*10+i,(j-1)*4+k)=temp3; end end end %如果用户输入的是48,则执行下段代码,把数据处理得到48维的特征向量 if (featureNumber == 48) for j=1:8, for k=1:6, %将图片的灰度矩阵划分成48块小矩阵 temp=M((j-1)*14+1:j*14,(k-1)*15+1:k*15); %得到对每个小矩阵的长和宽 sizeofpic=size(temp); %小矩阵的行数 row=sizeofpic(1); %小矩阵的列数 column=sizeofpic(2); %将子图中的灰度值放到一个一维的数组中 for p=1:row; for q=1:column temp2((p-1)*row+q)=temp(p,q); end end %计算每个子图的变异系数 temp3=std(temp2)/mean(temp2); %提取特征值 feature((x-1)*10+i,(j-1)*6+k)=temp3; end end end %如果用户输入的是64,则执行下段代码,把数据处理得到64维的特征向量 毕业设计(论文) 第 58 页 if (featureNumber == 64) for j=1:8, for k=1:8, %将图片的灰度矩阵划分成64块小矩阵 temp=M((j-1)*14+1:j*14,(k-1)*11+1:k*11); %得到对每个小矩阵的长和宽 sizeofpic=size(temp); %小矩阵的行数 row=sizeofpic(1); %小矩阵的列数 column=sizeofpic(2); %将子图中的灰度值放到一个一维的数组中 for p=1:row; for q=1:column temp2((p-1)*row+q)=temp(p,q); end end %计算每个子图的变异系数 temp3=std(temp2)/mean(temp2); %提取特征值 feature((x-1)*10+i,(j-1)*8+k)=temp3; end end end %如果用户输入的是80,则执行下段代码,把数据处理得到80维的特征向量 if (featureNumber == 80) for j=1:10, for k=1:8, %将图片的灰度矩阵划分成80块小矩阵 temp=M((j-1)*11+1:j*11,(k-1)*11+1:k*11); %得到对每个小矩阵的长和宽 sizeofpic=size(temp); %小矩阵的行数 毕业设计(论文) 第 59 页 row=sizeofpic(1); %小矩阵的列数 column=sizeofpic(2); %将子图中的灰度值放到一个一维的数组中 for p=1:row; for q=1:column temp2((p-1)*row+q)=temp(p,q); end end %计算每个子图的变异系数 temp3=std(temp2)/mean(temp2); %提取特征值 feature((x-1)*10+i,(j-1)*8+k)=temp3; end end end end end %输出提示信息,说明图片处理完毕 fprintf('图片装载完毕!\n\n'); 3.基于变异系数的人脸特征提取算法_去除平滑区子图 %读入人脸图片,并将其转换成为灰度矩阵,然后将灰度矩阵进行切割,再计算变异系数,并提取图片特征 %返回参数 %feature为指向装载后的数据文件的变量 %num的值为特征值向量的第几维 %函数声明 function [feature] = allFeature() 毕业设计(论文) 第 60 页 %用户输入特征维数数目 panDuan = 1; while panDuan featureNumber = input('请输入特征维数(仅限于8, 16,24, 32,48,64,80):'); %如果输入的是8.16.24.32.48.64.80,则继续执行代码 if(featureNumber == 8||featureNumber == 16 || featureNumber == 24|| featureNumber == 32 || featureNumber == 48 || featureNumber == 64 || featureNumber == 80 ) panDuan = 0; disp('开始装载图像文件,请等待.......') %如果输入的是其它数字,提示输入有误,请用户重新输入 else fprintf('你输入的不是这5个数中的任何一个,请重新输入!\n\n') end end %得出图片的路径,并自动读入每张图片 dir = ['\1.bmp ' '\2.bmp ' '\3.bmp ' '\4.bmp ' '\5.bmp ' '\6.bmp ' '\7.bmp ' '\8.bmp ' '\9.bmp ' '\10.bmp']; for x=1:40, %将数字转换成字符,便于把两个字符连接,组成图片的完整路径 a = int2str(x); b = ['s']; d = [b a]; for i=1:10, %得到每张图片的文件名 e = [d dir(i,1:7)]; % 将图片转化成为灰度矩阵 毕业设计(论文) 第 61 页 M = double(imread(e)); %如果用户输入的是8,则执行下段代码,把数据处理得到8维的特征向量 if (featureNumber == 8) for j=1:4, for k=1:2, %将图片的灰度矩阵划分成8块小矩阵 temp=M((j-1)*28+1:j*28,(k-1)*46+1:k*46); %得到对每个小矩阵的长和宽 sizeofpic=size(temp); %小矩阵的行数 row=sizeofpic(1); %小矩阵的列数 column=sizeofpic(2); %将子图中的灰度值放到一个一维的数组中 for p=1:row; for q=1:column temp2((p-1)*row+q)=temp(p,q); end end %计算每个子图的变异系数 temp3=std(temp2)/mean(temp2); temp4((j-1)*2+k)=temp3; end end %%%%%%%%去除平滑区子图%%%%%%%%%%% %平滑区子图阀值 value=0.04; %用0代替小于阀值的变异系数 for m=1:featureNumber if(temp4(m) * TD, complex * FD, int r); VOID WINAPI DCT(double *f, double *F, int r); 离散余弦函数 double WINAPI DIBDct(LPSTR lpDIBBits, LONG lWidth, LONG lHeight); 基于离散余弦的特征提取 BP.h // 神经网络函数库
/
本文档为【基于子图分割的人脸特征提取算法性能比较研究论文】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索