著录项信息
专利名称 | 一种快速准确的正面人脸判别方法 |
申请号 | CN200810218424.X | 申请日期 | 2008-10-17 |
法律状态 | 权利终止 | 申报国家 | 暂无 |
公开/公告日 | 2009-03-11 | 公开/公告号 | CN101383001 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06K9/00 | IPC分类号 | G;0;6;K;9;/;0;0查看分类表>
|
申请人 | 中山大学 | 申请人地址 | 广东省广州市海珠区新港西路135号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 中山大学 | 当前权利人 | 中山大学 |
发明人 | 马争鸣;刘金葵;李静;莫丽娴;谭恒良 |
代理机构 | 暂无 | 代理人 | 暂无 |
摘要
本发明提出一种利用Adaboost算法与肤色检测相结合来做正面人脸判别的方法,属于模式识别技术领域。本发明提出的算法首先利用Adaboost人脸分类器寻找人脸区域,再利用Adaboost眼睛分类器搜索眼睛区域,再基于肤色检测与质心计算方法确定眼眶中心,接着根据眼眶中心位置切割裸脸,最后利用眼睛位置与祼脸左右两侧窄条带肤色点数目比例来排除非正面姿态人脸,从而得到标准的正面人脸图像。本算法可过滤各种非正面人脸图像,获取标准的正面人脸图像,可作为人脸识别的前置步骤,保证同姿态识别,从而提高识别率,亦可用于建立人脸数据库时的正面姿态判别。
1.一种基于Adaboost算法与肤色检测相结合的正面人脸判别方法,其特征在于使用Adaboost分类器分别检测人脸与眼睛的区域、利用肤色检测与质心计算方法确定眼眶区域及其中心位置、根据两眼眶中心位置的纵坐标之差,来过滤向左右侧的非正面人脸、根据眼眶中心位置切割裸脸和通过计算裸脸两侧条带的肤色点数目的比例来判断人脸是否存在左右旋转问题。
2.根据权利要求1所述的正面人脸判别方法,其特征在于使用肤色检测的方法确定眼眶区域,使用计算质心的方法确定眼眶中心位置,以眼眶的中心而不是以眼球的中心作为眼睛的中心。
3.根据权利要求1所述的正面人脸判别方法,其特征在于首先根据两眼眶中心点的纵坐标过滤向左右侧的非正面人脸;接着以两眼眶中心点的位置与距离按比例切割裸脸,裸脸图像的中线与两眼中垂线重合,左右眼眶中心点与左右边界距离相等;然后在裸脸图像左右两侧各提取出一窄条带,利用肤色检测的方法计算两条带所包含的肤色点的个数,根据两侧条带的肤色点的个数的比例来判别人脸是否存在左右旋转的问题。
技术领域\n本发明属于模式识别技术领域,具体涉及一种利用Adaboost算法与肤色检测相结合来做正面人脸判别的方法。\n背景技术\n人脸检测与识别技术是模式识别和计算机视觉领域研究的一个热点,有着十分广泛的应用前景。在人脸检测方面,Adaboost算法实现了实时的人脸检测系统,是人脸检测真正意义上走向实用的里程碑。在Paul Viola(参考文献[1]:Paul Viola,Michael Jones.Rapid object detection using a boosted cascade of simple features.Proc IEEE Conference onComputer Vision and Pattern Recognition,pp:511-518,2001)等人的方法中,利用了基于类Haar特征构造的弱分类器,通过积分图像的方法快速计算这种特征,然后用Adaboost算法在超完备的特征集中选择少量的关键特征,训练出一个强分类器,再用级联的方式将单个的强分类器组合为级联分类器。Adaboost人脸检测算法因为检测速度快且检测精度高,成为人脸检测的主流算法。\n然而,人脸识别技术仍然受到姿态变化、光照和大规模人脸数据库等因素的制约,其中姿态是影响识别率的一个重要因素。目前,大部分的识别算法只能应用于同一类姿态的人脸图像中,姿态的变化将使得识别系统的性能急剧下降。而对于大多数的登录系统与安全检查装置,都是对象配合的应用,能够做到同姿态对比,从而保证较高的识别率。正面人脸因其易于获取和保持以及特征完备而常被应用于人脸识别中。\n一般的正面判别方法是先找出脸部特征点,然后根据特征点的位置以及其几何关系来判定人脸姿态。要确定人脸姿态,必须包含至少两类的特征点,例如眼睛与鼻尖,嘴角与脸部边缘等。而上述的特征点中,除了眼睛的特征比较明显,能够准确的定位之外,其他的特征点较难确定,且易受环境光照影响。也有学者利用脸部象素的对称性来判别正面人脸,但受光照不均的影响更严重。而利用人脸轮廓信息来做正面判别的方法,计算量大且效果不尽理想。杨琼和丁晓青(参考文献[2]:杨琼,丁晓青对称主分量分析及其在人脸识别中的应用,计算机学报Vol.26 No.9 Sept 2003,p.1146-1151)提出了一种对称主分量分析方法,但无法判断左右旋转的姿态。\n正面判别的方法一方面需要准确,保持入库与识别的人脸同为正面图像,可以保证较高的识别率;另一方面,正面判别方法需要快速,如果长时间没法检测出正面人脸,待识别的人将失去耐心,姿态更难以保持,从而造成更长时间的等待以及识别率的下降。因此,提出一种快速、准确的正面判别方法对提升识别率、提高识别系统的应用性将有很大帮助。\n肤色作为人脸的重要信息,不依赖于脸部的细节与几何特征,适用于各种姿态与表情,具有相对的稳定性并且和大多数背景物体的颜色相区别。因此,肤色对于区分人脸和背景物体具有重要意义。因为肤色在颜色空间中的分布相对比较集中,合理选择色彩空间可以得到较准确的肤色检测结果。在本发明中采用高斯肤色模型,并选用YCrCb色彩空间作为肤色统计分布的映射空间,因为该色彩空间具有以下优点:\n(1)在YCrCb色彩空间中,Y代表明度的变化,Cr和Cb分别代表红色和蓝色的变化,这样就把色彩中的亮度分量分离出来,分析时受到亮度影响较小。\n(2)分析Cr和Cb可以将三维的RGB降为二维,而且Cr和Cb两维独立分布。在这个二维空间里,肤色的分布相对集中,聚类效果较好;\n(3)YCrCb色彩格式被广泛应用于电视等领域中,采用YCrCb颜色空间在视频中可以避免额外色彩空间转换的计算。\n而高斯肤色模型(参考文献[3]:R.L Hsu,M.Abdel-Mottaleb and A.K.Jain.FaceDetection in Color Images.IEEE Trans.on Pattern Analysis and Machine Intelligence,Vlo.24,No.5,May 2002)主要是利用统计学的原理,认为既然肤色是符合正态分布的随机样本,在特征空间中的分布应该符合高斯分布,并且因为高斯分布的数学表达形式简单、直观,又是统计学中研究的比较深入的一种正态模型,所以对其加以利用具有一定的优越性。在本发明中,肤色检测不是用于检测整个人脸区域,而是用于判别人脸图像是否为正面姿态,是在人脸区域上的小范围的应用,因此肤色检测的结果受光照不均的影响较少,运算速度更快。\n本发明提出一种Adaboost算法与肤色检测相结合的正面判别方法,可以快速准确的判别姿态并切割出正面的裸脸,能有效的提高识别率。\n发明内容\n本发明提出一种利用Adaboost算法与肤色检测相结合的来进行正面判别的算法。该算法是建立在人脸图像检测的基础上,利用了脸部特征点以及肤色检测的相关信息,整个算法流程如图1所示,具体内容如下:\n(1)Adaboost人脸检测:使用基于Adaboost算法的人脸分类器对输入的视频帧或图片做人脸检测。如果图像尺寸比较大,可以用金字塔分解的方法压缩图像,以减小检测所需时间,检测结果如图2标记的人脸区域。\n(2)Adaboost眼睛区域检测:使用基于Adaboost算法的眼睛分类器在检测出来的人脸图像中搜索眼睛区域。因为眼睛是位于人脸的上半部分,所以,只需要在人脸图像的上半部分寻找眼睛即可。检测结果是一个包含眉毛与下眼睑的矩形区域(见图2标记的眼睛区域),可根据比例去除眉毛部分,只留下包含上下眼皮、眼珠以及左右眼角的部分区域。\n(3)眼睛精确定位:眼睛分类器只能检测出眼睛的大概位置,属于粗检,在此基础上使用肤色检测的方法确定眼睛区域内的肤色区域,则非肤色区域即为眼眶(指包含眼珠的椭圆框,见图2标记的眼眶区域)区域。在眼眶区域内通过寻找质心来定位眼眶中心点。\n(4)判断人脸是否有x轴旋转:根据左右眼眶的中心位置的纵坐标可以判断人脸是否有x轴旋转(如图3所示),如果左右两边纵坐标即y1与y2之差的绝对值大于预先设定的阈值,即眼睛不在一条水平线上,则表示人脸有向左右侧的情况。\n(5)根据两眼的距离切割裸脸:因为Adaboost算法检测出来的人脸图像除了人脸以外,通常还会存在一些背景,在进一步做正面判别之前需要进行裸脸提取。以两眼距离为基准,从两眼中垂线向左右两侧按比例切割人脸,人脸图像左右两侧边界与两眼位置中垂线的距离相等。如图4中的第二幅图像所示,切割出来的裸脸图像包括眉毛和部分下巴之间的脸部,左右边界为眼角以外的肤色区域,在下巴位置两侧存在少量背景。\n(6)根据两侧条带的肤色点比例判断人脸是否有z轴旋转:如图4第三幅图像所示,对上一步骤切割出来的裸脸图像,在两侧取出同样大小的窄条带,分别计算两侧条带的肤色点数。根据面部的对称性,如果两侧肤色点数大致相等,表明两侧条带所包含的背景区域面积相近,则可以判定人脸图像为正面;如果两侧肤色点数相差较大,如图5第三幅图像所示,则表明一侧包含的背景区域面积跟另一侧的有较大差距,可以判定人脸图像存在左右旋转,为非正面脸。\n本发明的整个算法流程图参见图1。\n本发明特点\n本发明提出了一种判断人脸图像是否正面的方法,该方法简单易行,能快速准确的进行正面判别。本发明提出的算法具有以下两个显著的特点:\n(1)本发明中,在寻找眼睛中心点时,摒弃一般采用的找眼珠中心(一般以象素较浓密的虹膜中心为眼珠中心)的方法,而是通过定位眼眶中心点作为眼睛的中心。将眼睛的中心定位在固定的眼眶中心而不是活动的眼珠中心,这样做使得根据两眼距离按比例切割出来的裸脸更加准确,取出的两侧条带包含的是左右脸部对称的部分,以此确保下面的判别步骤的正确性。\n如果以眼珠中心点为眼睛的中心,则在视频应用中,即使人在摄像头前保持姿态不变,两眼的位置与距离也会随着视线的方向而变化。若摄像头与显示界面在不同的位置时情况更加难以控制,因为人们倾向于观看视频界面来察看自己的姿态是否为正面,此时眼珠将向某一侧偏离,由此切割出来的裸脸中眼睛两侧包含的人脸区域是不等,接着的判别步骤得到的结果也将是错误的。\n如图6首幅图像所示,当人脸保持正面姿态,而视线却不在正前方时,眼珠将向某一侧偏转,如果按照眼珠中心位置切割裸脸,将得到如图6第二幅图像所示的结果。可以看到人脸左右部分明显不对称,再使用条带方法检测是否存在左右旋转问题时将失效(如图6第三幅图像所示)。如果人脸存在左右旋转,而视线偏向旋转的反方向,如图7的人脸图像所示,此时,如果根据眼珠中心位置切割裸脸,得到如图7右下方所示结果,使用条带方法检测人脸姿态时将会误判该人脸为正面人脸。利用眼眶中心切割裸脸的方法则不存在以上的问题。\n(2)本发明是根据左右窄条带的肤色点数目比例来判断是否存在左右旋转的问题,该方法一方面简单易行、运算迅速,另一方面因为采用局部肤色检测而不是对整个脸部做肤色检测,提高了肤色检测的准确性。\n本发明先利用Adaboost人脸分类器寻找人脸区域,再利用Adaboost眼睛分类器搜索眼睛区域,然后基于肤色检测方法确定眼眶中心,根据眼眶中心位置切割裸脸,最后利用左右窄条带肤色点数目比例来排除最容易出现却最难判断的左右旋转的非正面姿态人脸。以上所有步骤不涉及复杂的算法也不需要较大的运算量,因此可满足实时应用的要求。\n窄条带约为整个人脸区域的10%左右,在进行肤色检测操作时运算量少,运算速度快,并且计算出左右条带肤色点个数后直接比较即可判断出人脸姿态,而不需要任何其它的复杂操作。与之相比,根据定位多个特征点并比较其相互关系的姿态判别方法则是运算量大、速度慢,判别效果不尽理想。而根据对称性判别的方法,其效果依赖于当前的光照情况,不理想的光照分布将造成判别结果错误。\n不均匀的光照对肤色检测的结果有很大影响。即使在一般的室内光照情况下,不存在干扰性光源(即在人脸附近某位置放置强光源),人脸左右两部分的平均亮度一般也是不相等的。高斯肤色模型是在假设色度独立于亮度的基础上建立的,而实际上,肤色区域的颜色与亮度成非线性函数关系。因此,如果对人脸整体做肤色检测,光照的变化将不可避免的造成检测结果的失误。本发明中根据正面判别应用的需要,只对狭窄的条带做肤色检测,由于条带内光照变化十分细微,使得肤色检测的结果比较准确,从而为接下来的判别步骤奠定基础。\n附图说明\n图1正面人脸判别流程图\n图2人脸示意图\n图3根据眼眶中心位置纵坐标过滤向左右侧的非正面人脸\n图4正面人脸图像处理过程\n图5旋转人脸图像处理过程\n图6根据眼珠位置做正面判别失效\n图7分别以眼眶中心和眼珠位置切割裸脸两种方法的比较\n具体实施方式\n以基于视频的人脸检测与识别应用为例,说明本发明的具体实施过程。试验采用普通的500万象素摄像头,摄像头与人脸的距离约为0.4米,处于一般的室内光照环境下,检测与识别系统运行在PC机上。\n步骤1:Adaboost人脸检测\nAdaboost算法自提出后就在机器学习领域受到了极大的关注,2001年Paul Viola和Michael Jones将其引入人脸检测问题,成为人脸检测速度提高的一个转折点。此后,国内外许多学者在此基础上对其作了研究和改进,使其人脸检测更加迅速和准确,从而现在Adaboost算法成为人脸检测的主流算法。\n我们的检测系统采用Adaboost层叠型人脸分类器检测人脸。首先加载训练好的人脸分类器,接着从视频中捕获一帧图像,为减小检测所需时间,首先对图像做金字塔分解,即将图像压缩成原来的四分之一大小,然后使用分类器对图像做人脸检测,最后返回人脸在图像中的位置信息。检测出来的人脸图像上至额头,下至下巴,左右两侧包含较多的背景图像,如图2所标记的人脸区域矩形框。\n步骤2:眼睛粗定位\n同样使用Adaboost算法定位眼睛区域。因为眼睛是位于人脸的上半部分,所以,只需要在人脸图像的上半部分寻找眼睛即可。由于眼睛较小,而分类器的初始搜索窗口尺寸相对较大,故将待检测区域放大一倍。检测眼睛时,首先加载眼睛分类器,在选定的待检测区域中运行分类器,最后以矩形框的方式分别返回两眼的位置信息。检测出来的眼睛区域包括完整的眉毛、左右眼角以及眼睛下方的一些皮肤区域,如图2所标记的眼睛区域。\n可根据比例去除眉毛部分,假设眼睛矩形框的高度与宽度分别为eye_width,eye_height,则从上往下将部分矩形区域去除,即可得到没有眉毛部分的眼睛区域。\n步骤3:精确定位眼睛中心\n在检测出来的眼睛区域中精确定位眼睛的中心。采用肤色检测和数学形态学的方法将非肤色区域(即眼眶区域)分割出来,然后使用寻找重心的方法定位眼睛中心点。\n(1)确定眼眶区域\n分别对左右两个眼睛区域做肤色检测,标定皮肤区域,则非皮肤区域即为眼眶区域(如图2所示的眼眶区域)。下面介绍肤色检测原理及眼眶提取的方法。\n1、高斯肤色模型\n本发明采用高斯肤色模型,在YCbCr色彩空间中做肤色检测。高斯模型是利用正态分布来拟合皮肤颜色的概率密度分布,认为像肤色这样符合正态分布的随机样本在特征空间中的分布应该符合高斯分布。\n令肤色像素在色度空间中表示为向量x=(Cr,Cb)T,这些像素在CrCb空间中的分布相对集中,可用高斯分布来描述。采用训练的方法来计算得到这个分布的中心,然后根据所考察的像素离该中心的远近来得到它和肤色的相似度,从而得到一个原图的相似度分布图,再按照一定的规则对该分布图二值化,以最终确定肤色的区域。\n计算相似度时,采用公式:\n\nx=[Cr,Cb]T\nM=E(x)\nC=E[(x-M)(x-M)T]\n其中,x是象素颜色分量,均值向量M和协方差矩阵C是高斯分布的参数,由训练样本估计得到。\n对于该高斯分布的参数,已有相关学者利用大量样本做了比较全面的统计,本发明直接采用其结果,具体数据如下:\nM=[156.5599 117.4361]T,\n由上式计算出图像中每个象素的肤色相似度后,将其归一化到[0,1],再将该值乘以255取整,即可得到相似度图。\n2、阈值分割\n采用最大类间方差法对相似度图做阈值分割。最大类间方差法是在最小二乘法原理基础上推导出来的,其基本思路是以某一象素值为基准,将图像的直方图分割成两部分,当被分割开来的两部分方差为最大时,则以当前选定的象素值为阈值。\n设一幅图像的灰度值范围为[1,L]级,灰度级为i的象素数为ni,此时我们得到:\n总的像素个数:\n各灰度级的概率:\n将图像按灰度级用阈值t划分为两类:C0={0,1,2,...,t}和C1={t+1,t+2,...L-1}。因此C0类和C1类的出现概率及均值分别为:\nC0的概率:C0类的均值\nC1产生的概率C1类的均值\n其中,是图像整体的均值,是灰度级为1-t的像素的均值,显然,对于任何的t值,都满足:μ=ω0μ0+ω1μ1,且ω0+ω1=1。\n两类间的方差为:\n\n最佳阀值\n根据上面所述方法求得图像分割的阈值,以此阈值将相似度图二值化,将小于该阈值的象素点置为1,大于阈值的象素点置为0,则非0区域即为眼眶区域(非肤色区域)。由此得到的眼眶区域会存在一些毛刺和小孔,使用数学形态学处理方法,先后进行两次开操作和两次闭操作即可得到较光滑的眼眶区域。\n(2)确定眼眶中心位置\n在上一步骤中已经将眼睛区域二值化,眼眶区域为1,非眼眶区域为0,下面确定眼眶区域的中心位置。我们计算目标区域的质心作为其中心点。假设眼睛区域二值图像为I(x,y),其中目标区域(即眼眶区域)为A,背景区域(即非眼眶区域)为B,即:\n\n目标区域的质心(x0,y0)定义如下:\n \n分别对左右眼眶区域计算质心,即可得到左右眼眶的中心点位置坐标。\n步骤4:判断人脸是否有x轴旋转\n如图3所示,假设左右眼眶的中心点坐标分别为(x1,y1)(x2,y2),根据两纵坐标y1与y2是否在一条水平线上,即可判别人脸是否存在向左右偏侧的情况。正面人脸必须满足\nabs(y1-y2)/max(y1,y2)<5%\n由此即可排除向左右偏侧的人脸图像。\n步骤5:根据两眼的距离切割裸脸\n由于Adaboost算法检测出来的人脸图像通常存在一些背景,在进行正面判别之前需要进行裸脸提取。因为人的脸部形状与大小跟两眼距离密切相关,所以可以两眼距离为基准,按比例切割裸脸。\n假设左右眼眶中心的距离为d,则d可由两中心点的横坐标之差求得,即\nd=abs(x1-x2)\n根据距离d可以按比例切割裸脸,通过观察人脸的形状结构及多次的试验,总结出如下切割规则:\nwidth=7.5*d/4\nheight=105*width/100\nxoffset=(width-d)/2\nyoffset=height*30/105\n其中width与height分别为裸脸图像的宽度与高度,xoffset与yoffset分别为左眼眶中心点的坐标,且左眼眶的中心点距离左边界的距离与右眼眶的中心点距离右边界的距离相等,各参数计算后均做取整处理。如图4中的裸脸图像所示,切割出来的裸脸图像包括少量的背景与上至眉毛下至嘴巴的裸脸区域。\n步骤6:判断人脸是否有Z轴旋转\n对于由上一步骤的得到的裸脸图像,如图4中的裸脸图像所示,左右两侧的边界刚好落在眼角以外一点的肤色区域,上侧边界落在眉毛以上一点的区域,下侧边界落在嘴巴以下一点的区域,且切割时两眼中心分别与两侧边界距离相等。因此,如果人脸不存在左右旋转,如图4中的裸脸图像所示,则得到的裸脸图像只在左下侧与右下侧位置存在少量背景,而且背景区域面积基本相等;如果人脸存在左右旋转,由于两眼中心分别与两侧边界等距,所以人脸旋转朝向的一侧背景面积将比另一侧多,如图5中的裸脸图像所示。根据左右两侧条带肤色点个数是否存在较大差异可以将非正面人脸滤除。\n分别在裸脸图像的左右两侧取出同样大小的窄条带,例如以裸脸图像宽度的10%为宽,则取出的条带宽度为width*0.1,高度为height。根据步骤3所述的高斯肤色检测方法,分别对两个条带做肤色检测,记录下两条带所包含的属于皮肤点的个数,假设分别为count1与count2。根据左右皮肤点的个数差异可判断人脸是存在Z轴旋转,具体判断规则如下:\nabs(count1-count2)/MIN(count1,count2)<0.1\n分别计算两侧条带的肤色点数。根据面部的对称性,如果两侧肤色点数大致相等,表明两侧条带所包含的背景区域面积相近,则可以判定人脸图像为正面;如果两侧肤色点数相差较大,则表明一侧包含的背景区域面积跟另一侧有较大差距,可以判定人脸图像存在左右旋转,为非正面脸。经过以上六个步骤,过滤非正面姿态人脸,即可得到标准的正面人脸图像。
法律信息
- 2011-12-21
未缴年费专利权终止
IPC(主分类): G06K 9/00
专利号: ZL 200810218424.X
申请日:
授权公告日:
- 2010-06-02
- 2009-05-06
- 2009-03-11
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2006-06-28
|
2005-12-31
| | |
2
| |
2006-05-24
|
2005-12-15
| | |
3
| |
2005-10-26
|
2005-04-30
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |