已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本本科科毕毕业业论论文文(设设计计) 题目:题目: 基于基于 OpenCVOpenCV 的视频人脸识别系统的设计与实现的视频人脸识别系统的设计与实现 学生姓名学生姓名 李智良李智良 学学 号号 2010118116 指导教师指导教师 李李 康康 院院 系系 软件学院软件学院 专专 业业 软件工程软件工程 年年 级级 2010 级级 教务处制教务处制 二零一四年六月二零一四年六月 成绩成绩 西北大学本科毕业论文 诚信声明 本人郑重声明:本人所呈交的毕业论文(设计) ,是在导师的 指导下独立进行研究所取得的成果。毕业论文(设计)中凡引用他 人已经发表或未发表的成果、数据、观点等,均已明确注明出处。 除文中已经注明引用的内容外,不包含任何其他个人或集体已经发 表或在网上发表的论文。 论文作者签名: 日 期: 年 月 日 基于 OpenCV 的视频人脸识别系统的设计与实现 1 摘 要 基于生物特征识别的身份认证方法和系统研究一直以来都是计算机图形学 和模式识别领域研究的热点,其中,由于人脸的稳定性和可见性,针对人脸识 别的算法研究和系统应用最为广泛,本文针对校园内实验室和宿舍安全管理需 求,设计和实现了一套针对监控视频的基于 OpenCV 的人脸识别原型系统,开 发语言选用 C+,全文内容包括: (1)构建了基于 OpenCV 的视频人脸识别的技术框架。针对实验室和宿舍 安全管理需要,构建了基于 OpenCV 的视频人脸识别的技术框架,能够完成基 于视频的实时人脸识别和身份认定; (2)设计了基于 OpenCV 的视频人脸快速检测算法。人脸检测是人脸识别 的前提,本文采用基于 OpenCV 的快速人脸检测算法实现视频图像中人脸的快 速定位和提取; (3)设计了基于 AdaBoost 算法的视频人脸识别方法。应用 AdaBoost 算法 实现了针对视频流的快速人脸定位和身份识别,能够实现实时身份认定。 系统基于.NET 平台设计,使用 C+语言进行实现,完成了基于视频的实时 人脸身份认定。 关键词关键词:人脸检测; OpenCV; 人脸识别; C+; 西北大学本科毕业论文 Abstract Based on the research of identity authentication method and system of biometric recognition has been a hot research field of computer graphics, pattern recognition and the stability and visibility, the face, the algorithm research and system applications of face recognition is the most widely, according to the laboratory and dormitory safety management needs of the campus, designed and implemented. A face recognition system based on OpenCV in surveillance video, development language is C+, the main content of this thesis includes: (1)Constructed the technical framework for video based face recognition based on OpenCV. According to the laboratory and the dormitory safety management needs, establishes a framework for video based face recognition based on OpenCV, which can complete real-time face recognition and identity based on video identification; (2)Design of a fast face detection algorithm in video based on OpenCV. Face detection is the precondition of face recognition, this paper uses OpenCV fast face detection algorithm to locate face in video image and extraction based on;The design use application of OpenCV to provide strong support, based on.NET platform design. (3)Design of video based face recognition method based on AdaBoost algorithm. Application of AdaBoost algorithm for fast face location and recognition of video stream, which can realize real-time identification. System based on.NET platform design, implementation is carried out using C+ language, completed the real-time face identity recognition based on video Key word:Face detection; OpenCV; Face recognition; C+; 基于 OpenCV 的视频人脸识别系统的设计与实现 3 目 录 摘 要1 Abstract.2 目 录3 1. 序言.4 1.1.人脸识别的背景介绍.4 1.2.人脸识别国内外发展状况4 1.3.人脸识别研究的意义.6 1.4.人脸识别的技术应用.6 1.5.主要章节内容和章节结构 7 1.6.本章小结7 2. 人脸识别系统的技术框架和功能模块.8 2.1.OpenCV 简介8 2.2.人脸识别的功能模块.8 2.3.人脸识别的技术框架.9 2.4.本章小结11 3. 人脸识别的方法.11 3.1.人脸识别算法原理.11 3.2.常用人脸识别方法.12 3.3.基于神经网络的人脸识别方法12 3.4.本章小结14 4. 人脸检测核心算法.14 4.1.人脸检测算法在人脸识别中的作用.14 4.2.人脸检测算法15 4.3.AdaBoost 算法.15 4.4.本章小结18 5. 原型系统实现19 西北大学本科毕业论文 5.1.系统模块划分19 5.2.模块实现19 4.2.1.系统运行流程图.19 4.2.2.系统的功能界面.20 4.2.3 实验结果及分析. .21 5.3.本章小结22 总结与展望.24 参考文献.25 基于 OpenCV 的视频人脸识别系统的设计与实现 5 1.序言 1.1.人脸识别的背景介绍 近几年来,已开发应用了声音识别、签字识别、指纹识别、掌形识别、眼 虹膜识别等人体生物特征识别技术,与上述识别技术相比较,而最近开发的人 脸识别技术则具有简便、准确、经济及可扩展性良好等众多优势,因此可广泛 应用于出入口控制、安全验证、安防监控与搜寻罪犯等有关方面。人体生物特 征识别技术是依靠人体的生物特征来进行人的身份验证的一种高科技识别技术。 而人脸识别技术具有比其他生物特征识别技术更直观、简便、准确、可靠及可 扩展性良好等众多优势,因而应用广泛。随着安全入口控制和金融贸易方面应 用需要的快速增长,生物统计识别技术得到了新的重视。目前,微电子和视觉 系统方面取得的新进展,使该领域中高性能自动识别技术的实现代价降低到了 可以接受的程度。而人脸识别是所有的生物识别方法中应用最广泛的技术之一 1,人脸识别技术是一项近年来兴起的,但不大为人所知的新技术。人们更多 的是在电影中看到这种技术的神奇应用:警察将偷拍到的嫌疑犯的脸部照片, 输入到电脑中,与警方数据库中的资料进行比对,并找出该嫌犯的详细资料和 犯罪记录。这并非虚构的情节。在国外,人脸识别技术早已被大量使用在国家 重要部门以及军警等安防部门。在国内,对于人脸识别技术的研究始于上世纪 90 年代,目前主要应用在公安、金融、网络安全、物业管理以及考勤等领域。 1.2.人脸识别国内外发展状况 人脸识别技术从应用层面上主要可分为:人脸检测、人脸识别查询、人脸 识别身份认证,目前,我国从事人脸识别技术研究的单位有很多,使得生物特 征识别技术形成缩小了与国外的差距2。2008 年,以清华大学和中科院自动化 研究所为代表的北京奥运会实名制票证系统的实施将生物特征识别技术又推到 了一个新的水平,为我国生物识别技术在安防领域的应用打下了坚实的基础。 人脸识别检测研究,主要包括人脸检测技术和人脸识别技术的研究3。 西北大学本科毕业论文 人脸识别检测是指对于任意一幅给定的图像,采用一定的策略对其进行搜索以 确定其中是否含有人脸,如果是,则返回人脸的位置、大小和姿态,接着对人 脸进行识别。它是一个复杂的具有挑战性的模式检测问题。同时,人脸检测要 走向实际应用,精度和速度是亟需解决的两个关健问题4,自 20 世纪 90 年代 以来,人脸检测的精度得到了大幅度的提高,但是速度却一直达不到应用系统 用户满意的程度,为此研究者们付出艰辛的努力,直到 21 世纪 Viola 基于 AdaBoost 算法的人脸检测器的发表8,人脸检测的速度才得到了实质性的提高, 该算法的发表也促进了人脸检测研究的进一步蓬勃发展。按照人脸识别的自动 化程度,人脸识别的发展经历了以下三个阶段: 第一阶段是机械式识别阶段:早期的人脸识别,是在已经得到一个正面 人脸图像的基础上进行的,以 Bertillon、Allen、Parke 为代表,主要研究人 脸识别所需要的面部特征10。在 Ber-tillon 的系统中,用一个简单的语句与 数据库中的某一张脸相联系,同时与指纹分析相结合,提供了一个较强的识别 系统。为了提高脸部识别率,Allen 为待识别脸设计了一种有效且逼真的摹写。 Parke 则用计算机实现了这一想法,并产生了较高质量的人脸灰度图模型。但 是,这一阶段的人脸识别过程全部依赖于操作人员,没有实现系统的自动识别 功能。 第二阶段是人机交互式识别阶段:这一阶段所采用的主要技术方案是基于 人脸几何结构特征(Geometric feature based)的研究方法,此方法的思想 是首先检测出眼、鼻、嘴等脸部主要部件的位置和大小,然后利用这些部件的 总体几何分布关系以及相互之间的参数比例来识别人脸,忽略了局部细微特征, 更适合于粗分类。代表性工作有 Goldstion、Harmon 和 Lesk 等人用几何特征 参数来表示人脸正面图像。他们采用 21 维特征矢量表示人脸面部特征,并设 计了基于这一特征表示法的识别系统。Kaya 和 Kobayashi 则采用了统计识别的 方法11,用欧氏距离来表示人脸特征如嘴唇与鼻子之间的距离,嘴唇的高度 等。更进一步地,TKanad 设计了一个高速且有一定知识导引的半自动回溯识 别系统,创造性地运用积分投影法从单幅图像上计算出一组脸部特征参数,再 利用模式分类技术与标准人脸相匹配。Kanad 的系统实现了快速、实时的处理, 促进了人脸识别系统走向实际应用领域。不足的是,此类方法仍需要利用操作 基于 OpenCV 的视频人脸识别系统的设计与实现 7 员的某些先验知识,仍然摆脱不了人的干预。 第三阶段是真正的机器自动识别阶段:20 世纪 90 年代以来,人脸识别技 术发展非常迅速,所提出的算法在较理想图像采集条件、用户配合、中小规模 正面人脸数据库上达到了非常好的性能,也因此出现了若干知名的人脸识别商 业公司,人脸识别的商业系统得到了进一步发展。从技术角度上看,2D 人脸图 像线性子空间判别分析、统计表观模型、统计模式识别方法是这一阶段内的主 流技术。但是,主流的人脸识别技术在非约束环境下(多姿态、遮挡等多种变 化因素),识别率下降非常快,不能满足实际应用。总体而言,目前建立一个 鲁棒的人脸识别系统仍然是一个很困难的问题。非理想成像条件下(尤其是光 照和姿态) 、用户不配合、大规模人脸数据库上的人脸识别问题逐渐成为研究 的热点问题。 1.3. 人脸识别研究的意义 人脸识别是机器视觉和模式识别领域最富有挑战性的课题之一,同时也具 有较为广泛的应用意义。人脸识别技术是一个非常活跃的研究领域,它覆盖了 数字图像处理、模式识别、计算机视觉、神经网络、心理学、生理学、数学等 诸多学科的内容。如今,虽然在这方面的研究已取得了一些可喜的成果,但是 FRT 在实际应用中仍面临着很严峻的问题,因为人脸五官的分布是非常相似的, 而且人脸本身又是一个柔性物体,表情、姿态或发型、化妆的千变万化都给正 确识别带来了相当大的麻烦。如何能正确识别大量的人脸并满足实时性要求是 迫切需要解决的问题。 1.4.人脸识别的技术应用 随着技术的进一步成熟和社会认同度的提高,人脸识别技术将应用在更多 的领域。 1.电子护照及身份证。这或许是未来规模最大的应用,国际民航组织 (ICAO)已确定,从 2010 年起,其 118 个成员国家和地区,必须使用机读护照, 人脸识别技术是首推识别模式6,该规定已经成为国际标准。中国的电子护照 计划公安部一所正在加紧规划和实施。 西北大学本科毕业论文 2.公安、司法和刑侦。如利用人脸识别系统和网络,在全国范围内搜捕逃 犯。 3.自助服务。如银行的自动提款机,如果用户卡片和密码被盗,就会被他 人冒取现金。如果同时应用人脸识别就会避免这种情况的发生。 4.信息安全。如计算机登录、电子政务和电子商务。在电子商务中交易全 部在网上完成,电子政务中的很多审批流程也都搬到了网上。而当前,交易或 者审批的授权都是靠密码来实现,如果密码被盗,就无法保证安全。但是使用 生物特征,就可以做到当事人在网上的数字身份和真实身份统一,从而大大增 加电子商务和电子政务系统的可靠性7。 新增加的技术简而言之,首先是人脸检测并提取出特征表达,随后再据此 进行数据库对比,最后按照相似度排序返回结果。其实,人脸检测并不是新技 术,相关研究已有三十年历史,然而直到去年底,百度才决定推动这一技术付 诸实施。全球 60 亿人口,人脸相关技术应用前景不可限量! 1.5.主要章节内容和章节结构 全文共分为五章,其具体内容如下: 第一章:序言。主要介绍人脸识别的背景、国内外发展状况、研究的意义 和应用前景。 第二章:概述人脸识别的技术框架和功能模块。 第三章:概述了人脸识别相关算法,介绍了本文基于 OpenCV 的视频人脸识 别算法的设计。 第四章:概述了人脸检测相关算法,介绍了本文基于 AdaBoost 算法的人脸 检测算法。 第五章:人脸识别系统原型的设计实现。介绍了本文设计的基于 OpenCV 的 人脸识别原型系统的实现 1.6.本章小结 本章概括性的介绍了人脸表情识别的背景、发展现状、应用需求。人脸识 别在身份认证、信息安全、媒体娱乐、图像搜索方面的重要应用。人脸检测是 基于 OpenCV 的视频人脸识别系统的设计与实现 9 人脸信息处理领域中的一个重要课题,具有很高的学术价值和应用潜力;同时 人脸检测又是一个极具挑战性的问题。本文研究其中最具普遍性,也是最困难 的复杂背景下静止灰度图像中的人脸检测、以及在得到人脸区域后进行识别的 问题。 2. 人脸识别系统的技术框架和功能模块 OpenCV 简介 OpenCV 的全称是(Open Source Computer Vision Library ),OpenCV 于 1999 年由 Intel 建立,如今由 Willow Garage 提供支持。OpenCV 是一个基于 (开源)发行的跨平台计算机视觉库,可以运行在 Linux、Windows 和 Mac OS 操作系统上。它轻量级而且高效由一系列 C 函数和少量 C+ 类构成,同时提 供了 Python、Ruby、MATLAB 等语言的接口,实现了图像处理和计算机视觉方 面的很多通用算法,它不依赖于其它的外部库,但可以使用某些外部库。 OpenCV 为 Intel Integrated Performance Primitives (IPP) 提供了透明接 口。这意味着如果有为特定处理器优化的的 IPP 库,OpenCV 将在运行时自动 加载这些库。OpenCV 有几个显著的特点: 1.免费、开源 2.速度快、代码优化 3.方便灵活的用户接口 4.跨平台:windows Linux Mas OS 5.强大的图像和矩阵运算功能 6.统一的结构和功能定义 本次设计所用的开发工具是 Microsoft Visual C+ 6.0。Visual C+ 6.0 是 Microsoft 公司推出的一种可视化编程工具。它支持多平台和交叉平台的开 发,将各种编程工具如编辑器、连接器、调试器等巧妙的结合在一起,构成一 个完美的可视化开发环境。用户无需通过繁杂的编程操作,即可完成 Windows 下应用程序的编辑、编译、测试和细化等工作。 西北大学本科毕业论文 2.2.人脸识别的功能模块 人脸捕获与跟踪功能: 人脸捕获是指在一幅图像或视频流的一帧中检测出人像并将人像从背景中 分离出来,并自动地将其保存。人像跟踪是指利用人像捕获技术,当指定的人 像在摄像头拍摄的范围内移动时自动地对其进行跟踪。 人脸识别比对功能: 人脸识别分核实式和搜索式二种比对模式。核实式是对指将捕获得到的人 像或是指定的人像与数据库中已登记的某一对像作比对核实确定其是否为同一 人。搜索式的比对是指,从数据库中已登记的所有人像中搜索查找是否有指定 的人像存在。 人脸的建模与检索: 可以将登记入库的人像数据进行建模提取人脸的特征,并将其生成人脸模 板(人脸特征文件)保存到数据库中9。在进行人脸搜索时(搜索式) ,将指 定的人像进行建模,再将其与数据库中的所有人的模板相比对识别,最终将根 据所比对的相似值列出最相似的人员列表。 真人鉴别功能: 系统可以识别得出摄像头前的人是一个真正的人还是一幅照片。以此杜绝 使用者用照片作假。此项技术需要使用者作脸部表情的配合动作。 图像质量检测: 图像质量的好坏直接影响到识别的效果,图像质量的检测功能能对即将进 行比对的照片进行图像质量评估,并给出相应的建议值来辅助识别。 2.3.人脸识别的技术框架 本文的人脸识别系统的功能有人脸图像采集、人脸图像预处理、人脸图像 训练、人脸图像识别、增加人脸图像、删除人脸图像和修改人脸图像信心等。 按照人脸识别的功能,本文的人脸识别系统框架可以用图 2.1 来表示。 基于 OpenCV 的视频人脸识别系统的设计与实现 11 图 2.1 人脸识别系统框架 1.采集人脸图像。使用摄像机对进入重要场所的合法人员进行人脸图像的 采集,采集图像时保持拍摄环境的一致性,同时拍摄的图像要保持人脸信息的 完成性。 2.预处理人脸图像。对采集到的人脸图像进行统一的处理,将其处理为大 小统一,存储格式一致的灰度图像。 3.训练人脸图像。对预处理的人脸图像进行人脸特征的提取,通过多次的 人脸特征的选择,最终用选中的人脸特征作为识别时的依据。 4.识别人脸图像。识别阶段的前期处理和训练阶段是一样的,也需要首先 采集需要识别的人脸图像,通过相同的预处理和人脸特征选择方法,提取和选 择人脸的特征,然后将这些特征和数据库中已经存在的人脸特征进行对比匹配, 然后输出确定该人员是否是合法的人员。 5.增加、删除、修改人脸图像。即对数据库中的人脸图像进行增加、删除、 和修改等操作。 人脸识别系统训练完成后,对人脸识别时的基本过程如图 2.2 所示。 图 2.2 人脸识别基本过程 人脸识别系统在对人脸图像进行识别之前必须首先对需要进行识别的合法 人员的人脸图像进行训练,训练后的系统才可以用来完成识别的功能。其中识 登录 身份验证 退出 采集人脸图像 预处理人脸图像 添加人脸图像 修改人脸图像 删除人脸图像 识别人脸图像 训练人脸图像 采集人 脸图像 人脸图像 匹配识别 人脸图像 特征提取 人脸图像 预处理 西北大学本科毕业论文 别时训练过的人员的人脸图像是系统默认合法的人员,因此可以以此来限制进 入重要场所的人员。在实际的应用过程中,人脸识别系统的应用框架如图 2.3 所示。 图 2.3 应用技术框架图 人脸识别不管是训练阶段还是识别阶段都首先需要采集人脸图像,然后对 人脸图像进行预处理、特征提取、然后再进行训练和识别,最后形成训练结果 或识别结果,其中训练阶段和识别阶段使用的数据不同。 2.4.本章小结 本章介绍了人脸识别系统的技术框架和功能模块,人脸检测具有简单、方 便、成本低、识别速度快等优点。人脸识别包括三个方面的内容:人脸检测、 人脸对比和人脸跟踪。其识别过程分为三步:首先建立人脸的面像档案,其次 获取当前的人体面像,最后用当前的面纹编码与档案库存的比对。 输入训练集人脸 图像 图像预处理 神经网络训练 特征提取 特征提取 输入检测集人脸 图像 图像预处理 决策输出 神经网络分类器 基于 OpenCV 的视频人脸识别系统的设计与实现 13 3. 人脸识别的方法 人脸识别算法原理 人脸识别算法的原理:系统输入一般是一张或者一系列含有未确定身份的 人脸图像,以及人脸数据库中的若干已知身份的人脸图象或者相应的编码,而 其输出则是一系列相似度得分,表明待识别的人脸的身份。 3.2.常用人脸识别方法 人脸识别包括两个方面:一是人脸检测和定位,二是人脸识别。人脸识别 系统包括图像摄取、人脸定位、图像预处理、以及人脸识别。人脸识别的方法 有很多。一是基于特征点的人脸识别方法,该方法是基于 K-L 变换的人脸识别 方法,这种方法需要较多的训练样本,而且完全是基于图像灰度的统计特性。 二是弹性图匹配的人脸识别方法,这种方法在二维的空间中定义了一种对于通 常的人脸变形具有一定的不变性的距离,并采用属性拓扑图来代表人脸,拓扑 图的任意顶点均包含一特征向量,用来记录人脸在顶点位置附近的信息。三是 基于神经网络的人脸识别方法,该方法模拟人类大脑神经网络的结构和工作机 理,构建一种类似人脑的计算模型。本文主要用基于神经网络的方法进行人脸 识别,下一节将详细介绍这一方法。其次还有线段 Hausdor 距离(LHD)的人 脸识别方法和支持向量机的人脸识别方法。 3.3.基于神经网络的人脸识别方法 人工神经网络是通过模拟人类大脑神经网络的结构和工作机理,构建一种 类似人脑的计算模型。人工神经网络的识别方法在人脸识别中的应用有很长的 历史,它有其特殊的适合于人脸识别的优势。它不像其他的方法那样要用一套 由人来确定的规则,同时也避免了复杂的特征提取工作,他能根据有代表性的 样本进行学习。神经网络以并行方式处理信息,如果能用硬件实现,就能显著 提高速度。神经网络在人脸识别、性别识别中都有广泛的应用。 人工神经网络进行人脸识别主要有两种结构。第一,为所有已知人脸建立 一个神经网络:可对所有已知人脸进行分类和识别。这种结构要求用所有人脸 西北大学本科毕业论文 的特征对网络进行训练,训练好的网络连接权值是所有人脸特征的隐含表示, 这种形式只需一个神经网络,但网络规模很大,权系数要求较多,存储量要求 也较大,训练时间较长。由于系统每增加一个人,都要对网络经行重新训练, 因此这种系统性能不佳。第二,对每一个人建立一种神经网络:这种神经网络 的目的是区分每一对人,因此只需对着一对人进行训练,网络的权系数隐含区 分这一对人脸的个性特征,固网络的规模小,权系数少,存储量和训练时间也 少。同时,对每一对人的训练只需这一对人的特征,与其他人无关,固系统具 有良好的模块化结构,可扩展性能好。本节介绍基于多层感知器神经网络的人 脸识别方法。 多层感知器是一个多层前馈神经网络,由输入层、一个或多个隐层以及一 个输出层组成,其学习算法采用 BP 算法。多层感知器在训练的过程中,第一 层权值决定了超平面在空间的取向,网络的不断训练,标志着由超平面所形成 的超空间在不断的变化。在隐层数足够多的情况下,由超平面所形成的线性区 域将无穷多,其第一隐层可以在模式空间实现各种超平面分割;第二隐层实现 第一隐层的逻辑“与”运算,即将其分割的模式超平面空间按类别进行空间划 分;而输出层由第二隐层的输出值进行逻辑“或”运算,即将进行逻辑“与” 运算的属于同一类的超平面进行归类。 BP 神经网络分三层,即输入层、隐层、输出层。记输入层神经元数为 I, 隐含层神经元数为 H,输出层神经元数为 J。对于人脸识别数为 P 的人脸识别 问题来说,网络输出层的神经元数 J 就取为人脸类别数 P,对于任意一个人脸 测试图像,可根据网络输出层输出矢量的最大分量分类。人脸图像矢量的维数 N 通常比较大,而训练样本数 K 通常比较小,所以设计用于人脸识别的 BP 神经 网络分类器比较困难。为了实现具有推广能力强的 BP 分类器,可以从特征压 缩着手,压缩输入矢量的维数,并适当的选择隐层的神经元数。为了加快网络 训练的收敛速度,可对输入矢量做标准化处理,并给个连接权适当的赋予初值。 网络的隐层可以认为是输入层和隐层之间的连接权值的“自组织化”对输 入模式进行特征抽取,并将抽取出的特征传递给输出层,关于隐层的神经元数 H 的选取尚无理论上的指导。一般地,隐层的神经元数 H 大,网络的冗余性大, 基于 OpenCV 的视频人脸识别系统的设计与实现 15 增加了网络一次训练的训练时间,尽管使网络收敛的训练次数会减少,但会降 低分类器的推广能力。为了保证分类器的稳定性,显然网络未知连接权值的个 数不宜超过训练样本值的个数,所以隐层的神经元数 H 应该满足一下要求: (I+1)H+(H+1)KI 人脸识别网络输出层的神经元数 J 取为人脸类别数 P,而通过特征压缩网络 输入层的神经元数 I 也是取为人脸类别数 P,这样可按下式选取隐层的神经元 数 H。 HK/2 即网络隐层的神经元数是取为训练样本数的一半。由于 BP 常采用的 Sigmoid 激励函数的曲线两端平坦,中间部分变化剧烈,为了提高网络的收敛 速度对网络输入矢量的每个分量化为均值为 0,方差为 1 的标准形式。一般认 为连接权值初值可在区间-0.5,0.5内随机选取。对人脸校准图像用类间相 关矩阵作为 K-L 变换的产生矩阵,可抽取出 P 维的识别特征,将 P 维的识别特 征矢量做为网络的输入矢量,每训练一个样本,修正一次连接权值。训练好网 络后,就可用它对新输入的人脸进行识别。 3.4.本章小结 本章主要介绍了人脸识别的一些方法以及人脸识别和生物特征识别的区别, 主要的人脸识别方法有:几何特征的人脸识别、基于特征脸的人脸识别方法、 神经网络的的人脸识别、弹性匹配的人脸识别方法、线段 Hausdor 距离 (LHD)的人脸识别方法和支持向量机的人脸识别方法。本文主要用基于神经 网络的人脸识别方法进行人脸识别。 4. 人脸检测核心算法 人脸检测算法在人脸识别中的作用 人脸检测是人脸识别中的一项关键技术,人脸检测是指判定任意给定一幅 图像或者一组图像序列中是否存在人脸。如果存在,则返回其位置和各个人脸 所占的区域。在输入图像中确定所有的人脸存在的位置,大小,位姿的过程。 西北大学本科毕业论文 是自动人脸识别系统的一个关键环节。 人脸检测最初是随着人脸识别的研究而提出的,但随着计算机视觉技术的发 展,人脸检测受到越来越高的重视而作为一个独立的课题提出。人脸检测长期 以来受检测的精度和检测的速度困扰,直到上世纪 90 年代,由 Viola 提出的基 于 AdaBoost 算法极大地提高了人脸检测地速度的和精度, 使人脸检测技术真 正走向实用。人脸识别技术是基于人的脸部特征,对输入的人脸图象或者视频 流进行检测 ,首先判断其是否存在人脸 , 如果存在人脸,则进一步的给出每 个脸的位置、大小和各个主要面部器官的位置信息。并依据这些信息,进一步 提取每个人脸中所蕴涵的身份特征,并将其与已知的人脸进行对比,从而识别 每个人脸的身份。 4.2.人脸检测算法 人脸检测的算法有很多。一是基于模版匹配的算法,其核心思想是利用人 的脸部特征规律建立一个立体可调的模型框架,在定位出人的脸部位置后用模 型框架定位和调整人的脸部特征定位,解决人脸识别过程中的观察角度、遮挡 和表情变化等影响因素。二是主成份分析,它具有描述性强、计算代价小、易 实现等特点。三是主成份分析法,该方法随着样本的增加需要不断的舍弃一些 PC 以维持子空间维数不变,因而该方法精度稍差。四是 AdaBoost 算法, 该算法是目前检测最为成功的算法之一,检测速度快。下一节将详细介绍这一 算法。 4.3.AdaBoost 算法 Paul Viola 和 Michael Jones 于 2001 年将 AdaBoost 算法应用于人脸检测 中,其基本思想是针对不同的训练集训练同一个分类器(弱分类器) ,然后把这 些不同训练集上的得到的分类器联合起来,构成一个最终的强分类器。 AdaBoost 算法中不同的训练集是通过调整每个样本对应的权重来实现的。开 始时,每个样本对应的权重是相同的,对于 h1 分类错误的样本,加大其对应 的权重; 而对于分类正确的样本, 降低其权重, 这样分错的样本就被突出 出来,从而得到一个新的样本分布 U2 。在新的样本分布下,再次对弱分类器 基于 OpenCV 的视频人脸识别系统的设计与实现 17 进行训练,得到弱分类器 h2 。依次类推,经过 T 次循环,得到 T 个弱分类 器,把这 T 个弱分类器按一定的权重叠加(boost)起来,得到最终想要的强 分类器。 每个 Haar 特征对应看一个弱分类器,但并不是任何一个 Haar 特征都能较 好的描述人脸灰度分布的某一特点,如何从大量的 Haar 特征中挑选出最优的 Haar 特征并制作成分类器用于人脸检测,这是 AdaBoost 算法训练过程所要解 决的关键问题。 训练系统总体框架,由“ 训练部分”和 “ 补充部分”构成。依据系统框 架,如图 4.1,本文的训练系统可分为以下几个模块: (1)以样本集为输入,在给定的矩形特征原型下,计算并获得矩形特征集; (2)以特征集为输入,根据给定的弱学习算法,确定闽值,将特征与弱分类 器一一对应,获得弱分类器集; (3)以弱分类器集为输入, 在训练检出率和误判率限制下, 使用 AdaBoost 算法,挑选最优的弱分类器构成强分类器; (4)以强分类器集为输入,将其组合为级联分类器; (5)以非人脸图片集为输入,组合强分类器为临时的级联分类器,筛选并补 充非人脸样本。 西北大学本科毕业论文 图 4.1 训练系统框架 训练过程分为 3 个步骤:首先需要提取 Haar 特征;然后将 Haar 特征转化 成对应的弱分类器;最后从大量的弱分类器中迭代选择出最优弱分类器。 1.提取 haar 特征 确定阀值,由矩 形特征生成对应 的弱分类器 矩形特征原型 非人脸样本集 强分类器集 非人脸图片集 计算样本积分图 补充非人脸样本 若分类器集 挑选最优弱分类 器,调用 AdaBoost 算法训 练强分类器 特征集 人脸样本集 计算矩形特征值 训 练 部 分 补 充 部 分 基于 OpenCV 的视频人脸识别系统的设计与实现 19 图 4.2 常用的四中 haar 特征 常用的 Haar 特征有 4 种,如图 4.2 所示。当然也可以在这 4 种特征的基础 上设计出更多、更复杂的特征,上述 4 种特征的总个数超过了 160000 个。这 样庞大的数字给后续的迭代训练工作带来了庞大的计算量,直接导致 AdaBoost 算法训练过程极为费时,这恰恰是算法需要改进的关键问题之一。 2.生成弱分类器 每一个 Haar 特征都对应着一个弱分类器,每一个弱分类器都是根据它所对 应的 Haar 特征的参数来定义的。利用上述 Haar 特征的位置信息,对训练样本 进行统计就可以得到对应的特征参数。AdaBoost 算法中所训练的弱分类器是任 何分类器,包括决策树,神经网络,隐马尔科夫模型,如果弱分类器是线性神 经网络,那么 AdaBoost 算法每次将构造多层感知器的一个节点。 3.采用 AdaBoost 算法选取优化的弱分类器。AdaBoost 算法训练过程就是 挑选最优弱分类器,并赋予权重的过程。 4.4.本章小结 本章主要讲了人脸识别常见算法以及人脸识别算法的原理,有二维人脸识 别算法和三维人脸识别算法。二维人脸识别算法有基于模版匹配的方法、基于 奇异值特征方法、子空间分析法、主成分分析法(PCA) 、积分图像特征法 (AdaBoost) 。AdaBoost 算法应用于人脸检测中,其基本思想是针对不同的训练 集训练同一个分类器,然后把这些不同训练集上的得到的分类器联合起来,构 成一个最终的强分类器。 西北大学本科毕业论文 5. 原型系统实现 系统模块划分 该系统共分为六个功能模块: (1)图像获取模块。该模块主要是从摄像头捕捉到的或者用户设定的路径 获取图片,随后能够在用户的软件的界面当中显示出来。 (2)图像预处理模块。图像预处理就是对获取的图像进行适当的处理,使 得无用信息被剔除,有用信息被保存并增强效果。 (3)人脸区域获取。该模块主要是从获得的图像中检测发现是否有人脸的 存在并将人脸区域用绿色圆圈圈出来。 (4)人脸定位模块。人脸定位是将描述人脸特征的关键点(如两眼中点、 鼻尖、嘴角等等)标记出来。利用眼睛的对称性以及五官之间的相对关系可以 迅速的定位各器官。 (5)特征提取模块。再找到眼睛嘴巴的中心以及鼻尖位置之后,要计算出 两眼之间的距离以及眼睛的倾斜度。接着用矩形标出每一个特征。随后用特定 算法来标定特定值并存入后台数据库。 (6)识别模块。将后台数据库中的特定值与人脸数据库中的数据进行比对, 确定与该特征值最接近的参数,如果该参数在允许误差范围内就可以认为其与 人脸数据库中的某个信息相匹配。接着从人脸库中提取出该人的相关信息,并 显示出来。如果不在误差范围内,那么就认为是新的人脸,并会提示是否存入 新的人脸库。 5.2. 模块实现 系统运行流程图: 图 5.1 系统运行流程图 图图像像预预处处理理 检检测测有有无无人人脸脸 对对人人脸脸进进行行 定定位位 并并标标出出关关键键部部位位 启启动动系系统统进进入入人人 脸脸检检测测界界面面 点点击击摄摄像像键键拍拍照照 保保存存 特特征征提提取取 对对比比识识别别 退退出出 基于 OpenCV 的视频人脸识别系统的设计与实现 21 4.2.2. 系统的功能界面 (1)系统的主界面。系统的主界面主要有四个按钮组成。点击第一个就可 以人脸识别与检测的进程了。点击第二个进入人脸库管理界面,实现对人脸库 的添加删除等操作。第三个按钮和第四个按钮的功能分别是进行日志管理和退 出系统。如图 5.2 所示。 图 5.2 系统主界面 (2)人脸库界面。在人脸库管理界面,可以添加、删除、修改人员信息的 操作,也可以自动或者手动提取人脸特征,以及进行人脸训练。具体功能界面 如下 5.3 所示。 图 5.3 人脸库界面 西北大学本科毕业论文 (3)检测与标注界面。系统功能包括人脸检测、特征标注、特征提取、人 脸识别四个部分。启动系统后进入人脸检测界面,点击摄像键后进入如下 5.4 界面进行人脸区域检测、图像预处理、特征标注、特征提取等步骤。特征提取 与人脸识别在特征标注完成后进行的,而且是自动的无需手动。 图 5.4 检测与标注界面 在启动系统后可以手动载入指定图像,也可以由摄像头自动载入图像。首 先检测图片中是否有人脸存在(用到了 AdaBoost 算法) ,如果没有那么就提示 用户手动输入或者是否等待摄像头读入。接着对图像进行预处理(比如灰度化 等) ,然后将人脸大致范围用圆圈圈出来。最后就可以进行边缘提取和特征标 注了。 4.2.3. 实验结果及分析 本文采用 adaboost 算法来实现对人脸的检测,其重点在于对弱分
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 补给水处理课程设计
- 基于IoT的智慧养老监护系统技术教程课程设计
- 闭合框架课程设计
- 趣味换脸特效教程课程设计
- RFM模型客户分析报告课程设计
- 药品库存管理系统实战项目课程设计
- 2026年初级经济师《知识产权专业知识和实务》全真模拟试卷及参考答案(共十三套)
- 2026航空航天科普知识竞赛试题库及答案
- 2025年陕西省行政执法资格考试模拟卷及答案(题型)
- 2025年大学生心理健康教育测试题库(含标准答案)
- 2026秋季开明出版社五年级上册《魅力辽宁》教学工作计划
- AI搜索时代长文为什么没用:一份17.4万页面研究揭示的AEO真相
- 2026年辽宁省员额检察官遴选考试真题及答案
- 2026年淮北安徽相润投资控股集团有限公司公开社会招聘15名补充考试参考题库及答案详解
- 2026年秋大象版(新教材)小学科学四年级上册教学计划及进度表
- 专升本英语完形填空解题技巧
- 2026年秋季统计学专业开学第一课 专业素养与核心竞争力教学设计
- 高中数学必修一三角函数单元整体教学设计
- 中国ABS塑料行业深度调研及投资前景预测研究报告
- 中国钛合金废料行业市场发展趋势与前景展望战略研究报告
- 建筑施工消防应急演练方案
评论
0/150
提交评论