人脸检测系统设计毕业设计论文.docx
《人脸检测系统设计毕业设计论文.docx》由会员分享,可在线阅读,更多相关《人脸检测系统设计毕业设计论文.docx(97页珍藏版)》请在冰点文库上搜索。
人脸检测系统设计毕业设计论文
中文题目:
人脸检测系统设计
外文题目:
FACEDETECTIONSYSTEM
毕业设计(论文)共100页(其中:
外文文献及译文14页)图纸共0张
完成日期2015年6月答辩日期2015年6月
摘要
本项目致力于完成MicrosoftVisualStudio 2010平台下的人脸检测与定位系统,人脸检测定位的算法基于基于肤色相似度算法。
本设计主要完成的工作包括求肤色的相似概率、二值化、水平与垂直方向的投影、人脸特征(眼睛、眉毛、嘴巴和鼻子)的提取、精确定位人脸区域。
系统对于提升人脸检测的准确率具有指导意义,
设计了基于肤色的人脸检测和定位系统。
采用了脸部皮肤之间相似度的方法以及二值化方法,使用了基于边界方法和基于区域方法相结合的算法,提取了眼睛、嘴和鼻子等关键特征,最终较好地实现了人脸定位。
在MicrosoftWindows平台上,利用MicrosoftVisualStudio 2010开发了软件。
对于清晰的正面人脸图,该系统能够做出正确地检测定位并提取出特征。
关键词:
图像分割;人脸定位;肤色;人脸检测;特征提取
Abstract
ThistopicdevotestocompletingthedetectionandlocalizationsystemofthepersonfaceundertheMicrosoftVisualStudio 2010platforms,andthedetectionlocalizationalgorithmofthepersonfacelimittobasingontheskincolorsimilarityalgorithm.Thetopicmustcompletesimilaritycomputation,binaryimageprocessing,verticalhistogram,horizontalhistogramandextractingpersonfacecharacteristic(eye,mouthandnose).Thistopicemphasizeapplicationofskincolormodelsimilarityinthedetectionandthelocalizationofpersonface,andhasasignificantinstructionforresearchofincreasingaccuracyindetectionandthelocalizationofpersonface.
Inthispaper,theauthorshavepresentedanalgorithmanddesignedasystemforfacedetectionandlocationbasedoncomplexion.Bystrengtheningthecontrastbetweenfacefeaturesandbyadoptingbinaryimageprocessingmethod,thesystemhasimprovedthepreprocessingeffect;andbyusingboundary-basedalgorithmplusregion-basedalgorithm,thesystemhasrealizedfacelocationthroughtheextractionofthefeaturesofeyes,noseandmouth.TakingadvantagesofMicrosoftVisualStudio 2010,theauthorshavealsodevelopedcorrespondingsoftwarebasedonMicrosoftWindows.
Productionofthispaperhavedefiniteapplicationvalue.Experimentresultsprovethatthesystemisvalidindetecting.
Keywords:
imagesegmentation;facelocalization;complexion;facedetection;featureex-traction
0前言
当今世界网络信息技术迅猛发展,人们需要不断的提高安全知识。
用数字来表示身份逐渐成为网络信息时代的一大特点。
因此,保护信息安全的同时鉴别一个人的身份就成为了社会的关键性问题。
身份确认是当今社会必不可少的。
例如,针对个人而言,银行的取款机需要密码确认,上班也需要打卡,个人身份的确定也需要身份证、学生证等相关证件,在网上购物的话,付款时也需要密码和短信来进行确认。
但是,身份证、钥匙、密码等传统的身份认证方式存在很大的弊端。
钥匙、身份证等很容易伪造出来,而且如果不小心丢失被他人拾取很容易造成财产损失。
另外,对社会而言,恐怖组织日益猖獗,恐怖事件每年都会发生很多,各个国家需要更加准确、方便的身份确认方式来保护国家安全。
此时就需要一种不易丢失、不易伪造、可以永久保存、便于随身携带的身份确认方式。
正是在这种情况下,人脸识别技术应运而生。
人脸检测是生物特征鉴别技术的一个主要方向,与其他生物特征相比,人脸检测具有主动性、非侵犯性和用户友好性等许多优点。
人脸检测技术可以被应用在多种不同的安全领域:
证件中的身份认证;楼宇进出的安全控制;重要场所中的安全检测和监控;智能卡中的身份认证。
另外,人脸检测技术在信息安全领域(计算机的登录控制,应用程序安全使用、数据库安全访问和文件加密,实现局域网和广域网的安全控制,保护电子商务的安全性)也有着巨大的潜在应用价值。
其次,人脸检测技术可以用于创建友好自然的人机交互方式。
最后,人脸检测技术还可以用于图像库检索,在大型人脸库中检索出与索引人脸相同或相近的人脸。
基于人脸的身份鉴别具有重大的应用价值,成功的人脸检测系统将形成数十亿元的巨大市场。
人脸检测技术是新兴的身份确认技术,不但在学术研究方面,有巨大的价值,而且在经济飞速发展的现代社会,人脸检测技术将会有更大的市场需求。
有报告显示,身份证、钥匙、密码等传统的身份认证方式最后都将会被人检测别等生物识别方式取代。
1问题定义
近年来,人脸检测技术得到了极大的发展,但到目前为止,还没有一种彻底解决问题的办法,只能是使检测技术越来越完善。
本设计将会运用面向对象的思想对人脸检测系统进行开发。
1.1系统名称
⑴系统名称
人脸检测系统
⑵作用
现今视频监控正在迅速普及,众多的视频监控应用都需要一种远距离、用户不配合状态下快速获取人脸信息的技术,以便远距离快速确认身份,做出及时处理。
人脸识别技术无疑是最佳的选择,采用人脸识别技术可以从图象中查找出人脸,并与数据库进行实时比对,从而实现快速身份识别。
其中,人脸检测是人脸识别必不可少的一部分。
1.2项目目标
此毕业设计题目是人脸检测系统的实现。
人脸检测系统总体上分为四部分:
图像获取、预处理、特征提取和人脸面部特征区域标识定位等。
图像获取部分主要是将需要进行处理图像读取到系统中来,获取图像的基本信息,以便对图像的像素进行处理。
预处理部分主要是对图像图像获取预处理模块,包括图像灰度化、均值滤波、以及边缘提取。
人脸预处理过程是计算机人脸识别中一个重要过程。
人脸图像预处理的好坏对整个系统至关重要,对人脸预处理的研究具有非常重要的意义。
特征提取通过标记人脸区域来确定和计算人脸的各器官的位置,比如眼睛、眉毛、鼻子、嘴巴。
人脸面部特征区域标识定位在确认特征点之后,根据五官的位置重新定位更加精确的人脸位置。
本项目主要是为了打好基础,学习一些人脸检测的知识,以便在日后更好的学习人脸识别的高级知识。
1.3项目范围
本项目主要对人脸的检测与定位进行设计与开发,人脸检测作为模式识别的一种,一般可以分为人脸检测及定位,人脸特征提取技术和人脸重新定位等。
一个基本的人脸检测过程包括以下几个方面,人脸初步检测,特征提取和人脸重新定位。
图1-1是人脸检测过程的几个步骤,它的基本任务是对待检测图像进行检测,分割,然后在所分割出来的相关人脸区域进行特征提取,最后从新确定人脸区域。
在基本的人脸检测研究基础之上可以进行更深层次的研究。
图1-1人脸检测过程
Figure1-1Facerecognitionprocess
1.4可行性研究阶段经费估算
本项目建立的目的主要是提高本人的编程能力和学习能力,需要实现的算法都已经非常成熟了,遇到的困难只需要查阅资料、请教老师,所以基本不需要经费。
2可行性研究
在可行性研究中,将从技术、经济、等方面的基本要求和开发人员两个方面分析人脸检测系统能否实现。
其中包括技术可行性、经济可行性、操作可行性、法律可行性等。
2.1系统目标
本系统将实现以下功能:
(1)在图片中初步确定出人脸区域;
(2)标记出人脸的特征(例如:
眼睛、眉毛、鼻子、嘴巴);
(3)根据标记的特征点,确定精确的人脸区域。
2.2可行性分析
2.2.1可行性分析的目的
在开发人脸检测系统中,将有很多困难,这些困难将可能直接导致系统的开发失败。
为了避免盲目的开发,我们需要对次项目的可行性进行研究。
结合资金、时间和环境等各方面的制约条件,对人脸检测系统是否能够解决检测中存在的问题,是否能够带来预期的效果和价值做出正确的评估。
2.2.2技术可行性
人脸检测技术就是判断图像中是否存在人脸。
如果存在,确定出人脸的大小和位置等,并且需要将人脸与背景分离出来。
人脸检测的方法主要有三类:
基于知识、模板匹配和基于统计学方法。
本系统使用的是基于知识的方法,下面将着重讲述人脸检测的方法。
基于知识是通过抽取灰度和几何特征形成一定规则,然后检验这些规则是否符合人脸先验知识的方法。
此方法相对其他方法而言比较简单,并且计算速度相对较快,运算时间较小,所以在人脸检测中最为常用。
在确定脸部区域上,通常使用的方法是肤色模型法。
肤色提取,则对脸部区域的获取则比较准确,成功率达到95%以上,并且速度快,减少很多工作。
在确定人脸之后,根据人脸的面部结构特点,就可以确定出眼睛、眉毛、嘴巴和鼻子等特征了。
人脸检测的算法已经非常成熟了。
目前主要的难题就是是我的编程能力能否实现这些算法。
在大学阶段,我学习了一系列编程语言,并且掌握的比价扎实,我相信只要肯下功夫,这些算法还是可以实现的。
综上所述,本系统在技术方面是完全可现的。
2.2.3经济可行性
人脸检测系统开发是围绕教师科研项目,本科毕业设计主要是为了提高编程水平,所以不需要投入资金,只需要一台电脑即可。
自己找参考书和上网查一些资料就可以完成此系统的开发并能达到最终的需求。
2.2.4操作可行性
此软件开发主要为了学习,用户需求明确,调研方便。
开发算法现在已经比较成熟,实现性也是比较好,主要遇到的是编码过程中的问题,只需查阅资料或请教老师便可解决。
2.2.5法律可行性
本系统的设计与开发,出发点是基于对大学四年来所学知识的综合运用,以及扩充本人在人脸检测领域的专业知识,提高编程水平,整个开发过程没有涉及合同、责任等与法律有关的方面。
2.2.6可行性研究结论
综上所述,本系统投资少、收益大,且运行操作简单易学,从技术,操作,经济和法律等方面可行。
具备了开发的可行性。
3人脸检测系统需求分析
上一章已经论证人脸检测系统是完全可以实现,下面将从系统需求的角度对人脸检测系统做需求分析。
3.1人脸检测系统需求
3.1.1人脸检测系统功能需求
人脸检测系统的主要功能是能够在给定图像中检测出人脸区域。
本系统读取已有的图像,然后要对获取到的图像进行“预处理”,根据预处理后图像,将图像中的人脸初步识别出来,然后在识别出来的人脸区域中,确定人脸五官的位置,提取出相应的特征。
最后根据五官的位置重新确定出更加准确的人脸区域。
系统的主要功能有图像获取功能、图像预处理功能、特征提取功能以及检测功能。
下面分析各个部分主要功能。
1.图像获取功能:
图像获取部分主要是将需要进行处理图像读取到系统中来,获取图像的基本信息,以便对图像的像素进行处理。
2.图像预处理功能:
图像的质量好坏对检测人脸的效率和结果有着很大的影响。
有的图像是在光线比较强的情况下拍摄的,有的是光线比较弱的情况下拍摄的,人的肤色也有差别,脸部不同地方的颜色也不一样。
因此就需要预处理进行转换,方便进行检测。
其过程如图3-1。
3.特征提取功能:
特征提取是脸识别的关键一步,提取出的特征值是用来人脸匹配的,特征值的质量直接影响匹配的准确性。
⑴用方框初步标记处人脸区域;
⑵对人脸区域进行边缘提取;
⑶根据边缘提取结果、人脸先验知识及肤色标记眼睛特征点;
⑷根据人脸先验知识与肤色特征标记出嘴巴与鼻子特征点。
4.人脸检测功能:
根据人脸五官的特征重新标记出人脸区域。
图3-1图像预处理功能
Figure3-1Imagepreprocessingfunction
3.1.2人脸检测系统环境需求
⒈硬件环境:
CPU 最低要求 500 兆赫 (MHz)及以上
内存 最低 RAM 要求1G
硬盘 需要 2G 以上的可用空间
2.软件环境:
可以运行在微软公司近年来所出的各种操作系统。
如Windows2000/XP,window7及以上等。
3.1.3人脸检测系统可靠性需求
在给定的时间内(一般为全天运行),系统均能完成所要求功能的性能指标。
3.1.4人脸检测安全保密需求
为防止病毒入侵导致数据丢失及非法访问的问题,需要设置身份验证、访问控制及用户权限等,这些都是系统安全性需求的具体细化。
3.1.5人脸检测系统用户界面需求
本系统主要是为了学习,界面设计不宜过于复杂,所以本系统界面简洁,操作提示明显,使所有类型的用户均能迅速上手使用系统。
大体的界面规划如图3-2,其中主窗口的左半部分用来放置相应的按键,右半部分放置获取和处理后的图片。
图3-2界面
Figure3-2Interface
3.1.6人脸检测系统资源使用需求
虽然算法本身时间复杂度不高,每张图片的获取、预处理和特征提取的时间都很短,但是当需要多个图片在同一时间段处理时,占用的系统资源就相对较大了,所以本系统预计占用的资源还是比较大的。
3.2人脸检测系统需求分析
本小节将从人脸检测系统需求的角度确定相应的用例模型。
3.2.1人脸检测系统分析用例模型
UML提供的用例图可以进行需求分析与建立功能模型功能。
用例图包含的图符图如表3-1。
表3-1用例图符
Table3-1usecaseSymbols
图符名称
图符
意义
用例
一个用例是可以背行为者感受到的、系统的一个完整的功能。
在UML中把用例定义成系统完成的一系列动作,动作的结果能被特定的行为者觉察到。
行为者
行为者和是指与系统交互的人更或者其他系统,它代表外部实体。
使用用例并且与系统交互的任何人或物都是行为者。
箭头
箭头
箭头用来表示参与者和系统通过相互发送信号或消息进行交互的关联关系。
箭头尾部用来表示启动交互的一方,箭头头部用来表示被启动的一方,其中用例总是要由参与者来启动。
根据系统需求分析,总结出以下用例模型:
1.图像获取用例模型:
此模型是用户将需要处理的图像读取到系统中,并在相应位置显示出来。
2.预处理用例模型:
此模型是用户对读取到系统的图像进行预处理操作。
3.特征提取用例模型:
此模型是用户在处理后的图片上进行人脸标记和特征提取等操作。
4.人脸检测模型:
根据所提取五官的特征,重新定位人脸面部特征区。
图3-3人脸检测用例图
Figure3-3Facedetectioncasediagram
3.2.2人脸检测用例描述
本小节分析系统的用例描述,在这小节中包含:
图像获取的用例描述、预处理的的用例描述、特征提取的用例描述、人脸检测的用例描述等。
用例编号:
UC1
用例名称:
图像获取
用例描述:
(属性)用户根据需要获取相应文件
行为者:
用户
先决条件:
存在需要处理的图像
后置条件:
在主界面显示相应图像
活动步骤:
点击打开文件按钮
异常处理方法:
重启软件
⒈图像获取的用例描述
图3-4图像获取的用例描述图
Figure3-4Theusecasedescriptiondiagramofopeningfile
用例编号:
UC2
用例名称:
预处理
用例描述:
(属性)将打开的图片进行灰度化、二值化等操作
行为者:
用户
先决条件:
打开文件
后置条件:
在主界面显示处理后的图像
活动步骤:
点击相似度灰度化、二值化
异常处理方法:
重启软件
2.预处理的用例描述
图3-5预处理的用例描述图
Figure3-5Usecasedescriptiondiagramsforpreprocessing
3.特征提取的用例描述
用例编号:
UC3
用例名称:
特征提取
用例描述:
(属性)在打开的图片中标记出人脸区
眼睛、眉毛、鼻子、嘴巴
行为者:
用户
先决条件:
二值化处理
后置条件:
在图片上标记出眼睛、眉毛、鼻子、嘴巴
活动步骤:
1)点击标记人脸区域
2)点击标记眼睛
3)点击标记眉毛
4)点击标记嘴巴
5)点击标记鼻子
异常处理方法:
重启软件
图3-6特征提取的用例描述图
Figure3-6Theusecasedescriptiongraphoffeatureextraction
4.人脸检测的用例描述
用例编号:
UC4
用例名称:
人脸检测
用例描述:
(属性)重新确定人脸区域
行为者:
用户
先决条件:
特征提取
后置条件:
无
活动步骤:
点击重新确定人脸按键
常处理方法:
重启软件
图3-7人脸检测的用例描述图
Figure3-7TheusecasedescriptiongraphofFacedetection
3.3系统用例活动图设计
此部分将依次介绍人脸检测系统的用例活动图。
活动图图符如表3-2。
表3-2活动图符介绍表
Table3-2Eventsicondescriptiontable
图符
意义
初试状态
终态
活动
1.文件获取的用例活动图
用户将以有的图像文件读取到系统中,并在主界面显示出来。
图3-8图像获取用例的活动图
Figure3-8Activitydiagramoftheimageacquisitioncase
2.图像预处理的用例活动图
系统对用户读取的图片进行灰度化、滤波、二值化等操作。
图3-9预处理用例的活动图
Figure3-9Activitydiagramofthepreprocesscase
3.特种提取的用例活动图
图像预处理后,系统就可以根据处理后的信息来进行人脸区域的初步确定,确定好人脸区域后,根据先验知识可以确定人脸五官的特征。
图3-9特征提取用例的活动图
Figure3-9Activitydiagramoffeatureextractioncase
4.人脸检测的用例活动图
特征提取之后,由于人的五官都已经确定出来,所以图像中一定会有人脸存在,根据五官的位置就可以重新确定出人脸面部区域。
图3-9人脸检测的用例活动图
Figure3-9activitydiagramforfacedetection
4系统分析
本章节主要通过对象模型、动态模型以及功能模型三个方面来描述《人脸检测系统》的设计。
4.1人脸检测系统对象模型设计
根据系统需求分析,总结出以下对象模型:
1.文件类(CDib):
用来控制图像的获取、存储。
2.预处理类(CSimiliarHood):
用来对图像进行求取肤色相似度,滤波,二值化等预处理操作。
3.人特征提取类(CFaceDetectDlg):
根据预处理的图像,初步定位人脸区域,在定位五官的位置,最后重新精确定位人脸区域。
4.用户类(user):
识别使用程序的用户。
以每个对象为基础设计出的类图如图4-1.其中:
特征提取类继承CDialog类,其他的类直接继承CObject。
图4-1人脸检测类关系图
Figure4-1Facedetectionclassdiagram
4.1.1实体类分析
实体类主要有图像获取类、预处理类、特征提取类和用户类等。
这几个类之间相互独立,只有当上一个类实例化的对象执行完之后,下一个类实例化的对象才能执行。
下面将依次分析实体类。
1.图像获取类分析
图像获取类主要功能就是待检测图片读取系统中,现设计如下函数,成员变量来完成此功能。
图4-2CDib类类图
Figure4-2TheCDibclassdiagram
Dib文件类主要有2个成员变量和8个成员函数,其中:
⑴成员变量:
bmpFileHeader,用来识别文件的格式;
bmpINFOHEADER,用来读取文件信息。
⑵成员函数
函数GetBiBitCount()返回图片每个像素所占的位数;
函数GetWidth()返回图片宽度;函数GetHeight()返回图片高度;
函数Open()打开相应路径下的BMP文件;
函数Save()保存文件函数;
Colse()将打开的文件关闭。
2.预处理类分析
预处理类主要是为了方便特征提取功能。
现设计如下成员变量和成员函数,以实现该功能。
CSimilarHood预处理类主要包含4个成员变量和4个成员函数:
成员变量:
m_pSourceData用来存储原始图像的像素值;
m_pLikeliHoodArray用来存储每个像素相与肤色相似程度的概率;
m_pBinaryArray用来存储二值化后的信息。
成员函数:
函数CalCbCr()将图片从RGB空间转换到YCbCr空间;
函数CalLikeHood()在YCbCr空间下求出与皮肤相近的概率;
函数filter();对图像进行均值滤波;
函数CalBinary()对求得的相似度图像进行二值化处理。
图4-3CSimilarHood类类图
Figure4-3TheCSimilarHoodclassdiagram
3.特征提取类分析
CFaceDetectDlg特征提取类主要25个成员函数和7个函数。
变量主要分两类:
一类用来确定特征提取是否成功,另一类是存储特征点的信息。
根据字面意思就可以区分主要有:
两个眼睛的眼角和中间位置,两个眉毛的眼角和中间位置,鼻子中间和两边,嘴巴的中间位置和两个嘴角。
函数部分:
函数Load