一种基于SVM线性判别的人脸识别方法与流程

文档序号:15258220发布日期:2018-08-24 21:01阅读:659来源:国知局

本发明属于计算机技术领域,涉及一种基于svm线性判别的人脸识别方法。



背景技术:

人脸识别是一门非常具有挑战性的研究课题,同时它的应用前景也非常广阔。近年来,随着信息技术日新月异般地飞速发展,以前传统的个人身份验证手段,如身份证件、ic卡等方式,由于他是和本人分离的缘故而导致伪造、盗用等现象频频发生,因此已经不能满足现代社会经济活动和社会安全防范的需要。于此同时,基于生物特征识别的身份认证技术具有更安全方便的特点而在很多领域得到了广泛的应用。生物特征包括脸、指纹等,其中人脸识别技术是非接触的,因此具有更高的唯一性、可接受性以及自然性。

近年来,随着计算机技术以及各学科的蓬勃发展,计算机视觉取得了重大的突破,并在各个领域里面开始广泛的应用。比如:目前我们所熟悉的智能视频监控系统,他利用计算机视觉技术来处理、分析、理解视频信号,并且控制视频监控系统,从而使视频监控系统具有如人一般的智慧。由此可见计算机视觉技术的重要性可见一斑。

现在流行的虹膜识别、表情识别、口型识别等,都是在人脸的基础上建立起来的。随着信息技术的发展,人脸检测将会成为一个热门的研究课题。同时与其他生物特征相比,人脸识别具有更加直接、方便、友好的特点,并且因他具有非侵犯性而更加被广大民众接受(孙志2014),而且通过对人的脸部表情等作分析,还能获得相比于其他系统难以获得的更加准确的信息,因此人脸识别将会在生物身份特征验证方面占据主导地位。另外,他还在人机交互、门禁控制以及信息安全等场合,也扮演着越来越重要的作用。

美国陆军实验室也是利用vc++开发,通过软件实现的,并且far为49%。在美国的进行的公开测试中,far为53%。美国国防部高级研究项目署,利用半自动和全自动算法。这种算法需要人工或自动指出图像中人的两眼的中心坐标,然后进行识别。在机场开展的测试中,系统发出的错误警报太多,国外的一些高校(卡内基梅隆大学(carnegiemellonuniversity)为首,麻省理工大学(massachusettsinstituteoftechnology)等,英国的雷丁大学(universityofreading))和公司(visionics公司facelt人脸识别系统、viiage的facefinder身份验证系统、lautech公司hunter系统、德国的bioid系统等)的工程研究工作也主要放在公安、刑事方面,在考试验证系统的实现方面深入研究并不多。



技术实现要素:

本发明的目的在于提供一种基于svm线性判别的人脸识别方法,对实现人脸特征的提取;实现人脸的匹配识别。

其具体技术方案为:

一种基于svm线性判别的人脸识别方法,包括以下步骤:

步骤1、图像预处理:

对于图像预处理分了四个过程,分别是图像灰度化、中值滤波、均衡直方图均衡化、图像对比度增强。它们依次处理使得图像质量更加优越。

中值滤波的目的是去除图像的噪声。它不仅可以保持图像的边缘特性,还是一种非线性的平滑技术。它的原理是中值法,即针对每一个像素点的灰度值,他代表了该点领域内的一切像素灰度值的中点,让周围的像素值更加逼近于真实的值,最终消除掉孤立的噪声点的过程,从而不会使得图像太模糊而无法辨识。

方法是用某种结构的二维滑动模板,将板内像素按照像素值的大小进行排序,生成单调上升(或下降)的为二维数据序列。二维中值滤波输出为:

g(x,y)=med{f(x-k,y-l),(k,l∈w)}

其中,f(x,y),g(x,y)分别为原始图像和处理后图像。w为二维模板,通常为3*3,5*5区域,也可以是不同的的形状,如线状,圆形,十字形,圆环形等。

然后取出这列数据的中间的数据,并且将他赋给模版中心位置的像素。

所述中值滤波的实现,具体包括以下步骤:

1.首先是从图像中获取数据进行排序,它是在某个采样窗口获取的,然后在该窗口取出奇数个数据;

2.对值进行排序,然后用中值代替将要处理的数据即可。

所述直方图均衡化的过程,具体为:

1.首先是列出图像的灰度级,图像不仅是原始图像,还包括变换后的图像;

2.对原图像中的各个灰度级的像素个数进行统计;

