姿态人脸的矫正和识别存在以下问题和挑战:(1)多解问题。从优化的角度看,由大角度姿态的人脸生成正脸是一个不适定或欠定的问题。如果不考虑先验知识或约束,容易产生模糊结果,则该问题存在多个解;(2)信息丢失。姿态人脸相比于正脸缺少部分人脸结构和细节等判别信息,这导致姿态人脸矫正过程容易丢失判别信息。而生成的正脸在缺少判别信息的情况下,又很难用于人脸识别中。(3)模型过拟合。现有的人脸数据集中,姿态人脸数据量要远小于正脸的数据量。在训练数据量不足的情况下,复杂模型存在过拟合风险。本节介绍基于稀疏渐进式堆叠自动编码器的人脸姿态矫正和识别(Sparse Stacked Processive Stacked Auto-Encoders,Sparse SPSAE)方法,能够一定程度地解决生成人脸模糊和信息丢失问题。
稀疏渐进式堆叠自动编码器包括两个重要组成部分:渐进式堆叠自动编码器和稀疏约束,如图2-27所示,是Sparse SPSAE算法模型的结构框图。该结构框图中以输入人脸角度变化最大为45°为例,展示了Sparse SPSAE实现渐进式人脸姿态矫正的过程。任意姿态的人脸输入到Sparse SPSAE算法模型中,通过多个稀疏堆叠自动编码器的渐进式矫正,解码器输出矫正后的正脸图像,编码器输出对姿态鲁棒的具有判别能力的特征表示。
图2-27 基于稀疏渐进式堆叠自动编码器的人脸姿态矫正和识别方法流程框图
1.渐进式堆叠自动编码器
姿态矫正是一个高度非线性的变化过程,因此将姿态矫正过程分为多个近似线性的矫正阶段。每个阶段使用堆叠自动编码增强姿态矫正的能力,并将人脸大姿态变化矫正为一个更小的姿态变化。假设输入的人脸的姿态变化范围是[-45°,45°],则第一个堆叠自动编码器会将人脸姿态矫正为[-30°,30°],依次类推,第二堆叠自动编码器会将人脸姿态从[-30°,30°]矫正为[-15°,15°],第三个堆叠自动编码器会将人脸姿态从[-15°,15°]矫正为[0°]。相比于直接将[-45°,45°]的姿态人脸直接矫正为[0°]。通过将目标分解,每个堆叠自动编码器只需完成一个更容易实现的小目标,从而渐进式地实现姿态矫正。因此,每个堆叠自动编码都可以学习到人脸中更多的信息,有利于实现姿态的正确矫正。
因此,相比较直接使用堆叠自动编码器直接进行姿态矫正的方法,本节做出了如下改进:第一,将姿态矫正分解为多个阶段,每个阶段都使用堆叠自动编码进行姿态矫正,将各个阶段的堆叠自动编码器依次堆叠,从而渐进地实现姿态矫正;第二,设置堆叠自动编码的隐含层层数适应于不同阶段的矫正目标,实现使用最少的隐含层达到最好的矫正效果。
2.稀疏约束
稀疏约束有利于提高深度学习模型的泛化能力,还可以有效地提取人脸图像中最重要的结构信息。因此,在堆叠自动编码中引入稀疏性约束来发现同一个体的不同姿态之间的语义联系。
通过对隐含层输出的激活程度进行限制,从而实现稀疏约束。激活函数可以是sigmoid或tanh函数,如公式(2-82)所示。若使用sigmoid激活函数,则隐含层输出的取值范围是(0,1)。因此,当隐含层的输出值大于0时,隐藏神经元处于激活状态;当输出值接近0时,隐藏神经元处于非激活状态。
假设ak(x)表示输入x通过第k个神经元的输出,则ak(x)可表示为
隐含层的稀疏性是通过限制隐含层输出的平均激活程度^ρk来实现。因此,平均激活程度^ρk的大小就是隐含层的稀疏程度的大小。隐含层输出的平均激活程度^ρk的表示如下:
(www.xing528.com)
式中,n表示的是样本的数量。
为了获得理想的稀疏性,引入超参数ρ,ρ是一个大于0并且非常接近0的数,并使得隐含层输出的平均激活程度^ρk能够尽可能地接近ρ。为使得隐含层输出的平均激活程度^ρk与ρ尽可能地接近,使用ρ和^ρk的KL散度作为惩罚项:
式中,k表示的是隐含层中第k个神经元,m为隐含层中神经元数量。当^ρk=ρ时,KL(^ρk‖ρ)=0,其他情况下,KL(^ρk‖ρ)>0。因此,通过最小化KL(^ρk‖ρ),可以使得^ρk尽可能的接近ρ。在稀疏性约束下,隐含层的绝大多数神经元都被限制为非激活状态,能够大大减少隐含层中的参数量,降低模型过拟合风险,有利于促进堆叠自动编码从大姿态人脸图像中提取隐含的重要结构信息,降低噪声干扰。
3.稀疏渐进式堆叠自动编码器的具体实现
假设D表示输入人脸姿态的最大角度。将姿态变化[-D,D]划分为(2×K+1)个区间,并表示为集合D。P表示的是姿态矫正的各个阶段目标姿态的集合,即P={-30°,-15°,0°,15°,30°}。另外,引入新的变量l∈D表示输入样本的姿态角度,变量j=1,2,…,K表示第j个自动编码。因此,x(j)i,l表示的是输入到第j个堆叠自动编码器的姿态为l的第i个样本。第j个堆叠自动编码的优化函数由重构误差和KL散度惩罚两部分组成,由公式(2-84)和公式(2-95)可得,目标函数的表达式为
式中,P(j)∈P,是第j个堆叠自动编码合成人脸的最大姿态变化。因此,姿态人脸通过第j个堆叠自动编码后,将自动矫正为姿态变化[-P(j),+P(j)],即姿态变化大于P(j)的人脸将被矫正为P(j)的,而姿态变化小于P(j)的人脸,将保持原有姿态变化不变。
为了达到最佳的训练效果,在训练阶段,将模型的训练分为预训练和优化训练两个阶段。在预训练阶段,根据公式(2-97),每一个堆叠自动编码器,通过最小化目标函数,分别训练得到最佳的参数。在优化训练阶段,将堆叠自动编码器依次堆叠,并进行进一步整体的优化。因此,总的模型中将包含K个堆叠自动编码器,并按照如下优化函数对K个堆叠自动编码器进行整体优化:
在测试阶段,将任意姿态的人脸图像输入到模型中,可以直接获得生成的正脸图像和对姿态鲁棒的人脸特征。将通过可视化的人脸生成图像和量化的图像质量评价对姿态人脸矫正的效果进行验证。由于堆叠自动编码器的隐含层可直接获得压缩人脸的特征表示,将提取每个堆叠自动编码器最后一层隐含层的输出作为姿态不变的人脸特征,并通过人脸识别的准确率验证每个自动编码器输出的特征在姿态不变的人脸识别中的表现。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。