APP下载

基于非负矩阵分解的人脸识别应用研究

2023-10-23王雨欣张国华

计算机时代 2023年10期
关键词:人脸识别人脸特征提取

王雨欣,张国华

(湖南工业大学理学院,湖南 株洲 412000)

0 引言

人脸识别是基于人的脸部特征进行身份识别的生物技术之一[1],其应用十分广泛。例如人脸识别应用在小区、公司、写字楼等场所可以为人民生命和财产安全提供保障;在日常通勤中人脸识别帮助判定乘客购票情况;在刑事侦查方面可以通过人脸识别追踪逃犯;人脸识别技术也使支付手段更加多样化,在一些场所已经开通了人脸支付的功能。人脸识别一般流程如图1所示。

图1 人脸识别流程图

矩阵分解的经典方法有奇异值分解、三角分解、QR 分解等,非负矩阵分解就是其中一种。非负矩阵是机械学习经典算法之一,把一个非负矩阵分解为两个同样非负的矩阵的乘积,分解后的两个矩阵与原矩阵相比维数与计算机对信息的储存都降低了。由于其分解前后矩阵都是非负的,可解释性强且具有良好的现实意义,所以用途广泛。

1 非负矩阵分解原理

非负矩阵分解(Nonnegative Matrix Factorization)简称为NMF是由Lee和Seung在自然杂志上提出的[2]。顾名思义,对于一个各个元素都是非负的矩阵,可以分解为两个同样非负的矩阵乘积。例如,对于任意一个m × n 维的非负矩阵W,可以分解为非负的m × r 维的矩阵U 和r × n 维的矩阵V 的乘积,可表达为Wmn=UmrVrn,分解实例如图2所示。

图2 非负矩阵分解图

图2 中,U 称为特征矩阵表示从原矩阵中提取出的特征,V 称为系数矩阵描述原矩阵中的特征重要性,该分解的思想是局部构成整体。在投影角度上,V 的每一个列向量可看作W 的列向量在U 上投影所得坐标系数。矩阵分解时往往要求(m+n)r

2 非负矩阵分解目标函数与迭代法则

在实际中,UV 相乘只能尽量逼近W,所以用Wmn≈UmrVrn来表示,为了刻画UV与原矩阵之间的误差,可应用以下两个目标函数。

①基于欧氏距离的目标函数:

s.t.U,V ≥0,∀m,n.

②基于KL散度的目标函数:

s.t.U,V ≥0,∀m,n.

需要注意KL 散度是描述两个概率分布相似度的度量,其不是对称的,所以DKL(W∣∣UV)与DKL(UV∣∣W)不同。

目标函数DE(W∣∣UV)与DKL(W∣∣UV)对于U,V 中的一个是凸函数,但对于U,V来说并不同时是凸函数。一般我们采用乘性迭代法来进行优化,于是对于式⑴有:

对于⑵式有:

一直迭代下去就会收敛(证明略),我们也可以根据具体实验情况设计迭代次数。

3 概率模型与目标函数及乘性迭代间的关系

由于矩阵U,V乘积是尽量逼近矩阵W,所以我们可以把矩阵分解看成含线性噪声的线性混合体模型Wm×n=Um×rVr×n+Em×n,其中Em×n为噪声矩阵[3]。

梯度下降得:

4 实验操作

4.1 人脸识别流程

⑴通过拍摄工具对人脸图像进行采集。

⑵对采集的图片进行预处理,目的是增强人脸图像质量为之后特征提取打下基础;常见的预处理方法有去噪、增强对比度、尺寸归一化等。

⑶通过检测系统判断图片中人脸图像是否存在以及存在的位置,并对人脸上如眼睛、鼻子、嘴巴等特征明确与定位。

⑷特征提取阶段。

数据库中每张人脸图片都可转化为原始矩阵W中的列向量,其中W 是非负的,特征提取就是对其进行分解。特征矩阵U由人脸中眼睛、鼻子、嘴巴等特征构成,各个特征在人脸上的重要性用系数矩阵V表示。如图3 中右上角的Original 图片表示经过处理后原始人脸图片,图中左边矩阵称为特征矩阵,它由数据库中所有人脸上的主要特征构成,这些特征处于不同位置有不同的形态;右边矩阵为系数矩阵表示左边矩阵中不同特征的重要性,这两个矩阵都是非负的。左右两边矩阵相乘得到眼睛、鼻子、嘴巴等特征相加构成整张人脸,体现了非负矩阵分解原理中局部构成整体的思想。同时这两个矩阵也是稀疏的,稀疏是指矩阵中大多数元素为零,体现了非负矩阵分解完之后比原来矩阵更加简单,占用内存更少的特点。

图3 非负矩阵分解实例图

⑸信息对比识别成功或失败。

将提取出的特征与数据库中已有的特征进行比对,在这之前一般会设定一个阈值,若提取出的特征与数据库中某一张人脸特征之间差距小于设定的阈值则识别成功否则识别失败。

4.2 实验操作

接下来运用非负矩阵分解算法在计算机上进行实际操作。

数据库说明:人脸数据库Olivetti 中共有400 张图片,每张大小为64 × 64,由40 个人每个人分别拍照10次得到,这些图片中有些戴眼镜有些不戴面部表情也不同,有些图片是在不同的时间段采集的。采用人脸数据库Olivetti中的六张人脸图片进行实验。

实验环境:本次实验在Windows 10 系统上进行,使用的编程软件为Spyder(Python 3.7)。