3.针对原始直方图,计算其p(i)=ni/n;

4.接下来就是计算累计而成的直方图p(j)=p(1)+p(2)+p(3)+……+p(i);

5.计算变换后的灰度值,利用灰度变换函数去计算;j=int[(l-1)p+0.5]

6.接下来是确认灰度变换关系,然后将原来图像单调灰度值f(m,n)=i修正为g(m,m)=j;

7.统计变换后灰度级的像素个数nj;

8.计算变换后图像的直方图p(i)=ni/n;

下面就是对彩色图像进行灰度化:

所谓的rgb彩色图,其就是每个像素点的色彩,他们是由三个分量共同决定的,分别为r、g、b三个分量。其中每个分量的内存,它的位数决定了像素所占用的字节数。比如:24深色的rgb图,他们的分量分别各占一个字节,其中每个分量取值范围也很广,他在0~255之间进行取值,这样每个像素的颜色变化范围是非常广阔的。

那么对图像进行灰度化,也就是对图像的rgb三个分量进行计算,最终得到其灰度值,其中对于三个分量,采用的是加权平均的方法。

gray=b;gray=g;gray=r

这种方法是分量法,也就是利用rgb三个分量的某一个分量,让其作为该点的灰度值。

步骤2、人脸的归一化,他包括两个方面,一个是几何归一化,他分为两步骤,一个是人脸校正,另外一个就是人脸裁剪。而灰度归一化,他是为了增强图像的对比度。

归一化:

它的目的是统一尺寸,即将人脸的表情图像归一化,增加图像的亮度,使得面部细节更加清晰明显。其步骤如下:

1.标定两眼,和鼻子的特征点

2.为了保证人脸方向的一致化,要根据两眼的坐标值对图像进行旋转。

3.确定矩形特征区域

4.对图像尺度进行归一化

步骤3、人脸特征提取:

该模块是采用的haar特征提取方法,该过程是将定位后的人脸图像的五官特征值提取出来。

步骤4、人脸识别:

它将之前特征提取的数据值和后面数据库中的特征向量去进行比较,如果分析的结果在某一范围内,则提取出该人的相关信息,并显示出来,即可以识别出此人的身份,从而来完成人脸识别的过程。如果库存中没有与之对应的特征向量,则提示系统的库存样本情况。

进一步,步骤3具体为:

1.提取两只眼睛之间的距离;

2.眼睛的倾斜角度;

3.眼睛、嘴巴的重心;

4.用一个矩形标出每一个特征;

当提取完特征后,将提取的特征值存入库中。

进一步,步骤4采用svm算法,对人脸图像进行分类并匹配。

与现有技术相比,本发明的有益效果:

本发明的技术方案对人的面部图像或者视频流进行处理,获取人的面部特征,再与数据库中数据进行匹配,从而识别出用户的身份。相对于传统方法,该方法不仅成本低、没有别人的参与,更重要的是没有侵犯性,它是在很自然的情况下进行完成的。

附图说明

图1预处理层次图;

图2中值滤波原理图;

图33*3中值过滤结果,其中,图3a是中值滤波前图像,图3b是中值滤波后图像;

图4面部几何特征;

图5最优分类器;

图6分类样本图;

图7线性可分问题;

图8线性可分;

图9基于svm线性判别的人脸识别方法的原理图;

图10基于svm线性判别的人脸识别方法的流程图。

具体实施方式

下面结合附图和具体实施方案对本发明的技术方案作进一步详细地说明。

图1-图4显示了人脸图像预处理的方法。下面详细说明:

通过摄像机获取的图像,其往往不能直接用于人脸检测,因为受到外部环境因素的一些影响,比如:光照、遮盖物、噪声等等,因此对于获取的图像要进行一系列的预处理。使得图像质量更加优化。

本文中对于图像预处理分了四个过程,分别是图像灰度化、中值滤波、均衡直方图均衡化、图像对比度增强。它们依次处理使得图像质量更加优越。

中值滤波的目的是去除图像的噪声。它不仅可以保持图像的边缘特性,还是一种非线性的平滑技术。它的原理是中值法,即针对每一个像素点的灰度值,他代表了该点领域内的一切像素灰度值的中点,让周围的像素值更加逼近于真实的值,最终消除掉孤立的噪声点的过程,从而不会使得图像太模糊而无法辨识。

