本发明涉及计算机视觉和模式识别领域,具体涉及一种基于相似度保留堆叠自编码器的人脸姿态重建与识别方法。
背景技术:
人脸姿态重建与识别由于其巨大的理论研究空间以及在广泛的实际应用中具有良好的应用潜力,成为了目前的一个热点研究领域。现实中,人脸在不同环境中易受姿态变化的影响,使得基于姿态变化的人脸识别问题成为了一个研究难点。识别带有不同姿态角度变化的非配合主体对于公安刑侦破案、出入口控制、边界安防等领域发挥着至关重要的作用。
在实际应用中,如视频监控和图像采集等场合,由于用户的非配合,致使采集到的图像存在不同程度的角度旋转,从而导致人脸被部分遮挡以及脸部纹理形变,最后提取到的姿态特征不能很好和原始正脸图像的特征相匹配,从而降低了识别率。
为了解决姿态变化带来的人脸重建和识别问题,目前现有的技术主要为2d和3d两类方法。2d方法中的经典方法是运用堆叠步进自编码器网络结构来将较大姿态的人脸图像逐步地转换为较小姿态的图像,从而完成正脸姿态的重建。这种方法虽然能够提取到鲁棒性较强的姿态不变特征,但是其在某种程度上,使得在姿态重建过程中,人脸的局部纹理信息丢失太多,导致重建后的正脸图像质量下降,从而影响了后续的识别性能;在3d方法中,则主要是运用基于三维人脸建模的方法来处理姿态变化带来的识别性能降低等问题。基于3d建模的方法其计算量较大,且在某些情况下,运用3d方法进行姿态重建后的人脸其识别率没有得到很大程度上的提升。
技术实现要素:
本发明的目的是针对现有技术的不足,而提供一种基于相似度保留堆叠自编码器的人脸姿态重建与识别方法。这种方法能够消除人脸图像的姿态角度偏转影响、能够提取到人脸对于多姿态变化更具鲁棒性的特征,且提取到的姿态特征能和原始正脸图像的特征相匹配,从而提高识别率。
实现本发明目的的技术方案是:
一种基于相似度保留堆叠自编码器的人脸姿态重建与识别方法,包括如下步骤:
1)多角度人脸图像的姿态角度步进减小:给定多角度姿态输入图像x(1)以及图像x(1)下一级小姿态角度图像
2)目标姿态特征提取:将步骤1)中第一步进自编码器的目标姿态角度图像
3)构建相似度保留自编码器的总损失函数:步骤1)中的第一步进自编码器和步骤2)中的第二半自编码器构成一个相似度保留自编码器,在第一步进自编码器的损失函数lpose中加入相似度保留约束项,即对输入图像的隐含层特征h1和目标姿态的隐含层特征
4)堆叠相似度保留自编码器:步骤3)中得到了第一个相似度保留自编码器的总损失函数ltrain,通过最小化损失函数,采用随机梯度下降法来训练网络参数{w1(1),b1(1)}、{w1(2),b1(2)}和{w1(3),b1(3)},之后将多角度姿态输入图像x(1)通过训练好的参数{w1(1),b1(1)}得到隐含层特征h1,接着将h1作为第二步进自编码的输入,取
5)训练并微调网络:经过上述的4个步骤预训练过程后,网络的参数有了初始值,以多角度姿态图像x(1)作为微调网络的输入,在最终的输出端,以正脸姿态图像
6)重建与识别:即重建测试图像的正脸图片,并提取网络最高隐含层特征,最后识别多姿态人脸图像,将带有不同姿态角度的测试图像输入到训练好的微调网络中,通过连接训练好的参数,将测试图像步进映射到多个隐含层中,在输出端得到重建好的正脸图像,接着将重建好的正脸图像和网络的最高隐含层特征分别使用线性判别分析法,即lda法进行降维来提取具有判别性的人脸特征,并用最近邻分类器完成人脸识别。
这种方法通过在步进自编码器的隐含层中引入相似度保留项,即让每一个步进自编码器的隐含层特征和这个自编码器的目标姿态特征做相似度约束,使得在姿态逐层减小的同时,又能够让每一个人对应的姿态特征相似,从而使得提取到的隐含层表达对姿态变化更具鲁棒性,则网络能够很好重建人脸图片的细节信息,且重建后的正脸图片整体光滑,噪点少,主观视觉和客观结构相似度表现都很好;由于多姿态角度图像重建后的正脸图像获得了较好的重建质量,则将重建后的正脸图像通过降维提取特征并分类,一定程度上提高了识别率;此外,由于引入相似度保留约束项,使得网络的最高隐含层特征含有的冗余信息少,则将最高隐含层特征同样通过降维特征提取和分类过程,也能很大程度上提高识别率。
这种方法使用步进自编码器,能够有效地消除人脸图像的姿态角度偏转影响、使用相似度保留项,对隐含层做相似度约束,增强了同一个人对应的人脸特征的相似度,使得人脸特征的鲁棒性更强,重建图像整体光滑,噪点少,提取到的姿态特征能和原始正脸图像的特征相匹配,从而提高识别率。
附图说明
图1为实施例的流程示意图;
图2为实施例中相似度保留自编码器人脸姿态重建结构图;
图3为实施例中相似度保留自编码器网络微调结构图。
图4为实施例的算法识别率性能图。
具体实施方式
下面结合附图和实施例对本发明内容作进一步的详细说明,但不是对本发明的限定。
实施例:
参照图1、图2、图3、图4,一种基于相似度保留堆叠自编码器的人脸姿态重建与识别方法,包括如下步骤:
1)多角度人脸图像的姿态角度步进减小:给定多角度姿态输入图像x(1)以及图像x(1)下一级小姿态角度图像
(1)如图1所示,首先给定多姿态人脸图像x(1),其包含姿态角度p1~pk,且pk>pk-1>...>p1>0,与此对称的角度为-pi(i=1,2...k),以p0表示正脸姿态,所以共2k+1种姿态。这里设k=3,则输入图像共包含7种姿态角度,分别为{-45°,-30°,-15°,0°,+15°,+30°,+45°};
(2)将x(1)作为第一步进自编码器的输入,经编码函数f(x)和编码参数{w1(1),b1(1)}映射到隐含层h1中,接着隐含层特征h1经解码函数g(h)和解码参数{w1(2),b1(2)}又映射到了输出层y(1)中。编解码过程如下所示,
h1=f(x(1))=s(w1(1)x(1)+b1(1))
y(1)=g(h1)=s(w1(2)h1+b1(2))
式中的s(x)是非线性映射sigmoid激活函数,且
(3)经过网络的编解码过程,接下来要通过最小化均方误差函数lpose来实现姿态角度的步进减小,即将较大姿态角度-pk(-45°)和pk(+45°)图像分别映射到下一级小姿态角度-pk-1(-30°)和pk-1(+30°)图像,其余角度分别映射到本身,则在第一步进自编码器中期望输出图像的角度范围为-pk-1-pk-1(-30°-+30°),记为
式中,n是训练样本个数;
2)目标姿态特征提取:将步骤1)中第一步进自编码器的目标姿态角度图像
将
式中的函数f和s同步骤1)中的步进自编码器函数,分别为编码函数和sigmoid激活函数;
3)构建相似度保留自编码器的总损失函数:步骤1)中第一步进自编码器和步骤2)中的第二半自编码器构成一个相似度保留自编码器,在第一步进自编码器的损失函数lpose中加入相似度保留约束项,即对输入图像的隐含层特征h1和目标姿态的隐含层特征
(1)将目标姿态特征
式中的n同样为训练样本个数;
(2)分别对隐含层特征h1和
接着引入相对熵(kullback-leiblerdivergence)来限制隐藏单元的激活度,隐含层特征h1和
式中,ρ0是稀疏度参数,是一个接近于0的数,这里取值为0.05,通过施加限制
(3)将步进自编码器的均方误差损失函数lpose,相似度保留约束项lhidden以及隐含层的稀疏性正则项lsparse1与lsparse2合起来构成相似度保留自编码器的总损失函数ltrain,
ltrain=lpose+αlhidden+β(lsparse1+lsparse2)
式中的α和β是平衡损失函数中不同项之间的参数,可以分别取值为1,0.001,同时在本实施例中,网络中隐含层节点数取值为2000;
(4)通过求解总的目标函数式ltrain的最小值点,并运用共轭梯度(conjugategradients,cg)优化算法来学习网络参数{w1(i),b1(i)},网络参数的更新公式如下式所示:
上式中,η>0是学习速率;
4)堆叠相似度保留自编码器:步骤3)中得到了第一个相似度保留自编码器的总损失函数ltrain,通过最小化损失函数,采用随机梯度下降法来训练网络参数{w1(1),b1(1)}、{w1(2),b1(2)}和{w1(3),b1(3)},之后将多角度姿态输入图像x(1)通过训练好的参数{w1(1),b1(1)}得到隐含层特征h1,接着将h1作为第二步进自编码的输入,取
(1)训练好第一相似度保留自编码器后,再以多姿态人脸图像x(1)作为输入,计算隐含层特征h1,此时的隐含层h1已经完成了小姿态角度的映射,其包含-pk-1-pk-1(-30°-+30°)姿态范围内图像的特征;
(2)接着将h1作为第二步进自编码器的输入,按步骤1)中的第(2)步来将h1映射到h2,h2又被映射到输出层y(2);同时又按照第(3)步来最小化均方误差函数lpose,实现将角度-pk-1(-30°)和pk-1(+30°)图像分别映射到下一级小姿态角度-pk-2(-15°)和pk-2(+15°)图像,其余角度分别映射到本身,则在第二步进自编码器中期望输出图像的角度范围为-pk-2-pk-2(-15°-+15°),记为
(3)将h2作为第三步进自编码器的输入,重复上述步骤,来训练第三相似度保留自编码器网络,使得最后的姿态角度均为0°;
5)训练并微调网络:经过上述的4个步骤预训练过程后,网络的参数有了初始值,以多角度姿态图像x(1)作为微调网络的输入,在最终的输出端,以正脸姿态图像
当预训练好相似度保留堆叠自编码器后,网络中各层参数{w1(i),b1(i)}有了初始值,在微调过程中,以各姿态角度人脸图像x(1)再次作为微调网络的输入,通过运用如下公式逐层将输入图像映射到各个隐含层中,并在输出层得到重建后的正脸图像,
h1=f(x(1))=s(w1(1)x(1)+b1(1))
h2=f(h1)=s(w2(1)h1+b2(1))
h3=f(h2)=s(w3(1)h2+b3(1))
y0=f(h3)=s(w3(2)h3+b3(2))
上述各式中,h1,h2,h3为微调网络的隐含层特征,y0为输出层表达,其包含的图像角度均为0°,此时,在微调网络的输出端,以各姿态角度人脸图像x(1)所对应的正脸图像作为网络的期望输出,表示为
接着最小化上式,同样使用共轭梯度优化算法来学习网络参数。经过微调过程,进一步修正网络中的参数,使得参数达到最优取值;
6)重建与识别:即重建测试图像的正脸图片,并提取网络最高隐含层特征,最后识别多姿态人脸图像。将带有不同姿态角度的测试图像输入到训练好的微调网络中,通过连接训练好的参数,将测试图像步进映射到多个隐含层中,在输出端得到重建好的正脸图像,接着将正脸图像和网络的最高隐含层特征分别使用线性判别分析法,即lda法进行降维来提取具有判别性的人脸特征,并用最近邻分类器完成人脸识别,具体地:
(1)经过训练和微调后,网络获得了最优的参数取值,在测试时,输入多角度姿态测试图像,经各层参数连接将测试图像映射到隐含层,在网络输出端得到了重建后的正脸图像;
(2)将重建后的正脸图片和网络中提取的最高隐含层特征h3分别通过线性判别分析法降维来提取具有判别性的人脸特征,然后再通过最近邻分类器来识别多姿态人脸图像;
通过上述的实施例步骤,可以将多姿态人脸图像重建为正脸图像,并能够提取到网络的最高隐含层特征,图4为分别用相似度保留堆叠自编码器重建后的正脸图像和网络的最高隐含层特征做识别的结果图,从图中可以看出,用网络提取的最高隐含层特征来做多姿态人脸识别后,其识别率要高于用重建出的正脸图像做识别的识别结果;但是用重建后的正脸图像做识别,其识别率也相对较优。