首页> 中国专利> 基于后验概率神经网络的人类年龄自动估计方法

基于后验概率神经网络的人类年龄自动估计方法

摘要

本发明公布了一种基于后验概率神经网络的人类年龄自动估计方法,所述方法包括训练阶段和应用阶段,在训练阶段包括以下步骤:获取人脸图像;使用外观模型对人脸图像抽取特征;生成图像对应的年龄分布;将得到的特征和人脸图像关于年龄的分布作为输入,然后对后验概率神经网络训练;训练结束并得到一个模型并输出到下一个阶段;应用阶段包括以下几个步骤:获取待估计的人脸图像;使用外观模型进行特征抽取;将抽取到的特征输入到由训练阶段得到的模型中;经过模型的运算可以得出该副图像对应年龄的一个分布,把这个分布中能够得取到最大值的年龄作为系统估计的年龄。

著录项

  • 公开/公告号CN102567719A

    专利类型发明专利

  • 公开/公告日2012-07-11

    原文格式PDF

  • 申请/专利权人 东南大学;

    申请/专利号CN201110442676.2

  • 发明设计人 耿新;尹超;

    申请日2011-12-26

  • 分类号G06K9/00(20060101);G06K9/62(20060101);

  • 代理机构32200 南京经纬专利商标代理有限公司;

  • 代理人许方

  • 地址 210096 江苏省南京市玄武区四牌楼2号

  • 入库时间 2023-12-18 06:00:04

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-02-16

    未缴年费专利权终止 IPC(主分类):G06K9/00 授权公告日:20140702 终止日期:20161226 申请日:20111226

    专利权的终止

  • 2014-07-02

    授权

    授权

  • 2012-09-12

    实质审查的生效 IPC(主分类):G06K9/00 申请日:20111226

    实质审查的生效

  • 2012-07-11

    公开

    公开

说明书

技术领域

本发明涉及利用计算机对人类年龄进行自动估计的方法。 

技术背景

年龄估计是人类的一项基本的能力,目前信息化的发展越来越多的应用需要计算机具备对人类年龄进行估计的能力。计算机进行人类年龄的估计主要经过以下几个步骤。通过照相机或者摄像头捕捉到人脸的图像,通过一些特征提取算法提取人脸图像的特征并将其输出到一个训练好的模型中,经过该模型的处理可以得到估计的年龄。 

基于年龄估计的应用近年来呈上升趋势,例如基于年龄的人机交互系统;基于年龄的访问控制系统;电子商务;刑事侦查等等。基于自动年龄估计的人机交互系统是在普通的人机交互系统中引入了人类年龄的自动估计算法。不同年龄阶段的人是有不同的审美要求的,年轻人喜欢活泼,欢快的风格,而中年人则喜欢沉稳大气的风格。用户对软件的操作是通过人机界面来完成的,如果软件能够为当前正在使用的用户提供一个他喜欢的风格则会提高软件的好评率。基于自动年龄估计的人机交互系统可以利用其年龄估计算法来判断当前用户的年龄区间从而可以提供一个个性化的服务。另外随着年龄的增长,人的视力和听力是逐渐下降的。如果年龄估计系统判断当前的用户为老年人,则系统可以适当的增大字体提高音量,从而可以提高软件的友好度。基于年龄的访问控制系统主要是指限制某一特定年龄阶段的人进入该区域。例如很多国家有限制未成年人进入网吧,酒吧等等场所。通过基于年龄的自动访问控制系统则可以很好的帮助管理人员甄别进入的顾客,提高工作效率。 

基于图像的年龄估计系统主要有两个核心的部分组成,一个是人脸图像的表示,一个是分类器的选择。目前常用的人脸图像表示的方法主要有人体测量学方法,外观模型,年龄成长模式子空间等等。人体测量学是对人体头部的几何形状进行建模,能够很好的表征婴幼儿到成年人这一个年龄阶段人脸的变化。外观模型则将人脸形状和灰度结 合起来,能够适应各个年龄阶段的人脸图像。年龄成长模式子空间是指某个人的人脸图像按年龄排序的序列。在模式识别中常用的分类器有决策树,神经网络,支持向量机等等。 

