基于小波变换和改进PCA的人脸特征提取算法

2021-11-26 08:48马承泽王新民
吉林大学学报(理学版) 2021年6期
关键词:特征向量小波人脸

张 颖, 马承泽, 杨 平, 王新民

(1. 长春财经学院 信息工程学院, 长春 130122; 2. 长春工业大学 数学与统计学院, 长春 130012)

人脸识别算法主要包括人脸特征的提取和识别两部分, 其中特征提取是人脸识别过程中的重要部分, 提取到的特征是否合理直接关系到人脸识别系统识别准确率的高低和速度的快慢. 由于受外部环境(如昼夜、光照等)和被拍者自身因素(如姿态、表情、是否配戴眼镜等)的影响, 人脸特征提取不准确会导致人脸识别效果较差[1]. 人脸特征提取要解决两方面的问题, 即高频和高维问题. 高频是指图像在采集、传送过程中会受到噪声的影响, 从而在图像中留下印记; 高维是指图像的数据维度大, 且存在彼此关联的、冗余的信息[2].

对图像频率成分进行分析, 传统方法采用Fourier变换, 但Fourier变换缺少时域信息, 虽然改进的STFT(short-time Fourier transform)可通过时间窗将图像信号分割为一定时间内平稳的信号, 但同一个时间窗内的频率是固定的, 同样会导致分析的精度不够. 小波分析的特点是其可以将信号分割为不同空间的分量, 过滤出图像中的高频分量和低频分量, 从而达到图像的有效去噪[3]. 目前对图像进行降维的主要方法是主成分分析(principal component analysis, PCA)方法. PCA是以K-L变换(Karhunen-Loeve transform)为基础的统计方法, 旨在用少量的特征表征样本信息, 即可将原始数据从原来的R维空间投影到M维空间(R≫M), 且在低维空间中保留了原有数据中的绝大部分特征信息.

本文通过对人脸图像进行小波分解、去噪, 利用改进的PCA方法对图像进行主成分提取, 获得了代表人脸特征的特征向量[4]. 实验结果表明, 本文算法具有较强的鲁棒性, 能有效提高人脸识别效果.

1 算法设计

1.1 基于小波变换的图像分解与低频特征提取

对于一维离散信号f(t), 其小波变换(分解)可表示为

其中Wf(a,b)为频域信号,ψa,b(t)为小波函数序列,a为伸缩因子,b为转移因子. 原始信号f(t)经过与不同伸缩尺度a和不同转移因子b的母小波函数ψ(t)卷积变换后得到原信号的频域信号Wf(a,b),Wf(a,b)中的a体现了对原信号处理中的分辨(高低频)特性,b体现了原信号中的时域特性.

对于人脸图像数据, 原信号f(x,y)可认为是二维离散数据, 处理时先按照一维小波分解的原理, 按行顺序对行进行处理, 然后按列顺序对行处理的结果再进行相同处理. 小波分解后的图像包括子带图像低频、水平高频垂直低频、水平低频垂直高频和高频四部分. 其中低频表示原始图像的低频信息, 是图像的近似表示; 水平高频垂直低频表示图像在水平方向上的奇异特性; 水平低频垂直高频表示图像在垂直方向上的奇异特性; 高频表示图像的对角边缘特性(水平、垂直都高频). 人脸图像的一级小波变换和二级小波变换分解如图1所示.

图1 人脸图像的小波变换一级和二级分解原理Fig.1 First and second level decomposition principle of face image based on wavelet transform

研究表明, 人脸的光照、少许遮盖、旋转、扭曲和表情等只影响图像中的高频部分, 低频部分较稳定, 因此用经过小波分解后的低频部分代替原始的人脸图像, 可降低光照、表情等客观因素的影响, 同时降低计算复杂度, 且能较好地描述人脸的分类特征. 图2为人脸图像的Haar小波变换一级分解. 由图2可见, 利用Haar小波对Olivetti Faces人脸库中的图像进行一级小波分解, 图像低频部分保留了人脸的主要信息, 同时将人脸图像数据降到原来的1/4, 从而减少了后续计算的复杂度.

图2 人脸图像的Haar小波变换一级分解Fig.2 First level decomposition of face image based on Haar wavelet transform

1.2 人脸特征提取K-L变换方法

K-L变换是一种有效的线性变换, 其目的是快速找到一个原始多维数据的投影方向, 该方向能代表原始数据, 通过变换实现对特征空间降维[5]. PCA就是一种以K-L变换为基础的统计方法.

假设有一张大小为K×K像素的人脸图像, 将该图像视为一个长度为M维的列向量(M=K2), 训练样本集共有N张图像, 可表示为(x1,x2,…,xN), 其中每个x都是一个M维向量. 则这N张人脸的平均值向量表示为

