基于光流特征的笑脸识别系统及方法

文档序号:6635485阅读:237来源:国知局
基于光流特征的笑脸识别系统及方法
【专利摘要】本发明揭示了一种基于光流特征的笑脸识别系统及方法,所述系统包括特征提取模块、分类识别模块;特征提取模块与分类识别模块连接;特征提取模块包括人脸检测单元、光流计算单元、光流特征生成单元;所述人脸检测单元用于在输入的图像中如果存在人脸区域,则检测出人脸,确定所有人脸的大小、位置和位姿;光流计算单元用于进行光流的计算;所述光流特征生成单元用以获取图像的光流场;分类识别模块用以训练和识别笑脸;在训练和识别中,均要用到特征提取模块得到的特征向量。本发明提出的基于光流特征的笑脸识别系统及方法,结合人脸检测、五官定位等相关技术,采用有效的特征提取方法,取得更加有效的信息,从而提高笑脸识别的准确性。
【专利说明】基于光流特征的笑脸识别系统及方法

【技术领域】
[0001] 本发明属于人脸识别【技术领域】,涉及一种笑脸识别系统,尤其涉及一种基于光流 特征的笑脸识别系统;同时,本发明还涉及一种基于光流特征的笑脸识别方法。

【背景技术】
[0002] 计算机视觉和人机交互技术的快速发展,使得人们对计算机应用及各种电子产品 的智能化研究愈来愈感兴趣。众多的智能化研究围绕着如何让计算机等通过获取某些信 息,自动知道人类的情绪和也理活动,其中,通过对人脸面部表情的识别,进行人类情绪的 感知研究尤为火热。但根据一些使用数码产品的用户反馈,所体验到的笑脸功能并不理想, 在实际应用中存在着很多不足之处。
[0003] 首先,笑脸识别功能的准确性不高。由于人类表情的表现方式有细微和强烈之分、 缓和和激动之分、轻松和紧张之分等诸多形式,所W同一种表情往往表现出不同的面部形 变和强度。比如同样是高兴的表情,有的是微笑,有的是大笑,有的是勉强的笑等,该就给笑 脸识别的结果是否准确带来了一定的挑战。
[0004] 其次,笑脸识别功能的敏感度不高。目前有很多产品中的笑脸识别功能只有当被 拍摄者的笑容达到一定程度或者符合一定规范时,甚至是必须露出牙齿,笑脸快口才能起 到作用。
[0005] 有鉴于此,如今迫切需要设计一种新的笑脸识别方式,W便克服现有笑脸识别方 式的上述缺陷。


【发明内容】

