利用降维方法进行人脸姿态估计的方法

文档序号:6572317阅读:298来源:国知局
专利名称:利用降维方法进行人脸姿态估计的方法
技术领域
本发明涉及一种图像识别技术领域的方法,具体是一种结合了主成分分析(PCA)和受限玻尔兹曼机神经网络的降维方法进行人脸姿态估计的方法。
背景技术
目前人脸识别的研究重点已经从二维拓展到三维,而三维人脸识别中最为核心的技术就是如何根据二维人脸图像估计该人脸的三维姿态。姿态估计本质上是一个分类问题,即判断一幅人脸图像中的人脸属于哪一个姿态。但是人脸图像是典型的高维数据,一般的分类方法根本不能够被直接应用于姿态估计,因此首先必须对高维人脸数据进行降维,然后再对降维后的数据进行姿态估计。
经对现有技术文献的检索发现,G.G.Hilton等在《Science》(科学杂志,2006年第313卷第5786期第504页)发表的“Reducing the Dimensionality of Data withNeural Networks”(用神经网络降低数据维数),该文提出了一种基于受限玻尔兹曼机神经网络的非线性降维方法,实验证明该方法可以被用于姿态估计。利用大量的不同姿态的人脸图像数据对网络进行预训练得到初始权值,然后再用原始数据对整个网络的权值进行调整使网络达到最佳状态。但是该方法的训练时间随着训练样本的个数和维数的上升而急剧增加。但是在实际应用上,人脸图像在生成过程中受到外界的干扰而包含了很多冗余的信息和噪音,这些冗余的信息和噪音不但会增加计算时间,还会影响后期的识别精度,因此在真正对这些数据利用神经网络进行降维处理之前有必要去除这些冗余的信息和噪音,另外受限玻尔兹曼机神经网络降维方法同时还有速度慢、精度低等缺陷。

发明内容
本发明的目的在于克服现有技术中的不足,提供一种利用降维方法进行人脸姿态估计的方法,即首先对原始数据进行PCA处理从而去除冗余信息和噪音,然后再利用神经网络方法对PCA处理后的数据进行降维处理操作。把这种新的降维方法应用到人脸姿态识别,从而可以提供人脸姿态信息以能够在多角度下进行人脸识别。
本发明是通过以下技术方案实现的,本发明首先对训练样本进行PCA处理,去除原始数据中的冗余信息和噪音,并得到PCA处理后的数据,然后使用该数据对受限玻尔兹曼机神经网络进行预训练,得到预训练网络参数,并用梯度下降方法调整整个网络参数。最后对于待进行姿态估计的人脸图像,对其进行PCA处理,再把PCA处理后的数据送入该学习好的神经网络中进行姿态识别分类。
本发明具体包括如下步骤(1)对不同姿态的人脸图像训练样本进行预处理操作;(2)对预处理后的数据进行PCA处理;(3)初始化受限玻尔兹曼机神经网络;(4)用PCA处理后的数据预训练受限玻尔兹曼机神经网络;(5)调整受限玻尔兹曼机神经网络参数;(6)对新的人脸图像进行姿态识别;所述的步骤(1),是指对于每个人脸图像训练样本,首先把其缩放为高为h个像素、宽为w个像素的图像。然后把该缩放后的人脸图像变换为灰度图像,并把所有像素的灰度值归一化到
,最后把它们拉成长度为h×w的向量,即该向量的维数是h×w。
所述的步骤(2),是指对步骤(1)中的预处理后的数据进行PCA操作,去除冗余信息和噪音,保持98%的信息,把所有数据都从h×w降到s维,同时得到平均向量 和特征向量P,如果把原始h×w维的向量数据表示为X,降维后的s维数据表示为b,那么X可以表示为X=x‾+Pb,]]>降维后的数据b可以表示为b=PT(X-x‾).]]>所述的步骤(3),是指设定该神经网络有L层。每一层的结点数分别为N1,N2,…,NL。类别个数为C,预训练和调整参数的次数分别为Pt和Pc。根据网络层数和每层结点的个数确定网络结构,同时产生
之间的随机数作为网络结点之间连接权值。
所述的步骤(4),是指设置网络中第一层受限玻尔兹曼机的可视层的结点与步骤(2)中向量中的s个值一一对应,即第一层受限玻尔兹曼机的可视层的结点数为s,训练该受限玻尔兹曼机可视层结点与隐层结点之间的权值参数,共训练Pt次。然后再以第一层受限玻尔兹曼机的隐层结点作为第二层受限玻尔兹曼机可视层结点,同样训练该受限玻尔兹曼机可视层结点与隐层结点之间的权值参数,也训练Pt次。依此类推,即上一层受限玻尔兹曼机的隐层结点作为下一层受限玻尔兹曼机的可视层结点以训练下一层受限玻尔兹曼机。这样就完成了整个网络的预训练,同时也得到了预训练好的各层受限玻尔兹曼机的参数。
所述的步骤(5),是指利用梯度下降法以重建误差最小为准则反向传播并调整所有受限玻尔兹曼机可视层结点与隐层结点之间的权值参数,该步骤共执行Pc次。
所述的步骤(6),是指对于一幅新的待进行姿态识别的人脸图像,先把其缩放到高为h,宽为w的图像,并把该缩放的图像变换为灰度图像,然后把图像灰度值归一化到
,接着把归一化后的图像拉成一个长度为h×w的向量X,并利用b=PT(X-x‾)]]>把该向量的维数降到s,最后把该s维的向量送入已经训练好的网络进行姿态识别。
本发明提出的人脸姿态估计方法具有相当高的精度,用拍摄的人脸库做测试,其识别错误率为1.95%。与没有经过PCA处理而直接用受限玻尔兹曼机神经网进行降维的方法相比,该方法的错误率进一步降低。同时由于其数据的维数经过PCA处理后大大降维,后续的网络中每一层的节点数也随之减少,这不仅减少了训练时间,同时测试速度也大为提高。


图1为本实施例姿态示意图其中1到9分别表示的人脸图像的姿态角度为-90°、-60°、-45°、-30°、0°、30°、45°、60°、90°。
图2为本实施例姿态识别的结果其中人脸图像的姿态角度为60°。
具体实施例方式
下面结合附图对本发明的实施例作详细说明本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体过程,但本发明的保护范围不限于下述的实施例。
实施例1.把人脸库(该人脸库包含有2270个人的9个不同姿态的人脸图像。如图1所示,图a、b、c、d、e、f、g、h、i这9个人脸图像的姿态分别为-90°、-60°、-45°、-30°、0°、30°、45°、60°、90°。把人脸库中的图像按照其不同的姿态分为9类,每一类有2270个。)中的所有图像缩放为高为30个像素,宽为30个像素的图像,然后把该缩放后的人脸图像变换为灰度图像,并把图像的像素灰度值归一化到
,最后把灰度图像拉成长度为900的向量。
2.对步骤(1)中的所有的向量数据进行PCA处理,保持98%的信息,最终把向量的维数从900维降到342维,同时得到平均向量 和特征向量P,如果把原始900维的向量数据表示为X,降维后的342维数据表示为b,那么X可以表示为X=x‾+Pb,]]>降维后的数据b可以表示为b=PT(X-x‾).]]>3.设定该神经网络有3层。每一层的结点数分别为300,300,800。类别个数为9,预训练和调整参数的次数分别为50和100。根据网络层数和每层结点的个数确定网络结构,同时产生
之间的随机数作为网络结点之间连接权值。
4.设置网络中第一层受限玻尔兹曼机的可视层的结点与步骤(2)中向量中的342个值一一对应,即第一层受限玻尔兹曼机的可视层的结点数为342,训练该受限玻尔兹曼机可视层的342个结点与隐层的300个结点之间的权值参数,共训练50次。然后再以第一层受限玻尔兹曼机的隐层结点作为第二层受限玻尔兹曼机可视层结点,同样训练该受限玻尔兹曼机可视层的300个结点与隐层的300个结点之间的权值参数,也训练50次。依此类推,即上一层受限玻尔兹曼机的隐层结点作为下一层受限玻尔兹曼机的可视层结点以训练下一层受限玻尔兹曼机。这样就完成了整个网络的预训练,同时也得到了预训练好的各层受限玻尔兹曼机的参数。
5.利用梯度下降法以重建误差最小为准则反向传播并调整所有受限玻尔兹曼机可视层结点与隐层结点之间的权值参数,该步骤共执行100次。
6.对于一幅新的待进行姿态识别的人脸图像,先把其缩放到高为30,宽为30的图像,并把该缩放的图像变换为灰度图像,然后把图像灰度值归一化到
,接着把归一化后的图像拉成一个长度为900的向量,并利用b=PT(X-x‾)]]>把该向量的维数降到342,最后把该342维的向量送入已经训练好的网络进行姿态识别。如图2所示,该待进行姿态识别的图像为一幅60°的人脸图像,用本发明的方法可以正确地识别出该人脸图像的姿态。
从以上可以看出,本实施例提出的人脸姿态识别方法可以进一步应用于三维人脸识别。
权利要求
1.一种利用降维方法进行人脸姿态估计的方法,具体包括如下步骤(1)对不同姿态的人脸图像训练样本进行预处理操作;(2)对预处理后的数据进行PCA处理;(3)初始化受限玻尔兹曼机神经网络;(4)用PCA处理后的数据预训练受限玻尔兹曼机神经网络;(5)调整受限玻尔兹曼机神经网络参数;(6)对新的人脸图像进行姿态识别。
2.根据权利要求1所述的利用降维方法进行人脸姿态估计的方法,其特征是,所述的步骤(1)具体包括1)对于每个人脸图像训练样本,首先把其缩放为高为h个像素、宽为w个像素的图像;2)把该缩放后的人脸图像变换为灰度图像;3)把所有像素的灰度值归一化到
;4)把它们拉成长度为h×w的向量,即该向量的维数是h×w。
3.根据权利要求1所述的利用降维方法进行人脸姿态估计的方法,其特征是,所述的步骤(2)具体包括1)对预处理后的数据进行PCA操作,去除冗余信息和噪音,保持98%的信息信息量2)把所有数据都从h×w降到s维,同时得到平均向量 和特征向量P,具体关系如下X=x‾+Pb,]]>降维后的数据b表示为b=PT(X-x‾),]]>其中X为原始h×w维的向量数据,b为降维后的s维数据。
4.根据权利要求1所述的利用降维方法进行人脸姿态估计的方法,其特征是,所述的步骤(3)具体包括1)设定该神经网络有L层;每一层的结点数分别为N1,N2,…,NL;类别个数为C;预训练和调整参数的次数分别为Pt和Pc;2)根据网络层数和每层结点的个数确定网络结构,同时产生
之间的随机数作为网络结点之间连接权值。
5.根据权利要求1所述的利用降维方法进行人脸姿态估计的方法,其特征是,所述的步骤(4)具体包括1)设置网络中第一层受限玻尔兹曼机的可视层的结点与步骤(2)中向量中的s个值一一对应,即第一层受限玻尔兹曼机的可视层的结点数为s,训练该受限玻尔兹曼机可视层结点与隐层结点之间的权值参数,共训练Pt次;2)再以第一层受限玻尔兹曼机的隐层结点作为第二层受限玻尔兹曼机可视层结点,同样训练该受限玻尔兹曼机可视层结点与隐层结点之间的权值参数,也训练Pt次;3)依此类推,即上一层受限玻尔兹曼机的隐层结点作为下一层受限玻尔兹曼机的可视层结点以训练下一层受限玻尔兹曼机,最终完成了整个网络的预训练,同时也得到了预训练好的各层受限玻尔兹曼机的参数。
6.根据权利要求1所述的利用降维方法进行人脸姿态估计的方法,其特征是,所述的步骤(5)是指利用梯度下降法以重建误差最小为准则反向传播并调整所有受限玻尔兹曼机可视层结点与隐层结点之间的权值参数,该步骤共执行Pc次。
7.根据权利要求1所述的利用降维方法进行人脸姿态估计的方法,其特征是,所述的步骤(6)是指对于一幅新的待进行姿态识别的人脸图像,先把其缩放到高为h,宽为w的图像,并把该缩放的图像变换为灰度图像,然后把图像灰度值归一化到
,接着把归一化后的图像拉成一个长度为h×w的向量X,并利用b=PT(X-x‾)]]>把该向量的维数降到s,最后把该s维的向量送入已经训练好的网络进行姿态识别。
全文摘要
本发明公开了一种图像识别技术领域的利用降维方法进行人脸姿态估计的方法,具体包括如下步骤(1)对不同姿态的人脸图像训练样本进行预处理操作;(2)对预处理后的数据进行PCA处理;(3)初始化受限玻尔兹曼机神经网络;(4)用PCA处理后的数据预训练受限玻尔兹曼机神经网络;(5)调整受限玻尔兹曼机神经网络参数;(6)对新的人脸图像进行姿态识别;本发明于现有技术相比错误率进一步降低,同时由于其数据的维数经过PCA处理后大大降维,后续的网络中每一层的节点数也随之减少,不仅减少了训练时间,同时测试速度也大为提高。
文档编号G06K9/62GK101021900SQ20071003807
公开日2007年8月22日 申请日期2007年3月15日 优先权日2007年3月15日
发明者杨杰, 杜春华, 张田昊, 署光, 杨晓超 申请人:上海交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1