欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于opencv的人脸检测界面开发大学毕业论文设计.docx

    • 资源ID:11938703       资源大小:1.95MB        全文页数:33页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于opencv的人脸检测界面开发大学毕业论文设计.docx

    1、基于opencv的人脸检测界面开发大学毕业论文设计学号:11*36 本科毕业论文(设计)(20*届)基于opencv的人脸检测界面开发院 系 电子*学院 专 业 通信工程 姓 名 卜* 指导教师 陈* 助教 20*年4月摘 要人脸检测(Face Detection)是一种在任意数字图像中找到人脸的位置和大小的计算机技术。它可以检测出面部特征,并忽略诸如建筑物、身体和其他任何东西。人脸检测技术不仅仅是人脸跟踪、人脸识别、表情识别等技术的重要条件,同时在人机交互、模式识别、视频检索、智能监控等领域也引起了广泛的重视。在通过对人脸检测相关知识进行学习的基础上,本文首先对国内外的人脸检测发展进行了相关

    2、分析,阐述了本课题的研究背景及意义;第二章介绍基于Opencv实现人脸检测的相关方法和检测原理;第三章指出了基于QT平台,人脸检测界面如何开发,需要用到的相关技术知识和操作流程。第四章设计了基于opencv的人脸检测程序,采用了QT开发工具并结合opencv技术对程序界面进行设计实现。关键词:人脸检测;QT开发;Opencv;IAbstractFace detection is a computer technology that identifies human faces in digital images. It can detectfacial features and ignores

    3、omething like buildings,bodies and any other things.Face detection technology is not just an important condition for face recognition, also attracting wide attention in the human-computer interaction, pattern recognition, video retrieval, intelligent monitoring and other fields.Firstly in this paper

    4、, through the study of relevant technology of face detection recognition, and face detection to identify relevant experience in the domestic and abroad are analyzed,indicating the background and the significance of the topic.Based on opencv,the second chapter introduces how to realize the design.The

    5、n the third chapter points outhow to develop face detections interface based on the QT platform; The fourth chapter based on opencv face detection procedures, using opencv, the QT development tools,achieve the design.Key Words:Face detection; QT development; Opencv;IV1 绪论1.1 课题背景及意义1.1.1 课题的背景人脸检测早期

    6、的时候是用来检测人脸中特征点之间的距离、比例等参数作为特征数据参数,建立具备半自动化的人脸检测程式。而早期检测有两个主要研究:基于几何绘制任何脸型之间的距离和角度,以及一些容貌上,眼角、嘴角、鼻尖和部位构成平面拓扑;其次,模板方法模式和利用电脑图像细微的相关性来实现检测功能。在1993年Berto对两类方法进行对分分析后发现,模板匹配法和几何特征方法中前者较为优秀1。对人脸的特征提取与识别可看成是一个3D物体的2D投影图像进行匹配。而人脸实际是个非刚性模型,在不同情况下可能存在一定的弹性形变,如表情、姿势位创造变化与模型检测问题相似。环境因素对提取某种特征识别和有效的。例如,在不同照明条件下的

    7、个人特征也可能发生一些变化。因此在个人特征提取和识别图像识别前将进行某些预处理(标准化)。删除背景,服装及冗余无用甚至有干扰到位置和校准目标灰度可以提高脸部检测效率,面部检测准确率得以提升。1.1.2 课题的意义研究人脸检测在理论和技术上都有重要的意义:一是可以推进对人类视觉系统的认识;二是需要满足人工智能的应用。使用面部检测技术,建立人脸自动检测系统,利用计算机实现自动检测人脸图像具有广泛的应用领域。与其他作为标志识别的方法(如指纹,虹膜,和检测等)相比具有以下优点2:不显眼,图像采集接口需要检测没有身体接触的人,你不能打扰检测人类;成本低,安装方便,只需使用面部识别系统内置的摄像头,摄像设

    8、备可以是普通摄像头,数码相机和手机,对用户没有特殊安装要求;无需人工干预,整个识别过程不要求用户主动参,计算机可以自动通过预先用户设置。由于具有以上优点,近几年来,人脸识别技术引起了越来越多科研人员的关注。1.2 人脸检测的发展现状1.2.1 国内外现状随着图像处理、生物特征、模式识别和各种分类算法等技术的发展而逐步的完善,为我们的生活和工作带来各种各样的便利和安全。近年来,反国内和国际恐怖主义,国家安全和社会稳定的需求,世界各国都加大了对安全,生物验证和识别领域的重视。美国军方研究机构建立人脸检测算法FERET评估标准,统一各种人脸检测和识别标准3。国内在人脸自动识别技术研究相对起步较晚,开

    9、始于上世纪90年代末。有国家自然科学基金会、863计划,还有许多当地的大学,研究机构和IT企业都建立了人脸检测研究小组。主要研究机构有:上海交通大学、西北大学、西安交通大学、同济大学、复旦大学、南京理工大学、南京大学、北京工业大学、武汉大学、华中科技大学、微软亚洲研究院、上海银晨智能识别科技有限公司等4。他们在人脸检测、与特征抽取和人脸检测算法等做了大量有意义的工作,也积累了丰富的经验。我国在此领域的研究和相关系统的开发正进一步跻身世界先进行列。1.2.2 研究难点人脸检测是一个复杂的具有挑战性的模式检测问题,其主要的难点有两方面,一方面是由于人脸内在的变化所引起:人脸具有相当复杂的细节变化,

    10、不同的外貌如脸形、肤色等,不同的面目特征如眼、嘴的张闭等;人脸有无遮挡遮挡,如眼镜、头发以及其它外部物体等。另外由于外在条件变化所引起:由于成像角度的不同造成人脸的多姿态,如平面内旋转、深度旋转以及上下旋转,其中深度旋转影响较大;光照的影响,如图像中的亮度、对比度的变化和阴影等。图像的成像条件,如摄像设备的焦距、成像距离,图像获得的途径等等5。1.3 本文安排本文一共有五个章节。第一章为绪论介绍课题背景及意义,并对人脸检测的发展现状进行分析。第二章介绍Opencv与人脸检测内容。第三章介绍QT平台人脸检测界面的开发需要用到的相关技术。第四章介绍人脸检测的实现。第五章是总结与展望。1.4 本文小

    11、结本章是绪论,主要内容包括课题研究背景及意义以及人脸检测的发展现状。2 Opencv与人脸检测2.1 人脸检测的方法高精度的检测工作一般需要复杂的处理过程,如将图象映射到表面,恢复为三维模型,进行模型匹配等,但基于二维的图象处理也可进行人脸检测,下面介绍常用的几种方法。2.1.1 几何特征法很多人采用几何特征法。例如:一些常见的几何特征,例如人脸形状的局部特性有眼睛,鼻子,嘴等,并在该面的分布函数的面部特征有几何特性。基于检测这些几何特征,鉴定特征向量之间的对应关系,通过欧几里得距离的识别是最常用的方法。眼睛,鼻子,嘴,下巴,不同之处是由于各种形状、尺寸和这些组件的结构,所以通过对形状和结构之

    12、间的几何描述,可以作为检测的重要特征。几何特征通常通过提取人眼,口,鼻和其它重要的特征点的位置作为分类功能的重要器官6。基于少量的存储器几何特征的检测方法也有一些问题:提取物防抖更为困难;改变可能剧烈;导致一些信息丢失,适合于粗略的分类。一种方法是处理一组独立的小模型,如眼睛,嘴巴,鼻子,眉毛和下巴。这些模型必须用于获得每个特征的轮廓,而基于边缘检测的传统方法很难获得一个连续的上边缘。为此,提取特征弹性的方法有其独特的优势。在灵活识别设计特征的形状的基础上,可调节的参数。为了找到这组参数,需要使用图像的边缘,先用来设计一个高峰,山谷的形状及强度的信息和能量。当能量达到最小,这组对应的最适合的形

    13、状模型的形状特征参数调节能量减小。其基本思路是:设计一个可调节的部件模型(即变形模型,如图2-1所示),能量通过调整模型参数定义,使得能量函数最小化,然后将模型参数作为一个实体的几何特性7。图2-1可变形模板方法的眼模型2.1.2 特征脸法这种方法的原理是LDA(Principal Component Analysis 主分量分析法)用于特征选择和降低图象维数,是一种通用方法。因此可以用K-L变换获取其正交K-L基底,对应其中较大特征值的基底具有与人脸相似的形状,因此,又称之为特征脸,得到人脸重要特征之后,要对其进行主成份分析,其具体的算法思想如下8:若抽样参加训练的人脸图像有M张,每张图像的

    14、维数是N*N,则可以分别表示为:x1、x2、x3、x M ,那么平均脸可以表示为: (2-1)每张人脸和平均人脸的距离可以表示为: (2-2)假设矩阵A=d1,d2,d2,d M,特征脸需要做的就是找出矩阵 AAT的前Z个较大特征值中的特征向量,但AAT是一个N2*N2维的大矩阵,求这个矩阵的特征值的计算量是很大的。为此我们可以先求出 AAT的特征值与特征向量,然后求出ui (2-3)uj表示AAT的特征向量,uj表示ATA的特征向量,ni是ATA的特征值,uj就是所指的特征脸。求出特征脸以后,所剩下的工作就是要对库中的人脸进行降维,由uj可以组成一个投影矩阵,表示为W=u1u2,,u Z-1

    15、,并进行降维: (2-4)由上式得出所有人脸向量的降维向量。基于特征脸的识别方法的优点:大大降低了原始空间的维数,在这个低维空间中可进行人脸检测和识别。Pentland等人在人脸检测中使用了特征脸方法,得到的特征脸如图2-2所示:2-2特征脸法缺点:这种方法对光条件变化更敏感。如果是光照条件变化,投影矩阵保留的主要元素变化。因此,在该投影矩阵的点不能非常小。随着技术提高,面部特征可能是标准线性费舍尔( Fisher线性判别,简写FLD )应用于人脸识别。三者相比得出的结论是,除去不在该区域和分类变化的作用,它们将被同等对待。FLD改正LDA缺点,可作为分类类别中的矩阵分布。标准线性分析并不一定

    16、总比LDA更好。当样本量较少时, LDA比FLD更好。在许多领域,特别是在人脸识别领域,人们并不知道不同类别的基本分布情况。他们的实验表明,这种考虑是正确的,在一些实验中,FLD比LDA和FLD效果更好,而在其他测试中FLD比LDA更好9。2.1.3 弹性图匹配法弹性图匹配法(Elastic Graph Matching)是一种基于动态链接结构(Dynamic Link Architecture,DLA)的方法。在两维空间中来制造人类面部属性拓扑,将拓扑置于预先,每个节点包含一个特征向量,其中记录的人脸有关近距离符号几何节点,峰值信息的分布之间的拓扑关系是一个二维拓扑基于接口描述10。利用该方

    17、法进行人脸识别时,可同时考虑节点特征向量匹配和相对几何位置匹配。在待识别人脸图像上扫描拓扑图结构并提取相应节点特征向量,把不同位置的拓扑图和库中人脸模式的拓扑图之间的距离作为相似性度量。此外,可用一个能量函数来评价待识别人脸图像向量场和库中已知人脸向量场间的匹配度,即最小能量函数时的匹配 。 该方法使得几何特征描述越来越充分,保留了人脸的拓扑结构和局部特征,通过局部节点调节和弹性图变形,以及局部特征的多级Gabor变换描述,使得该方法对光照、姿态变化等具有较好的适应性。该方法的主要缺点是计算量较大,必须对每个存储的人脸计算出模型图,占用很大存储空间。2.1.4 神经网络法基于神经网络的人脸检测

    18、方法,近年来较为活跃,研究已应用于人脸识别,表情分析和其他问题,并获得良好的效果。这类方法的人脸采用神经网络分类和能力的学习灰度级的特征进行了鉴定。通常需要考虑两个因素:选择图像输入参数;选择什么类型的神经网络。目前,有两种主要的策略输入中、,第一种特征向量提取作为输入向量,第二个是图像像素直接进入神经网络。这能有效地控制神经网络的基本尺寸,根据一组特征来选择样本方差的特性,但程度和所得的收敛速度慢11。面部识别神经网络还有很多,比如反向传播(BP反向传播的测试)BP神经网络算法。该方法简单,有很强的学习能力,更小的计算量;科特雷尔和其他使用级联识别BP神经网络,人脸识别伤害较好的能力;基于神

    19、经网络的临山等人提出的(概率神经网络的结果,PDBNN)方法,做虚拟样品制备和反加强学习,以获得想要的结果的可能性,估计模块化架构,以加快学习网络的可能性。由于神经网络径向基函数( RBF神经网络, RBF)具有良好的紧凑空间,平整等特点,已经用于人脸检测12。神经网络方法进行人脸检测的优点主要在于可以简便地构造出神经网络系统作为分类器,使用人脸和非脸样本对该系统进行训练,让系统自动学习两类样本复杂的类条件密度,这样就避免了人为假设类条件密度函数所带来的问题。2.2 opencv的应用领域大多数计算机科学家和程序员已经意识到计算机视觉的重要作用。但是很少有人知道计算机视觉的所有应用。例如,大多

    20、数人或多或少地知道计算机视觉可用在监控方面,也知道视觉被越来越多地用在网络图像和视频方面。少数人也了解计算机视觉在游戏界面方面的应用。但是很少有人了解大多数航空和街道地图图像(如Google的Street View)也大量使用计算机定标和图像拼接技术。一些人知道安全监控、无人飞行器或生物医学分析等方面的应用,但是很少人知道机器视觉是多么广泛地被用在工厂中:差不多所有的大规模制造的产品都在流水线上的某个环节上自动使用视觉检测13。Opencv所有的开放源代码协议允许使用者使用OpenCV的全部代码或者OpenCV的部分代码生成商业产品。自从Opencv在1999年1月发布alpha版本开始,它就

    21、被广泛用在许多应用领域、产品和研究成果中。相关应用包括卫星地图和电子地图的拼接,扫描图像的对齐,医学图像去噪(消噪或滤波),图像中的物体分析,安全和入侵检测系统,自动监视和安全系统,制造业中的产品质量检测系统,摄像机标定,军事应用,无人飞行器,无人汽车和无人水下机器人14。2.3 opencv的基本结构Opencv主体模块如图2-1所示。 Opencv的CV模块包含了基本的图像处理功能和先进的计算机视觉算法,MLL模块是机器学习库,包含统计分类器等几种工具,HIGHGUI模块包含图像和视频输入/输出功能。CXCORE包含Opencv的一些基本数据结构和相关函数15。图2-3 OpenCV主体中

    22、的四个模块2.4 opencv检测原理OpenCV中有检测人脸的函数(该函数还可以检测一些其他物体), 甚至还包含一些预先训练好的物体检测文件。所以利用这些已有的东西就可以做出一个人脸检测的程序。主要步骤为:1.加载分类器。用cvLoad函数读入xml格式的文件。文件在Opencv安装目录下的“data/haarcascades/”路径下。2.读入待检测图像。读入图片或者视频。3.检测人脸。2.5 本文小结本章重点介绍了人脸检测的方法以及Opencv相关技术知识。3 QT平台人脸检测界面的开发3.1 QT 的简介Qt是诺基亚开发的一个跨平台的C+图形用户界面应用程序框架。它可以开发一个GUI程

    23、序也可用于开发非GUI程序比如控制台工具和服务器。它提供了应用程序开发人员可以构建所需的最先进用于该局图形用户界面。 Qt是完全面向对象的,易于扩展,并且允许真正的组件编程12。基本上,Qt和花片X窗口上,MFC Openwin,GTK图形界面,如图书馆和Windows平台,OWC,VCL,ATL是同一种东西,但Qt的有以下优点16:(1)很好的跨平台特性Qt支持下列操作系统:Microsoft Windows 95/98,Microsoft Windows NT,Linux,Solaris, SunOS,HP-UX,Digital UNIX(OSF/1,Tru64),Irix,FreeBSD

    24、,BSD/OS,SCO,AIX, OS390,QNX 等等(2)面向对象Qt的良好封装机制使得Qt的模块化程度非常高,可重用性较好,对于用户开发来说是非常方便的。Qt提供了一种称为signals/slots 的安全类型来替代 callback,这使得各个元件之间的协同工作变得十分简单。(3)丰富的APIQt包括多达250个以上C+类,还提供基于模板的collections,serialization, file,I/O device,directory management,date/time类。甚至还包括正则表达式的处理功能。(4)大量的开发文档(5)XML 支持(6)Webkit 引擎的集

    25、成,可以实现本地界面与Web内容的无缝集成(7)用户自定义控件其他的工具包在应用时都存在一个普遍的问题,就是经常没有真正适合需求的控件,生成的自定义控件对用户来说,也是一个黑匣子。比如,在Motif手册中就讨论了用户自定义的控件的问题。而在Qt中,能够创建控件,具有绝对的优越性,生成自定义的控件非常简单,并且容易修改控件。(8)方便性由于Qt是一种跨平台的GUI工具包,所以,它对编程者隐藏了在处理不同窗口系统时的潜在问题。为了将基于Qt程序更加方便,Qt包含了一系列类,该类能够使程序员避免了在文件处理、时间处理等方面存在依赖操作系统方面的细节问题。(9)国际化Qt为本地化应用提供完全的支持,所

    26、有用户界面的文本或字符串都可以利用翻译工具将其翻译成各国语言。(10)高性能的工具对于库来讲,它的有效性远超过应用性。为了提高Qt库的有效性、快捷性,对其进行了优化,Qt能执行一些基本的任务,比如图形的润色,比一般的基于平台的代码要快。Qt是基于Xlib,而不依赖Motif工具包。(11)优越的绘画功能Qt的绘画工具Qpainter类,在任意一个绘画设备上都可以润色图形。绘图设备包括组件、像素映射、图形文件和打印机,相同的代码可以用在4种不同类型的设备上。Qpainter类支持复杂的同等系统的转换,很容易在所有平台上画旋转文本和像素映像。(12)绘制2D/3D图形功能Qt提供了QGLWidge

    27、t类,使用该类能够绘制2D/3D图形。用就像用一个Qt组件一样方便。这比纯粹的OpenGL做的3D图形更好使用。3.2 QT平台的搭建3.2.1 构建QT应用程序的流程1,选择新建工程图3-1选择新建工程2 选择Qt4 Gui Application工程。(带UI界面编辑的工程)图3-2选择Qt4 Gui Application工程3 取工程名例如: C_S_Socket。路径随意,不要有任何中文 Next图3-3取工程名4 默认即可,Next(这是为此次工程选择要添加的头文件。我们不需要其他的功能。默认)图3-4 操作步骤5 Base class 选择QDialog。Class name 改

    28、 MainDlg。 Next(我们是基于Qt界面编程的嘛。所以就选QDialog Qt窗口类噻)图3-5 基本信息填写6 Finish 完成(这里是编辑器告诉我们生成了如下文件)图3-6 完成操作界面3.2.2 编译QT应用程序的方法第一步,将应用程序和Qt库拷贝到同一目录。(Windows下库的搜索先从当前目录开始,然后是在系统PATH环境变量指定的路径查找。)第二步,检查应用程序还依赖哪些dll,如编译器带的dll或其他系统dll。 参见应用程序的依赖关系一节。第三步,验证程序可以在目标系统上正确运行, 将目前包里的文件拷贝到目标系统上,尝试运行程序。第四步,发布插件程序。 插件和普通的动

    29、态库的发布不同, 不能简单的将之拷贝到应用目录里。应用程序在运行时会在其对应的plugins目录下去查找插件。 针对这个例子,发布包应该类似表3-这样的结构:表3-1 发布包结构模块文件名执行档plugandpaint.exeBasic Tool插件plugins/pnp_basictools.dllExtraFilters插件plugins/pnp_extrafilters.dllQt Core模块plugandpaint.exe除了程序和Qt库,还有下面的编译器库:表3-2 编译器库VC+ 6.0VC+ 7.1 (2003)VC+ 8.0 (2005)C运行库msvcrt.dllmsvcr

    30、71.dllmsvcr80.dllC+运行库msvcp60.dllmsvcp71.dllmsvcp80.dll插件的位置除了Qt默认的路径还可以通过代码里调用Qt的API来指定,相应的API是QApplication:addLibraryPath()或QApplication:addLibraryPaths(). 如:qApp-addLibraryPath(”c:/some/path”);上述代码的推荐调用位置是在main函数中,QApplication构造完毕之后。应用程序会在搜索默认路径之后去搜索你指定的库路径14。3.3 开发QT程序的基本流程1 点击maindlg.ui 进入主界面窗体

    31、设计成如下图3-7所示图3-7主窗体设计2 设置各个控件的对象名(不能同名,系统用对象名找到控件。命名规范方便自己识别)服务器单选框:radioButton_Server客户端单选框:radioButton_ClientIP地址框:lineEdit_Address用户名框:lineEdit_Name离开按钮:wayButton进入按钮:enterButton图3-8设置控件对象名3 创建一个窗体类,用于发送接收信息的窗体图3-9 创建窗体类修改类名 例如:chat,下一步完成图3-10修改类名3.4本章小结本章主要介绍QT平台上,人脸检测界面的开发需要用到的相关技术知识和操作流程方法等内容。4 人脸检测的实现4.1 通过Cmake编译opencv1、通过Cmake编译opencv下载所需工具QT5.4.0Qt creator 3.3.0Opencv2.4.5Cmake 2、安装软件3、将C:QtQt5.4.0ToolsMinGWbin加入系统的Pa


    注意事项

    本文(基于opencv的人脸检测界面开发大学毕业论文设计.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开