[0006] 本发明所要解决的技术问题是;提供一种基于光流特征的笑脸识别系统,可提高 笑脸识别的准确性。
[0007] 此外,本发明还提供一种基于光流特征的笑脸识别方法,可提高笑脸识别的准确 性。
[000引为解决上述技术问题,本发明采用如下技术方案:
[0009] -种基于光流特征的笑脸识别系统,所述系统包括;数据库模块、预处理模块、特 征提取模块、分类识别模块;
[0010] 所述预处理模块包括图像预处理模块和感兴趣区域检测模块;
[0011] 所述图像预处理模块包括图像平滑单元、尺寸归一化单元、灰度均衡单元;
[0012] 所述图像平滑单元用W利用邻域平均法消除图像噪声;用几个像素灰度的平均值 来代替每个像素的灰度;假定有一幅NXN个像素的图像f(x,y),平滑处理后得到一幅图像 为g(x,y) ;g(x,y)由下式决定:
[0013]

【权利要求】
1. 一种基于光流特征的笑脸识别系统,其特征在于,所述系统包括:数据库模块、预处 理模块、特征提取模块、分类识别模块; 所述预处理模块包括图像预处理模块;所述图像预处理模块包括图像平滑单元、尺寸 归一化单元、灰度均衡单元; 所述图像平滑单元用以利用邻域平均法消除图像噪声;用几个像素灰度的平均值来代 替每个像素的灰度;假定有一幅NXN个像素的图像f(x,y),平滑处理后得到一幅图像为 g(x,y) ;g(x,y)由下式决定:
式中X,y= 0, 1,2,......,N-I;S是(x,y)点邻域中点的坐标的集合,但其中不包括 (x,y)点,M是集合内坐标点的总数;式(1)说明,平滑化的图像g(x,y)中的每个像素的灰 度值均由包含在(x,y)的预定邻域中的f(x,y)几个像素的灰度值的平均值来决定;以(X, y)点为中心,取单位距离构成一个邻域,其中点的坐标集合为 S= {(x, y+1), (x, y - I), (x+1, y), (x - I, y)} (2) 所述图像平滑单元还采用阈值法减少由于邻域平均所产生的模糊效应;当一些点和它 的邻域内的点的灰度平均值的差不超过规定的阈值T时,就仍然保留其原灰度值不变,如 果大于阈值T时就用它们的平均值来代替该点的灰度值;以减少模糊的程度;其基本方法 由下式决定
其中,T为规定的非负阈值; 所述尺寸归一化单元用以通过尺度校正、平移、旋转的方法去除图像中的结构变形,使 人脸图像标准化; 所述灰度均衡单元用以减少光照对人脸图像灰度分布的影响,对人脸样本图像进行直 方图均衡化;直方图均衡化处理是把原始图像的灰度直方图从比较集中的某个灰度区间变 成在全部灰度范围内的均匀分布; 所述特征提取模块包括人脸检测单元、光流计算单元、光流特征生成单元; 所述特征提取模块用以采用光流特征提取方法;提取光流特征就是对两幅图像做以下 操作:1)输入图像;输入图像为两幅图像,用以测试某一幅表情图像是否是笑脸图像;2)人 脸检测;光流特征提取严格针对人脸区域,采用的Jaffe数据库中的图像需要进行人脸检 测,剔除周围不相关的区域,得到准确的人脸区域,将人脸区域从图像中提取出来,并进行 归一化; 所述人脸检测单元在输入的图像中如果存在人脸区域,则检测出人脸,确定所有人脸 的大小、位置和位姿;采用Haar-Like特征与级联的Adaboost学习算法相结合的方法;具 体步骤如下: 第一步、对人脸进行Haar-Like特征计算,运用"积分图"算法快速提取特征; 目标的特征通常是对待分类目标进行研究后得到的知识进行编码来取得的,用来编码 的知识通常很难从原始图像的像素中直接获到;在人脸图像的模型建立过程中,运用人脸 的特征能够使得人脸跟非人脸这两个类别的类内距离得到大大的降低; 将人脸特征经过不断的延展之后得到新的特征,将此新特征叫做"矩形特征";表示矩 形特征的值通常被人们叫做"特征值"; 将训练窗口的规模初始化为W*H个像素点;W代表特征原型长度具有的像素个数,h代 表特征原型宽度具有的像素个数; 令:x=(?W)/w,. 〃?〃表示对数值取整;一个大小为w*h的特征原型在一个大小为W*H的搜索窗中得到的矩形特征的个数常常用下面的公式的计算结果来表示; 利用新的图像表示方法--积分图像,计算矩形特征的特征值,只与此特征矩形的端 点的积分图有关,所以不管此特征矩形的尺度变换如何,特征值的计算所消耗的时间都是 常量;这样只要遍历图像一次,求得所有子窗口的特征值; 积分图的定义为:
其中,I(x',y')为图像在点(x',y')处的像素值; 为了节约时间,减少重复计算,则图像I的积分图按如下递推公式计算:
这样就能进行2种运算: 第一种运算方法,对任意矩形区域内像素积分;由图像的积分图可方便快速地计算图 像中任意矩形内所有像素灰度积分; 第二种运算方法,特征值计算;矩形特征的特征值是两个不同的矩形区域像素和之差, 由(1)式计算任意矩形特征的特征值; 运用积分图快速计算给定的矩形之所有象素值之和Sum(r);假设r= (x,y,w,h),那 么此矩形内部所有元素之和等价于下面积分图中下面这个式子: Sum(r) =ii(x+w,y+h)+ii(x-1,y-1)-ii(x+w,y-1)-ii(x-1,y+h) (15) 第二步、根据AdaBoost算法提取最有效的Haar-Like特征,经过多次迭代确定各个弱 分类器的权值; AdaBoost算法同时进行训练分类器和特征选择的工作,这是它的一个非常重要的特 点;AdaBoost算法中的每个弱分类器都与某个特征对应,弱分类器的个数等于矩形特征 数;训练过程中从大量的弱分类器中选出一个在当前样本权重分布情况下具有最小分类错 误率的弱分类器作为本轮的最优弱分类器,进行T轮训练以后,最终得出T个最具代表性的 特征,对应了T个弱分类器,最后根据每个特征的不同权值加权后连接得到一个非常强大 的分类器; 令X为训练样本空间,Y= {0,1}中包含了训练样本可能来自的类别的记号;1代表正 的样本点,即人脸样本,〇代表负的样本点,即非人脸样本;假设一共有K个矩形特征;」代 表第t轮迭代过程中的第j个样本点所具有的权重;算法的具体实现通常包含下面的4个 重要环节: (1)已知训练样本集X=Kx1,y),(x2,y2),…,(xn,yn)};式中XiGX;假定训练集中共 包含1个人脸样本点,m个非人类样本点,1+m=n; (2) 给每个样本点一个起始权重;
(3) 对于t= 1,…,T;T为循环次数; ① 对样本所具有的权重执行归一化操作; ② 针对每一个特征j,在已知的样本权重分布情况下训练得到弱分类器hy(x),通过计 算得到每个弱分类器对样本集的分类错误率,
③ 确定第t轮迭代的最优弱分类器ht (X),令k=argminet,」,并将样本集的分类错误 率取为et=et,k; @根据获得的最优弱分类器修改样本的权重:叫+1=叫/?广"',其中1=£/(1-^) ; ei= 0,表示Xi被正确分类,ei= 1表示Xi被错误分类; (4) 最后得到的强分类器为:
第三步、将训练得到的弱分类器进行级联,组成完整的人脸检测系统; 为了能够改善人脸检测的时间性能,利用新的分类器结构:分层的级联分类器,分类器 包括多层分类器,通过这样的一种分类器组织方式使得人脸检测过程随着层数的递增得到 更1?的精度; 上述的级联分类器的判决过程与经过退化的决策树的判定过程相似,若第i层将搜索 子窗判定为"是",那么这个可能会包含人脸图像的搜索子窗便会被继续派发到第i+1层分 类器,同时诱发第i+1层的分类器进行分类工作,如此逐级检测;这种检测方法首先副除巨 量的不包含人脸图像的搜索子窗,从而使得人脸检测的时间性能得到优化; Adaboost分类器的训练过程包括: 利用光流计算单元计算光流;采用Horn-Schunck算法进行光流(u,v)的计算,设定搜 索窗口为1,计算得到的光流特征向量维数为(100/2) *(100/2) = 2500 ; Horn-Schunck算法核心思想是:图像上每一点的光流之间都有联系,光流在整个图像 范围内应该是平滑变化的,所以引入了平滑性约束,使平滑约束项极小化; 设平滑性约束项为极小化: Es =ff{u2x+ir+ +)dxdy (18) 结合基本等式,要求极小化: Ec=/ /(IXu+Iyv+It)2dxdy(19) 结合式18和式19可知,最后求得的光流应满足式20 : minii[(ul+ul+vl+v]) +A,(Iu+1+1,);]dxdy (20) 这里入的取值要考虑噪声情况,噪声较强,则说明图像数据本身具有较低的置信度, 这时便需要更多的依赖加入的光流约束,A取较小的值;反之,若噪声较弱,A取较大的 值; 此时,问题将转化为求解Lagrangian最小化问题;对形如式20的形式变分问题min{ / /F(u,v,ux,uy,vx,vy)dxdy} (21) 的解释对应Euler方程21的解
其中,▽ 2是Laplace算子; 实际计算过程中,处理对象为离散化的坐标,相应的,要对式23进行离散化处理: <+<+乂+<离散化为