方法是用某种结构的二维滑动模板,将板内像素按照像素值的大小进行排序,生成单调上升(或下降)的为二维数据序列。二维中值滤波输出为:

g(x,y)=med{f(x-k,y-l),(k,l∈w)}(1)

其中,f(x,y),g(x,y)分别为原始图像和处理后图像。w为二维模板,通常为3*3,5*5区域,也可以是不同的的形状,如线状,圆形,十字形,圆环形等。

然后取出这列数据的中间的数据,并且将他赋给模版中心位置的像素。

中值滤波的实现:

1.首先是从图像中获取数据进行排序,它是在某个采样窗口获取的,然后在该窗口取出奇数个数据;

2.对值进行排序,然后用中值代替将要处理的数据即可。

直方图均衡化,它表现的是整个图像灰度值的分布情况。直方图均衡化的基本思想是:将原始分布不均匀的直方图,通过变换而变换成均匀分布的形式。即将局部集中的灰度区间变换成在全部灰度范围内的均匀分布。对图像进行非线性拉伸,从而使它重新分配像素值,并且使其像素在一定的范围内大致相同。它的目的是为了增加像素灰度值的动态范围,从而达到增强图像的整体对比度。

众所周知,均衡化过程中涉及到两个条件:

第一,无论如何映射,图像原来的大小关系永远保持不变。亮的区域仍然是亮的,暗的区域仍然是暗的,只不过是明暗的对比度增强了而已;另外一个因素就是越界问题了,如果是八位的图像,其值域必然在0~255之间。由于上面两个因素,累计分布函数恰恰符合其条件,并且他还是单调递增的函数,同时它的值域在0~1之间,这两个特性不仅对于控制大小关系,而且对于控制越界问题都是最佳的选择。

第二,累积函数处理过的像素值,由于累积分布函数是单调递增的,所以其像素值分布均匀。

直方图均衡化过程中,其映射方法是:

在上面这个公式中其中n代表的是图像中像素的总和,nj代表的是当前灰度级的像素个数,l代表的是图像中可能的灰度级总数。

该方法的只要优势是,他是可逆的。

直方图均衡化的过程:

1.首先是列出图像的灰度级,图像不仅是原始图像,还包括变换后的图像;

2.对原图像中的各个灰度级的像素个数进行统计;

3.针对原始直方图,计算其p(i)=ni/n;

4.接下来就是计算累计而成的直方图p(j)=p(1)+p(2)+p(3)+……+p(i);

5.计算变换后的灰度值,利用灰度变换函数去计算;j=int[(l-1)p+0.5]

6.接下来是确认灰度变换关系,然后将原来图像单调灰度值f(m,n)=i修正为g(m,m)=j;

7.统计变换后灰度级的像素个数nj;

8.计算变换后图像的直方图p(i)=ni/n;

直方图变换式是:

所谓有利必有弊,直方图均衡化也存在缺点:

1.经过直方图均衡变换后,使得图像的灰度级减少,导致某些细节消失不见了。

2.像一些有高峰的直方图,处理后导致对比度过分地增强了。

我们知道,在进行视频流获取中,其中要涉及到目标识别和跟踪。因为黑白照片,他们的数据量更加小,其相对彩色照片,其更加容易实现。另外一个方面,黑白照片是没有经过光线处理的照片,其涵盖的信息更加有价值。

下面就是对彩色图像进行灰度化:

所谓的rgb彩色图,其就是每个像素点的色彩,他们是由三个分量共同决定的,分别为r、g、b三个分量。其中每个分量的内存,它的位数决定了像素所占用的字节数。比如:24深色的rgb图,他们的分量分别各占一个字节,其中每个分量取值范围也很广,他在0~255之间进行取值,这样每个像素的颜色变化范围是非常广阔的。

那么对图像进行灰度化,也就是对图像的rgb三个分量进行计算,最终得到其灰度值,其中对于三个分量,我们采用的是加权平均的方法:

gray=b;gray=g;gray=r

这种方法是分量法,也就是利用rgb三个分量的某一个分量,让他作为该点的灰度值。

人脸的归一化,他包括两个方面,一个是几何归一化,他分为两步骤,一个是人脸校正,另外一个就是人脸裁剪。而灰度归一化,他是为了增强图像的对比度。

归一化:

它的目的是统一尺寸,即将人脸的表情图像归一化,增加图像的亮度,使得面部细节更加清晰明显。其步骤如下:

1.标定两眼,和鼻子的特征点

