基于遗传算法的人脸样本生成方法

文档序号:6393906阅读:301来源:国知局
专利名称:基于遗传算法的人脸样本生成方法
技术领域
本发明涉及人脸检测领域,更具体地说,本发明涉及静态图像人脸检测过程中人脸样本的生成方法。
背景技术
静态图像人脸检测是指给定一幅图像,判定其中是否存在人脸,如果有人脸,则返回其坐标和大小。人脸检测的研究因其在身份验证、档案管理和可视化通讯等方面的巨大应用前景,备受研究者关注,成为一个非常活跃的研究领域。
在静态图像人脸检测方法中,基于表象(appearance-based)的方法是很重要的一个方法。总的来说,这种方法遵循一种统一的模式,即首先通过学习,在大量人脸和非人脸样本集的基础上训练一个分类器,使得该分类器能对人脸和非人脸样本进行正确的识别,然后对被检测图像进行全局扫描,再利用训练好的分类器在被检测图像中检测人脸。若检测到人脸,则给出人脸所在的位置。
采用这种人脸检测方法很重要的一步是需要获得大量的具有代表性的人脸样本来训练分类器。在现有技术中,分类器学习所需要的样本都是通过网络和采集的方式来获得,在简单的对收集到的样本进行一些预处理后,再进行仿射变换,用于增加人脸样本的变化。尽管Lu和Jain利用了Bagging来对已有的样本进行重采样,并重组利用这些子集训练得到的分类器来提高人脸识别率。但是这样做的效果都是有限的,更重要的是如何搜集到丰富的人脸样本。在这方面CMU的Schneiderman做出了一定的努力,他收集了几十万个人脸样本,用于Bayes概率密度函数的估计。但这明显是一项非常繁琐的工作。
因此,就需要有一种人脸样本的生成方法能够利用已有的样本通过进一步变换来生成新的人脸样本,从而得到更为丰富的样本,以减少只是单纯地收集需要的样本所遇到的繁琐工作。
遗传算法的基本思想是基于Darwin进化论和Mendel的遗传学说的。Darwin进化论最重要的是适者生存原理。它认为每一物种在发展中越来越适应环境。物种每个个体的基本特征由后代所继承,但后代又会产生一些异于父代的新变化。在环境变化时,只有那些能适应环境的个体特征方能保留下来。Mendel遗传学说最重要的是基因遗传原理。它认为遗传以密码方式存在细胞中,并以基因形式包含在染色体内。每个基因有特殊的位置并控制某种特殊性质;所以,每个基因产生的个体对环境具有某种适应性。基因突变和基因杂交可产生更适应于环境的后代。经过存优去劣的自然淘汰,适应性高的基因结构得以保存下来。
遗传算法的基本原理长度为L的n个二进制串bi(i=1,2,...,n)组成了遗传算法的初解群,也称为初始群体。在每个串中,每个二进制位就是个体染色体的基因。根据进化术语,对群体执行的操作有三种1.选择(Selection)这是从群体中选择出较适应环境的个体。这些选中的个体用于繁殖下一代。
2.交叉(Crossover)这是对两个不同的个体的相同位置的基因进行交换,从而产生新的个体。
3.变异(Mutation)这是对个体中的某些基因执行异向转化。在串bi中,如果某位基因为1,产生变异时就是把它变成0;反亦反之。
遗传算法的算法可以简要给出如下1)选择一个初始种群;2)评价每个个体的适应度;3)进行选择操作;4)重复步骤5)~8),直至满足某一结束准则5)进行交叉操作;6)进行变异操作;7)评价每个个体的适应度;8)进行选择操作。

