• 825.54 KB
  • 2022-04-22 13:33:44 发布

人脸检测技术研究及MATLAB实现毕业论文.doc

  • 28页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'西安电子科技大学本科毕业设计·论文人脸检测技术研究及MATLAB实现毕业论文目录摘要IAbstractII1绪论11.1论文的研究历史背景及目的11.2国内外研究现状21.3论文的主要内容安排32人脸检测及其算法简介52.1人脸检测介绍52.2人脸检测的常用方法52.2.1基于特征的人脸检测方法52.2.2模块匹配法的人脸检测62.2.3基于adaboost算法的人脸检测方法73基于视频的人脸检测研究及其实现83.1matlab图像处理工具箱中的视频操作83.2提取AVI视频文件的帧93.3对图像进行肤色特征的人脸检测113.3.1色彩空间及其内容介绍113.3.2对图像进行预处理113.3.3对人脸肤色进行建模1327 西安电子科技大学本科毕业设计·论文3.3.4检测人脸区域的选定143.4图像向AVI视频文件的转换164人脸检测在MATLAB软件下仿真实现184.1设计条件184.2设计流程184.4.1基于视频的人脸检测的总设计模块图184.4.2对图像进行人脸检测具体框图194.3人脸检测的MATLAB实现194.3.1人脸检测运行结果194.3.2人脸检测结果分析215结论22致谢23参考文献24附录251.1论文的研究历史背景及目的近年来,由于视频监控,人机交互和视频检索等应用的需求,视频中的人脸检测研究得到迅速发展。视频中人脸检测可以划分为三个环节:先提取视频文件中的帧,对图像进行人脸检测,再还原成视频,完成视频中人脸的检测。人脸检测最初来源于人脸识别。是指对于任意一副给定的图像,采用一定的策略对其进行搜索以确定其中是否含有人脸,如果是则返回一脸的位置、大小和姿态,并把有人脸的地放识别出来。早期,人脸检测技术主要服务于人脸识别课题的研究;但是,随着生物识别技术的快速发展,入脸检测技术己经被广泛的应用于其它相关领域,产生一定的商业价值。例如:国家军事、安全系统验证、视频会议、人机智能交,27 西安电子科技大学本科毕业设计·论文各类金融卡、身份验证等等方面具有重要的应用价值,所以,现在人们有许多人对人脸识别越来越重视了。人脸检测的研究同时也具有非常重要的的学术价值,人脸是一类具有相当复杂的细节变化的自然结构目标,对此类目标的挑战性在于:人脸由于外貌、表情、肤色等不同,具有模式的可变性;一般意义下的人脸上,可能存在眼镜、胡须等附属物;作为三维物体的人脸影像不可避免地受由光照产生的阴影的影响。因此,如果能够找到解决这些问题的方法,成功地构造出人脸检测系统,将为解决其他类似的复杂模式的检测问题提供重要的启示。人脸检测的目的是检测一张图像是否由人脸,如果有人脸,就把它从图像背景中分离出来,然后对特征进行人脸识别。而在视频中的人脸检测在信息处理中,已经成为是一项相当难突破的技术,越来越受到计算机视觉界的广泛关注,作为这个有价值课题,已经渗透到各不同领域中。1.2国内外研究现状目前,越来越多的国家开始对人脸检测及其识别的研究。并且发展得很快,已经由原来的静态识别到动态识别,由单向多张脸识别,还有从最初的二维脸识别到现在的三围立体的识别。在国内,最早研究人脸检测识别的,当属于中科院计算所跟哈工大的一个联合面像实验室。该实验室教授,直到今天,都一直活跃在人脸识别领域,更可贵的是,在IEEE上面发表了很多paper。这一点,很值得国内的同行学习。后来,该实验室,成为上海银晨的研发中心,专门为上海银晨做技术研发和技术支持。其次是中科院生物识别研究所教授,以及下属的中科奥森公司。当年在微软亚洲研究院的时候,就从事人脸识别方面的研究工作。后来,在中科院组建了专门的人脸识别研究团队。该研究团队,首先提出了基于近红外的人脸识别技术,并将该项人脸识别技术用于08年北京奥运会。同时,基于近红外的人脸识别技术,得到了国际上同行业专家的认同和一致肯定。接着,是清华大学的教授。教授在OCR(字符识别)领域,可谓国内第一人。不过,最近几年转行做人脸识别,也是非常有成就的。不说别的,就只从FRVT2006(美国国家标准研究所2006年全球人脸识别供应商系统性能测试)的测试结果来看,丁晓青教授的研究团队是唯一一个完成大规模3D人脸识别性能测试的参赛团队。由此可见,在国内人脸识别领域来说,她们的算法,在3D领域,绝对排名第一。国外主要有美国、欧洲国家、日本等著名的科研机构有美国的MIT和CMU27 西安电子科技大学本科毕业设计·论文,英国的剑桥大学。在人脸识别领域中,国际上逐步形成了一下几个研究方向:基于几何特征的方法、基于肤色模型的方法、基于模板匹配的方法、基于KL变换的特征脸方法、基于隐马尔可夫模型的方法和神经网络识别的方法等等。它们可以被归类到基于显式特征和基于隐式特征的两大类方法中。发展至今,人脸识别的方法越来越多,最有代表的是基于Haar特征的人脸识别方法是其中较为典型的方法,该算法不仅具有较高的检测率,同时也能够满足实时检测的要求。基于Haar特征的人脸识别方法始于2001年PaulViola和MichaelJones两者撰写的一篇论文,他们在论文中提出了Haar特征和Adaboost算法,并利用它们进行人脸检测。但是此方法只能用于检测正面无旋转的人脸。为此,RainerLienhart等人于2002年对此方法进行了扩展,增加了倾斜特征的定义,此后此方法被扩展到全旋转缩放情况下的人脸检测。自从以上几位学者运用基于Haar特征和Adaboost算法进行人脸检测取得长足进步之后,基于Haar特征的人脸检测方法备受专家学者的青睐,国内外相关内容的研究成果也是层出不穷。1.3论文的主要内容安排本文首先介绍人脸检测的基本内容,介绍人脸检测及其的方法,然后就是基于视频的人脸检测设计及其实现,在这部分中首先从视频中提取视频文件的帧,再对图像进行肤色特征的人脸检测,然后把检测后的图像还再转换成视频,再播放,以达到人脸检测的目的。检测图像是否有人脸,如果有,则把人脸从图像中标识出来达到预想的目的。最后再通过Matlab软件仿真,达到我们人脸检测的目的。本论文的章节安排和主要内容如下:第一章绪论。主要介绍了本文的历史背景,着重介绍了人脸检测技术的研究现状以及国内外研究现状,并明确了本文的工作内容和章节安排。第二章是对人脸检测及其算法的介绍。首先进行人脸检测的介绍;然后介绍了当前国内外用到的人脸检测技术;其次介绍人脸检测的几种方法,当前人脸检测的几种方法,如基于特征的人脸检测,模块匹配的人脸检测,基于统计的的人脸检测和基于adaboost算法的人脸检测方法。对本设计中所用到的关键技术进行重点阐述。第三章介绍基于视频的人脸检测研究及其实现。在这章中首先matlab图像处理工具箱中的视频操作,因为我们首先要对视频进行提取帧的处理,然后27 西安电子科技大学本科毕业设计·论文介绍帧(图像)基于肤色特征的人脸检测的设计。可以分为三大步骤:(1)对图像初步处理。详细利用色彩平衡、光照补偿对人脸图像进行预处理的方法。(2)基于肤色特征的人脸检测。介绍了色彩空间的相关知识,通过肤色分析选择YCbCr色彩空间建立肤色模型,再运用该肤色模型进行了人脸肤色分割,并对图像进行膨胀腐蚀以及平滑操作,得到人脸候选区域,完成对人脸的粗检测。检测完后的图像再进行转化为视频,以达到在视频中检测人脸的目的。第四章,人脸检测的Matlab实现及仿真。并对其进行分析,首先对软件的硬件做了简单介绍;然后从整体上描述基于视频的人脸检测的流程图。展示了人脸检测的实验结果并进行了比较分析。运用编写好的程序对图片进行人脸检测。看是否能达到我们所想要的效果。最后部分是对整个毕业设计工作进行了总结和展望。人脸检测及其算法简介2.1人脸检测介绍人脸检测(facedetection)是指在输入图像中确定所有人脸(如果存在)的位置、大小、位姿的过程。人脸检测作为人脸信息处理中的一项关键技术,近年来成为模式识别与计算机视觉领域内一项受到普遍重视、研究十分活跃的课题。人脸检测(facedetection)问题来源于人脸识别(facerecognition)问题。人脸检测是对给定的图像,判断其中是否有人脸,若有,将所有人脸从背景中分割提取出来,并确定每个人脸在图像中的位置和大小。人脸检测技术可以应用于人脸识别、视频会议、图像与视频检索、刑侦破案和证件验证等领域。人脸检测是对于输入的人脸图像或视频,首先判断其中是否存在人脸,如果存在人脸,则进一步给出每个人脸的位置、大小以及各个主要面部器官的位置信息,并依据这些信息,进一步提取每个人脸中所蕴含的特征,并将其与已知人脸库中的人脸图像进行对比,从而得到识别结果。由此可见,一个完整的人脸识别过程应包括人脸检测与人脸识别两大部分。27 西安电子科技大学本科毕业设计·论文人脸识别由两部分工作组成:(l)人脸检测:在输入的图像或视频画面当中确定存在的人脸位置、尺寸等的过程,这是识别工作的基础课题,在减少算法复杂度等方面对识别工作有关键性影响。(2)人脸识别:通过与计算机相连的摄像头动态捕捉人的面部信息,并把捕捉到的人脸与预先录入的人脸数据库中存储的人脸进行比较识别。人脸检测的基本思想是建立人脸模型,比较所有可能的待检测区域与人脸模型的匹配程度,从而得到可能存在人脸的区域。2.2人脸检测的常用方法随着科学技术的不断发展,人脸检测技术的方法越来越多,如早期的模块匹配法,基于特征的方法,还有中期的神经网络,统计模型,色彩信息,形状分析,还有最近的支持向量法,多模块信息融合,Adaboost算法等,下面我们来介绍这些方法。2.2.1基于特征的人脸检测方法特征是人从肉眼看到的特性,人脸检测基于特征我们可以从肤色,脸部,还有五官特征进行。下面我们来简单介绍这些东西。整体轮廓法:我们知道人的脸看起来有点圆,所以我们可以通过圆形的检测以完成对人脸检测的进行,在前人研究中,有人把人脸分割为三个轮廓区:即头顶轮廓区,左脸轮廓区和右脸轮廓区,检测任何一张图像,先进行边缘区域测试,然后提取脸部特征,最后运用评估函数来检测人脸。肤色检测法:我们知道人脸肤色在去除亮度后具有聚类性,所以人脸的肤色在一定程度上可以把人脸统大部分背景中分离区分出来,因此我们可以运用肤色模型来检测人脸,关于这类方法我们会在第三章中详细介绍。器官分布法:人脸的人和人可以不同,但人脸的大致器官的分布都差不多的,就是人的五官的几何分布。在这方面yang等人提出的mosaic方法,它给出了人脸区域灰度分布的规则,依据这些规则对图像进行筛选,以样本满足这些规则的程度作为检查的依据。也可以先检测器官的位置,然后将这些位置排列组合,运用器官的分布规律进行检测,基本上找到人脸的位置[4]。2.2.2模块匹配法的人脸检测这种方法27 西安电子科技大学本科毕业设计·论文首先要把人脸的模板进行建立并保存,如人的正面人脸或是眼睛,鼻子,嘴巴等。接着利用一些算法来计算各待测区域与标准模板的相似程度(或称相关性),利用这一相似程度来判断某一区域是否为人脸。(1)镶嵌图法(又称为马赛克图):就是将图像划分为一组大小相同的方格,每个方格的灰度为格中各个像素的平均值。镶嵌图特征是指这些块的值应满足的约束规则Yang[6]等人将人脸的五官区域分别划分为和个马赛克块,使用一组规则进行检验,并且利用边缘特征进一步验证。卢春雨等对镶嵌图方法进行了改进,按照人脸器官的分布将人脸划分为个马赛克块,在检测中自适应的调整各块的大小,使用一组基于各块灰度和梯度统计特征的知识规则检验该区域是否为人脸,取得了较好的实验结果。(2)预定模板匹配法:根据人脸的先验知识确定出人脸轮廓模板以及各个器官特征的子模板,先通过计算图像中区域和人脸轮廓模板的相关值来检测出人脸候选区域,然后利用器官特征子模板验证上一步检测出的人脸候选区域是否包含人脸。采用“双眼一人脸”模板,将平均脸的双眼模板剪裁出来,滤波时先使用双眼模板再使用人脸模板,用以提高匹配速度并取得更好的性能。将人脸图像二值化后得到人脸轮廓,然后与模板库中的人脸模板匹配,根据图像与模板之间的Hausdroff距离及相关闭值判定取舍。这种方法的缺点在于不能有效处理尺度、姿态和形状的变化。(3)变形模板法:其主要思想是定义一个可变形的参数模板和一个能量函数来描述特征,通过一个非线性最优化方法求得能使能量函数最小的参数模板,此模板即被认为是所求特征的描述。Yullie等人提出来基于弹性模板的方法用于人脸的检测。当用弹性模板进行人脸检测时,将可调模板在待检测图像中移动并动态的调整其参数,计算能量函数。当能量函数达到最小值时,根据其位置和参数所决定的可调模板形状应该达到与人脸形状的最佳拟合,由此检测到人脸。这种方法的优点是由于使用的弹性模板可调,能够检测不同大小、具有不同偏转角度的人脸。但缺点是检测前必须根待测人脸的形状来设计弹性模板的轮廓,否则影响收敛的效果;当对图像进行全局搜索时,由于要动态的调整参数和计算能量函数,计算时间过长[8]。2.2.3基于adaboost算法的人脸检测方法前面我们已经介绍了基于特征和和模块匹配的的方法,接下来我们介绍有关人脸识别的另一种方法,那就是基于adaboost算法,来检测人脸位置,真正实现人脸识别的目的。27 西安电子科技大学本科毕业设计·论文Adaboost算法是将大量的分类能力弱的弱分类器通过的特定的方法组合起来,构成一个强的分类器。目前基于haar特征的Adaboost算法比较受广大学者的欢迎,关于其具体算法,在这里就不必做详细的说明[9]。27 西安电子科技大学本科毕业设计·论文3基于视频的人脸检测研究及其实现在日常生活中,基于视频的人脸检测与跟踪作为人脸信息处理中的一项关键技术,在基于内容的图像检索、视频会议、可视电话、远程视频监控以及人机交互等方面都有着很重要的应用价值。在实际应用中,由于客观因素的影响,如人脸本身复杂的细节变化、人脸多姿态、各种遮挡、光照不均匀、以及复杂背景时,人脸检测和识别普遍存在计算量大、速度慢、鲁棒性差的弱点.所以我们可以采用提取视频文件的帧,然后对图像进行肤色检测,再把检测过的图像还原成视频,然后播放视频,以基本上完成了视频下的人脸检测。3.1matlab图像处理工具箱中的视频操作图像文件格式有多种,包括BMP,JPEG和PNG等,MATLAB都提供支持,可以直接读取这些文件。视频也有许多种格式可以从不同的角度进行分类。最常见的是没有压缩的视频文件是YUV,它是由相互关联的若干帧静态图像所组成的图像序列。由于视频的数据量大,通常以压缩后的形式进行存储和传输,压缩后的视频可以分为两大类:一类是面向存储的,包括avi mpg mpeg rm 等;另一类是面向流式媒体的,在在线实况和流媒体电影等中应用广泛。下面我们重点介绍AVI AVI—AudioVideoInterleave,即音频视频交叉存取格式。1992年初Microsoft公司推出了AVI技术及其应用软件VFW(VideoforWindows)。在AVI文件中,运动图像和伴音数据是以交织的方式存储,并独立于硬件设备。这种按交替方式组织音频和视像数据的方式可使得读取视频数据流时能更有效地从存储媒介得到连续的信息。构成一个AVI文件的主要参数包括视像参数、伴音参数和压缩参数等。AVI文件用的是AVIRIFF形式,AVIRIFF形式由字符串“AVI”标识。所有的AVI文件都包括两个必须的LIST块。这些块定义了流和数据流的格式。AVI文件可能还包括一个索引块。只要遵循这个标准,任何视频编码方案都可以使用在AVI文件中。这意味着AVI有着非常好的扩充性。这个规范由于是由微软制定,因此微软全系列的软件包括编程工具VB、VC都提供了最直接的支持,因此更加奠定了AVI在PC上的视频霸主地位。由于AVI27 西安电子科技大学本科毕业设计·论文本身的开放性,获得了众多编码技术研发商的支持,不同的编码使得AVI不断被完善,现在几乎所有运行在PC上的通用视频编辑系统,都是以支持AVI为主的。AVI的出现宣告了PC上哑片时代的结束,不断完善的AVI格式代表了多媒体在PC上的兴起。说到AVI就不能不提起英特尔公司的Indeovideo系列编码,Indeo编码技术是一款用于PC视频的高性能的、纯软件的视频压缩/解压解决方案。Indeo音频软件能提供高质量的压缩音频,可用于互联网、企业内部网和多媒体应用方案等。它既能进行音乐压缩也能进行声音压缩,压缩比可达8:1而没有明显的质量损失。Indeo技术能帮助您构建内容更丰富的多媒体网站。目前被广泛用于动态效果演示、游戏过场动画、非线性素材保存等用途,是目前使用最广泛的一种AVI编码技术。现在Indeo编码技术及其相关软件产品已经被LigosTechnology公司收购。随着MPEG的崛起,Indeo面临着极大的挑战。下面就简单介绍几种常用的函数AVIREAD()AVIREAD()函数的功能是读/写一个AVI文件到MATLAB视频结构中。它的使用语法如下。MOV=AVIREAD(FILENAME)其中,参数FILENAME是生成的AVI文件的文件名称,如果没有扩展名,系统将会自动默认其扩展名为avi,而返回值MOV有两个字段:cdata和colormap。ADDFRAME()ADDFRAME()函数的功能是添加单一的视频到AVI文件中。他的使用语法如下。AVIOBJ=ADDFRAME(AVIOBJ,FRAME)添加FRAME中的数据到使用FRAME创建的AVIOBJECT中去。FRAME既可以是一个索引图像,也可以是一个真彩色图像。如果FRAME不是添加到AVI文件的第一帧,它是维数必须和前面的帧一致。3.2提取AVI视频文件的帧类似地,也可以编写一个简单的函数avi2bmp(),将AVI文件红的视频帧单独存储为JPG格式的静止图像。函数的MATLAB代码如下。mov=aviread(example.avi)mov=aviread("example.avi")27 西安电子科技大学本科毕业设计·论文mov=avireadmov=aviread("example1.avi")temp=size(mov)temp=size(mov)fori=1:20,strtemp=strcat(exmbmp,int2str(i),".jpg");imwrite(mov(i).cdata(:,:,:),strtemp)endimshowimshow("exmbmp20.jpg")clcimshow(f)效果图如下:27 西安电子科技大学本科毕业设计·论文图3-1为提取出来的20张图像以上为AVI文件转换为JPG图像对上述avi2bmp()函数稍作修改,即可将AVI文件中的视频的帧单独存储为BMP,PNP等格式的静止图像。3.3对图像进行肤色特征的人脸检测3.3.1色彩空间及其内容介绍色彩空间“色彩空间”一词源于西方的“ColorSpace”,又称作“色域”,色彩学中,人们建立了多种色彩模型,以一维、二维、三维甚至四维空间坐标来表示某一色彩,这种坐标系统所能定义的色彩范围即色彩空间。我们经常用到的色彩空间主要有RGB、CMYK、Lab等。本文主要介绍RGB色彩空间的相关知识。RGB色彩空间RGB,就是红、绿、蓝(red、green、blue)的缩写。RGB色彩空间可以表示所有颜色,因此应用十分广泛。在RGB模式中,图像中每一个像素点的RGB分量的强度值都可从0(黑色)到255(白色)变化。三种颜色按照不同的比例混合,将各种色彩表现出来,这一道理十分易于理解。将图像由RGB色彩空间转换到rgb色彩空间rgb模型的转换公式为YCbCr色彩空间对于YcbCr色彩空间我们可能不太熟悉,我们下面介绍一下,它是一种常见的颜色模型,在电视视频传输中经常用到,它的优势是占用的带宽及存储资源较少。YCbCr是CCIR601编码方案中采用的彩色表示模型,在电视盒的色彩显示等领域中应用较多。在此色彩空间中,Y是亮度,即灰度值,Cb和Cr是色度信息,它同样具有HIS27 西安电子科技大学本科毕业设计·论文格式中将亮度分量分离的特点。它可以由RGB格式经线性变化得到,因此很少直接应用于物体色彩的聚类分析,而在其基础上的变换模型应用则更为普遍。RGB各分量通过线性变换即可得到YCbCr色彩空间的系数,如公式3-2所示。不同于HSV,YCbCr的亮度分量并不完全独立于色度信息,Y不同的情况下,肤色的聚类区域随之呈非线形变化。(3-2)3.3.2对图像进行预处理在现实生活中我们知道,获取人脸图像有着不可变化的复杂性,会受到很多因数的影响,如光照,时间、地点、设备、各类技术参数等变化,使得我们对获取图像中的人脸信息造成影响。还有一些隐性的因素,如我们在摄影摄像的过程中经常遇到的饱和度不足、过饱和、偏色等现象都是这种差异干扰的实例。正是因为这样,为了消除光照等不确定因素对图像中肤色的影响,我们必须在进行人脸检测前进行色彩平衡、光照补偿等预处理操作。[9]对图像进行色彩平衡首先在检测的图像中,我们要消除来自图像色彩的干扰,就要调整色彩度的变量,所以我们要先对图像进行色彩平衡的处理操作。色彩平衡处理的实现,是利用输入图像中的RGB三个分量的平均值averR,averG,averB,算出这三个分量的总平均值,公式如下:(3-3)随后,将所有像素的分量值乘以总平均值和相应分量平均值的比值,即完成图像中所有像素分量值的统一化,这就很好的的对检测图像进行色彩平衡操作。为什么要这样做呢?因为检测中图像的色彩的是既是变化无常,也是相互独立的,所以我们必须先对图像进行色彩平衡,而运用公式计算出的平均值应该是接近于图像的像素值的。光线补偿27 西安电子科技大学本科毕业设计·论文为什么我们要对图像进行光线补偿?因为在现实生活中因为光照强度、光源色彩、图像获取设备的数值偏差等因素可能都会对待测图像中的肤色信息的影响。。在这里我们可以通过亮度来进行调节。通过将图像亮度灰度范围内的两端区域进行压缩,降低过亮和过暗区域的对比度;再用对数函数做非线性变换函数,使变换后图像的对比度增加。该方法能够对过亮、过暗以及中间区域的像素灰度值进行修正,为后续的肤色分割、人脸检测奠定基础。关于补偿系数公式为:(3-4)其中,N为亮度值排在前面的像素总数,为包含有这些像素的像素集合,Y为这些像素的亮度值。图像中余下像素的亮度值均与此补偿系数相除,再进行对比度的拉伸,使得剩余像素的色彩值都按照“参考白”的尺度统一调整变换。3.3.3对人脸肤色进行建模(1)选择了YCbCr色彩空间在研究中我们会发现,人和人的脸部肤色差别在于亮度值,而不是别的色度值。如果我们能够选取合适的色彩空间,完全分离并去除掉亮度因素,将肤色在单纯的色度范围内进行统计,那么肤色的分布将产生明显的聚类特性。以此为依据建立肤色模型,就能有效避免光照的可变性对肤色的影响,无论图像是在何种光照条件下获取的,我们都能依据肤色在纯“色度”范畴内的聚类特性进行准确的肤色分割和区域提取。在色彩空间变换中,肤色分布聚集在一个较小的区域内,形成了明晰的聚类特性。肤色在YCbCr空间下聚集得更紧密,聚类性更强。其优点是亮度Y和色度Cb、Cr分离,这是不同于RGB的典型特征。更重要的是,在数学上,YCbCr可以直接通过线性变换从RGB得到,这就大大提高了计算效率,而且不会产生奇异点。相比较之下,RGB与HSV之间的转换需要经过非线性变换,算法复杂费时,而且HSV空间中存在有奇异点。所以,YcbCr色彩空间在肤色建模方面比较实用。所以我们我们才选择了YCbCr色彩空间进行肤色的建模。(2)建立高斯模型27 西安电子科技大学本科毕业设计·论文根据彩色图像像素属于肤色模型的可能性的大小,来表示灰度的大小,将一幅彩色图像转变为灰度图像,灰度值对应于该点属于皮肤区域的可能性,根据肤色在色度空间的高斯分布,得到高斯分布的中心,然后根据图像所有像素离该中心点的远近计算肤色的相似度,得到肤色相似度灰度图。高斯模型不是一般的二值肤色像素定位,而是通过计算像素的概率值构成连续的数据信息并得到一个肤色概率图,根据数值大小来完成肤色的确认。它克服了几何模型的缺点,同时不必考虑神经网络模型中关于非肤色样本难以准确提取的问题。用以下二维高斯型函数来表达肤色分布:(3-5)其中:x为样本像素在YCbCr颜色空间的值,M为肤色在YCbCr颜色空间的样本均值,C为肤色相似度模型的协方差矩阵。(3)肤色区域的处理在人脸检测中,我们要图像处理,而人脸的肤色分割就是其中一个必不可少的步骤。在本文中,我们选用图像阈值分割方法分割出肤色区域。阈值的选取很重要,过低会使肤色的数量增加,过高则会使过多的肤色点被误认为背景,二者都会影响后续检测的效果。因此,能够依据待检测图像本身自动优选阈值就显得非常重要和必要。经过分析比较,本文最终选用由Otsu提出的最大类间方差阈值分割算法,它是在最小二乘法原理基础上推导出来的,其基本思路是将直方图在某一阈值处理分割成两组,当被分成的两组的方差为最大时决定阈值。对于输入系统的图像,系统会依据肤色特征测算所有像素的肤色相似度,并建立相似度直方图,然后按照该算法计算出最佳阈值,进行图像的二值化,将肤色区域分割为白色,将非肤色区域分割为黑色。(4)对图像进行形态学处理形态学图像处理的基本操作包括4个方面:即膨胀,腐蚀,开操作和闭操作,以得到干净整洁的肤色分割图。3.3.4检测人脸区域的选定经过肤色分割和形态学处理之后,我们会得出原图像的二值化图像,其中白色区域就是肤色区域。这样我们就完成了对候选人脸区域的选定。程序部分代码如下:27 西安电子科技大学本科毕业设计·论文(1)将RGB空间转换为YCbCr空间。f=rgb2ycbcr(f);(2)将彩色图像转换为灰度图像,皮肤颜色在YCbCr色度空间的分布范围为:100<=cb<=127,138<=cr<=170,可以将彩色图像转换为二值图像。f_cb=f(:,:,2);f_cr=f(:,:,3);f=(f_cb>=100)&(f_cb<=127)&(f_cr>=138)&(f_cr<=170);(3)中值滤波和形态学操作:使用中值滤波和开闭运算的方法消除噪声。K=medfilt2(f,[55]);%5×5中值滤波,去除噪声se=strel("square",3);f=imopen(f,se);f=imclose(f,se);(4)对图像进行重构,即利用重构进行开运算,可准确恢复腐蚀后的对象形状。fe=imerode(f,ones(8,7));fo=imopen(f,ones(8,7));f=imreconstruct(fe,f);(a)原彩色图像(b)肤色分割后的图像(c)形态学处理后的图像图3-2肤色分割以及形态学处理效果图图3.2是人脸图像经过肤色分割,再进行形态学处理的效果图。在图中,白色区域即为肤色区域,黑色区域即为非肤色部分。我们可以看出原图像中人体的肤色区域以及背景中的类肤色区域都被分割出来了,对图像进行肤色分割27 西安电子科技大学本科毕业设计·论文和形态学处理后,再根据模块匹配的原则,进行对人脸的检测。其程序部分代码如下:fori=1:num;[r,c]=find(L==i);r_temp=max(r)-min(r);c_temp=max(c)-min(c);temp=size(r);sum=sum+temp(1);area_sq=r_temp*c_temp;area=size(find(L==i),1);ratio=area/area_sq;if(r_temp/c_temp<0.8)|(r_temp/c_temp>2)|temp(1)>2000|temp(1)<200|ratio<0.6检测的效果图如下:27 西安电子科技大学本科毕业设计·论文图3.3为人脸检测后的20张图像3.4图像向AVI视频文件的转换前面我们已经对图像运用肤色特征的方法进行了人脸检测,得到了一张张检测了图像,那接下来,我们就要对图像向AVI视频文件的转换,以完成视频的最终处理,然后播放出来。视频是由连续帧组成。可以编写一个简单的函数jpg2avi(),将多帧的jpg格式的静止图像自动地转化为AVI文件。函数的MATLAB代码如下。Functionjpg2avi(framestart,frameend,sourcefile,avifile)%参数说明:%sourcefile—jpg文件的共同的文件名%framestart—待转换的jpg文件名中的起始编号%frameend—待转换的jpg文件名中的终止编号%avifile—转换后的AVI文件名%%创建AVI文件,并设置其参数Aviobj=avifile(aviname);Aviobj.Quality=100Aviobj.compression=None;%将命名为1sourcefile,2sourcefile,3sourcefile,4sourcefile…的jpg文件转换为AVI文件在MATLAB工作目录下准备20张相同的分辨率的jpg文件,假设文件名依次为10jpgfile.jpg11jpgfile.jpg,,,,29jpgfile.jpg.在MATLAB命令窗口输入以下语句:jpg2avi(0,29,‘jpgfile,jpg’avinanme.avi);27 西安电子科技大学本科毕业设计·论文该语句可将这些jpg文件转换为一个名为avinanme.avi的AVI文件,并使用暴风影音播放。27 西安电子科技大学本科毕业设计·论文4人脸检测在MATLAB软件下仿真实现4.1设计条件(1)硬件条件①计算机要能满足MATLAB的运行的基本条件②CPU:1GHZ及以上;内存:256MB及以上。(2)软件环境①能够满足该软件的可靠性,可用性和安全性的要求。②配置有持续工作能力、高稳定性、高度可集成的开放式标准的操作系统,如WindowsXP/Vista/7等。③配备符合ANSI/ISO标准的高级程序设计语言处理软件。如:VisualC++6.0,另外有图像处理软件Matlab7.0或者MatlabR2009b版本。4.2设计流程本文设计主要由两大模块设计系统组成:先从视频中提取帧,然后对帧进行检测。下面主要介绍了本设计具体的人脸检测设计流程。4.4.1基于视频的人脸检测的总设计模块图提取视频文件的帧完成视频的人脸检测将检测后的图像转换成视频对图像进行肤色特征的人脸检测图4.1基于视频的人脸检测的总设计模块图下面就对各模块功能目的进行介绍:提取视频文件的帧:主要目的是把动态视频转化为看做是静态图片的一张张帧,这就把复杂动态难以检测的视频分解出来,为后续的图片检测做好准备。对图像进行肤色特征的人脸检测:主要目的是对图像进行处理,包括色彩平衡,肤色建模和形态学处理等。27 西安电子科技大学本科毕业设计·论文将检测后的图像转换成视频:把处理后的图像再转化为视频,然后播放,以完成视频里的人脸检测。完成视频的人脸检测:通过暴风影音,播放出来,能否达到预期的效果。4.4.2对图像进行人脸检测具体框图色彩平衡光线补偿(直方图均衡化)色彩空间选择肤色建模形态学处理得出人脸检测结果输入图像人脸检测图4-2对图像进行人脸检测具体框图4.3人脸检测的MATLAB实现本文通过对matlab编程,从而给出一个运算速度很快的人脸检测matlab程序,其中包括视频文件转化为帧的程序编写,还有利用肤色特征对图像进行人脸检测的程序编写,最后是图像转化为视频的程序的编写。4.3.1人脸检测运行结果(1)提取AVI视频的文件的帧27 西安电子科技大学本科毕业设计·论文先在matlab输入一段AVI视频,然后对其进行编写程序,实现提取AVI视频的文件的帧的功能。仿真效果图如下:(a)AVI帧的播放(b)帧的图像图4-3为帧的播放截频图及其图像(2)人脸检测部分效果图图4-4为单张脸检测效果图(3)多张脸检测效果图27 西安电子科技大学本科毕业设计·论文检测率:75%漏检率0%误检率:25%图4-5为多张脸检测效果图4.3.2人脸检测结果分析通过对上述人脸检测分析,我们知道基于肤色的人脸检测:这种检测方法相对比较好,首先通过肤色分割排除非肤色区域,再结合人脸所在图像中的像素比排除非人脸的肤色区域,最后再通过算法检测实现人脸的准确标记。这种方法对张脸的检测效果还可以,但对多张脸的检测会有一些误差,从总体上看,当然,这种方法还是有很多缺陷,比如当图像的背景比较复杂或者人脸有肤色的情况下,检测效果就不理想,检测率只能达到75%。这也是以后的研究中需要改进的地方。通过对上述检测,然后再把检测后的图像转化为视频播放,基本上实现了基于视频的人脸检测的功能,虽然方法没有什么较大的错误,但在技术上有待加强。27 西安电子科技大学本科毕业设计·论文5结论在大量阅读有关人脸检测的论文和书籍的基础上,实现了人脸检测系统。本文系统地阐述了该系统基本上实现基于视频的人脸检测。首先先提取视频文件的帧,然后再对其进行图像检测,再还原成视频。而在图像检测中,我们解决了如何将肤色信息应用到人脸检测中去。提出了将肤色检测作为人脸检测的方案,提高了人脸检测的正确率,降低了漏检率率。本文主要设计工作如下:(1)提取视频文件的帧,(2)对图像进行基于肤色特征的人脸检测(3)将检测后的图像还原视频,并播放。总体来说,由于本文中人脸检测出现误检的情况,以下几个方面需要继续研究和改善:(l)运用自适应光照补偿方法,对图像进行更好的光照补偿,以便后续处理。(2)运用自适应肤色分割方法以便更好的分割出肤色区域提高检测人脸的准度。(3)针对背景复杂及有遮挡的人脸提出更好的检测方法27 西安电子科技大学本科毕业设计·论文致谢在论文即将完成之际,也预示着我大学生涯告一段落,首先我要感谢帮助过我的老师、同学和朋友们,感谢你们陪我度过这一难忘的历程。首先我要感谢是的蒋中正老师,他那的治学态度、脚踏实地的工作态度、乐观求实的生活态度、宽容随和的待人风格和忘我的奉献精神,感染了我,同时也感动了我,从论文的选题,到最后的定稿都离不开你精心的指导。感谢所有我们系院的的老师们,感谢他们在这段毕设时间对我的指导和关怀。感谢电信08-2班的同学、对我学习上给予和帮助。感谢我的父母和所有亲朋好友对我学习和生活上给给予帮助感谢所有帮助和支持过我的人,祝你们万事如意27 西安电子科技大学本科毕业设计·论文参考文献[1]精通MATLAB6.5版张志涌等编著北京航空航天大学出版社[2]MATLAB与外部接口苏金明等编著电子工业出版社、[3]蒋贵生等.人脸检测技术研究[J].电子学报,2001,12(1):94-102.[4]梁路宏,艾海舟,肖习攀,等.基于模板匹配与支持矢量机的人脸检测[J].计算机学报,2002,25(1):22-29.[5]、PKrishnanNallaperumal,SubbanRavi,PCNelsonKennedyBabu,etal.Skindetectionusingcolorpixelclassificationwithapplicationtofacedetection:acomparativestudy[C].ProceedingsoftheInternationalConferenceonComputationalIntelligenceandMultimediaApplications,2007.[6]、姜军,张桂林.一种基于知识的快速人脸检测方法[J].中国图象图形学报,2002,7(1):6-10[7]、YangMing-Hsuan,KriegmanDJ,AhujaN.DetectingFaceinImages:ASurvey[J].PatternAnalysisandMachineIntelligence,24(1),2002:34-58.[8]叶艳芳等,一种基于肤色和模板匹配的人脸检测方法,重庆工学院学报[9]曾宪贵等,基于颜色和模板匹配的人脸检测,计算机工程与设计27 西安电子科技大学本科毕业设计·论文附录肤色分割代码:functionbwycbcr=skincut(imgrgbfile)imgrgb=imread(imgrgbfile);imgrgb3=rgb2ycbcr(imgrgb);[m,n,size1]=size(imgrgb);y=imgrgb3(:,:,1);cb=imgrgb3(:,:,2);cr=imgrgb3(:,:,3);%====%在Ycbcr色彩空间中分割肤色区域,cb=double(cb);cr=double(cr);y=double(y);bwycbcr=zeros(m,n);fori=1:mforj=1:nify(i,j)<125cb1=108+(125-y(i,j))*10/109;cr1=154-(125-y(i,j))*10/109;wcb=23+(y(i,j)-16)*23.97/109;wcr=20+(y(i,j)-16)*18.76/109;cb1=(cb(i,j)-cb1)*46.97/wcb+cb1;cr1=(cr(i,j)-cr1)*38.76/wcr+cr1;elseify(i,j)>188cb1=108+(y(i,j)-188)*10/47;cr1=154+(y(i,j)-188)*22/47;wcb=14+(235-y(i,j))*32.97/47;wcr=10+(235-y(i,j))*28.76/47;27 西安电子科技大学本科毕业设计·论文cb1=(cb(i,j)-cb1)*46.97/wcb+cb1;cr1=(cr(i,j)-cr1)*38.76/wcr+cr1;elsecb1=cb(i,j);cr1=cr(i,j);endx1=[-0.8190.574]*[cb1-109.38;cr1-152.02];y1=[-0.574-0.819]*[cb1-109.38;cr1-152.02];if(x1-1.60).^2/644.6521+(y1-2.41).^2/196.8409<=1bwycbcr(i,j)=1;elsebwycbcr(i,j)=0;endendendimshow(bwycbcr)27'