2.为了保证人脸方向的一致化,要根据两眼的坐标值对图像进行旋转。

3.确定矩形特征区域

4.对图像尺度进行归一化

此次设计的人脸识别系统,它主要包括四个组成部分,分别为:人脸图像采集及检测、人脸图像预处理、人脸图像特征提取以及匹配与识别。

人脸图像采集:

该模块中的图片是动态、静态的,首先通过摄像头进行拍照获取所需要的图片,也可以从预先储存的人脸库中去获取的,接着在界面的采集的图像那一模块显示出来。

人脸图像预处理:

对之前获取的图像或者视频流进行相关的处理,使其特征很明显地显示出来。它包括了这几个部分,其中有图像灰度化、中值滤波、直方图均衡化、对比度增强等。

人脸定位:

它将之前处理过的图片进行人脸的定位,就是将人的五官标记出来,比如:眼睛,鼻子,嘴巴等。在本次系统的设计中,定位的特征是人的眼睛,鼻子以及嘴巴。因为眼睛是对称的,所以比较容易去标记,而且鼻子,嘴巴都是在眼睛的下方,因此只要标记好眼睛,剩下的就轻而易举了。

特征的提取:

该模块是采用的haar特征提取方法,该过程是将定位后的人脸图像的五官特征值提取出来。

特征提取主要有下面四个步骤:

1.提取两只眼睛之间的距离

2.眼睛的倾斜角度

3.眼睛、嘴巴的重心

4.用一个矩形标出每一个特征

当提取完特征后,将提取的特征值存入库中。

人脸识别:

它将之前特征提取的数据值和后面数据库中的特征向量去进行比较,如果分析的结果在某一范围内,则提取出该人的相关信息,并显示出来,即可以识别出此人的身份,从而来完成人脸识别的过程。如果库存中没有与之对应的特征向量,则提示系统的库存样本情况。

到目前为止,人脸识别算法已经有很多。比如:pca主成分分析算法,svm算法,fisher算法等,鉴于本文研究的是svm算法,因此下面来讨论svm算法。

基于svm线性判别的人脸识别方法:

svm是支持向量机,它的英文全称是supportvectormachine,它在1995年提出。该算法的目的是解决小样本、非线性,识别的高位模式中有很多独特的长处,并希望在机器学习中进行推广。

支持向量机,它的目的是在有限的样本信息的条件下,在复杂的模型以及机器学习能力二者之间找到最好的折衷。

说到svm算法,必然会谈到vc维,即问题的复杂度。其中维数越高,问题会越复杂。svm是一种机器学习,其本质是逼近真实模型,但真实模型是未知的,这时候一切问题都是假设的,必然它与真实问题的解存在很大的差距。其中这个误差,称作风险。在不知道误差是多少的情况下,只能尽可能地用一些量去逼近它。当然,最直接的思路是,用实验结果与真实结果进行比较,确定出他们的差值,其实验结果就是在样本数据上使用分类器进行分类后的结果。其中这个差值,叫做经验风险,进行机器学习的要将经验风险降到最低。然而实验容易达到这个标准,现实由于各种原因,却差别很大。因此,经验结果显示,很难找到一种合适的算法,使经验风险能够无限逼近真实风险。其中主要原因是,现实中的样本数千差万别,但是实验中的样本数却相对很少很少。

实际上,真实风险往往是由两部分来组成的,一个是上面提到的经验风险,它代表了由于样本数的局限而导致分类器产生的误差,另外一个是置信风险,它表示了对分类器的信任度,即分类器进行分类的结果。然而,第二种方法很难预测,因此只能计算一个在误差允许范围之内的最优结果。

置信风险,它也有两个相关量来考察,其中一个是样本的数量,选择的样本数量越大,其学习结果就越逼近真实值。另外一个就是分类函数的vc维这个因素,vc维数越大,其相应的置信风险也会越大,必然导致越难推广。

其中泛化误差界的公式如式4所示:

r(w)≤remp(w)+ф(n/h)(4)

上式中r(w)是真实风险,remp(w)是经验风险,ф(n/h)是置信风险。由上面的公式可以得出,为了寻求结构风险最小化,就要寻求真实风险和经验风险之和最小化,以此才能达到优化。

svm算法的目的也就是寻求最小结构化风险。

svm的一些其他特点详述如下:

小样本,人脸识别的算法有很多,比如:pca,lda等。和其他一些人脸识别算法相比,svm对样本数的需求比较少。

