您好,欢迎访问三七文档
1、AdaBoost的人脸检测人脸检测是指对于任意一幅给定的图像,采用一定的策略对其进行搜索以确定其中是否含有人脸,如果是则返回一脸的位置、大小和姿态。1.1矩形特征在给定有限的数据情况下,基于特征的检测能够编码特定区域的状态,而且基于特征的系统比基于象素的系统要快得多。矩形特征对一些简单的图形结构,比如边缘、线段,比较敏感,但是其只能描述特定走向(水平、垂直、对角)的结构,因此比较粗略。如下图,脸部一些特征能够由矩形特征简单地描绘,例如,通常,眼睛要比脸颊颜色更深;鼻梁两侧要比鼻梁颜色要深;嘴巴要比周围颜色更深。我们将使用简单矩形组合作为我们的特征模板。这类特征模板都是由两个或多个全等的矩形相邻组合而成,特征模板内有白色和黑色两种矩形(定义左上角的为白色,然后依次交错),并将此特征模版的特征值定义为白色矩形像素和减去黑色矩形像素和。最简单的5个特征模板:特征模板可以在子窗口内以“任意”尺寸“任意”放置,每一种形态称为一个特征。找出子窗口所有特征,是进行弱分类训练的基础。。假设一个矩形区域大小为24*24,那么,如果穷举区域内所有可能的矩形个数,总数将有45396个。显然这比这个区域内所有的像素个数(576个象素)要多得多。我们不可能把所有的这些特征都用于检测,否则我们的计算消耗将是不可估计的大了。我们的目的即是尽可能少的选取最能区分人脸和非人脸的图像的那些特征,从而大大降低计算开销。具体的选择方法即为基于AdaBoost的学习算法,具体的将在后续的章节中介绍。现在已经有了简单的特征,我们还需要一些简单的分类器。为了能使得这些分类器足够的简单,我们就把分类器和这些矩形特征做个一一对应。亦即每个分类器就由一个特征的值来决定。于是我们得到如下的简单分类器原型:1()()0jjjjjifpfxphxotherwise其中()jhx就是基于简单特征的分类器,x就是待检测子窗口,()jfx就是对于子窗口x的矩形特征值计算函数,jp就是一个符号因子(对于不同的特征,计算得到的特征值中有可能负例的值小于正例,也有可能负例的值大于正例,因此正例不都是小于区分正负例的阈值的,也有可能大于,所以引入一个符号因子来确定不等式方向),j就是对应分类器的阈值。1.2积分图(IntegralImage)针对已经引入的矩形特征,为了进一步降低所需要的计算成本我们引入了积分图的概念。这是一种对原图像的中间表达方式,这种表达方式可以使得矩形特征的值能非常快地得到计算。所谓的积分图像其实就是对原图的一次双重积分(先是按行积分,然后是按列积分)。那么它的积分表示即为:00(,)(,)yxfxyfxydxdy其中,(,)fxy是原图像,(,)fxy是积分图像。又因为我们计算的是原图中某一点左上方所有象素值的和,可见是一个离散的加和,因此在点x,y的积分图像的计算方法就如下所示:,(,)(,)xxyyiixyixy其中(,)iixy是计算后的积分图像,(,)ixy是原图像,如下图所示。图8在(x,y)点的积分图像的值是所有在这个点的左上方的点的和图9如上图所示,在矩形D中的像素和可以通过四点计算得到。在点1的积分图像的和可以通过矩形A内的点的和得到。在点2的值就是A+B,在点3的值就是A+C,在点4的值就是A+B+C+D。在D内的点的和可如下计算得到:4+1-(2+3)。如果使用以下函数:(,)(,1)(,)sxysxyixy(,)(1,)(,)iixyiixysxy其中(,)sxy是每列的和,(,1)0sx,(1,)0iiy,积分图像可以在对原图的一次遍历后计算得到。如果使用积分图像,那么任何矩形中的象素和都能通过四个顶点的值计算出来。显然,双矩形特征的值可以通过八个顶点计算得到。然而,双矩形特征包括了两个相邻的矩形和,因此它们可以用六个顶点的值计算得到。如果是三矩形就是八个点,四矩形就是九个点,如下图所示。图10四种不同矩形特征计算示所需要的顶点的值特征A的值为:(6-5-3+2)-(5-2-4+1);特征B的值为:(4-3-2+1)-(6-4-5+3);特征C的值为:(7-6-3+2)-(6-5-2+1)-(8-7-4+3);特征D的值为:(6-5-3+2)+(8-7-5+4)-(5-4-2+1)-(9-8-6+5)1.3AdaBoost的基本原理给定一个特征集合和一个包含正样本和负样本图像的训练集,任何机器学习的方法都可以用于通过学习来训练分类函数。我们回想一下,每个图像的子窗口有45,396个矩形特征,这个数字远远超过了像素的个数。即使每个特征能够很快的计算出来,计算这么多的矩形特征也是不可能的。实验已经证实了我们假设,也就是很小一部分的这种特征可以结合起来组成一个有效的分类器。主要的问题就是如何找出这些特征。采用AdaBoost方法,用于选择特征和训练分类器。AdaBoost学习方法是用来达到简单学习算法的分类效果的。它通过结合一组弱分类函数来组成一个强大的分类器。这种简单学习算法被称为弱学习机。我们称其为学习机是因为,这个分类器的学习算法会对一个分类器集做一个搜索,运用选择算法来找出那些分类错误最小的分类器,这是一个学习的过程。而这种学习机被称为弱学习机是因为我们不指望那些被找出来的分类器,哪怕是最好的分类函数,能非常好的区分训练数据。为了让弱学习机能构架起来,它被用于解决一个多重的,循环的学习问题。在第一轮的学习结束以后,训练集范例将被重新赋权值,目的是为了强调那些被前一个弱分类器错误分类的范例。而最终的强分类器由许多带权值的弱分类器组成,并且其本身还有个阈值。Adaboost算法是一种用来分类的方法,它的基本原理就是“三个臭皮匠,顶个诸葛亮”。它把一些比较弱的分类方法合在一起,组合出新的很强的分类方法。例如下图中图11需要用一些线段把红色的球与深蓝色的球分开,然而如果仅仅画一条线的话,是分不开的。图12使用Adaboost算法来进行划分的话,先画出一条错误率最小的线段如图8a,但是左下脚的深蓝色球被错误划分到红色区域,因此加重被错误划分球的权重,再下一次划分时,将更加考虑那些权重大的球,如8c所示,最终得到了一个准确的划分,如下图所示。图13人脸检测的目的就是从图片中找出所有包含人脸的子窗口,将人脸的子窗口与非人脸的子窗口分开。下面给出AdaBoost的学习训练算法框架。为给定训练图像初始化权值;Fort=1,……,T;归一化训练图像权值;对于每一个特征j,训练一个分类器jh,并计算:()jijiiihxy;选出th,使得t达到最小;更新权值:11,,ietitit,其中当ix被正确分类时,0ie,否则1ie,并且1ttt;最终的强分类如下:Tttt=1111()()20Tttjhxhxotherwise其中1logtt2、图像预处理人脸识别的正确率,一方面与算法本身有关,另一方面也与样本的质量和数量密切相关。人脸图像预处理,作为特征提取和识别的前提步骤,对于改善样本质量具有十分重要的作用。预处理的目的是去除噪声、加强有用的信息、并对测量仪器或其它因素造成的退化现象进行复原、为后续的特征提取和识别做出充分的准备。不同的人脸识别系统根据识别算法的不同所采取的预处理方法也是不同的。2.1图像文件格式图像文件存储的是图像信息,便于处理和传输数字图像。图像文件中如何存放数据以及存放何种类型的数据,都是由图像文件的格式来决定的,同时也决定了该文件自身与其他文件进行信息交换的方式。应用中的图像文件格式多达十几种,如BMP格式、TIFF格式、GIF格式、JPEG格式、PNG格式、PSD格式、JFIF格式、PCD格式、PIX格式等。其中,BMP格式是最常用的一种。BMP(BITMAP)文件格式存储的是图像的原始信息,这些信息没有经过任何压缩处理,与其他图像文件格式相比,在计算机中占用的存储空间较大。BMP格式采用位映射存储图像数据信息,可以直接进行数字化处理。同时,位图文件拥有自身的优点:简单、使用广泛、没有专利约束等。BMP文件在显示时首先将BMP文件读成DIB格式,再以DIB格式显示,或者将DIB转化成DDB格式,以DDB格式显示。本文中,无论是从外界捕获的图像,还是处理过程中的图像,都存储为易处理的BMP格式。2.2灰度变换本文人脸识别系统涉及的数字图像都存储为位图(BMP)文件。在数字图像中各个像素点所具有的明暗程度称为灰度(GrayLevel)。通常使用),(yxf来表示像素点),(yx处的灰度值,x和y是该点在图像平面中的坐标。根据一定的变换规则,对原始图像进行灰度变换,原始图像中某个像素点的灰度值会通过该规则映射为新的灰度值,输出图像的灰度值与原始图像相比,动态范围发生明显变化。设原始图像),(yx处的灰度值为),(yxf,处理后输出图像),(yx处的灰度值为),(yxg,则灰度变换可表示为:)],([=),(yxfTyxg(4-1)公式中,T[·]就是图像灰度变换关系,通过这个变换,变换以后的图像上的每一个像素点的值),(yxg都是由原始图像的每一个像素点的值),(yxf决定的,这是图像分析处理中典型的点运算过程。灰度变换能使图像变清晰,使特征更加显著。一般常用的灰度变换方法有三类分别是线性灰度变换、分段线性灰度变换和非线性灰度变换。2.2.1线性灰度变换在拍摄图像过程中,可能会遇到外界光照变化或者曝光不理想(不足或过度)的情况,这时原始图像的灰度值会集中在某一个小区间内,图像表现出或明或暗、边缘棱角不清晰、信息模糊的问题。线性灰度变换很好地解决了这个问题。通过对原始图像进行线性变换,将原来集中于某一小区间的范围拉伸,获得一个灰度值分布较广的区间,较好地改善图像质量。设原始图像灰度取值],[∈),(bayxf,变换后图像的灰度取值),(yxf∈,],[''ba,则),(yxf和g(x,y)的关系可表示为'+]-),([=),(aayxfkyxg(4-2)公式中,ababk--=''是线性变换的系数。],[ba和]-[';ba的范围决定了图像的处理效果。当1k时,输出图像的灰度取值的动态范围变宽,这样可以改善曝光不足的缺陷,在某些情况下,也可以充分利用图像显示设备的动态范围;当1=k时,线性变换前后灰度取值的动态范围不变,但是灰度取值区间会随着a和a'的大小而平移;当10k时,线性变换后输出图像的动态范围变窄;当0k时,输出图像与原始图像灰度值发生反转,原始图像中亮的部分在变换后的图像中变暗,原始图像中暗的部分在变换后的图像中变亮。2.2.2分段线性灰度变换有时,在一些图像中,为了突出感兴趣的灰度范围,相对抑制不感兴趣的灰度范围,通常采用分线段线性变换来进行灰度变换。图像的整个灰度范围记为[0,M],感兴趣灰度范围记为[a,b],分别对应该段线性变换的比例系数。2.2.3非线性灰度变换非线性灰度变换是通过非线性函数来实现的,通常使用的非线性变换包括对数变换和幂次变换。对数变换的表达式为:)],(+1log[=),(yxfCyxg(4-4)其中C为常数。下面是原始人脸图像及使用对数变换法(C取不同值)对人脸图像进行处理后的对比效果图。2.3光照归一化人脸识别系统在应用中,受环境因素影响较大,光照变化是一个非常棘手的问题。在光照多变的情况下,采集得到的人脸图像间有较大的灰度差异,各种人脸识别算法的性能都有可能会降低。因此,去除光照等噪声,就显得尤为重要。本系统中,光照归一化采用了同态滤波和直方图均衡化的方法。2.4同态滤波上一小节介绍的线性变换方法是用来校正图像的灰度值的,而同态滤波与其不同。同态滤波是消除乘性背景或乘性噪声的一种有效手段,是一种基于图像光照反射率模型的预处理算法。人脸接受外界光照以成像,得到的人脸图像受其影响,图像灰度包含了光照成分和光反射成分。根据计算机视觉的研究,光照有独特的反射率模型,该模型标识出了在成像视平面上存在的光照分量和反射率分量的数值关系。应用同态滤波方法
本文标题:8月13号人脸识别
链接地址:https://www.777doc.com/doc-2892868 .html