资源描述
毕业设计(论文)设计(论文)题目:基于普通输入设备的生物特征识别系统的设计与实现学 院 名 称 :学 生 姓 名 :专 业 :班 级 :学 号 :指 导 教 师 :答辩组 负责人 :填表时间: 年 6 月 摘 要当今信息化社会,计算机技术、传感器技术、电子信息技术等均在飞速发展,利用人体本身固有的生理特征或行为特征进行身份识别已经取得越来越多人的认可,最终已形成了一种新身份验证方式,即生物特征识别。与根据持有信物而完成的识别相比,生物特征识别具有其与生俱来的唯一性和安全性。生物特征识别技术包括固有生理特征识别和行为特征识别。目前,关于生物特征识别技术的大多数研究主要针对人的固有生理特征(如指纹,掌纹,人脸识别,虹膜识别等)进行的,而针对后天形成的行为特征识别的研究较少。本文主要介绍了一个针对用户后天行为特征(输入特征)而设计的生物识别系统。本文主要介绍了如何利用普通输入设备开发生物特征识别系统。系统实现过程中,主要参考K-均值聚类算法,使用C#语言及Winform窗体编程,同时以Microsoft SQL Server Management Studio2008作为数据存储解决方案,实现对生物特征的录入,存储,计算,删除,识别等功能,满足了用户的需求,达到了任务书的要求。本文分为五章:第一章主要介绍了生物特征识别技术的概念、发展历史和现状、研究目的和意义以及本论文要做的主要工作;第二章主要介绍了和生物特征识别系统开发相关的一些背景知识;第三章主要介绍了需求分析及系统设计;第四章主要为各模块功能实现、运行效果图及系统测试;第五章为总结与展望,总结了系统的实现过程,系统的不足,同时对该系统在未来的应用进行展望。【关键词】生物特征识别 输入特征 模式识别 K-均值算法ABSTRACTWith the development of computer technology, sensor technology, electronic information technology,using the intrinsic body physiological or behavioral characteristics of human for identities have gotten more and more peoples recognition, it has formed a new authentication methods, namely biometrics recognition. Compared with the way complete identification with the pledge , biometrics has its inherent uniqueness and security.Biometric identification technology includes the recognition of inherent physical characteristics and behavior characteristics.At present, most studies of biometric identification technology is aimed at peoples inherent physical characteristics (such as fingerprint, palm print, face recognition, iris recognition, etc.),however the study of acquired behavior characteristic recognition is less.This thesis mainly introduced a biometric system which is aimed at acquired behavior characteristic features (input features) .This thesis introduced the progress of developing a biometric system which is based on the common input devices.During the System implementation process,the thesis referred to K-means algorithm and used c# and Winform.Meanwhile,SQL Server 2008 was used as the solution of Data Storage.The system completed functions such as the input of biometric features,storage,calculation,deletion and recognition,which was meet the needs of users and achieved the requirements of the mission statement.The thesis was divided into five chapters.The first chapter introduced the concept, history and current situation,the purpose and significance of biometric identification technology.The second chapter mainly introduced the knowledge of biometric identification system development.The third chapter introduces the requirements analysis and system design;The fourth chapter describes how to complete the functions of each module, operation renderings and system testing;The fifth chapter summarized the implementation of the system, the lack of system, meanwhile this chapter prospected the future of Biometrics.【Key words】Biometric recognition Input features Pattern recognition K-means algorithm目 录第一章 前言1第一节 生物特征识别技术概述1一、生物特征识别技术简介1二、生物特征识别技术的发展历史和现状1第二节 生物特征识别系统的研究目的和意义2第三节 本论文主要研究工作4第二章 生物特征识别系统开发相关技术5第一节 技术知识背景介绍5一、生物特征识别技术5二、Winform简介7三、Microsoft SQL Server 2008简介8四、 模式识别及K-means算法简介8第三章 系统的需求分析及设计11第一节 系统的需求分析11一、系统功能的需求分析11二、系统功能的运行需求13第二节 系统数据库的分析与设计13一、系统数据库分析13二、系统数据库设计13第三节 系统功能模块设计14一、特征采集模块功能设计14二、数据归一化处理模块功能设计15三、特征计算模块功能设计16四、特征匹配模块功能设计16第四章 系统实现18第一节 开发环境配置及工具使用18一、 开发环境配置18二、 开发工具19三、调试工具19第二节 各模块功能的实现19一、特征采集模块功能的实现20二、数据归一化处理模块的实现22三、特征计算模块的实现23四、特征匹配模块的实现27第三节 系统测试30一、阀值选定测试30二、根据按键间隔进行生物识别方法测试30三、特征计算算法测试31第五章 总结与展望33第一节 总结33第二节 展望33致 谢35参考文献36附 录37一、英文原文:37二、英文翻译:42 - 59 -第1章 前言第1节 生物特征识别技术概述一、生物特征识别技术简介生物特征识别技术(biometric recognition)是通过计算机与声学、光学、生物传感器和生物统计学原理等高科技手段密切结合,利用人体固有的生理特性(如指纹、脸象、虹膜等)和行为特征(如笔迹、声音、步态、输入习惯等)来进行个人身份鉴定的技术1。二、生物特征识别技术的发展历史和现状生物识别技术起步于九十年代初期,生物识别的发展历史可以粗略地划分为三个阶段2。第一阶段是从1990年到1997年。在此阶段,整个市场仅有欧美澳等国不超过十家的供应商。国内厂商只是充当了分销商和系统集成商的角色,主要从事对国外产品进行增值分销的工作。第二阶段是从1998年到2002年。在此阶段,通过对国外技术和产品的学习借鉴,中国厂商开始在产品研发上取得一个又一个突破,逐渐攻克了核心软件、硬件处理平台、采集器件以及应用系统设计等难关,最终开始有少量由国内设计和制造的产品出现,同时与国外产品的竞争在这一阶段开始。第三阶段是从2003年至今。在此阶段,中国生物识别技术和产品在商业应用领域占据越来越多的市场份额,直至目前完全占据主导地位,控制了市场。与此同时,国外厂商开始转向复杂大系统、多技术融合等中高端产品及应用的研发工作。生物特征识别技术早年运用于法庭科学的司法鉴定,多是对静态图像(如指纹图像、脸形图像等)的事后采集和识别;上世纪九十年代末和本世纪初,特别是911恐怖事件之后,由于国际反恐斗争的需要,对静态、动态图像的事前事后采集和实时鉴别己成为防范安全风险的主要技术手段3。美国一直走在生物识别技术研究工作的前列。二十世纪九十年代,,美国已经开始启动生物特征识别技术应用的标准化工作,主要针对指纹识别应用在法律实施中的标准制定。1993年美国国家标准与技术研究所的计算机系统实验室制定了国家标准:ANSI/NISTCSL.1-1993:信息系统和指纹信息交换数据格式和刑事审判信息服务标准WSQ灰度图像的压缩标准。1995年,美国将伤疤、记号和纹身(SMT)信息加入到原有数据中,并将正面头像、脸形和纹身数据的一个逻辑化记录结构加入到ANSI/NISTCSL.1-1993标准中。1997年,国家标准化与技术研究所信息技术实验室修订了1993年的标准,颁布了ANSI/NIST-ITL.la-1997国家标准:信息系统和指纹、脸形、纹身信息交换数据格式。1998年,美国召开了另一个指纹数据交换会议,进一步修正、整理并更新了ANSI/NIST-CSL.1-1993和ANSI/NIST-ITL.la-1997标准,美国国家标准化与技术研究所将这个文件发布为:NSIT特别资料SP500-2453。该文件规定了用于不同的管辖范围和相异的系统之间有效地交换指纹、脸形、伤疤、标记和纹身身份识别数据的一个通用格式3。二十世纪末和本世纪初,商业领域开始应用越来越多新的生物识别技术,包括实时指纹鉴别和身份验证、脸形识别、语音识别、视网膜和虹膜扫描、手形特征、击键特征分析等。生物特征识别技术在商业领域的应用,不仅促进和扩展了生物特征识别技术的应用领域,而且大大提升了安全防范技术的技术层次,使得生物特征识别技术成为安全防范技术的三大主导技术之一。我国于上世纪90年代初,指纹信息识别产品和系统开始应用于公安业务和安全防范领域。据不完全统计,目前生产生物特征识别产品(主要是指纹、人脸识别)的企业近百家,社会公共安全行业制定的相关标准约30余项。但这些标准都是以公安业务的刑事侦察、证照管理或安全防范的视频监控系统、出入口控制系统等具有应用环境为基础而制定的,未能从人体生物特征识别技术的高度建立相应的标准体系3。第二节 生物特征识别系统的研究目的和意义 长期以来,识别身份的方法是验证该人是否持有有效的信物,如密码、照片、磁卡、钥匙和身份证等。从本质上看,验证的是该人持有的某种“物”,而不是验证该人本身。所以只要“物”的有效性得到确认,则持有该“物”的人的身份也就随之得到确认4。这种“物”验证的办法存在的漏洞是非常明显的:“物”的丢失会导致合法的人无法被认证,各种信物容易被伪造、破译。在网络环境下,密码作为身份识别的标志已被广泛采用。但由于密码容易被遗忘,也有被人窃取的可能,已无法满足当前信息化社会下人们对身份识别的需要。随着社会的发展,传统身份验证方式安全性越来越弱,已无法满足当今社会人们的需求。但是我们在日常生活中随时都需要进行个人身份验证和权限的认定,特别是在信息化社会的今天,人们对安全性的要求越来越高,同时也希望获得简单快速的识别方式。 为了解决这一问题,人们把目光投向生物特征识别技术,希望能借助人体固有的生理特征或行为动作来进行身份识别。这样就可以不必携带大串钥匙,也不用费心去记各种密码,并且也不用去担心会忘记密码。另外,生物特征具有唯一性,不可复制性,例如指纹,有学者推论:以全球60 亿人口计算,300 年内都不会有两个相同的指纹出现。以电子商务、电子银行的安全认证为例,在电子商务中会有假冒他人身份的事件发生,如果能够通过生物特征进行论证,就能够有效防止此类事件的发生。另外,网络、数据库和关键文件等的安全控制,机密计算机的登陆认证,银行ATM、POS 终端等的安全认证,蜂窝电话,PDA 的使用认证等等,都离不开可靠安全的身份识别认证。可见,研究生物特征识别不但有可观的经济效益,还有不可估量的国家信息安全效益。 生物特征识别技术是为了进行身份验证而采用自动化技术测量其身体特征或个人行为特点,并将这些特征或特点与数据库的模板数据进行比较,完成认证的一种解决方案,被评为21世纪十大高科技之一5。生物特征识别是目前最为方便和安全的识别技术,并且生物特征识别产品均借助于计算机技术实现,容易与安全、监控、管理系统整合,实现自动化管理。 用来鉴别身份的生物特征应该具有惟一性、广泛性、容易采集等特点,实际应用给基于生物特征的身份鉴别系统提出了更多的要求6,包括: 性能的要求:所选择的生物统计特征能够达到多高的识别率,对于资源的要求如何,识别的效率如何等。 可接受性:使用者在多大程度上愿意接受基于所选择的生物统计特征的系统。 安全性:系统是否能够防止被攻击。 可行性:是否具有相关的、可信的研究背景作为技术支持。 存储量:提取的特征信息是否占用较小的存储空间。 价格:是否达到用户所能接受的价格。 速度和准确率:是否具有较高的注册、识别速度和识别率。 是否具有非侵犯性。目前,主要的生物特征识别技术有虹膜识别、视网膜识别、人脸识别、签名、识别、声音识别、指纹识别等等。然而,还没有任何一种单独的生物特征可以满足上述全部要求。生物识别技术的应用主要有以下几方面7:门禁,重要区域的门禁管制:军事基地、枪械库、核能设施、物料放置库房、电脑机房、政府办公室、保密资料室等;住宅安全,包括社区人员进出及访客出入记录。职员或会员管理:内部授权管制、考勤、薪资计算、俱乐部会员确认。银行证券类身份确认:如柜台提款、自动提款机、保险箱、金库、大额取款客户身份确认、公司提现确认、交易终端客户身份确认、远程交易身份确认、保险受益人等各种社会福利受益人身份确认等。个人财产使用管制:如移动电话、个人电脑、笔记本电脑、汽车等。证照类:包括身份证、暂住证、驾驶证等。社保类:社会保险系统、养老金发放系统。医疗档案管理:血液管理、公费医疗确认、个人医疗档案管理。计算机系统及信息安全:包括网络安全、网上银行及电子商务、电子政务的安全等。第三节 本论文主要研究工作在本文中,将使用Winform所提供的相关控件及.NET Framework,结合WinForm的相关开发指南以及C#编程语言实现系统,使用Microsoft SQL Server 2008实现数据存储,主要有以下目的:设计并开发基于普通输入设备的生物特征识别程序实现生物特征识别、生物特征添加并存储和识别的功能;分析研究模式识别相关内容,利用模式识别相关算法实现机器学习和生物特征提取功能。本论文将着重讨论基于普通输入设备的生物特征识别系统程序的设计与实现,同时分析研究模式识别的相关技术要点,主要工作如下:详细分析基于普通输入设备的生物特征识别系统程序内容,作需求分析,提出具体需求;分析相关流程,做出详细设计,确定扩展程序的总体框架;学习相关开发指南,结合Winform编程相关控件以及C#语言特点,设计生物特征提取的算法,编写代码,测试功能,最终达到前期的设计目标。第二章 生物特征识别系统开发相关技术第1节 技术知识背景介绍一、生物特征识别技术生物特征识别实际上是一项整合了众多学科和应用技术的综合性技术,该技术既具有很强的理论性又具有很强的工程性,其本身就是一个多学科交叉融合的典范。所涉及的基础学科包括:数学、化学、物理学、生物学等;所涉及的应用学科包括:信号处理、图像处理、模式识别、人工智能、传感器技术、嵌入式技术、信息安全、信息融合等。 如图 2.1 所示,典型的生物特征识别过程通常包括以下步骤8: 信号获取 生物识别系统的信号(一维波形或二维图像等)是由一个采集设备来获取的。所获取的原始信号的质量非常重要,它是后继处理的输入数据。本文在实现基于普通输入设备的生物特征识别系统的过程中,主要基于人的输入习惯,在信号获取阶段,通过程序设计,实现对目标输入相邻按键之间的时间间隔的捕捉,完成信号获取。 预处理 在这个阶段,对信号/图像进行优化,包括分割、去噪、消除旋转和平移等操作。本文在实现系统的过程中,主要同过对得到的信号进行归一化处理来完成预处理步骤。具体思想是将得到的一组时间间隔作为一个多维向量,通过归一化处理,使向量的模值为1。 特征提取 提取稳定的、区分能力强的特征,即要求所提取的这些特征能使类内距离小,类间距离大。本文通过迭代计算数据中心点,比较相邻中心点间欧式距离完成特征提取。 特征匹配 将待识别的特征与模板库中的模板进行匹配,从而得到识别结果。本文通过待识别向量与已提取到的数据进行对比,即可完成识别。图2.1 生物特征识别系统的组合模块 注册(enrollment)、身份验证(verification)和身份辨识(identification)是一个生物特征识别系统的三种基本操作模式。但对于身份验证和身份辨识两种模式,很多系统仅仅包括其中之一8。 注册模式指在进行验证或辨识前,用户的身份需要先注册到生物识别系统中。首先系统接受用户提供的人体生物信号及其个人的标识(如姓名、ID号等);然后对所获取的人体生物信号进行预处理和特征提取;最后将提取的特征作为模板连同用户的个人标识存储到模板库或卡中。 身份验证这种模式需要用户先声明自己的身份,然后根据用户的生物特征来完成匹配,即“一对一”匹配(1:1匹配)。首先系统接收用户所提供的生物信号及个人的标识;然后对所获取的用户生物信号进行预处理和特征提取;最后根据用户提供的个人标识,从数据库库中提出相应的生物特征,并将其与捕捉到的生物特征进行匹配,进而判断匹配是否成功。 身份辨识是在事先完全不清楚用户身份的条件下,根据用户的生物特征来识别该用户的身份,也被称为“一对多”匹配(1: N 匹配)。首先系统接受用户提供的生物特征信号;然后对所获取的用户生物信号进行预处理和特征提取,并将提取的特征与系统数据库中所有或者部分模板进行匹配;最后根据匹配结果得到最为相近的模板,则该模板对应的 ID 就是这个用户的身份。 无论是“一对一”还是“一对多”匹配,衡量匹配成功率的标准都是很关键的。在生物特征识别技术中这一标准称为识别率,而识别率主要又由两种错误率来描述:拒真率(False Reject Rate,FRR)和认假率(False Accept Rate,FAR)。 在进行生物特征识别时,输入的生物特征要与已注册的生物特征进行不精确匹配。当匹配度大于某个阈值时,则该用户就被当作是合法用户而被接受;当匹配度小于某个阈值时,则该用户就被当作是假冒者而被拒绝。拒真率是指系统将合法用户当成假冒者而拒绝的概率;认假率是指将假冒者当成合法用户而接受的概率。这两种错误率可用下面的公式来计算8:式中,NAA 和 NIA 分别是合法用户和假冒者分别尝试的总次数;NFR和NFA 分别是错误拒绝(false rejection)和错误接受(false acceptance)的次数。当 FAR=FRR时,FAR(FRR)称为等误率(Equal Error Rate,EER)。拒真率和认假率这两个错误率反映了一个生物特征识别系统两个不同方面的特性:FAR 越低,假冒者被接受的可能性越低,从而系统的安全性越高;FRR 越低,合法用户被拒绝的可能性越低,从而使得系统的易用性越好。对于任何一个生物特征识别系统来说,FAR 和 FRR 越小越好。但是,这两个错误率是矛盾的,二者不能同时降低,其中任何一项的降低,必将引起另一项的升高。所以,应该根据不同的应用来折中调节 FAR 和 FRR:对于安全性要求较高的系统,如某些军事系统中,安全最重要,因此应该降低 FAR;在对安全性要求不是很高的系统,如很多民用系统中,易用性很重要,这时应该相对降低 FRR。二、Winform简介WinForm是Net开发平台中对Windows Form的一种称谓,以 .NET Framework 为基础。为了符合本系统的开发要求,系统采用是微软研发的软件开发平台,采用Winform技术进行系统编程工作,这项技术在实用性、适用性以及功能性上表现出了卓越的优势,主要的表现以下几个方面:控件灵活Windows窗体提供了一套丰富的控件,并且开发人员可以定义自己有特色的新的控件。WinForm控件是指以输入或操作数据的对象。比如ComponentOne是.net平台下对数据和方法的封装。有自己的属性和方法。属性是控件数据的简单访问者。方法则是控件的一些简单而可见的功能。包含在 .NET Framework 中的 Windows窗体类旨在用于 GUI 开发。您可以轻松创建具有适应多变的商业需求所需的灵活性的命令窗口、按钮、菜单、工具栏和其他屏幕元素。数据管理Winform提供方便的数据显示和操作:应用程序开发中最常见的情形之一是在窗体上显示数据9。Windows窗体对数据库处理提供全面支持。可以访问数据库中的数据,并在窗体上显示和操作数据。向导明确向用户提供创建窗体、数据处理、打包和部署等的分布指导。简单易学 Winform学习简单,大多数软件开发人员认为C#语言比其他的编码语言更简单,尤其是一些特别简单易懂的表单和任务,非常容易上传到客户端,这将使网络布线和站点配置提供了一个方便易用的界面接口。三、Microsoft SQL Server 2008简介SQL Server 2008 数据库技术是由微软公司开发而成,该数据库具有较高的数据处理能力和数据安全性,该版本的数据库增加了快捷的功能设计和个性化的特征,是一款功能全面的数据库,它有以下优点10: 保障数据安全 保障数据安全属于 SQL Server 2008 最关键的一个性能指标,需要通过对系统数据流通、日志管理流通以及文件加密等保证数据的安全,系统管理员使用 SQL Server 2008 时,能够使用多种途径来访问原有加密的文档数据,而系统其他未授权的用户不能访问加密数据,从而避免数据被无意中泄漏出去。加强了数据的安全特性11。采用密码和密钥统一管理 系统中都会涉及到不同的用户,根据用户的性质和操作业务权限不同,需要在数据加密管理的一栏中增加不同等级的数据管理,以免用户的繁杂导致数据信息的不安全,因此数据库技术增加了用户的第三方密钥管理,提高了用户对自身工作内容的数据进行妥善保护,为高校的数据安全性提供了多种有效的方法。 增强了数据库镜像功能 SQL Server 2008 版本在原有版本的基础上取得更大的进步,同时改善了原有的镜像功能,从而可以实现页面数据的自动修复,当用户发送修复请求,数据库接收镜像的出错报告,对需要修复的数据进行快速和完整的拷贝,然后将修复的结果数据反馈到错误页面中,用户可以重新获取需要修复的数据。 数据备份和压缩在数据处理过程中,备份过程中,这样不仅占用大量的磁盘空间,而且占用大量处理时间,为了解决这一问题,数据库提供一个新功能,实现对数据的备份压缩,减少数据占据的空间,以及提高数据备份过程中的时间和效率。 4、 模式识别及K-means算法简介模式识别(Pattern Recognition),就是通过计算机用数学技术方法来研究模式的自动处理和判读。我们把环境与客体统称为模式。伴随科学技术的发展,人类需要研究复杂的信息处理过程。信息处理过程的一个重要形式是生命体对环境及客体的识别。模式识别是指对表征事物或现象的各种形式的(数值的、文字的和逻辑关系的)信息进行处理和分析,以对事物或现象进行描述、辨认、分类和解释的过程,是信息科学和人工智能的重要组成部分12。K均值算法是Lloyd于1957年首次提出的,在文献13中,Lloyd首次将K均值算法应用到PCM系统中对信号进行了聚类,并提出了噪声信号对聚类结果的影响。MacQueen于1967年给出了经典的K均值算法,在文献14中,MacQueen给出了 K均值算法完整的理论,证明了该算法的收敛性,并介绍了 K均值算法的一些应用。K-means算法是一种硬聚类的算法,是典型的基于目标函数聚类的代表方法,以数据到原型的某种距离作为优化的目标函数,利用函数求极值的方法得到迭代运算的调整规则15。K-means算法以欧式距离作为相似度测度,它是求对应某一初始聚类中心向量V最优分类,使得评价指标J最小。算法采用误差平方和准则函数作为聚类准则函数。在文献16中,对经典K-means算法进行了介绍。算法的基本思想为:在n个数据对象中随机选择k个中心,集合中其他数据对象被划分到与中心最近的数据集合中去,形成了 A个初始的数据集合。对于每个数据集合,计算新的中心,然后根据新的中心重新分配其他数据集合,这样不断迭代,直到所有的数据中心不再变化。该算法的具体步骤如下: 随机选择k个初始聚类中心C=c1,c2.ck; 如果s与聚类中心ci,之间的距离小于该对象到cj的距离,则将s划分到聚类族中。,重新计算聚类族 Ci的中心:。重复步骤和步骤,直至聚类中心C不在变化。经典K均值算法的流程图如图2.2所示。图2.2 经典K均值算法的流程图本系统所使用的输入特征提取算法是基于K-means算法的一种改进,K-means算法是将数据点进行聚类,得到多个聚类的中心。而本系统所使用的算法采用K-means算法的思想,将同一个人输入的输入特征当做一个类,通过迭代计算出该用户的特征。第三章 系统的需求分析及设计第一节 系统的需求分析一、系统功能的需求分析本文所开发的生物特征识别系统是基于普通输入设备(即键盘)采集到的用户输入特征(键入相同按键不同按键间时间间隔)实现的生物特征识别。为满足系统的生物特征识别功能,系统的总体流程图如图3.1所示:图3.1 系统总体流程图通过对系统功能分析,用户可使用系统录入自己的生物特征、保存生物特征、删除生物特征、与数据库中特征进行匹配。根据分析画出系统用例图如图3.2所示。 图3.2系统用例图 根据系统需求及功能分析,在系统实现过程中,可将生物特征识别系统的功能分为特征采集、数据归一化处理、特征计算和特征计算四个模块来实现。各模块具体功能如下:1.特征采集模块特征采集模块主要负责对用户输入特征(即按键时间间隔)的采集。应具有以下功能:识别用户输入按键;存储用户个人标识(即姓名);提取用户相邻按键的时间间隔,并存储,以便于下一步进行特征计算或特征匹配;对存储情况,时间间隔提取情况有一定的回馈,在完成存储或一次特征提取后提醒用户程序进度。2.数据归一化处理模块数据归一化处理模块应具有如下功能:每次生物特征信息采集模块完成数据采集后,将得到的数据进行归一化处理并存储;3.特征计算模块特征计算模块负责将已得到数据通过迭代计算提取出用户输入特征。应具有如下功能:系统可自动确定用户需要输入次数;系统可识别波动较大的数据,即在多次输入后,一直无法取得要求的特征,系统提示输入特征波动较大,无法完成特征提取;通过已得到数据可计算中心点,并与上次中心点进行对比,欧氏距离满足要求则保存,否则继续迭代计算。完成后反馈信息,特征提取成功或提取失败。4.特征匹配模块特征匹配模块负责将待匹配用户特征与数据库中存储特征对比,从而得出接受或拒绝的结论。具体功能如下:能将待匹配数据与数据库中进行匹配,得出结论接受或拒绝;若接受,能实现对用户身份的确认,输出用户姓名;二、系统功能的运行需求生物特征识别系统的开发环境:Windows 7 64位操作系统开发工具:Microsoft Visual Studio 2010旗舰版运行环境:WinXP/Win2003/Vista/Win7/Win8第二节 系统数据库的分析与设计一、系统数据库分析根据系统的功能需求分析,本论文提出了以下数据结构:用户姓名:用于存储用户姓名,进行识别和存储特征时使用;生物特征数据:主要用于存储经计算后的用户生物特征,即输入特征,在设计上需用户输入biyesheji字符,设计bi、iy、ye、es、sh、he、ej、ji分别存储相邻按键时间间隔数据;二、系统数据库设计由于本系统为一个生物特征识别系统,所以需要完成对生物特征的存储,删除等功能。设计数据库存储用户的生物特征信息,具体如表3.1所示:表3.1 系统数据库设计表字段类型说明nameVarchar(50)用户姓名bifloatbi间时间间隔特征iyfloatiy间时间间隔特征yefloatye间时间间隔特征esfloates间时间间隔特征shfloatsh间时间间隔特征hefloathe间时间间隔特征ejfloatej间时间间隔特征jifloatji间时间间隔特征数据库ER图如图3.3所示:图3.3 系统数据库ER图第3节 系统功能模块设计在系统的实际开发过程中,系统具体分为以下四个模块来实现,具体模块设计如下:一、特征采集模块功能设计 特征采集模块是采集生物信息的主体部分,该模块主要功能是采集生物特征信息(即按键时间间隔),在本系统中,该模块负责对用户输入特征(即按键时间间隔)的采集。其功能模块图如图3.4所示:图3.4 生物特征信息模块功能模块图二、数据归一化处理模块功能设计数据归一化处理模块的主要功能是对所得数据进行预处理,为之后特征计算与特征匹配做准备,归一化是一种简化计算的方法,在模块中,将波动较大特征信息数据归一化为一个模为1的多维向量,在进行匹配或特征计算时,由于所有数据均为归一化数据,故若两多维向量的夹角或距离越小,则说明两者越相近。该模块主要为后面特征计算或匹配的数据进行预处理。其功能模块图如图3.5所示:图3.5 数据归一化处理模块功能模块图三、特征计算模块功能设计特征计算模块主要用于对归一化得到的数据进行处理,通过迭代计算出用户特征,特征计算模块主要功能是通过对归一化处理后的数据进行计算后,得到用户的特征,其功能模块图如图3.6所示:图3.6 特征计算模块功能模块图四、特征匹配模块功能设计特征匹配模块的主要功能是对待识别用户输入的信息进行提取及预处理,将归一化后的数据提取特征,与数据库中特征进行比对。特征匹配模块是完成特征识别的核心模块,主要负责完成特征识别。其功能模块图如图3.7所示:图3.7 特征匹配模块功能模块图第四章 系统实现第一节 开发环境配置及工具使用1、 开发环境配置开发前需先将环境配置并安装完成,先完成Microsoft Visual Studio2010安装,之后配置为C#开发环境,如图4.1和图4.2所示:图4.1 Microsoft Visual Studio 2010安装图4.2 配置环境为C#开发2、 开发工具系统前台使用Visual Studio2010 开发工具,Winform技术开发,C#标准类库,后台使用 SQL Server2008 数据库作为数据存储。三、调试工具在使用C#语言及Winform进行编程的时候,如果程序有错误,编译器会报错,程序也不会执行,开发者可以根据错误信息debug,直至程序运行成功。在开发过程中,通过程序自带调试功能进行程序调试,在程序调试过程中,注意添加各种重要变量的监视,通过监视变量,调试程序过程中判断程序是否按要求执行,例如监视存储原始数据采集情况(doubleArray1)、归一化处理后得到的数据(doubleArray2)、存储所有归一化处理后的数据的List(itemcluster)、存储计算所得中心的List(centerResult)等各种变量,如图4.3所示:图4.3 运行调试工具并监视重要变量第二节 各模块功能的实现因各功能模块代码较多,部分是代码是重复使用,所以本论文中会只选取各模块中比较重要的代码讲解。一、特征采集模块功能的实现特征采集模块的时间间隔提取功能主要通过Winform中textBox控件中textBox_TextChanged事件及StopWatch类完成。StopWatch类是.NET Framwork中的一个类,该类提供了一组方法和属性,可用于准确地测量运行时间。当textBox控件中内容发生变化时触发textBox_TextChanged事件,在textBox_TextChanged事件中通过调用StopWatch中的方法实现提取按键时间间隔功能。生物特征提取模块模块的流程图及运行效果如图4.4和图4.5所示:图4.4 生物特征提取模块流程图运行效果图:图4.5 生物特征提取模块运行效果图在此模块中通过设置textBox_TextChanged时间,调用Stopwatch 函数完成捕捉按时间间隔功能,部分代码如下:#region/取时间间隔if (i doubleArray1.Length + 1) if (textBox1.Text = b) stopWatch.Start(); i+; else stopWatch.Stop(); textBox2.Text = (stopWatch.ElapsedMilliseconds).ToString(); doubleArray1m = stopWatch.ElapsedMilliseconds; m+; i+; stopWatch.Restart(); return; 二、数据归一化处理模块的实现系统中所使用的归一化方法主要是使用向量归一化处理的方法,将向量中各个数据均除以该向量的模,从而得到一个模值为一的向量,完成归一化。数据归一化处理模块具体流程图及实现情况如图4.6和图4.7所示,图4.7中,doubleArry1和doubleArray2中分别存储的是原始数据与归一化处理后的数据。图4.6 数据归一化处理模块流程图运行效果图:图4.7 数据归一化处理运行效果图数据归一化处理部分代码如下: #region /数据归一化处理 foreach (double key in doubleArray1) count += Math.Pow(key, 2); sqrt = Math.Sqrt(count); for (j = 0; j doubleArray2.Length; j+) doubleArray2j = doubleArray1j / sqrt; #endregion三、特征计算模块的实现特征计算模块所用的特征计算算法是根据K-means聚类算法思路改进获得的。在进行特征计算时,先计算所有数据的中心点,在算法中通过求平均获得中心点,将此中心点与上一中心点对比,若相近则认为特征提取完成。在程序实际设计中预设用户完成15次输入后进行第一次特征计算,之后之后每输入5次后重新计算,当所得特征间欧氏距离收敛切满足预设阀值(很小)要求则完成特征提取。这种分多次计算特征的算法可以在保证提取特征的精确性的前提下让用户尽可能少的输入。相比设定固定测量次数简化了用户的操作,同时体现了程序的智能。具体算法的可行性会在系统测试模块进行分析。特征计算模块流程图及其运行效果如图4.8和图4.9所示:图4.8 特征计算模块流程图运行效果图:图4.9 特征计算模块运行效果图特征计算模块部分代码如下所示:#region /计算中心,提取目标输入特征if (n 15) /前15次不计算中心直存储数据 for (i = 0; i doubleArray2.Length; i+) /前15次直接把doubleArray2中的数据存到itemcluster列表中 myKcenter.timedemo.Add(doubleArray2i); myKcenter.itemcluster.Add(myKcenter.timedemo); myKcenter.timedemo = new List(); /初始化else if (n % 5 = 0)/先是第15次,之后每5次之后重新计算中心 for (i = 0; i doubleArray2.Length; i+) myKcenter.timedemo.Add(doubleArray2i); myKcenter.itemcluster.Add(myKcenter.timedemo); myKcenter.timedemo = new List(); /初始化 myKcenter.Init(); /计算中心 myKcenter.NewItem(myKcenter.centerResulta); a+; textBox8.Text = a.ToString(); #region /初始化 textBox1.Clear(); /清空文本框 i = 0; j = 0; m = 0; doubleArray1 = new double8; doubleArray2 = new double8; count = 0; sqrt = 0; stopWatch.Reset(); #endregion textBox3.Text = n.ToString(); /显示测量次数 string demo = string.Format(第0次记录完成,第1次中心计算完成!, n.ToString(), a.ToString(); textBox4.Text = demo; return; else for (i = 0; i doubleArray2.Length; i+) /15次之后非整五次 myKcenter.timedemo.Add(doubleArray2i); myKcenter.itemcluster.Add(myKcenter.timedemo); myKcenter.timedemo = new List(); /初始化 #endregion #region /初始化 textBox1.Clear(); i = 0; j = 0; m = 0; doubleArray1 = new double8; doubleArray2 = new double8; count = 0; sqrt = 0; stopWatch.Reset(); textBox3.Text = n.ToString(); /显示测量次数 string test = string.Format(第0次记录完成, n.ToString(); textBox4.Text = test; if (n = 50) textBox4.Text = 50组数据已经存储完成!但数据波动较大无法提取特征.ToString(); n = 0; return; #endregion 四、特征匹配模块的实现在进行生物识别过程中,特征匹配模块录入十次目标输入特征,通过数据预处理提取出十次输入数据的中心点,通过所得中心点与数据库中目标特征对比,完成特征匹配。若匹配成功则会反馈信息为匹配成功并输出目标姓名,若匹配失败则反馈信息为匹配失败,请重新验证。特征匹配模块流程图和运行效果图如图4.10,图4.11和图4.12所示,图4.10 特征匹配模块流程图运行效果图:图4.11 特征匹配成功效果图图4.12 特征匹配失败效果图特征匹配模块部分代码如下:private void button3_Click(object sender, EventArgs e) if (myKcenter.Distance(myKcenter.check, myKcenter.center0) 0.19) string result = string.Format(匹配成功!匹配目标姓名为0。, name.ToString(); textBox9.Text = result; myKcenter.checkall = new ListList(); myKcenter.check = new List(); myKcenter.checkdemo = new List(); b = 0; m = 0; i = 0; else textBox9.Text = 匹配失败,请重新验证。.ToString(); myKcenter.check = new List(); myKcenter.checkall = new ListList(); myKcenter.checkdemo = new List(); b = 0; m = 0; i = 0; return;第3节 系统测试一、阀值选定测试 根据已完成的系统,通过更改阀值的设定,进而得到阀值与识别成功率,阀值与匹配正确率之间的关系,如图5.13和图5.14所示: 图5.13 阀值与识别成功率关系图 图5.14 阀值与匹配正确率关系图从图表中可以较为清晰的看出,阀值与识别成功率成正比,与匹配正确率成反比。识别成功率与匹配正确率是相互影响的数据,若想要有较高的识别成功率,则必定要以牺牲匹配准确率为代价,反之亦然。所以在实际系统中设定阀值时,需综合考虑识别成功率与匹配正确率间关系,选择符合系统需求的阀值。二、根据按键间隔进行生物识别方法测试 为验证根据按键时间间隔进行生物特征识别的可行性,对程序进行测试。若不同人在相同相邻按键间时间间隔差距较大,则说明该方式可行;反之不可行。图5.15和图5.16
展开阅读全文