人脸检测系统课程设计.doc_第1页
人脸检测系统课程设计.doc_第2页
人脸检测系统课程设计.doc_第3页
人脸检测系统课程设计.doc_第4页
人脸检测系统课程设计.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

人脸检测系统课程设计 专 业: 数字图像处理 班 级: 110404 学生姓名: 胡溥宇 学 号: 20111612 人脸检测系统课程设计一课程设计目的(1)建立人的肤色模型;(2)标定人脸区域;二课程设计背景随着科技的发展,传统的身份鉴定方法,如身份证和信用卡,开始让人们感到不便。其携带不便,易丢失,甚至有时可能会忘记了必须的密码,以及密码被识破等等,这些问题到会给人带来困扰和麻烦。人们需要一种新的可靠的身份鉴别,一种不可能遗失而且具有其特性的身份证明。这就是人脸、指纹、虹膜、声音等等的生物特征。由于人脸特征是一种更直接、更方便的识别方式,近年来以人脸为特征的识别技术迅速地发展起来。目前,越来越多的学者研究人脸识别这一课题,人脸检测技术受到了学术界和工业界越来越多的关注。人脸识别是一种特定内容的模式识别问题。从广义上来说,人脸识别有两个主要的过程:人脸检测和人脸分类。人脸检测主要研究的是:在一幅图像上,检测出有无人脸存在。如果存在人脸,则判断出人类的位置和大小。简单地说,就是对一幅图像进行检测,并将其划分为存在人脸的区域和不存在人脸的区域。人脸分类是在人脸检测的基础上进一步分析获得的人脸区域,对其进行识别分类。因此,人脸分类主要研究的是:对获得的人脸区域进行比较判别,区分它们脸型、表情、性别、种族和身份等等。因此,在整个人脸自动识别系统中,人脸检测是第一步,也是极其重要的一步。人脸检测技术有着十分重要的作用,为后续步骤人脸分类提供了识别人脸的具体详细的有用信息。人脸自动识别系统不仅能够作为人们身份鉴证,而且它能运用在学多不同的地方,如用于视频电话、监视与监控等场合的人脸实时检测跟踪。在国内,八十年代末和九十年代初,人脸检测问题开始吸引了越来越多的研究者的关注,又越来越多感兴趣的研究人员进行探索,取得了一些有意义的研究成果。早期的人脸检测集中对空间域上静止图像的人脸检测为研究。中期开始采用模板的方法,通过建立人脸模型,可以实现在视频图像序列中进行人脸检测。而近期,许多研究人员采用的研究方法各自不同,有采用建立复杂模型的,有从空间域上进行研究的,有在频域上进行研究的,有将一些技术结合在一起研究的,有应用最新的分类决策进行研究的。不论采用和种研究方法,将多种技术结合在一起,利用多种信息可以提高人脸检测方法的效率。国内的研究单位主要是清华大学、哈尔滨工业大学、北京工业大学、中科院计算机所、中科院自动化所、复旦大学、南京理工大学等等,获得了一定的成果。清华大学研究人员提出了基于彩色和特征的自适应人脸检测的方法,还提出了一种基于多模板匹配的单人脸检测的方案。哈尔滨工业大学的研究人员实现了一个复杂背景下的多极结构的人脸检测与跟中系统,能够检测平面内多姿态正面人脸和跟踪任意姿态的运动人脸。北京工业大学的研究人员提出了人脸重心模板这一新技术并运用这一技术建立了一个复杂背景中检测人脸的系统。在国外,如美国、欧洲国家、日本、韩国等许多国家也展开了对人脸检测的研究。以下介绍几种目前的研究方法为:1.模板匹配方法,先设计一个或几个参考模板,计算测试样本与参考模板之间的某种度量,再使用门限值来判断是否为人脸区域。2.基于器官特征的方法,先提取人脸器官图像特征,然后根据人脸中器官的几何关系来确认人脸是否存在。3.使用神经网络的方法,先对人脸样本集和非人脸样本集聚类,以测试样本与人脸样本集和非人脸样本集的子类之间的距离作为识别特征向量,利用多层感知器网络作为分类器。4.基于彩色信息的方法,人脸的肤色在彩色空间中的分布相对比较集中,利用这个特点检测图像的人脸区域。5.频域中的特征提取方法,在人脸检测领域,通过将图像变换到频域上,可以根据频率特性,或提取人脸的特征区域,或获取整个人脸的频域描述特征量来作为分类决策器输入,从而对图像进行人脸区域的划分。3 人脸检测系统设计 3.1 技术背景 3.1.1 RGB彩色模型 在RGB彩色模型中,每一种颜色都是由红(Red,记为R)、绿(Green,记为G)、蓝(Blue,记为B)三种颜色所表示,如白色表示为:R=G=B=1,黑色表示为:R=G=B=0。在一幅RGB图象中,每一个像素点所表示的色彩都是由这三个分量构成的,即由三幅分别表示红、绿、蓝亮度的灰度图像所表示而成的。RGB彩色立方体示意图如下图所示。图2.1 RGB彩色立方体示意图在图2.1的坐标系里,RGB彩色模型可以用一个三维的立方体来表示,坐标原点代表黑色(0,0,0),坐标顶点代表白色(1,1,1),坐标轴上的三个立方体顶点分别表示R、G、B三个基色,而剩下的三个顶点则表示每一个基色的补色,它们分别由同一平面上的两个相邻的顶点加色混合而成。从黑色原点到白色顶点的主对角线上的所有色彩,是无彩色系的灰度颜色。 RGB彩色模型是数字色彩最典型、也是最常用的色彩模型。它属于加色法混合,是一种光源色的混合模式。与它互补的色彩模型是CMY彩色模型。R、G、B三色是常用的光的三原色,是计算机显示器及其它数字设备显示颜色的基础。因此,RGB彩色模型使用在用计算机进行主要电子显示色彩的情况下。RGB彩色模型采用的是DIE 三维色彩空间,R、G、B三种颜色的色彩数值从 0255, 共256极。0 表示色彩强度最弱的状态,呈黑色;255表示色彩强度最强的状态,呈最饱和色。当三种颜色的色彩数值都是0时,它所表现的区域就呈黑色;当三种颜色的色彩数值都是255时,它所表现的区域就呈白色。现在,RGB彩色模型不仅使用于许多计算机显示设备中,而且也使用于一些图片储存和压缩中。 3.1.2 HSV彩色模型HSV彩色模型是从CIE三维颜色空间演变而来。在HSV彩色模型中,每一种颜色都是由色相(Hue,简H),饱和度(Saturation,简S)和色明度(Value,简V)所表示的。HSV彩色模型是一个倒立的六菱锥,如图2.2所示,不含黑色的纯净颜色都处于六菱锥顶面的一个色平面上。在HSV六菱锥色彩模型中,色相H处于平行于六菱锥顶面的色平面上,它们围绕中心轴V旋转和变化,红、黄、绿、青、蓝、品红六个标准色分别相隔60度。色彩明度沿六菱锥中心轴V从上至下变化,中心轴顶端呈白色V = 1,底端呈黑色V = 0,它们表示无彩色系的灰度颜色。色彩饱和度S沿水平方向变化,越接近六菱锥中心轴的色彩,饱和度越低。六边形正中心的色彩饱和度为零S = 0,与最高明度的V = 1相重合,最高饱和度的颜色则处于六边形外框的边缘线上S = 1。由于HSV颜色模型所代表的颜色域是CIE色度图的一个子集,它的最大饱和度的颜色的纯度值并不是100。需要注意的几处是,在圆锥的顶点处,V=0,H和S无定义,代表黑色,圆锥顶面中心处S=0,V=1,H无定义,代表白色,从该点到原点代表亮度渐暗的白色,即不同灰度的白色。任何V=1,S=1的颜色都是纯色。图2.2左边的六凌锥图为HSV彩色模型的立体示意图,中间的为六凌锥的侧截面图,右边的为顶角图HSV色彩模型在计算机软件里常用HSB色彩模式来表示,跟HSV色彩模型一样,H表示色相,S表示色彩饱和度,B表示色彩明度(相当于V)。最直观的表示法是corel DRAW 中的“CMYK 3D减色法”。HSV颜色模型就如画家的配色方法一样,用改变色浓和色深的方法来获得某种不同的颜色。具体地说,就是在一种纯色中加入白色以改变色浓,加入黑色以改变色深,加入白色或黑色的比例不同时,可得到不同色调的颜色。因此,可以说HSV彩色模型采用的是用户直观的色彩描述方法。在一些需要为人直观处理的彩色系统中,可以选用HSV彩色模型。 3.2 技术方案在一幅RGB彩色图像中,每一个像素点由R、G、B三个分量所组成。每一个分量的变化都能直接导致彩色图像中该像素点颜色的改变。如,在阳光灿烂的天气下所拍摄的图像颜色鲜艳,色彩饱和;相同背景和情形下,在阴雨天所拍摄的相同图像,其颜色暗淡,色彩灰沉。这样,在同一像素点处,所表示的颜色大不相同,其RGB分量的灰度值也大不一样。也就说RGB彩色模型受光照的变化影响很大。在这种情况下,如果选择RGB彩色模型来进行人脸皮肤颜色建模的话,可能对同一个人的人脸皮肤检测会应光线亮暗的不同,而导致检测的结果有所出入。在恶劣的情况下,甚至会导致无法判别出人脸区域。 考虑到光线影响的情况,选择了HSV彩色模型作为人脸皮肤模型建立的彩色空间。对于HSV彩色模型来说,它能将亮度信息和色度信息从输入图像中分离出来,并且能够独立表示。H分量代表图像的纯色彩信息,即其表示的是图象的颜色信息;S分量代表图像的饱和度信息,即其表示的是图象的颜色的深浅;V分量代表图像的亮度信息,即其表示的是图像的颜色的亮度。由此可见,H分量只表示目标的彩色信息,相对RGB颜色模型来说,受光照变化的影响缓慢。选择H分量作为人脸皮肤颜色统计的参数,可以降低光照影响的作用。 人类有白色,黄色和黑色人种,其人脸皮肤颜色也各自不同,建立模型的时候需要分别对待,本为研究的是黄色人种的人脸皮肤检测。在每一人种中,其人脸皮肤颜色都是分布在一个较窄的频带上,皮肤颜色分布范围集中在某一区域。即,在色相H分量中,表示为集中在某一小区域范围内。这样就可以,基于HSV彩色模型下,利用H分量受光照影响变化缓慢的性质,来建立一个人脸皮肤彩色模型,即人脸皮肤色相的统计表,将人脸的颜色区域估计出来,再利用这个人脸皮肤彩色模型对任意图像进行人脸检测。由此,在建立人脸皮肤模型时,需要先将在RGB彩色模型下的图像转换为HSV彩色模型的图像。通过对一定数量的人脸皮肤进行统计后,获得关于人脸皮肤颜色的区域范围。而这个范围包含了人脸皮肤的颜色信息。 方案大致流程如下: 输入彩色图像 HSV颜色空间转换 提取色相图象提取人脸部分的色相分割后的黑白图像RGB图像 肤色分割结果 3.2.1 人脸皮肤模型的训练通过对一定数量的人脸皮肤进行估计就可以得到比较完善的人脸皮肤模型,所以对人脸皮肤模型进行训练时必须的。以下介绍人脸皮肤模型的训练的步骤:1.建立H分量的颜色表。在HSV彩色模型中,H分量是01范围内的值。考虑到在HSV彩色模型的立体图里(图2.2)H为一个旋转分量,每一度数就表示一个颜色。这样可以制定一个大小为360的颜色表,这个颜色表就是人脸皮肤模型,人脸皮肤模型的初始值为。2.人脸皮肤模型的颜色统计。将一幅要进行估计的人脸图像转变为HSV彩色模型下的图像,取H分量的图像,并且将从01的数字范围转变为0359的数字范围。统计变换后的H分量图像中,每像素值出现的次数,将其加入表中对应的位置上。即,变换后的H分量中为200的像素点出现了99次,则在人脸皮肤模型中对应的200位置上,在原来的数目上再加上99。3.训练人脸皮肤模型。将要进行训练的人脸皮肤图像,重复步骤2进行统计。一般来说,进行训练的人脸皮肤图像越多,人脸皮肤颜色模型越完善,人脸的区域的正确检测性越高。4.训练的模型概率化。训练完人脸皮肤模型后,得到的颜色表中数值比较大。为了便于直观分析,可以利用下式进行概率化,即归一化。 其中,表示颜色表中第i个颜色数值出现的概率,表示第i个颜色数字的出现个数,表示有幅人脸皮肤图像进行训练,第j幅图像的宽和高分别为和。 5.获得人脸皮肤模型。经过步骤4后得到了概率化后的人脸皮肤模型,颜色数值对应的概率值大小可以表示该颜色数值为人脸皮肤颜色的可能性的大小。概率大的,为人脸的可能性大;概率小的,为人脸的可能性小。 通过对人脸皮肤模型进行训练后,获得了比较完善的人脸皮肤模型,这一模型里包含了比较完善的人脸皮肤信息。根据概率值的大小,可以判断出人脸皮肤区域集中的颜色空间,从而能够对任意的图像进行人脸检测。 3.2.2 人脸的检测通过第3.1节的模型建立和训练后,将会获得一个比较完善的人脸皮肤模型,通过这个人脸皮肤模型,就可以对图像进行人脸检测。由于人脸皮肤模型是一些概率值,这些概率值表示了某一个颜色数字与人脸皮肤颜色的距离。由此可以通过判断某一点的颜色数字的概率值大小来区分该点是否为人脸。而这样的判断需要通过给予一个门限值来划分,这个门限值的给定影响人脸检测的结果。可以通过多次试验后,给出一个直观的合理的门限值。通过查资料我们将门限值设为0.01。门限值给定了以后,就能对一幅图像进行人脸检测。首先,需要就图像转换为HSV彩色模型下,取其H分量的图像;其次,将H分量的图像转换到0359内,这样将会便于进行快速查表进行判断;再次,由于已知给定的门限值可以对皮肤颜色模型进行判断,得到为人脸皮肤颜色的颜色数字范围,所以,能够把变换后的H分量图像中每一像素点上的数字进行判断;最后,得到为人脸区域的像素点,这样就可以检测出人脸区域和非人脸区域。在人脸检测的过程中,主要注意的是人脸皮肤模型的判断门限值。如果进行训练的人脸皮肤样本比较多时,门限值对人脸检测的影响不大;相反,如果进行训练的人脸皮肤样本比较少时,门限值对人脸检测的影响比较大。一般来说,在训练人脸皮肤模型时,为了达到人脸检测的准确性要求,训练的人脸皮肤样本足够多,因此,该门限值只要取在适当的范围内,对人脸的检测结果影响不大。4 系统仿真实验根据第三章中的介绍,使用MATLAB语言,可以编程实现人脸检测模型建立和训练过程,以及人脸检测过程。人脸皮肤模型建立和训练的程序如下:function Hmap=testHSV(x,map)%x为输入的皮肤图象 % map 为HSV格式中H的统计表 %Hmap 为输出的新统计表 % 统计表为0356 %HSVIx = RGB2HSV(x); % 将输入的皮肤图象转换为HSV格式 H=HSVIx(:,:,1); % 分别提出H,S,V图象 %S=HSVIx(:,:,2);V=HSVIx(:,:,3);Hm,Hn=size(H); % 取图象的大小 %Hmap=map; for i=1:Hm % 进行皮肤的色相统计 % for j=1:Hn if V(i,j)=1&S(i,j)=0 % 当皮肤图象不为白色时,进行统计 x=fix(H(i,j)*359)+1;%色相图象像素值转到359内进行统计 Hmap(x)=Hmap(x)+1; end endend 以上是人脸检测模型的子程序,主要实现对一幅皮肤样本的像素值做统计,应注意的是H的像素值范围的转变。另外,对干幅皮肤图像进行统计时,进行训练的程序如下:%训练的色相概率统计表后% HSVmap=zeros(360,1); M=imread(000008.jpg); Hmap=testHSV(M,HSVmap); M=imread(000009.jpg); Hmap=testHSV(M,Hmap); M=imread(0000010.jpg); Hmap=testHSV(M,Hmap); sumH=sum(Hmap); % 计算概率 % Hmap=Hmap/sumH这里采用的人脸图片有: 000008.jpg000009.jpg0000010.jpg 上面程序是对皮肤样品进行训练而后得到比较完善的人脸皮肤模型,注意训练的最后需要将人脸皮肤模型概率化,便于后续的人脸检测过程的使用。 最后,是对一幅图像进行人脸检测,经过以下程序可以获得人脸检测后的皮肤区域,其实验程序如下:A=imread(0002.jpg);RA=A(:,:,1);GA=A(:,:,2);BA=A(:,:,3);RA1=A(:,:,1);GA1=A(:,:,2);BA1=A(:,:,3);HSVA=RGB2HSV(A);HA=HSVA(:,:,1);VA=HSVA(:,:,3);m,n=size(HA);for x=1:m for y=1:n P=fix(HA(x,y)*359)+1; if Hmap(P)10&IsHmn=1 Hmn=i IsHmn=2; end if Htou(i)10&IsVmn=1 Vmn=j IsVmn=2; end if Vtou(j)10&IsVmn=2 Vmx=j IsVmn=0; endendsubplot(2,4,6),plot(Vy,Vtou);Img=double(A(:,:,1);part2=I3.*Img;subplot(2,4,4);imshow(part2,);title(腐蚀膨胀后脸部提取图像);for a=1:m for b=1:n if I3(a,b)=0 RA(a,b)=255; GA(a,b)=255; BA(a,b)=255; end endendfor i=Hmn:Hmx j=Vmn; RA1(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论