根据中性图像,利用Horn-Schunck计算出表情图像中每一点的光流矢量,所有点的光 流矢量共同构成这幅表情图像的光流特征; 所述系统中的Horn-Schunck算法计算的是稠密光流的速度场,S卩,将图像中的每个像 素都与速度关联,针对每个像素分别计算光流向量的u和V两个分量;所述光流特征生成单 元用以获取图像Horn-Schunck光流场,图像Horn-Schunck光流场的获取需要四个步骤: (1) 计算像素点的光流分量;计算的依据是Horn-Schunck算法中的光流(u,v)迭代公 式(式 29、30、31); (2) 设定搜索窗口大小;经过多次设定搜索窗口的大小,通过笑脸识别的结果,得出本 系统中最合适的窗口大小为2*2,即设定winsize= 1 ; (3) 计算窗口中的光流特征值;在每一个2*2的窗口中,含有4个像素点,对这4个像 素点的u和V分量进行加法运算,得到该窗口的(u,v)分量,根据d=arctan(v/w)计算光 流特征值; (4) 获取图像的光流特征向量;将所有窗口计算所得的光流特征值串联起来,组成整 幅图像的光流特征向量; 所述分类识别模块用以训练和识别笑脸;在训练和识别中,均要用到特征提取模块得 到的特征向量;训练的目的是通过对大量训练样本的特征向量进行机器学习,得到能够最 大限度地区分出笑脸和非笑脸的分类器;识别过程是将测试样本通过特征提取模块之后得 至_特征向量,送入训练得到的笑脸分类器,通过一系列对比和划分,最终得到测试样本所 属的类别; 在分类识别模块采用随机森林的分类方法,随机森林RF是一种联合分类器,每棵决策 树都是一个基础分类器,多个决策树共同构成随机森林;决策树在每个节点随机从属性集 中选取若干候选属性,根据Gini系数最小原则选择分类属性和阈值;每一棵树都依赖于独 立抽样,并与森林中所有树具有相同分布的随机向量的值;米用随机森林分类RFC时,每棵 树都投票并返回得票最多的类; 决策树与流程图的树结构相类似,其中,每个内部节点都是一个分裂问题,每个分支代 表该测试的一个输出,而每个树叶节点存放一个类标号;树的最顶层节点是根节点; 决策树构建的基本步骤如下: (1)开始,所有记录看作一个节点; (2) 遍历每个变量的每一种分割方式,找到最好的分割点; (3) 分割成两个节点NJPN2; (4) 对NJPN2分别继续执行2-3步,直到每个节点足够"纯"为止;
每一类的比例P(i)=第i类的数目/总数目;Gini系数值越大,表示越"不纯",越小表示 越"纯";纯度差为:
其中,I代表不纯度(也就是上面三个公式的任意一种),K代表分割的节点数,一般K=2 表示子节点中的记录数目;上面公式实际上就是当前节点的不纯度减去子节点不 纯度的加权平均数,权重由子节点记录数与当前节点记录数的比例决定; 决策树的构建过程是一个递归的过程,所以需要确定停止条件,否则过程将不会结束; 当前节点中的记录数低于一个最小的阈值,那么就停止分割,将max(P(i))对应的分类作 为当前叶节点的分类; 决策树T构建好后,需要估计预测准确率;直观说明,比如N条测试数据,X预测正确 的记录数,那么可以估计acc=X/N为T的准确率;但是,这样不是很科学;因为我们是通过 样本估计的准确率,很有可能存在偏差;所以,比较科学的方法是估计一个准确率的区间, 这里就要用到统计学中的置信区间; 设T的准确率p是一个客观存在的值,X的概率分布为X?B(N,p),即X遵循概率 为P,次数为N的二项分布(BinomialDistribution),期望E(X) =N*p,方差Var(X)= N*p*(l_p);由于当N很大时,二项分布可以近似有正太分布(NormalDistribution)计 算,一般N会很大,所以X?N(np,n*p*(l-p));算出,acc=X/N的期望E(acc) =E(X/ N) =E(X)/N=p,方差Var(acc) =Var(X/N) =Var(X)/N2=p*(l_p)/N,所以acc? N(p,p*(l-p)/N);这样,就通过正太分布的置信区间的计算方式计算执行区间; 正太分布的置信区间求解如下:
(2) 选择置信水平a= 95%,或其他值,这取决于你需要对这个区间有多自信;一般来 说,a越大,区间越大; (3) 求出a/2和I-a/2对应的标准正太分布的统计量Za/2和Zi_a/2,Za/2和Zh/2均为 常量;然后解下面关于P的不等式;acc由样本估计得出;即可以得到关于p的执行区间
采用的随机森林,由两种随机算法共同构建,这两种随机算法分别是装袋法,和基于输 入的构建方法; 装袋法bagging是一个统计重采样的组合技术,利用有放回的随机重采样来生成多个 版本的预测器,然后把这些分类器融合,通常情况下,组合的分类器与单一分类器相比,其 分类效果更好,原因是在最终解决问题时,结合了所有单独分类器的特点; 利用bagging方法来生成训练集,其具体思想及操作步骤是:原始训练集D中,由于抽 取样本的随机性,每个样本未被抽取的概率为(1_1/N)N,其中N为原始训练集D中的样本个 数;当N足够大时,(1-1/N)1f收敛于1/e?0. 368,也就是说,在原始样本集D中,将会有 接近37%的样本在抽样时不会出现在bootstrap的样本中,这些未被抽取的数据称为袋外 OOB数据,使用袋外数据来估计模型性能的方法称为OOB估计;由于使用OOB估计和使用相 同样本容量的测试集的精度一样,就没有必要再使用测试集;采用的识别率统计由OOB估 计来代替; 采用Forests-RI构建随机森林;Forests-RI构建方法是对输入变量进行随机分组,例 如,给定d个样本的训练集D,目的是为组合分类器产生k棵决策树,过程如下:首先,对于 每次迭代i(i= 1,2,…,k),使用有放回抽样,由D产生d个样本的训练集Di,使得某些样 本可能在Dim现多次,而另一些可能不出现;设F是用来在每个节点决定划分的属性数,其 中F远小于可用属性数;为了构造决策树分类器Mi,在每个节点随机选择F个属性作为该节 点划分的候选属性;树增长到最大规模,并且不剪枝。
2. -种基于光流特征的笑脸识别系统,其特征在于,所述系统包括:特征提取模块、分 类识别模块,特征提取模块与分类识别模块连接; 所述特征提取模块包括人脸检测单元、光流计算单元、光流特征生成单元; 所述人脸检测单元用于在输入的图像中如果存在人脸区域,则检测出人脸,确定所有 人脸的大小、位置和位姿; 所述光流计算单元用于进行光流的计算; 所述光流特征生成单元用以获取图像的光流场; 所述分类识别模块用以训练和识别笑脸;在训练和识别中,均要用到特征提取模块得 到的特征向量;训练的目的是通过对大量训练样本的特征向量进行机器学习,得到能够最 大限度地区分出笑脸和非笑脸的分类器;识别过程是将测试样本通过特征提取模块之后得 至_特征向量,送入训练得到的笑脸分类器,通过对比和划分,最终得到测试样本所属的类 别。
3. 根据权利要求2所述的基于光流特征的笑脸识别系统,其特征在于: 所述系统还包括预处理模块,用以对图像进行预处理; 预处理模块中,所做工作的目的是为了得到能够直接提取光流特征的区域图像;对于 训练流程来说,其处理对象为JafTe表情库,所做工作为人脸检测,对于识别流程来说,其 处理对象为通过摄像头直接采集到的人脸图像,需要在人脸检测之前,首先进行简单的灰 度化处理;其中,人脸检测步骤中,通过类Haar特征对人脸特征进行描述,同时采用积分图 方法实现类Haar特征的快速计算,采用Adaboost级联分类器实现对图像中人脸的检测,得 到人脸区域的位置,并将人脸提取出来; 特征提取模块的功能是从人脸图像上,众多特征中提取出能够表达其表情的形变的特 征,这里的表情特征指能够区分其为笑脸还是非笑脸的形变特征,得到最有利于笑脸识别 的信息;这些提取出来的特征的准确性和有效性直接影响到最后的笑脸识别率;光流特征 的提取通过Horn-Schunck的全局平滑约束,结合光流基本约束方程计算得到; 分类识别模块采用随机森林算法进行训练和分类识别,这里,随机森林是由装袋法和 输入变量进行随机分组构建而成的Forests-RI;在训练流程中完成的功能是,根据特征提 取模块中得到的大量训练样本的特征向量,通过机器学习的方法,得到笑脸和非笑脸两种 类别的分类标准,即,训练得到笑脸分类器;在识别流程中完成的功能是,将待识别图像的 特征向量与这个分类器进行对比或匹配等操作,识别出该待识别图像属于笑脸和非笑脸的 哪个类别,从而达到对其进行分类识别的目的。
4. 根据权利要求2所述的基于光流特征的笑脸识别系统,其特征在于: 所述系统还包括预处理模块,用以对图像进行预处理; 所述预处理模块包括图像平滑单元、尺寸归一化单元、灰度均衡单元; 所述图像平滑单元用以利用邻域平均法消除图像噪声;用几个像素灰度的平均值来代 替每个像素的灰度;假定有一幅NXN个像素的图像f(x,y),平滑处理后得到一幅图像为 g(x,y) ;g(x,y)由下式决定:
式中X,y= 0, 1,2,......,N-I;S是(x,y)点邻域中点的坐标的集合,但其中不包括 (x,y)点,M是集合内坐标点的总数;式(1)说明,平滑化的图像g(x,y)中的每个像素的灰 度值均由包含在(x,y)的预定邻域中的f(x,y)几个像素的灰度值的平均值来决定;以(X, y)点为中心,取单位距离构成一个邻域,其中点的坐标集合为 S= {(x,y+1), (x,y-I), (x+1,y),(x-I,y)} (2) 所述图像平滑单元还采用阈值法减少由于邻域平均所产生的模糊效应;当一些点和它 的邻域内的点的灰度平均值的差不超过规定的阈值T时,就仍然保留其原灰度值不变,如 果大于阈值T时就用它们的平均值来代替该点的灰度值;以减少模糊的程度;其基本方法 由下式决定
其中,T为规定的非负阈值; 所述尺寸归一化单元用以通过尺度校正、平移、旋转的方法去除图像中的结构变形,使 人脸图像标准化; 所述灰度均衡单元用以减少光照对人脸图像灰度分布的影响,对人脸样本图像进行直 方图均衡化;直方图均衡化处理是把原始图像的灰度直方图从比较集中的某个灰度区间变 成在全部灰度范围内的均匀分布。
5. 根据权利要求2所述的基于光流特征的笑脸识别系统,其特征在于: 所述特征提取模块用以采用光流特征提取方法;提取光流特征就是对两幅图像做以下 操作:1)输入图像;输入图像为两幅图像,用以测试某一幅表情图像是否是笑脸图像;2)人 脸检测;光流特征提取严格针对人脸区域,采用的Jaffe数据库中的图像需要进行人脸检 测,剔除周围不相关的区域,得到准确的人脸区域,将人脸区域从图像中提取出来,并进行 归一化; 所述人脸检测单元在输入的图像中如果存在人脸区域,则检测出人脸,确定所有人脸 的大小、位置和位姿;采用Haar-Like特征与级联的Adaboost学习算法相结合的方法;具 体步骤如下: 第一步、对人脸进行Haar-Like特征计算,运用"积分图"算法快速提取特征; 目标的特征通常是对待分类目标进行研究后得到的知识进行编码来取得的,用来编码 的知识通常很难从原始图像的像素中直接获到;在人脸图像的模型建立过程中,运用人脸 的特征能够使得人脸跟非人脸这两个类别的类内距离得到大大的降低; 将人脸特征经过不断的延展之后得到新的特征,将此新特征叫做"矩形特征";表示矩 形特征的值通常被人们叫做"特征值"; 将训练窗口的规模初始化为W*H个像素点;W代表特征原型长度具有的像素个数,h代 表特征原型宽度具有的像素个数; 令:X=(?W) /w,. 〃?〃表示对数值取整;一个大小为w*h的特征原型在一个大小为W*H的搜索窗中得到的矩形特征的个数常常用下面的公式的计算结果来表示; 利用新的图像表示方法--积分图像,计算矩形特征的特征值,只与此特征矩形的端 点的积分图有关,所以不管此特征矩形的尺度变换如何,特征值的计算所消耗的时间都是 常量;这样只要遍历图像一次,求得所有子窗口的特征值; 积分图的定义为:
其中,I(x',y')为图像在点(x',y')处的像素值; 为了节约时间,减少重复计算,则图像I的积分图按如下递推公式计算:
这样就能进行2种运算: 第一种运算方法,对任意矩形区域内像素积分;由图像的积分图可方便快速地计算图 像中任意矩形内所有像素灰度积分; 第二种运算方法,特征值计算;矩形特征的特征值是两个不同的矩形区域像素和之差, 由(1)式计算任意矩形特征的特征值; 运用积分图快速计算给定的矩形之所有象素值之和Sum(r);假设r= (x,y,w,h),那 么此矩形内部所有元素之和等价于下面积分图中下面这个式子: Sum(r) =ii(x+w,y+h)+ii(x-1,y-1)-ii(x+w,y-1)-ii(x-1,y+h) (15) 第二步、根据AdaBoost算法提取最有效的Haar-Like特征,经过多次迭代确定各个弱 分类器的权值; AdaBoost算法同时进行训练分类器和特征选择的工作,这是它的一个非常重要的特 点;AdaBoost算法中的每个弱分类器都与某个特征对应,弱分类器的个数等于矩形特征 数;训练过程中从大量的弱分类器中选出一个在当前样本权重分布情况下具有最小分类错 误率的弱分类器作为本轮的最优弱分类器,进行T轮训练以后,最终得出T个最具代表性的 特征,对应了T个弱分类器,最后根据每个特征的不同权值加权后连接得到一个非常强大 的分类器; 令X为训练样本空间,Y= {0,1}中包含了训练样本可能来自的类别的记号;1代表正 的样本点,即人脸样本,〇代表负的样本点,即非人脸样本;假设一共有K个矩形特征;Wy代 表第t轮迭代过程中的第j个样本点所具有的权重;算法的具体实现通常包含下面的4个 重要环节: (1) 已知训练样本集X=Kx1,y),(x2,y2),…,(xn,yn)};式中XiGX;假定训练集中共 包含1个人脸样本点,m个非人类样本点,1+m=n; (2) 给每个样本点一个起始权重;
(3) 对于t= 1,…,T;T为循环次数; ① 对样本所具有的权重执行归一化操作; ② 针对每一个特征j,在已知的样本权重分布情况下训练得到弱分类器hy(x),通过计 算得到每个弱分类器对样本集的分类错误率,
③ 确定第t轮迭代的最优弱分类器ht (X),令k=argminet,」,并将样本集的分类错误 率取为et=et,k; ④ 根据获得的最优弱分类器修改样本的权重:wnl =W^1j,其中Pt=ey(i-et); ei= 0,表示Xi被正确分类,ei= 1表示xi被错误分类; (4) 最后得到的强分类器为:
第三步、将训练得到的弱分类器进行级联,组成完整的人脸检测系统; 为了能够改善人脸检测的时间性能,利用新的分类器结构:分层的级联分类器,分类器 包括多层分类器,通过这样的一种分类器组织方式使得人脸检测过程随着层数的递增得到 更1?的精度; 上述的级联分类器的判决过程与经过退化的决策树的判定过程相似,若第i层将搜索 子窗判定为"是",那么这个可能会包含人脸图像的搜索子窗便会被继续派发到第i+1层分 类器,同时诱发第i+1层的分类器进行分类工作,如此逐级检测;这种检测方法首先副除巨 量的不包含人脸图像的搜索子窗,从而使得人脸检测的时间性能得到优化; Adaboost分类器的训练过程包括: 利用光流计算单元计算光流;采用Horn-Schunck算法进行光流(u,v)的计算,设定搜 索窗口为1,计算得到的光流特征向量维数为(100/2) *(100/2) = 2500 ; Horn-Schunck算法核心思想是:图像上每一点的光流之间都有联系,光流在整个图像 范围内应该是平滑变化的,所以引入了平滑性约束,使平滑约束项极小化; 设平滑性约束项为极小化: Es = 11(u2x +U2y +v^. +V^)dxdy (18) 结合基本等式,要求极小化: Ec=/ /(IXu+Iyv+It)2dxdy(19) 结合式18和式19可知,最后求得的光流应满足式20 : min+U1y ++v2y)-\-X{Iu+Ivv-\-1tY'\dxdy (20) 这里入的取值要考虑噪声情况,噪声较强,则说明图像数据本身具有较低的置信度, 这时便需要更多的依赖加入的光流约束,A取较小的值;反之,若噪声较弱,A取较大的 值; 此时,问题将转化为求解Lagrangian最小化问题;对形如式20的形式变分问题min{ / /F(u,v,ux,uy,vx,vy)dxdy} (21) 的解释对应Euler方程21的解
其中,▽ 2是Laplace算子; 实际计算过程中,处理对象为离散化的坐标,相应的,要对式23进行离散化处理: +< + < +g离散化为

根据中性图像,利用Horn-Schunck计算出表情图像中每一点的光流矢量,所有点的光 流矢量共同构成这幅表情图像的光流特征。
6. 根据权利要求5所述的基于光流特征的笑脸识别系统,其特征在于: 所述系统中的Horn-Schunck算法计算的是稠密光流的速度场,S卩,将图像中的每个 像素都与速度关联,针对每个像素分别计算光流向量的u和V两个分量;所述光流特征提 取单元用以获取图像Horn-Schunck光流场,图像Horn-Schunck光流场的获取需要四个步 骤: (1) 计算像素点的光流分量;计算的依据是Horn-Schunck算法中的光流(u,v)迭代公 式(式 29、30、31); (2) 设定搜索窗口大小;经过多次设定搜索窗口的大小,通过笑脸识别的结果,得出本 系统中最合适的窗口大小为2*2,即设定winsize= 1 ; (3) 计算窗口中的光流特征值;在每一个2*2的窗口中,含有4个像素点,对这4个像 素点的u和V分量进行加法运算,得到该窗口的(u,v)分量,根据3 =arctan(v/w)计算光 流特征值; (4) 获取图像的光流特征向量;将所有窗口计算所得的光流特征值串联起来,组成整 幅图像的光流特征向量。
7. 根据权利要求2所述的基于光流特征的笑脸识别系统,其特征在于: 在分类识别模块采用随机森林的分类方法,随机森林RF是一种联合分类器,每棵决策 树都是一个基础分类器,多个决策树共同构成随机森林;决策树在每个节点随机从属性集 中选取若干候选属性,根据Gini系数最小原则选择分类属性和阈值;每一棵树都依赖于独 立抽样,并与森林中所有树具有相同分布的随机向量的值;米用随机森林分类RFC时,每棵 树都投票并返回得票最多的类; 决策树与流程图的树结构相类似,其中,每个内部节点都是一个分裂问题,每个分支代 表该测试的一个输出,而每个树叶节点存放一个类标号;树的最顶层节点是根节点; 决策树构建的基本步骤如下: (1) 开始,所有记录看作一个节点; (2) 遍历每个变量的每一种分割方式,找到最好的分割点; (3) 分割成两个节点NJPN2; (4)对NJPN2分别继续执行2-3步,直到每个节点足够"纯"为止;
每一类的比例P(i)=第i类的数目/总数目;Gini系数值越大,表示越"不纯",越小表示 越"纯";纯度差为:
其中,I代表不纯度(也就是上面三个公式的任意一种),K代表分割的节点数,一般K=2 表示子节点中的记录数目;上面公式实际上就是当前节点的不纯度减去子节点不 纯度的加权平均数,权重由子节点记录数与当前节点记录数的比例决定; 决策树的构建过程是一个递归的过程,所以需要确定停止条件,否则过程将不会结束; 当前节点中的记录数低于一个最小的阈值,那么就停止分割,将max(P(i))对应的分类作 为当前叶节点的分类; 决策树T构建好后,需要估计预测准确率;直观说明,比如N条测试数据,X预测正确的 记录数,那么可以估计acc=X/N为T的准确率;但是,这样不是很科学;因为我们是通过样 本估计的准确率,很有可能存在偏差;所以,比较科学的方法是估计一个准确率的区间,这 里就要用到统计学中的置信区间; 设T的准确率p是一个客观存在的值,X的概率分布为X?B(N,p),即X遵循概率 为P,次数为N的二项分布(BinomialDistribution),期望E(X) =N*p,方差Var(X)= N*p*(l_p);由于当N很大时,二项分布可以近似有正太分布(NormalDistribution)计 算,一般N会很大,所以X?N(np,n*p*(l-p));算出,acc=X/N的期望E(acc) =E(X/ N) =E(X)/N=p,方差Var(acc) =Var(X/N) =Var(X)/N2=p*(l_p)/N,所以acc? N(p,p*(l-p)/N);这样,就通过正太分布的置信区间的计算方式计算执行区间; 正太分布的置信区间求解如下:
(2) 选择置信水平a= 95%,或其他值,这取决于你需要对这个区间有多自信;一般来 说,a越大,区间越大; (3) 求出a/2和I-a/2对应的标准正太分布的统计量Za/2和Zi_a/2,Za/2和Zh/2均为 常量;然后解下面关于P的不等式;acc由样本估计得出;即可以得到关于p的执行区间
采用的随机森林,由两种随机算法共同构建,这两种随机算法分别是装袋法,和基于输 入的构建方法; 装袋法bagging是一个统计重采样的组合技术,利用有放回的随机重采样来生成多个 版本的预测器,然后把这些分类器融合,通常情况下,组合的分类器与单一分类器相比,其 分类效果更好,原因是在最终解决问题时,结合了所有单独分类器的特点; 利用bagging方法来生成训练集,其具体思想及操作步骤是:原始训练集D中,由于抽 取样本的随机性,每个样本未被抽取的概率为(1_1/N)N,其中N为原始训练集D中的样本个 数;当N足够大时,(1-1/N)1f收敛于1/e?0. 368,也就是说,在原始样本集D中,将会有 接近37%的样本在抽样时不会出现在bootstrap的样本中,这些未被抽取的数据称为袋外 OOB数据,使用袋外数据来估计模型性能的方法称为OOB估计;由于使用OOB估计和使用相 同样本容量的测试集的精度一样,就没有必要再使用测试集;采用的识别率统计由OOB估 计来代替; 采用Forests-RI构建随机森林;Forests-RI构建方法是对输入变量进行随机分组,例 如,给定d个样本的训练集D,目的是为组合分类器产生k棵决策树,过程如下:首先,对于 每次迭代i(i= 1,2,…,k),使用有放回抽样,由D产生d个样本的训练集Di,使得某些样 本可能在Dim现多次,而另一些可能不出现;设F是用来在每个节点决定划分的属性数,其 中F远小于可用属性数;为了构造决策树分类器Mi,在每个节点随机选择F个属性作为该节 点划分的候选属性;树增长到最大规模,并且不剪枝。
8. 根据权利要求2所述的基于光流特征的笑脸识别系统,其特征在于: 所述分类识别模块还包括训练分类器,训练分类器的流程是: St印11 :输入Jaffe人脸表情数据库中共10人的样本,对每一个样本图像进行人脸检 测,得到人脸区域; Stepl2:选取每个人的一幅中性表情图作为基准图像,将其余样本图像与同一个人的 基准图像成对进行光流特征的提取;其余样本图像这里称为表情图像; Stepl3 :利用光流特征,得到每个表情图像的特征向量; St印14 :将所有表情图像的特征向量送入随机森林RF模块中,进行分类器的训练; 所述分类识别模块还包括笑脸识别单元,笑脸识别的流程是: Step21 :通过相机采集一段视频序列,对图像进行人脸检测; St印22 :将图像进行灰度化处理之后,成对进行光流特征的提取,得到待识别表情图像 的特征向量; St印23 :利用训练流程中得到的笑脸分类器,对待识别表情图像的特征向量进行分类 识别,得出识别结果。
9. 一种基于光流特征的笑脸识别方法,其特征在于,所述方法包括如下步骤:特征提 取步骤、分类识别步骤; 所述特征提取步骤包括: 人脸检测步骤,通过人脸检测单元在输入的图像中如果存在人脸区域,则检测出人脸, 确定所有人脸的大小、位置和位姿; 光流计算步骤,通过光流计算单元进行光流的计算; 光流特征生成步骤,通过光流特征生成单元获取图像的光流场; 分类识别步骤包括训练和识别笑脸;在训练和识别中,均要用到特征提取模块得到的 特征向量;训练的目的是通过对大量训练样本的特征向量进行机器学习,得到能够最大限 度地区分出笑脸和非笑脸的分类器;识别过程是将测试样本通过特征提取模块之后得到的 特征向量,送入训练得到的笑脸分类器,通过对比和划分,最终得到测试样本所属的类别。
10. 根据权利要求9所述的基于光流特征的笑脸识别方法,其特征在于: 特征提取步骤中,采用光流特征提取方法;提取光流特征就是对两幅图像做以下操 作: 1)输入图像;输入图像为两幅图像,用以测试某一幅表情图像是否是笑脸图像;2)人 脸检测;光流特征提取严格针对人脸区域,采用的Jaffe数据库中的图像需要进行人脸检 测,剔除周围不相关的区域,得到准确的人脸区域,将人脸区域从图像中提取出来,并进行 归一化; 所述人脸检测单元在输入的图像中如果存在人脸区域,则检测出人脸,确定所有人脸 的大小、位置和位姿;采用Haar-Like特征与级联的Adaboost学习算法相结合的方法;具 体步骤如下: 第一步、对人脸进行Haar-Like特征计算,运用"积分图"算法快速提取特征; 目标的特征通常是对待分类目标进行研究后得到的知识进行编码来取得的,用来编码 的知识通常很难从原始图像的像素中直接获到;在人脸图像的模型建立过程中,运用人脸 的特征能够使得人脸跟非人脸这两个类别的类内距离得到大大的降低; 将人脸特征经过不断的延展之后得到新的特征,将此新特征叫做"矩形特征";表示矩 形特征的值通常被人们叫做"特征值"; 将训练窗口的规模初始化为W*H个像素点;W代表特征原型长度具有的像素个数,h代 表特征原型宽度具有的像素个数; 令:X=(?W) /w,. 〃?〃表示对数值取整;一个大小为w*h的特征原型在一个大小为W*H的搜索窗中得到的矩形特征的个数常常用下面的公式的计算结果来表示; 利用新的图像表示方法--积分图像,计算矩形特征的特征值,只与此特征矩形的端 点的积分图有关,所以不管此特征矩形的尺度变换如何,特征值的计算所消耗的时间都是 常量;这样只要遍历图像一次,求得所有子窗口的特征值; 积分图的定义为:
这样就能进行2种运算: 第一种运算方法,对任意矩形区域内像素积分;由图像的积分图可方便快速地计算图 像中任意矩形内所有像素灰度积分; 第二种运算方法,特征值计算;矩形特征的特征值是两个不同的矩形区域像素和之差, 由(1)式计算任意矩形特征的特征值; 运用积分图快速计算给定的矩形之所有象素值之和Sum(r);假设r= (x,y,w,h),那 么此矩形内部所有元素之和等价于下面积分图中下面这个式子: Sum(r) =ii(x+w,y+h)+ii(x-1,y-1)-ii(x+w,y-1)-ii(x-1,y+h) (15) 第二步、根据AdaBoost算法提取最有效的Haar-Like特征,经过多次迭代确定各个弱 分类器的权值; AdaBoost算法同时进行训练分类器和特征选择的工作,这是它的一个非常重要的特 点;AdaBoost算法中的每个弱分类器都与某个特征对应,弱分类器的个数等于矩形特征 数;训练过程中从大量的弱分类器中选出一个在当前样本权重分布情况下具有最小分类错 误率的弱分类器作为本轮的最优弱分类器,进行T轮训练以后,最终得出T个最具代表性的 特征,对应了T个弱分类器,最后根据每个特征的不同权值加权后连接得到一个非常强大 的分类器; 令X为训练样本空间,Y= {0,1}中包含了训练样本可能来自的类别的记号;1代表正 的样本点,即人脸样本,〇代表负的样本点,即非人脸样本;假设一共有K个矩形特征;」代 表第t轮迭代过程中的第j个样本点所具有的权重;算法的具体实现通常包含下面的4个 重要环节: (1) 已知训练样本集X=Kx1,y),(x2,y2),…,(xn,yn)};式中XiGX;假定训练集中共 包含1个人脸样本点,m个非人类样本点,1+m=n; (2) 给每个样本点一个起始权重;
(3) 对于t= 1,…,T;T为循环次数; ① 对样本所具有的权重执行归一化操作; ② 针对每一个特征j,在已知的样本权重分布情况下训练得到弱分类器hy(x),通过计 算得到每个弱分类器对样本集的分类错误率,