在现有的用神经网络进行预测人类年龄的方法中。主要是将年龄或者年龄段作为神经网络的监督信号。Sarajedini提出了一种可以直接输出后验概率的神经网络,但是他的这个神经网络是针对于连续型变量,并且是一个无监督的学习算法。 

现有的年龄估计算法主要有以下两点不足之处:1.不能充分的利用数据库中的数据;2.不能即给出一个年龄同时又给出一个年龄段。 

现有的人类年龄估计的算法将真实的年龄作为输入,并在测试的情况下输出一个年龄作为预测的年龄。相比于将年龄的分布作为模型的输入现有的方法不能充分的利用已有的数据,而现有的年龄数据库中的人脸图像比较少。使用年龄的分布不仅表征了这幅年龄的真实年龄而且还给出了和那些年龄相关度大哪些年龄相关度小。 

现有的人类年龄估计算法从输出上讲主要分为两类。一类是输出一个年龄,一类是输出一个年龄区间。很少有算法能够既输出一个年龄的同时也能输出一个年龄区间。同时输出年龄区间的算法中区间的范围是固定的不能根据实际的年龄进行更改。 

发明内容

本发明的目的是提供一种让计算机以类似于人的方式(即观察人脸图像)对人类年龄进行自动估计,该方法的估计精度可以达到与人类类似的水平。 

为实现上述目的,本发明提供了一种使用后验概率神经网络进行人类年龄估计的方法。在对该方法具体步骤进行描述之前,首先给出相关定义:(a)样本:一组人脸图像数据。(b)人脸图像关于年龄分布:是一个关于年龄的分布并且该分布中的年龄越靠近真实年龄其概率值越大。(c)高斯分布:概率论中最重要的一种分布,也是自然界中常见的一种分布。该分布由两个参数--平均值和方差决定。概率密度函数曲线以均值为对称中线,方差越小,分布越集中在均值附近。(d)三角分布:是一个以底限为a,众数为c,上限为b的连续概率分布。(e)后验概率神经网络:一种可以输出后验概率的神经网络。(f)外观模型:是一个将形状与灰度结合起来的用PCA建模的一个统计模型。 

本发明提供的基于类别分布的年龄估计算法如图1所示主要包括两个阶段:训练阶 段和应用阶段。在训练阶段主要有以下5个步骤:(1)获取人脸图像;(2)使用外观模型对人脸图像抽取特征;(3)生成图像对应的年龄分布;(4)将得到的特征和人脸图像关于年龄的分布作为后验概率神经网络的输入并进行训练;(5)训练结束并得到一个模型并输出到下一个阶段。在应用阶段主要有以下几个步骤:(1)获取待估计的人脸图像;(2)使用外观模型进行特征抽取;(3)将抽取到的特征输入到在训练阶段得到的模型中;(4)经过模型的运算可以得出该副图像对应年龄的一个分布,把这个分布中能够得取到最大值的年龄作为系统估计的年龄。 

本发明的优点主要体现在三个方面:1.可以充分的利用已有的数据;2.输出一个年龄的分布;3.直接给出后验概;4.既可以给出年龄也可以给出年龄区间。 

本发明把年龄分布而不是年龄作为输入的一部分可以有效的利用数据库中的数据,并且可以部分的缓解年龄估计中数据库数据不充足的问题。因为把年龄的分布作为输入可以使得这个方法不仅可以学习到这幅图像对应的年龄也可以学到其相邻年龄。 

本发明的输出的是一个年龄的分布,和普通的方法相比可以更加清晰的表征模型的性能。可以取输出分布中的最大值作为我们年龄估计的输出。从这个分布中也可以看出和那些年龄相关性较大,那些年龄相关性较小 

本发明直接输出关于年龄的后验概率,普通的方法要到达这个效果通常需要构建两个模型一个输出联合概率,一个输出边缘概率最后使用贝叶斯公式来进行计算。本发明在训练过程中使用了贝叶斯公式,从而避免了需要两个模型才能得到后仰概率的限制。 