我们的目的是利用非负矩阵分解算法对这6张图片进行特征提取,将这六张图片转化为矩阵W中的列向量,通过分解得到特征矩阵U 与系数矩阵V。该算法主要步骤为①读取图像数据;②初始化特征矩阵与系数矩阵;③按照迭代公式对特征矩阵与系数矩阵进行迭代;④人脸重建。本次实验中设置的特征提取个数为7。

原始的6张人脸图片如图4,部分代码展示如图5,运用非负矩阵分解算法得到的人脸图像如图6。

图4 原始人脸图片

图5 部分代码展示

图6 非负矩阵分解算法提取的图片特征

实验结果显示,运用非负矩阵分解算法得到的人脸图像中五官及脸部轮廓等都很好地还原了出来。

4.3 实验对比

在机械学习中还有其他可用来进行人脸识别的算法,如主成分分析算法、奇异值分解算法等,其中主成分分析算法在人脸识别中运用较为广泛。主成分分析算法主要思想是用主要数据表达原始数据,关键是计算数据协方差矩阵,取该矩阵中较大的几个特征值,由这几个特征值对应特征向量构成子空间,将原始矩阵投影到子空间上得到维数降低后的矩阵。在人脸识别时需要计算由数据库中人脸矩阵构成的子空间,待检测人脸由该子空间表示,通过衡量待检测人脸与数据库中人脸在子空间上表达数据之间差距判定能否识别成功。使用主成分分析算法对这6 张图片进行特征提取,运行结果如图7所示。

图7 主成分分析算法提取的图片特征

主观上运用非负矩阵分解算法提取出的人脸特征比主成分分析算法提取出的特征图像更清晰一些。通过图像重构误差公式,其中Fij为原始图像归一化后灰度值,Gij为重构后图像归一化后灰度值,m × n 为图像大小,运用非负矩阵分解算法重构误差为0.0563 运用主成分分析算法重构误差为0.0651,与主观上观察相符。原因可能是运用主成分分析算法进行人脸识别时,会使一些具有较强辨别性的细节特征数据丢失;还有一种原因是主成分分析算法在处理人脸时并没有区分哪个特征对应哪个部位,而是把所有主要特征都体现了出来,造成提取出来的图像较为模糊。而根据非负矩阵分解原理人脸上特征都有具体的数据表达,使得局部特征更加清晰,又矩阵分解前后非负性的限制使局部之间只能相加构成整张人脸,非负矩阵分解原理以及“加”的思想使其在人脸识别中展现出一定优异性。

5 改进的非负矩阵分解在人脸识别中的应用

经过研究与改进学者们将非负矩阵分解分为四类[4],即原始的非负矩阵分解(Basic NMF)、添加约束条件的非负矩阵分解(Constrained NMF)、结构化非负矩阵分解(Structured NMF)、广义的非负矩阵分解(Generalized NMF)以及衍生出的图正则化非负矩阵分解和局部非负矩阵分解。

人脸识别中遇到的一些问题可以通过改进非负矩阵分解算法来解决。例如为使矩阵分解后特征图像表现效果更好,有学者提出了稀疏图正则化非负矩阵分解[5];为解决样本数据非线性可分问题学者们提出了核局部非负矩阵分解方法[6];使用L21范数作为矩阵之间度量,在保证行与列稀疏的同时还可以增强算法鲁棒性;而把原始矩阵分解为噪声矩阵与两个非负矩阵乘积的和可以在一定程度上消除噪声对数据的影响,结合上述优点得到的基于L21范数的权重稀疏图非负矩阵分解方法[7]比基本的非负矩阵分解增强了鲁棒性与应对噪声的能力。

实际运用人脸识别时还存在许多问题,比如识别时人面部表情或脸部遮挡等会对识别产生干扰。在处理脸部遮挡问题时,一种基于局部自适应结构引导约束的非负矩阵分解方法(NMF_LASGC)不用有遮挡部位的先验信息,可以运用在有监督与无监督情况[8]。也有学者将非负矩阵分解与卷积神经网络(CNN)结合提出了一种深层非负矩阵分解网络(Deep SANMF)并给出了其应用在有遮挡人脸识别中的框架[9]。在处理人面部表情对人脸识别产生影响时,有文献结合分块加权算法优势提出了分块加权算法与稀疏矩阵分解算法融合的人脸识别方法,并在人脸数据库上得到了有效验证[10]。

综上,通过对非负矩阵分解算法改进可以提高其在人脸识别上精确率,也可以在一定程度上解决人脸识别在实际应用中产生的问题。

6 结束语

本文首先介绍了人脸识别背景与非负矩阵分解算法原理、迭代法则等内容,通过实验并与其他算法比较验证了其在人脸识别上的应用,分析了其在人脸识别上展现优异性的原因,最后阐述了改进的非负矩阵分解算法在人脸识别上的应用。

非负矩阵分解算法还有很多值得研究的地方,例如针对不同人脸数据库如何选择合适的特征个数,针对不同的应用场景如何选择适当的非负矩阵分解类型等,另外,矩阵分解时初始值的选择与分解后迭代算法的制定等也值得进一步探讨。非负矩阵分解算法在生物医学、语音处理、文本聚类与模式识别等领域也将会有更成功的应用。

猜你喜欢

人脸识别人脸特征提取
人脸识别 等
有特点的人脸
揭开人脸识别的神秘面纱
基于Daubechies(dbN)的飞行器音频特征提取
三国漫——人脸解锁
Bagging RCSP脑电特征提取算法
基于类独立核稀疏表示的鲁棒人脸识别
马面部与人脸相似度惊人
基于MED和循环域解调的多故障特征提取
长得象人脸的十种动物