③ 确定第t轮迭代的最优弱分类器ht(x),令k=argminet;j,并将样本集的分类错误 率取为et=et,k; ④ 根据获得的最优弱分类器修改样本的权重:= ,其中pt=ey(i-et);ei= 0,表示Xi被正确分类,ei= 1表示xi被错误分类; (4) 最后得到的强分类器为:
第三步、将训练得到的弱分类器进行级联,组成完整的人脸检测系统; 为了能够改善人脸检测的时间性能,利用新的分类器结构:分层的级联分类器,分类器 包括多层分类器,通过这样的一种分类器组织方式使得人脸检测过程随着层数的递增得到 更1?的精度; 上述的级联分类器的判决过程与经过退化的决策树的判定过程相似,若第i层将搜索 子窗判定为"是",那么这个可能会包含人脸图像的搜索子窗便会被继续派发到第i+1层分 类器,同时诱发第i+1层的分类器进行分类工作,如此逐级检测;这种检测方法首先副除巨 量的不包含人脸图像的搜索子窗,从而使得人脸检测的时间性能得到优化; Adaboost分类器的训练过程包括: 利用光流计算单元计算光流;采用Horn-Schunck算法进行光流(u,v)的计算,设定搜 索窗口为1,计算得到的光流特征向量维数为(100/2) *(100/2) = 2500 ; Horn-Schunck算法核心思想是:图像上每一点的光流之间都有联系,光流在整个图像 范围内应该是平滑变化的,所以引入了平滑性约束,使平滑约束项极小化; 设平滑性约束项为极小化: Es =Ii(u:+ir+v:+vl)dxdy (18) 结合基本等式,要求极小化: Ec=/ /(IXu+Iyv+It)2dxdy(19) 结合式18和式19可知,最后求得的光流应满足式20 :minU[(w^+ir+vl+V2i.)+X(Iu+1^ +It)2]dxdy (20) 这里入的取值要考虑噪声情况,噪声较强,则说明图像数据本身具有较低的置信度, 这时便需要更多的依赖加入的光流约束,A取较小的值;反之,若噪声较弱,A取较大的 值; 此时,问题将转化为求解Lagrangian最小化问题;对形如式20的形式变分问题min{ / /F(u,v,ux,uy,vx,vy)dxdy} (21) 的解释对应Euler方程21的解
其中,▽ 2是Laplace算子; 实际计算过程中,处理对象为离散化的坐标,相应的,要对式23进行离散化处理: <+<+<+<离散化为
此时,对其求关于UkJPVkl的偏导,并令其为0,有
根据中性图像,利用Horn-Schunck计算出表情图像中每一点的光流矢量,所有点的 光流矢量共同构成这幅表情图像的光流特征; 所述系统中的Horn-Schunck算法计算的是稠密光流的速度场,S卩,将图像中的每个像 素都与速度关联,针对每个像素分别计算光流向量的u和V两个分量;所述光流特征提取单 元用以获取图像Horn-Schunck光流场,图像Horn-Schunck光流场的获取需要四个步骤: (1) 计算像素点的光流分量;计算的依据是Horn-Schunck算法中的光流(u,v)迭代公 式(式 29、30、31); (2) 设定搜索窗口大小;经过多次设定搜索窗口的大小,通过笑脸识别的结果,得出本 系统中最合适的窗口大小为2*2,即设定winsize= 1 ; (3) 计算窗口中的光流特征值;在每一个2*2的窗口中,含有4个像素点,对这4个像 素点的U和V分量进行加法运算,得到该窗口的(u,v)分量,根据5 =arctan(v/w)计算光 流特征值; (4) 获取图像的光流特征向量;将所有窗口计算所得的光流特征值串联起来,组成整 幅图像的光流特征向量; 在分类识别步骤中,采用随机森林的分类方法,随机森林RF是一种联合分类器,每棵 决策树都是一个基础分类器,多个决策树共同构成随机森林;决策树在每个节点随机从属 性集中选取若干候选属性,根据Gini系数最小原则选择分类属性和阈值;每一棵树都依赖 于独立抽样,并与森林中所有树具有相同分布的随机向量的值;米用随机森林分类RFC时, 每棵树都投票并返回得票最多的类; 决策树与流程图的树结构相类似,其中,每个内部节点都是一个分裂问题,每个分支代 表该测试的一个输出,而每个树叶节点存放一个类标号;树的最顶层节点是根节点; 决策树构建的基本步骤如下: (1) 开始,所有记录看作一个节点; (2) 遍历每个变量的每一种分割方式,找到最好的分割点; (3) 分割成两个节点NJPN2; (4) 对NJPN2分别继续执行2-3步,直到每个节点足够"纯"为止;
每一类的比例P(i)=第i类的数目/总数目;Gini系数值越大,表示越"不纯",越小表示 越"纯";纯度差为:
其中,I代表不纯度(也就是上面三个公式的任意一种),K代表分割的节点数,一般K=2 表示子节点中的记录数目;上面公式实际上就是当前节点的不纯度减去子节点不 纯度的加权平均数,权重由子节点记录数与当前节点记录数的比例决定; 决策树的构建过程是一个递归的过程,所以需要确定停止条件,否则过程将不会结束; 当前节点中的记录数低于一个最小的阈值,那么就停止分割,将max(P(i))对应的分类作 为当前叶节点的分类; 决策树T构建好后,需要估计预测准确率;直观说明,比如N条测试数据,X预测正确的 记录数,那么可以估计acc=X/N为T的准确率;但是,这样不是很科学;因为我们是通过样 本估计的准确率,很有可能存在偏差;所以,比较科学的方法是估计一个准确率的区间,这 里就要用到统计学中的置信区间; 设T的准确率p是一个客观存在的值,X的概率分布为X?B(N,p),即X遵循概率 为P,次数为N的二项分布(BinomialDistribution),期望E(X) =N*p,方差Var(X)= N*p*(l_p);由于当N很大时,二项分布可以近似有正太分布(NormalDistribution)计 算,一般N会很大,所以X?N(np,n*p*(l-p));算出,acc=X/N的期望E(acc) =E(X/ N) =E(X)/N=p,方差Var(acc) =Var(X/N) =Var(X)/N2=p*(l_p)/N,所以acc? N(p,p*(l-p)/N);这样,就通过正太分布的置信区间的计算方式计算执行区间; 正太分布的置信区间求解如下:
(2) 选择置信水平a= 95%,或其他值,这取决于你需要对这个区间有多自信;一般来 说,a越大,区间越大; (3) 求出a/2和I-a/2对应的标准正太分布的统计量Za/2和Zi_a/2,Za/2和Zh/2均为 常量;然后解下面关于P的不等式;acc由样本估计得出;即可以得到关于p的执行区间
采用的随机森林,由两种随机算法共同构建,这两种随机算法分别是装袋法,和基于输 入的构建方法; 装袋法bagging是一个统计重采样的组合技术,利用有放回的随机重采样来生成多个 版本的预测器,然后把这些分类器融合,通常情况下,组合的分类器与单一分类器相比,其 分类效果更好,原因是在最终解决问题时,结合了所有单独分类器的特点; 利用bagging方法来生成训练集,其具体思想及操作步骤是:原始训练集D中,由于抽 取样本的随机性,每个样本未被抽取的概率为(1_1/N)N,其中N为原始训练集D中的样本个 数;当N足够大时,(1-1/N)1f收敛于1/e?0. 368,也就是说,在原始样本集D中,将会有 接近37%的样本在抽样时不会出现在bootstrap的样本中,这些未被抽取的数据称为袋外 OOB数据,使用袋外数据来估计模型性能的方法称为OOB估计;由于使用OOB估计和使用相 同样本容量的测试集的精度一样,就没有必要再使用测试集;采用的识别率统计由OOB估 计来代替; 采用Forests-RI构建随机森林;Forests-RI构建方法是对输入变量进行随机分组,例 如,给定d个样本的训练集D,目的是为组合分类器产生k棵决策树,过程如下:首先,对于 每次迭代i(i= 1,2,…,k),使用有放回抽样,由D产生d个样本的训练集Di,使得某些样 本可能在Dim现多次,而另一些可能不出现;设F是用来在每个节点决定划分的属性数,其 中F远小于可用属性数;为了构造决策树分类器Mi,在每个节点随机选择F个属性作为该节 点划分的候选属性;树增长到最大规模,并且不剪枝。
【文档编号】G06K9/00GK104504366SQ201410680069
【公开日】2015年4月8日 申请日期:2014年11月24日 优先权日:2014年11月24日
【发明者】李保印 申请人:上海闻泰电子科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1