发明内容
本发明的目的是为了充分利用已收集到的人脸样本,基于遗传算法的思想对样本进行变换生成新的样本,从而扩张样本数量。
为了实现上述目的,本发明提供一种基于遗传算法的人脸样本生成方法,对人脸样本进行遗传算法的交叉操作而生成新的人脸样本,包括对人脸样本进行编码,然后对编码后的人脸样本进行交叉操作;所述交叉操作包括步骤
a1)将样本按照人脸的组成结构统一划分为多个不相重叠的区域;每一个区域对应样本编码中的一个子串;a2)随机地选择参与交叉操作的两个样本的相同区域,基于交叉概率对选中区域对应的子串进行交换,生成两个新的样本。
所述交叉操作为选中一个区域进行交换的单点交叉,或者为选中多个区域进行交换的多点交叉。
本发明还提供一种基于遗传算法的人脸样本生成方法,对人脸样本进行遗传算法的变异操作而生成新的人脸样本,包括对人脸样本进行编码,然后对编码后的人脸样本进行变异操作;所述变异操作包括步骤b1)随机从样本中划分出一个连通区域;该连通区域对应样本编码中的一个子串;b2)基于变异概率对该连通区域对应的子串进行模拟人脸变化的图像处理,生成一个新的样本。
基于上述的交叉操作和变异操作,本发明再提供一种基于遗传算法的人脸样本生成方法,对人脸样本通过遗传算法生成新的人脸样本,包括步骤1)对初始人脸样本集进行编码;2)将编码后的初始人脸样本集作为遗传算法的初始种群,并对该初始种群中的样本预设一适应度;3)进行遗传算法的交叉操作和变异操作,生成样本的中间解;4)用一训练好的分类器作为适应度函数评价样本的适应度,并根据该适应度进行遗传算法的选择操作,生成新一代群体;5)重复步骤3)和4)进行遗传算法的迭代,直至满足一结束准则。
作为上述方法的进一步改进,在重复步骤3)时,交叉操作和变异操作的操作对象为初始种群以及之前生成的各代新群体之和。
作为上述方法的进一步改进,在每次重复步骤4)时,都用非人脸样本、初始种群以及之前生成的各代新群体重新训练分类器,并将训练好的分类器作为当前的适应度函数。
作为上述方法的进一步改进,所述结束准则为在每次遗传算法的迭代中,都用一校验集测试所述分类器,当分类器的正确检测率在相连多代的变化小于一个预先指定的阈值时,停止遗传算法的迭代。
作为上述方法的进一步改进,所述选择操作是根据样本的适应度采用轮盘赌法对样本进行选择。
作为上述方法的进一步改进,所述的初始人脸样本是对采集的原始人脸样本经过预处理后得到,该预处理包括对原始人脸样本进行随机的仿射变换。
作为上述方法的进一步改进,将初始人脸样本根据其在随机仿射变换中不同的旋转角度划分为多个子集,所述遗传算法的交叉操作、变异操作和选择操作在各子集内部进行。
本发明利用现有的样本通过遗传算法的处理后,可以扩张人脸样本的数量,比现有的样本具有更丰富的特性。本发明通过交叉的方式,可以使得样本具有更多表情变化、佩带物的变化;通过变异来模拟人脸的老化、光照的变化和成像条件的变化。采用本发明的人脸样本生成方法后,可以在一定数量的原始样本基础上迅速扩张人脸样本数量,从而降低人脸样本收集的工作量。