非线性,即svm对于线性判别其更有优势。其主要是两个技术来实现,一个是核函数技术,一个是松弛变量技术。

svm算法的另一特点是高维模式识别,它是指样本的维数很高。即使出现上万维的情况,svm算法依旧可以正常应对。其主要原因是,svm的分类器非常简洁,因此它使用到的样本信息就很少,即使面对很高的维数,它也不会给存储带来很大的问题。

下面可以用一个例子来说明,比如在一个二维空间里,只有两类样本进行分类的情况,分别是c1和c2,现在要在二维平面里将他们区分开来。分类函数就是中间那一条直线了,目的是将两种样本区分开来。如果能够将样本完全分开来,这个线性函数就是线性可分函数,如果不能,就是线性不可分函数。

线性函数的定义是:点—线—面,即是一维空间的点,二维空间的一直线,三维空间的一平面……忽略空间维数这个问题,可以将之称为超平面。

它目的是将不同的类别分别输出。例如:我们可以用0和1来表示,0表示不属于c1(即属于c2),1表示属于c1,此时只需要确定一个阈值来判别分类问题,再结合实值函数,确定大于或者小于这一阈值而进行分类。

对于分类模型好坏的评判,通常都用分类间隔来判定。

接下来文本分类的问题,提供给计算机的训练样本是由两部分组成的,一个是向量,即是由文本特征组成的向量;另一个就是标记,即标识出样本的类别或者所属。如式5所示:

di=(xi,yi)(5)

其中xi代表维数很高的文本向量,yi表示分类标记。

在线性分类问题中,就比如上面提到的二元的,往往这个标记用两个值表示,一个是1,一个是-1,他们表示属于或不属于。接下来定义一个样本的的间隔,这个间隔是他到某个超平面的间隔。

δi=yi(wxi+b)(6)

对6式子,进行样本类别分类时,如果属于该类别,则有wxi+b>0,形式同上面的说明类似。同理,yi也必然大于0;反之,则有wxi+b<0,同理yi也应该小于0。由此进行乘积便可发现,无论何时yi(wxi+b)都是大于0的。我们知道,对于一个正数,他的值等于他的绝对值,yi(wxi+b)=|yi(wxi+b)|。

接下来对w和b归一化,使用w/||w||代替之前的w,b/||w||代替之前的b,故式子7:

由此联想到解析几何中一个相似的式子,d=(ax+by+c)/sqrt(a^2+b^2),其中sqrt(a^2+b^2)类比于||w||,其中||w||就是向量w的范数,通常对向量长度的一种度量叫做范数。而其中的向量为w=[a,b];而(ax+by+c)就相当于g(x),其中的向量x=[x,y]。

上面这个式子就是几何学中的点到直线的距离。

上面使用归一化的w和b,用它分别代替原来的值,称作几何间隔。几何间隔通常表示的就是点到超平面的距离,这个距离就是欧式距离。进行清晰的展现线性可分情况下的最优分类器的相关情况。

图5中h为分类面,h1和h2是相互平行的,并且还平行于h。图5中h1与h2这两类直线之间,并且过h的直线,就是h与h1,h与h2,他们之间的距离就是所谓的几何距离。几何距离,它和样本的误分次数之间,存在着不可分割的联系,如下式3-5所示:

由上式看出,有一个因子δ,代表的是样本集合到分类面之间的距离。r=max||xi||i=1,...,n,由这个式子可看出:r是所有样本中向量长度最长的一个值。由此可知,当样本数已经确定的时候,误分次数的最大值是由几何间距来确定的。由上式可看出,几何间距和误差最大值是呈现反比的,即几何间距越大,其相应的误差最大值就会越小。

由上面我们可以得出,为了取得误差最大值的最小化,我们要实现几何间距最大化。然而这个与我们求得svm最小化理论相悖,其原因如下:

间隔:σ=y(wx+b)=|g(x)|(9)

几何间隔:

由上面的间隔和几何间隔的式子可看出,δ=||w||δ几何,几何间隔与||w||是呈现反比的,即最大几何间距就是相当于最小化||w||。

接下来是最大几何间隔,即求取最大值,即最优值。将其转化为求取最小值问题比较简便,加负号使其最大值的问题转化为求取最小值的问题。对于求取最小值这个问题,首先需要找到最优目标,若想求取最小的||w||这个问题,如下式11所示:

min||w||(11)