本发明输出一个关于年龄的分布这样就很容易的给出预测的年龄或者年龄区间。并且这个区间是根据实际的情况得出的并不是事先定义好的年龄范围。这个输出是一年龄的后验概率,而传统的方法则需要两个模型才可以得出后验概率。 

附图说明

图1是年龄估计系统的工作流程图。 

图2是外观模型的使用图示。 

图3是后验概率神经网络的结构图。 

图4是系统的一个输出例子。 

具体实施方式

本方法主要是基于后验概率神经网络。而把原有的后验概率神经网络应用到年龄估计这个问题中会出现一些问题。主要有以下三个原因:1.目前已有的人脸图像数据库的数据数目较少,而原有的后验概率神经网络需要大量的训练数据;2.原有的后验概率神经网络主要是解决连续型变量的概率估计问题,在年龄估计这个问题中年龄是一个离散型的变量,我们将其扩展到了离散型变量,并给出了相应的训练算法;3.原有的后验概率神经网络使用了一种较为简单的权值更新算法,在解决年龄估计这个问题中往往无法使网络收敛。下面将具体介绍这些改进点和创新点。 

1.我们将原有的这个神经网络改成有监督的学习并将年龄的分布引入到神经网络中。有监督的学习算法需要一个监督信号,最简单的监督信号就是年龄。为了尽可能利用数据库内的数据我们将一幅图像对应一个年龄改为一幅图像对应一个关于年龄标签分布。将这个年龄的分布作为后验概率神经网络的监督信号。由于现实中并不能找到这个分布我们可以使用高斯分布,三角分布等作为近似的替代。 

2.将原有的神经网络从连续型推广到离散型。这个后验概率神经网络训练算法推导过程如下。概率输出表示: 

p(x,y)=exp(c(w)+f(x,y,w))      (1) 

x,y是离散型的随机变量,w是神经网络的权值,f是神经网络的输出。其中c(w)是为了确保最终的输出满足概率的要求,其定义为 