(3)

(4)

从而得到样本集的偏差矩阵D=(Φ0,Φ1,…,ΦN-1)N×M, 进一步可得样本集的协方差矩阵C为

(5)

2 改进的PCA算法

利用PCA进行人脸特征提取的工作量主要是计算样本集协方差矩阵C的特征值和特征向量. 由于C是一个M×M维的方阵, 当维度M非常大, 例如M=10 000时, 采用传统的PCA算法提取主成分分量时系统运行速度较慢, 甚至会出现内存泄露的错误. 因此, 本文采用一种改进的PCA人脸特征提取算法.

对于求解大样本矩阵, 可采用改进PCA算法计算矩阵特征值所对应的特征向量[8]. 设ΦN×M为每个样本与样本均值差的矩阵, 则总体散布矩阵为C=(ΦTΦ)M×M. 考虑矩阵R=(ΦΦT)N×N, 一般情况下由于样本数量N远小于样本维度M, 所以R的大小也远小于总体散布矩阵C的大小, 但其与C有相同的非零特征值, 所以求总体散布矩阵C的特征值和特征向量可通过求得R的特征值和特征向量间接求得.

假设n维列向量V是R的特征向量, 则有

(ΦΦT)V=λV.

(6)

将式(6)两端同时左乘ΦT, 并应用矩阵乘法的结合律得

(ΦTΦ)(ΦTV)=λ(ΦTV).

(7)

式(7)表明ΦTV为散布矩阵C=(ΦTΦ)M×M的特征向量. 因此可通过计算小矩阵R=(ΦΦT)N×N的特征向量V, 然后左乘ΦT得到散布矩阵C=(ΦTΦ)M×M的特征向量ΦTV.

3 实 验

3.1 人脸图像数据特征提取和分类

实验采用美国纽约大学整理的Olivetti Faces人脸数据集, 该数据集共包括40个不同的对象, 每个人都有10张不同的人脸图像, 总计400张图像, 图像大小为64×64像素. 在特征提取时, 使用不同种类、不同级的小波分解和改进PCA降维预处理, 判断对训练时间和识别率的影响. 分别选取每个人7张图像, 总计280张图像作为测试样本; 其他3张总计120张图像作为测试样本. 经过小波分解与重构的图像如图3所示, 经过改进PCA降维后的图像如图4所示.

图3 人脸图像各层低频系数重构结果Fig.3 Reconstruction results of face image with different layer low-frequency coefficients

图4 变换及重构图片Fig.4 Transformation and reconstruction images

在分类时, 本文采用经典的深度卷积神经网络VGG-16(visual geometry group network)模型作为人脸识别分类器[9]. VGG-16模型包含13个卷积层、5个池化层和3个全连接层. 本文利用TensorFlow框架实现该VGG-16分类器[10]. 训练时网络的batch_size设为256, 使用L2惩罚, drop_out比例设置为0.5, 学习率初始值为0.1, 并随着迭代进行动态更新.

3.2 结果分析

表1为采用不同小波、不同分解级数和改进PCA的实验数据.

表1 采用不同小波、不同分解级数和改进PCA的实验数据

由表1可见, 对人脸图像先进行一级、二级小波变换和改进PCA的混合特征预处理, 再经过VGG-16分类器, 识别率较高, 可知原图有效信息未严重丢失. 但对人脸图像进行三级小波变换的预处理后, 图像识别率明显下降, 表明数据丢失严重. 实验结果表明, 经过二级小波变换和改进PCA特征提取后, 图像识别时间明显缩短, 提高了识别效率. 经过sym6(Symlets 6)小波分解和改进PCA特征提取后, 识别率和识别时间均优于Haar和PCA、Db5(Daubechies 5)和PCA的组合特征提取算法, 效果最佳.

综上所述, 本文提出了一种混合小波变换和改进主成分分析的人脸特征预处理方法, 并将该方法应用于Olivetti Faces人脸库数据集. 实验结果表明, 该混合算法处理后的图像特征数据, 利用VGG-16卷积神经网络模型算法分类时, 识别的准确率和速度均较单纯使用PCA算法进行特征提取约提高10%和37%.

猜你喜欢
特征向量小波人脸
二年制职教本科线性代数课程的几何化教学设计——以特征值和特征向量为例
克罗内克积的特征向量
有特点的人脸
构造Daubechies小波的一些注记
一起学画人脸
基于MATLAB的小波降噪研究
三国漫——人脸解锁
一类特殊矩阵特征向量的求法
基于改进的G-SVS LMS 与冗余提升小波的滚动轴承故障诊断
EXCEL表格计算判断矩阵近似特征向量在AHP法检验上的应用