往往在实际上,用等价替换的思想将目标函数替换掉,如下式12所示:

由上式可看出,当||w||2取得最小值时,同样||w||也必然取得最小值。现在看到上面这个式子,若要求取最小值,只需要||w||取得最小值即可。然而不管取任何数据,都是这个式子的解。如果放在图中,就是两条直线,他们之间的距离无限大,这样必然导致所有样本的混乱,他们都集中在两条直线之间。然而这与我们的初衷相违的,这样放佛进入一个灰色地带,一切都是混乱的无法分类,如图6所示:

考虑了目标却没有考虑约束条件,而约束条件是:样点必须在h1或者h2某一侧,一定不能居于二者之间。前面说把间隔定成1,这也就是说在所有样本中,间隔为1的点必然是间隔最小的那一点,那同样其他点的间隔都会大于1了。按照以往的定义,须满足下面13的式子:

yi[(w·xi)+b]≥1(i=1,2,…,l)(l是总的样本数)(13)

经变换后:

yi[(w·xi)+b]-1≥0(i=1,2,…,l)(l是总的样本数)(14)

因此,将分类问题转化成带约束的数字形式:

yi[(wxi+b]-1≥0,(i=1,2,···,l)(l是样本数)(15)

因此,这个求取最小值的问题相当于一个规划的问题。它是由两个模块组成的,目标函数以及约束条件这两个模块。用3-13式进行表示:

cj(x)=0,j=p+1,p+2,...,p+q(16)

在上式中,用c来表示约束条件。上式中有p+q个约束条件,其中p代表的是不等式约束,而q代表的是等式约束。式子中的自变量是x,但是对于他的维数却不限定,因为在实际问题中,他的维数可能成千上万。接下来是在约束条件里面找到f(x)在某一点取得的最小值。我们知道,在可行性域里面每一点都需要满足p+q个条件,另外在边界上的点可以取等号。

在可行性域里面涉及到凸集这个问题,所谓的凸集就是空间里任意两点连成的直线,该直线上的所有的点都在这个空间里。

上面12式子里,自变量是w,同时目标函数是w的二次函数,之前所列举的所有的约束条件,他们都是w的线性函数,因此,综合来叙述他是一个凸二次规划。

凸二次规划,他有一个很大的优点,就是他有全局最优解。

之前高数学习求解时,一般都是求得带等式的问题,可是目前面临的问题却是带不等式的约束问题,因此可以将之转化为带等式的约束问题,这样问题一下子就简单了很多!

由之前可知道,有很多很多两个类别的样本点,具体如图7所示,图7是线性可分的情况下的样本点:

从图7可看出有两个样本点,一个是圆形的样本点,将其定为正样本,另外一个就是方形的样本点,顺便将其定为负样本。因此我们要求的是在一个n维空间里的线性函数:

g(x)=wx+b(17)

接下来使得所有正样本的点带入上式后产生g(x+)≥1,同时所有负样本的点带入上式后产生g(x-)≤-1,由此可确定g(x)的值在+1和-1这个范围之外,倘若结果在此范围之内,则不能进行判断。通过求解的过程,,可以求出一n维向量w,另外一个实数b的值,一旦求出来,那么直线h就确定了,同时h1和h2因为和h平行。当样本确定了w之后,则某种组合就可以用样本描述:

w=a1×1+a2×2+…+an×n(18)

在式子3-15中,由于ai是拉格朗日乘子,xi是样本点,因此是向量,而且n是总的样本点的个数。在接下来的式子中有数字和向量的乘积,也有向量的内积<x1,x2>,看19表达式:

g(x)=<w,x>+b(19)

倘若我不动任何样本点的位置,只是将样本点正负换一下,也就是上面图示里面的,将圆形变成为方形,但是题的目的是将圆形和方形的点进行区分开来,由此可见,w不但与样本点位置息息相关,还和样本的类别有着千丝万缕的联系。如式20可表示为:

w=a1y1x1+a2y2x2+…+anynxn(20)

上式中的yi代表着第i个样本的标签,他等于1或者-1.在这个式子上,当他等于0时,就意味着这些点落在直线上,因为我们要求是非直线上的点,故需要w不等于0。故式子可以简写表示为:

同时,原式表示为:

上式中只有xi和x是向量,由于xi是已知的样本,因此原式为:

从上式中发现式子从原来的求w转变成了求a,不等式约束这个问题优化了。

上面我们针对求解的问题一直是线性可分的样本问题,可是现实中有很多线性不可分的问题。

由于二维空间中,一般线性函数都是直线,而面对线性不可分情况,显然不能用直线描述,因此只能找到一条曲线。

通过判断点在曲线的上方还是下方,从而来判断其所属的类别。我们在平时会发现,正样本类的函数,其值比0大,我们用二次曲线来描述样本函数:

g(x)=c0+c1x+c2x2(24)

针对上方曲线函数新建一个向量,其中y和a都是三维向量,如式25所示:

通过上式将g(x)进行转化,使之转化为f(y)=<a,y>,这样可以判断是否等于原来的g(x),因此f(y)如(26)所示:

g(x)=f(y)=ay+b(26)

在上面的式子是一个线性函数,其中a和y两个都代表着的都是多维空间向量,原因是自变量y,他的次数小于等于1。

在二维空间中线性不可分的问题无法进行解决,但是如果向高维空间进行转化,使之映射到四维空间里面去,这样就将问题简化,使之变成线性可分的问题。

而现实中进行转化关键因素是必须找到从x到y的映射方法。然而,针对上千维的文本向量,往往出现线性不可分,如果继续向更高的维数进行转换,其难度是非常大的。

事实上仅仅是高维空间里面内积的值而已,倘若值计算出来,那结果自然不言而喻了。从理论上来讲,是通过x变换而得到的,因此可以称之为x的函数,但是由于是常量并且是一个低维空间值w经过一系列变换而产生的,因此通过w和x的值必然会有一个确定的值与之相互匹配。这时首先要寻找一种函数k(w,x),不仅可以通过低维空间的值进行输入,而且还能计算出内积值,这个内积值是高维空间的。

倘若存在,那么当给出一个x的输入,其与低维空间相对应,这时候:

g(x)=k(w,x)+b(27)

f(x′)=(w′,x′)+b(28)

事实上这两个函数的结果非常吻合,更值得高兴的是k(w,x)确实存在的,这个函数被称作核函数。核函数的主要作用是首先接受两个空间的向量,这两个向量是来自低维的,它能够计算出相对应的向量内积值,这个内积值是经过某种变换后呈现在高维空间里面的,求一个线性分类器的问题的形式如29所示:

上面这个函数就是核函数,即在高维空间转化而来的线性函数。改变其名字,就可以得到下面30的式子:

通过上面这个式子,我们发现a,y,b这三个值和之前式子重复了,因此可看出,现在求线性不可分问题的时候,需要按照线性可分来求解。不过需要注意的是在选择内积的时候,要通过核函数来实现,这样就得到了所需要的分类器了。

不过,接下来出现了两个问题:

1.核函数是多个的,如何进行选择?

2.倘若使用核函数,其向高维空间映射后结果依旧是线性不可分,这时候该如何?

经过上网查询资料,得出了:核函数的选择,无法确定,其相对应的处理结果也有差异。但是径向量核函数,它的结果偏差往往很小很小,大多数其准确率在85%以上的。

通过高维映射,原来的函数将会变成线性可分的情况。假设样本点成千上万,而且还有另外一个训练集,只是比现在的多了一个样本点的情况,其相对应的位置如图8所示。

其中黄色那个点就是多出来的那个样本点,正因为它的加入使得原来的线性可分瞬间又转变成线性不可分的问题了。当然也可以从另外一个角度去思考,这个样本点或许就是干扰因素,是错误的或者是噪声呢?如果我们忽略这个样本点,其效果依旧会和以前一样。

但是这种错误是人为的,是人的思维导致产生的。这时为了解决问题,采用“硬间隔”的分类方法,原因是他强制性让所有样本点要求,使得和分类平面之间的距离,必须大于某个值才可以。

模仿人的思维,允许一些点,使得他们到平面的距离,不满足原来的那个要求即可。因为各个训练集,它们的艰巨尺度不同,因此我们将间隔来作为衡量的指标。

yi[(wxi)+b]≥1,(i=13,...,l)(l是样本数)(31)

从上面的式子可以看出,所有的样本的间隔都必须大于1。倘若一定要引入容错性这个因素,就添加一个松弛变量,即:

ζ≥0(32)

因为松弛变量是正值,因此所要要求的是其间隔可以比1小。但是,这必然会有损失。但是必须权衡这种损失的得失,所谓鱼与熊掌不可兼得。同时,如果得到的分类器间隔越大,好处就相应的越多了。其是原始的优化问题,他是和硬件间隔分类相对应的:

yi[(wxi)+b]-1≥0,(i=1,2,...,l)(l是样本数)(34)

由上面可以看出,||w||是目标函数,当然它的值越小其结果也最好。衡量损失有下面两种常用方式:

另外一种是:

在上面式子中,i表示的是样本的数目,第一种方法是二阶软间隔分类器,第二种称作一阶软间隔分类器。经查资料得知,想要把目标函数添加到原来的目标函数里面,这时候就需要一个惩罚因子,因此优化问题:

yi[(wxi)+b]≥1-ζi,(i=1,2,...,l)(l是样本数)(ζi≥0)(38)

上式需要注意:

一.松弛量不是一一对应的,不是所有的样本都有。往往只有个别的“离群点”才有。

二.其值,表示的是距离群的远近,当然值越大,点必然也会越远的。

三.惩罚因子,它代表你对损失的重视度,c越大,其相应的损失也会相继越大

四.惩罚因子不是一个变量,它是一个提前指定好的定值,解出得到一个分类器后,看看效果再进行选择。

针对c,这里说到了偏斜问题,即也就是数据倾斜。它表示的是,参与的两类样本,其有很大的数量值差异。为了解决倾斜这个问题,需要给原本样本数量就很少的负类,给它更大的惩罚因子,以表示对他的重视程度。则变成:

由上式我们可以得出,i是正样本,j是负样本数,现在确定c+和c-,那么最好的方法便是衡量他们分布的程度。

在特征提取那个阶段使用到了haar特征。它可以分为三类:线性特征、边缘特征、线特征、对角线特征。其特征值:总共有四个方向,分别是x、y、x倾斜、y倾斜这四个方向。其中,当计算每种特征值的时候,都是黑色像素区域的像素值,与白色填充区域的像素值进行差值,结果计算出来的差值就是haar特征。

在上面这个公式中,其中代表的是图片的大小,表示的是矩形特征的大小,它表示的是:矩形能放大的最大比例系数,w,h它们是特征在水平和垂直方向的对于45°的rotated特征,表示如41所示:

则它们的计算公式是:

图9-图10分别显示了人脸识别系统流程图和方法图,现将具体配置过程说明如下:

本次设计的计算机系统是win8.1_64bits的系统,通过在网上查找各种资料最终配置成功。其配置opencv1.0的过程如下所示:

首先:下载安装opencv1.0

首先安装好visualc++6.0,然后下载opencv1.0,其地址是http://opencv.org/。

下载后是可以执行的.exe文件,运行后将其解压到c盘中,可以选择路径为c:\\opencv1.0,打开其文件夹看到两个子文件夹,分别是build和sources这两个文件夹。

接下来是opencv1.0环境变量的配置过程:

第一步:选择计算机,右键点击属性->高级系统设置->环境变量->path->在变量中添加相应的路径。

接下来是全局设置,其配置步骤:

步骤是:工具->选项->目录,然后去设置lib的路径,选择libraryfiles,然后填入路径:c:\opencv1.0\opencv\lib

选择includefiles,同样填入下面的路径:

c:\opencv1.0\opencv\cxcore\include;

c:\opencv1.0\opencv\cv\include

c:\opencv1.0\opencv\cvaux\include;

c:\opencv1.0\opencv\ml\include

c:\opencv1.0\opencv\otherlibs\highgui

c:\opencv1.0\opencv\otherlibs\cvaum\include

选择sourcefiles,同样填入下面的路径:

c:\opencv1.0\opencv\cxcore\src;c:\opencv1.0\opencv\cv\src;

c:\opencv1.0\opencv\cvaux\src;c:\opencv1.0\opencv\ml\include;

c:\opencv1.0\opencv\otherlibs\highgui;

c:\opencv1.0\opencv\otherlibs\cvaum\src\windows;

在这里,整个配置基本完成了。

剩下的就是项目设置了,每当创建一个将要使用到opencv的vcproject的时候,都需要给他指定所需要的lib.

步骤是:项目->设置,然后将设置选择为allconfigurations,然后选择右面的link的标签,接着在object/librarymodules上加如下内容:

cxcore.libcv.libml.libcvaux.libhighgui.libcvcam.lib

然后整个配置宣告成功。

以上所述,仅为本发明较佳的具体实施方式,本发明的保护范围不限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可显而易见地得到的技术方案的简单变化或等效替换均落入本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1