c(w)=-ln(ΣyΣxexp(f(x,y,w))---(2)

将其带入公式1中可以得到 

p(x,y)=exp(f(x,y,w))ΣyΣxexp(f(x,y,w))---(3)

可以对y求和得到关于x边缘分布 

p(x)=Σyp(x,y)=Σyexp(f(x,y,w))ΣyΣxexp(f(x,y,w))---(4)

使用贝叶斯公式后可以得到 

p(y|x)=exp(f(x,y,w))ΣyΣxexp(f(x,y,w))×ΣyΣxexp(f(x,y,w))Σyexp(f(x,y,w))=exp(f(x,y,w))Σyexp(f(x,y,w))---(5)

上面的公式可以作为条件概率神经网络的输出信号,并可以简写为 

p(y|x)=exp(b(x,w),f(x,y,w))    (6) 

其中b(x,w)的表示如下 

b(x,w)=-ln(Σyexp(f(x,y,w))---(7)

在原有的神经网络的基础上引入误差函数 

J(w)=12Σk=1KΣage=0A(tk,age-exp(b(xkw)+f(xk,yage,w))2---(8)

其中tk是第k副图像对应的一个分布,tk,age是这个分布在年龄为age时的概率值。K是数据库中样本的总数,A是数据库内最大的年龄。xk是第k个样本的特征,yage是一个年龄,w是神经网络的权值。对误差函数求梯度可以得到 

wE(w)=Σk=1KΣage=0A((tk,age-exp(b(xk,w)+f(xk,yage,w)))---(9)

×-exp(b(xkw)+f(xk,yage,w))×(wb(xk,w)+wf(xk,yage,w)))

其中 

wb(xk,w)=-Σy(exp>(xx,yage,w)wf(xk,yage,w))Σyexp(f(xx,yage,w))---(10)

经过推导可以得到 当l为输出层的时候δli=1,l为隐含层的时候 其中G是一个sigmod函数,z(l-1)j是前一层网络单元的输出。当l=1是z(l-1)j=xj即第j个输入单元。 

经过上面的推导我们可以得到后验概率神经网络的训练算法如下:隐含层和输出之间的训练算法即l=2的时候 

wnew=wold+Σk=1KΣage=0A((tk,age-exp(b(xk,w)+f(xk,yage,w)))

×-exp(b(xkw)+f(xk,yage,w))×(-Σy(exp>(xx,yage,w)*z(l-1)j)Σyexp(f(xx,yage,w))+z(l-1)j)---(11)

输入层和隐含层之间的训练算法即l=1的时候 

wnew=wold+Σk=1KΣage=0A((tk,age-exp(b(xk,w)+f(xk,yage,w)))×-exp(b(xkw)+f(xk,yage,w))×

(-Σy(exp>(xx,yage,w)*G(Ili)*(Σp=1M(l+1)θ(l+1)pi)*z(l-1)j))Σyexp(f(xx,yage,w)+G(Ili)*(Σp=1M(l+1)θ(l+1)pi)*z(l-1)j))

(12) 

3.在进行权值更新时发现使用最简单的权值更新算法往往会陷入局部最小值,很难让神经网络收敛。继而我们采用了已有的RPROP算法。RPROP算法是一个有效的反向传播训练算法。ROROP算法最大的特点是在权值更新过程中它只使用了偏导数的方向。使用RPROP算法时。在训练算法的权重更新步骤中更新权重的大小仅仅取决于偏导数的方向,而不是偏导数的大小。正是这个特点使得RPORP算法可以避开局部最小值,并可以使得神经网络只需要使用很少的迭代次数就可以收敛。 

下面将结合一个具体的实例来介绍这个概率神经网络算法。 

a)数据预处理。在FG-NET这个数据库中收集82个人的图像。假设我们希望对第1个人进行测试。我们首先把FG-NET这个数据库中的头像抽取特征并把数据分成两个部分(一个训练集,一个测试集):一个是第一个人的图像特征,一个是剩下的81个人的头像特征。其中FG-NET包含有使用外观模型抽取到的特征,在这个算法中我们使用其自带的头像数据。 

b)初始化数据。在这步骤中我们将初始化神经网络的参数。这些参数主要有输入到神经网络中的特征个数,年龄的取值范围,隐含层的神经元的个数,输出层神 经元的个数,输入层和隐含层的神经元之间网络权值IW,隐含层和输出层之间网络权值LW。 

c)神经网络的训练。将训练集合以及这个神经网络的设置输入到神经网络训练算法中。这些神经网络的设置主要有隐含层的个数以及IW,LW。 

1)设置神经网络训练的参数:最大的迭代次数,最小的迭代次数,神经网络的终止条件:前后两次误差的最小值SM,RPROP算法的一些参数。 

2)迭代的进行对IW和LW的权值更新 

i.生成一个假定的分布(高斯分布或者三角分布) 

ii  计算神经网络的输出和假定分布的差异 

iii.通过公式22来计算LW和IW的权值更新量 

iv.使用ROROP方法进行权值更新 

v.通过前后两次的误差的差值和当前的迭代次数来决定是否跳出迭代 

3)保存训练得到的IW和LW输出到下一个阶段 

d)神经网络的测试。得到IW和LW以及神经网络的一些参数设置后可以将测试集合的特征输入到这个神经网络中。经过运算可以得到一个分布,取分布的最大值作为预测结果。并使用预测的结果和真实的年龄来计算MEA。 

使用这个改进的神经网络可以用来进行年龄估计。这个神经网络使用了年龄的分布作为目标,而不是一个年龄。这样使得这个算法可以学习到相邻的年龄从而可以很好的利用已有的数据。这个算法使用了神经网络来构建模型可以有效的降低由假设一个模型带来的误差。最后使用了RPROP算法来进行权值更新,可以使得神经网络尽快的收敛。使用这个神经网络进行人类年龄的估计并使用leave one person out的检测方法可以达到平均绝对误差5.30岁。一个其他方法进行年龄估计的算法的结果如图5所示。可以看出使用后验概率神经网络可以提高年龄估计的精度。 

表格1 

  Method   后验概率神经网络   IIS-LLD   AGES   WAS   WAS   AAS   kNN   BP   SVM   MAE   5.30   5.77   6.77   6.77   8.06   14.83   8.24   11.85   7.25

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号