图1是本发明的基于遗传算法的人脸样本生成方法流程框图;图2是依据本发明的人脸样本生成方法进行样本的交叉和变异的实施例,其中(a)是样本依据人脸的组成划分的实施例,(b)是进行样本交叉的实施例,(c)是进行样本变异的实施例;图3是依据本发明的人脸样本生成方法对编码的样本进行交叉和变异的示意图,其中(a)是进行样本交叉的示意图,(b)是进行样本变异的示意图;图4是依据本发明的人脸样本生成方法生成的一些新样本;图5是训练分类器SNoW所采用的一种特征表述方式;图6是在遗传算法的迭代过程中采用不同代的样本训练分类器后在校验集上得到的测试结果;图7是根据样本的旋转角度在子集内部进行遗传操作的示意图。
具体实施例方式
下面结合附图和具体实施方式
对本发明作进一步详细描述。
首先结合图1从总体上对本发明作出描述。如图1所示,在步骤101中收集人脸样本,这些样本经步骤102进行预处理。将预处理后的人脸样本分为训练集10和校验集11,其中训练集11也是遗传算法的初始种群,而校验集11在遗传算法迭代的结束准则中使用。在步骤103中,将初始种群10进行二进制编码。编码后的初始种群10作为遗传算法的第一代父代群体12,经步骤104进行遗传算法的交叉和变异操作生成新的样本,称为中间解13。在步骤105中,用一个分类器15作为遗传算法的适应度函数来评价中间解13,得到中间解13中各样本的适应度。其中该分类器15是用第一代父代群体12和非人脸样本集16来训练的。在步骤106中,根据中间解13中各样本的适应度进行遗传算法的选择操作,从中间解13中选取部分适应度高的样本作为第一代子代群体14。
在步骤107中,设置一遗传算法的迭代结束准则,当结束准则满足时结束遗传算法的迭代,当结束准则不满足时返回步骤103之后继续进行遗传算法的迭代。
在进行遗传算法的迭代时,最好每一代生成的子代群体14都和初始种群10一起作为下一代遗传操作的父代群体12,以便更加有效地扩展样本数量。例如,初始种群10作为第一代父代群体12,经步骤104的交叉和变异操作以及步骤106的选择操作后,生成第一代子代群体14;然后,第一代子代群体14和初始种群10一起作为第二代父代群体12,经步骤104和106的遗传操作后生成第二代子代群体12;然后,第二代子代群体也加入到由第一代子代群体14和初始种群10组成的第二代父代群体12中,形成第三代父代群体12,依此类推。
分类器15是由父代群体12和非人脸样本集16来训练的。要注意,如前所述,父代群体12在遗传算法的迭代过程中是不断变化的,因此在进行遗传算法的迭代时,最好每一次都用新的父代群体12和非人脸样本集16对分类器15进行训练。
在本发明的一种实施方式中,遗传算法的结束准则是由校验集11、训练好的分类器15、校验步骤108和判断步骤107完成的。在步骤108中,校验集11对训练好的分类器15进行校验,或者说由分类器15对校验集11中的人脸样本进行识别。而步骤107对分类器15对校验集11的识别结果进行判断,当在相连的多次迭代过程中分类器15的识别率变化小于一个阈值时停止遗传算法的迭代,否则将继续迭代。
下面将对图1中的各个部分分别进行具体的描述。
一)关于样本的采集和预处理在步骤101中,通过在网络上和采集的方法可以搜集一定数量的人脸样本,作为原始的人脸样本集。
在步骤102,对收集到的样本进行预处理。首先,通过仿射变换将搜集到的人脸样本大致对齐,以减小样本之间的外在差别,例如样本大小以及人脸在图像中的角度和位置。为了使分类器对仿射变换不敏感,最好还要再对这些样本进行随机的仿射变换,包括随机的旋转,平移和缩放。例如将样本随机在[-15°,+15°]之间旋转,随机平移半个像素,和随机在[-10%,+10%]之间缩放。对样本进行随机的仿射变换后,将变换前后的样本一起放入人脸的样本集,这样,通过随机的仿射变换也初步扩张了人脸样本的数量。最后,最好再对这些样本进行直方图均衡化,以扩充样本中灰度值的变化范围。
在一个实施例中,从网络上共搜集到4000个人脸样本,它们包括各种姿态,面部表情和光照的变化。经过预处理,可以得到20000个样本。将这些样本划分为两个集合包括15000个样本的训练集10和包括5000个样本的校验集11。虽然在该实施例中,这两个样本集10和11是从原始采集的样本划分而来,但在实际操作中这两个样本集可以独立采集。
二)关于样本的编码在步骤103中对初始种群10进行样本的编码。首先将要处理的样本归一化为具有固定的长度h和宽度w的图像。然后对归一化的图像进行直方图均衡化。在本发明的一个实施例中,采用如下的编码方法c1)将人脸样本进行归一化操作,转化为具有长度h和宽度w的图像;c2)若坐标为(x,y)的像素点的像素值为I(x,y),0≤x≤(w-1),0 ≤y≤(h-1)且0≤I(x,y)<N,N为像素值可取的最大值,则该像素点在编码中的值为l(x,y)=N×(y×w+x)+I(x,y);c3)整个样本的编码字符串为l(0,0)…l(x,y)…l(w-1,h-1)wj,其中wj为该样本的适应度。
当人脸样本是大小为20×20的灰度图像时,w=20、h=20、N=256。在进行第一次遗传操作之前,可将初始种群样本编码中的适应度wj置为1。
三)关于遗传操作这里的遗传操作包括步骤104的交叉操作、变异操作和步骤106中的选择操作。
在步骤104中,对父代群体12进行遗传算法的交叉操作和变异操作,生成样本的中间解13,如图2和图3所示。
其中,交叉操作包括步骤a1)将样本按照人脸的组成结构统一划分为多个不相重叠的区域。在图2(a)所示的实施例中,这些区域包括额头,眼睛,鼻子和嘴等。每一个区域对应样本编码中的一个子串。
a2)随机地选择参与交叉操作的两个样本的相同区域,基于交叉概率对选中区域对应的子串进行交换,生成两个新的样本。在这里,与常规的遗传算法一致,交叉概率一般在0.25-0.75之间选取。交叉操作可以为选中一个区域进行交换的单点交叉,或者为选中多个区域进行交换的多点交叉。在本算法中,优选采用的是单点交叉的方法,即仅对两个样本的一个对应区域进行交换。例如在图2(b)中,将两个人脸样本的眼睛部分进行调换生成两个新的人脸样本,这两个新的人脸样本就是图1中的中间解13。在具体实施时,如图3(a)所示,找到要交换的区域(例如图2(b)中的眼睛)在父代样本1和父代样本2的编码中对应的子串(图中的阴影部分),然后互相交换这两个子串。经交叉操作得到的样本最好进行直方图均衡化,以提高其适应能力。
变异操作包括步骤b1)随机从样本中划分出一个连通区域,其大小为样本的1/4到1/2不等,该连通区域对应样本编码中的一个子串。在图2(c)的实施例中,该连通区域是人脸的右半部分(从观察者方向)。
b2)基于变异概率对该连通区域对应的子串进行模拟人脸变化的图像处理,这些处理包括对该子串进行锐化、模糊或者施加光照变化等。合并变化后的区域和未进行变化的区域,形成一个新的人脸样本。在这里,与常规的遗传算法一致,变异概率一般在0.01-0.2之间选取。在图2(c)中,人脸的右半部分经图像处理后再与没有变化的左半部分人脸合并,生成一个新的人脸样本,该人脸样本就是图1中的中间解13。在具体实施时,如图3(b)所示,找到所划分出的连通区域(例如图2(c)中人脸的右半部分)在父代样本3的编码中对应的子串(图中的阴影部分),仅对该子串进行如前所述的图像处理过程,得到一个新的子代样本4。经变异操作得到的新的人脸样本最好进行平滑和直方图均衡化,以提高其适应能力。
通过上述对样本进行的交叉和变异操作来模拟真实图像可能出现的各种变化,使其可以覆盖一些日常生活中的常见的人脸变化,如老化、光照,姿态,佩带物以及图像的质量变化等,从而达到丰富人脸样本的目的。图4是采用遗传算法迭代终止时得到的一些新的样本。
步骤106中进行遗传算法的选择操作,在这里,样本个体的选择采用“轮盘赌法”,即中间解13中适应度大的样本具有更多的机会被选中作为子代群体14中的样本。在一个实施例中,在经过每一代的繁殖后,步骤106中的选择操作只保留中间解13中适应度较高的10%的样本,抛弃其他的样本。这样,当初始种群为15000个样本时,经过20代的繁殖,总共可以得到15000×(1+0.1)20=100912个后代,其规模已大大超过了初始种群。为了防止样本的过度膨胀,可以对种群的数量进行修剪,只保留初始样本数量的3倍,即为45000个个体,其中包括初始种群的15000个样本和30000个解。然后将剩下的这些样本进行手工挑选,以防止分类器将那些看起来不太像人脸的样本赋予较高的权值。
四)关于分类器在本发明的一种实施方式中,采用分类器15作为遗传算法的适应度函数,以便在步骤105中对中间解13作出适应度的评价。在每次遗传算法的迭代过程中,该分类器15由父代群体12和非人脸样本集16训练。在一个具体实施例中,该分类器选取为SNoW分类器。对于非人脸样本(也称为负样本),在训练分类器15的一个实施例中,每次训练时都从6107幅不含有人脸的图像中提取出15394个子窗口作为负样本,这些负样本包括各种风景,树木和建筑等。为了保证负样本的丰富性,在每次训练中都采用Bootstrap的方式在图像中提取新的负样本。
为了训练该分类器SNoW,优选采用如图5所示的特征表述方式。它在空域内对每个归一化到20×20大小的样本进行编码,即对任意一个样本中的每个2×2大小的子块内的每个像素和该子块的坐标进行编码。每个坐标和每个像素都采用3位的二进制数来表示,这样可以得到一个18位的二进制串。其中(x,y)是一个2×2大小块的坐标,Ij(j=1,2,3,4)是该块中4个像素的灰度值,[x]3,[y]3和[Ij]3中的下标“3”表示每个单元用3位二进制数来进行编码。图5所示的特征表述方式在文献“B.Frba and A.Ernst.Fast Frontal-View Face Detection Using a Multi-PathDecision Tree.In Proc.Audio-and Video-based Biometric Person Authentication(AVBPA’2003),2003.pp.921-928”中有详细描述。采用这样的特征表述方式后,每个样本可以得到维数为19×19=361的特征,每一维对应于分类器中的一个权值,由它们所对应的这些权值之和可以计算出一个归一化的数。这个归一化之后的数即为该样本的适应度。该分类器共有262144个权值,它采用SNoW的训练过程进行训练。
训练好的分类器15有两个用途,一个是用来在步骤105中评价中间解13,另一个是与校验集11、校验步骤108和判断步骤107一起构成遗传算法迭代的结束准则。分类器15评价中间解13中的样本,给出该样本的适应度,以便在步骤106中由遗传算法的选择操作对中间解13中的样本进行选择。在遗传算法的每次迭代过程中,都在步骤108中由校验集11对训练好的分类器15进行校验,或者说由分类器15对校验集11中的人脸样本进行识别。而步骤107对分类器15对校验集11的识别结果进行判断,当在相连的多次迭代过程中分类器15的正确检测率变化小于一个阈值时停止遗传算法的迭代,否则将继续迭代。
图6是采用遗传算法迭代过程中不同代的样本训练分类器15后在校验集11上得到的测试结果,其横坐标为误检率,其纵坐标为正确检测率。图中的各条曲线反应了当遗传算法迭代的代数增加时,分类器15的正确检测率不断提高,说明遗传算法生成的样本性能不断提高。图6可以看出,当操作进行到20代(GA20)时,样本的性能比初始种群10有了明显的提高。当到达40代(GA20)时,样本的性能又有了进一步的提高。而在40代以后,样本的整体性能变化不再明显,也就是说分类器15的正确检测率几乎不再变化。因此,在迭代的过程中,可以将迭代的次数设置为一个比40略大的数。在实际操作时,可以设定一个域值,当分类器15的正确检测率在相邻多代之间的变化小于该域值时即可停止迭代。
五)本发明的进一步改进。
如前所述,在样本的预处理步骤102中,对样本进行了随机的旋转。根据初始种群10中样本在预处理时的不同旋转角度划分为一些更小的子集。在一个实施例中,样本在预处理时在[-15°,+15°]范围内随机旋转,根据旋转角度将初始种群10均匀的划分为六个子集,如图7所示第一个子集是指所有旋转角度在[-15°,-10°)区间内的样本,用符号ω1表示;第二个子集是指所有旋转角度在[-10°,-5°)区间内的样本,用符号ω2表示;……;第六个子集是指所有旋转角度在[10°,15°]区间内,用符号ω6表示。然后,步骤104的交叉和变异操作以及步骤106的选择操作都在子集内部进行。如图7所示,来自于ω6的两个个体xi和xj放入交配池6,它们以一定的概率Pc进行交叉后,得到的后代仍然放入ω6集合内。同样来自ω5的样本在进行交叉后,得到的后代放入ω5集合内。来自ω1的样本xk以一定的概率Pm在进行变异后,得到的后代放入ω1集合内。
权利要求
1.一种基于遗传算法的人脸样本生成方法,对人脸样本进行遗传算法的交叉操作而生成新的人脸样本,包括对人脸样本进行编码,然后对编码后的人脸样本进行交叉操作;所述交叉操作包括步骤a1)将样本按照人脸的组成结构统一划分为多个不相重叠的区域;每一个区域对应样本编码中的一个子串;a2)随机地选择参与交叉操作的两个样本的相同区域,基于交叉概率对选中区域对应的子串进行交换,生成两个新的样本。
2.根据权利要求1所述的基于遗传算法的人脸样本生成方法,其特征在于,所述交叉操作为选中一个区域进行交换的单点交叉,或者为选中多个区域进行交换的多点交叉。
3.一种基于遗传算法的人脸样本生成方法,对人脸样本进行遗传算法的变异操作而生成新的人脸样本,包括对人脸样本进行编码,然后对编码后的人脸样本进行变异操作;所述变异操作包括步骤b1)随机从样本中划分出一个连通区域;该连通区域对应样本编码中的一个子串;b2)基于变异概率对该连通区域对应的子串进行模拟人脸变化的图像处理,生成一个新的样本。
4.一种基于遗传算法的人脸样本生成方法,对人脸样本通过遗传算法生成新的人脸样本,包括步骤1)对初始人脸样本集进行编码;2)将编码后的初始人脸样本集作为遗传算法的初始种群,并对该初始种群中的样本预设一适应度;3)进行遗传算法的交叉操作和变异操作,生成样本的中间解;4)用一训练好的分类器作为适应度函数评价样本的适应度,并根据该适应度进行遗传算法的选择操作,生成新一代群体;5)重复步骤3)和4)进行遗传算法的迭代,直至满足一结束准则。
5.根据权利要求4所述的基于遗传算法的人脸样本生成方法,其特征在于,在重复步骤3)时,交叉操作和变异操作的操作对象为初始种群以及之前生成的各代新群体之和。
6.根据权利要求4或5所述的基于遗传算法的人脸样本生成方法,其特征在于,在每次重复步骤4)时,都用非人脸样本、初始种群以及之前生成的各代新群体重新训练分类器,并将训练好的分类器作为当前的适应度函数。
7.根据权利要求4所述的基于遗传算法的人脸样本生成方法,其特征在于,所述结束准则为在每次遗传算法的迭代中,都用一校验集测试所述分类器,当分类器的正确检测率在相连多代的变化小于一个预先指定的阈值时,停止遗传算法的迭代。
8.根据权利要求4所述的基于遗传算法的人脸样本生成方法,其特征在于,所述选择操作是根据样本的适应度采用轮盘赌法对样本进行选择。
9.根据权利要求4所述的基于遗传算法的人脸样本生成方法,其特征在于,所述的初始人脸样本是对采集的原始人脸样本经过预处理后得到,该预处理包括对原始人脸样本进行随机的仿射变换。
10.根据权利要求9所述的基于遗传算法的人脸样本生成方法,其特征在于,将初始人脸样本根据其在随机仿射变换中不同的旋转角度划分为多个子集,所述遗传算法的交叉操作、变异操作和选择操作在各子集内部进行。
全文摘要
本发明公开了一种基于遗传算法的人脸样本生成方法。该方法对人脸样本集进行编码,然后将编码后的人脸样本集作为遗传算法的初始种群,用一分类器作为适应度函数评价样本的适应度,并进行遗传算法的选择操作、交叉操作和变异操作,以生成新的人脸样本。交叉操作是将样本划分为多个不相重叠的区域,基于交叉概率对两个样本中一选中区域进行交换;变异操作是随机从样本中划分出一个连通区域,基于变异概率对该连通区域进行模拟人脸变化的图像处理。采用本发明的人脸样本生成方法后,可以在一定数量的原始样本基础上迅速扩张人脸样本数量,从而降低人脸样本收集的工作量。
文档编号G06K9/00GK1670764SQ20041002945
公开日2005年9月21日 申请日期2004年3月19日 优先权日2004年3月19日
发明者陈杰, 陈熙霖, 高文 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1