基于带稀疏度约束非负矩阵分解(NMFs)的人脸特征提取与识别系统
项目介绍
本项目实现了一种结合稀疏性约束的改进非负矩阵分解(SNMF)算法,专注于解决人脸识别中的局部特征提取与空间降维问题。相较于传统NMF,本系统通过引入稀疏因子,强制要求算法学习到更加“局部化”的基图像,使其能精准捕捉人脸的解剖结构(如眼睛、鼻子等)。该系统集成了从数据模拟、特征学习、特征映射到身份识别的全流程,为生物特征识别技术提供了一种鲁棒性强的低维表征方案。
功能特性
- 局部表征能力:采用稀疏约束确保基图像呈现明显的局部特性,增强了特征的可解释性。
- 动态稀疏控制:支持分别对基矩阵(W)和系数矩阵(H)设置不同的稀疏度目标(0到1之间)。
- 鲁棒性降维:通过投影梯度思想与乘性更新规则结合,将高维像素空间映射到低维稀疏子空间。
- 闭环验证:系统包含自动化的性能评估模块,能够实时计算识别准确率并可视化收敛过程。
- 模拟仿真环境:内置人脸数据模拟生成器,可模拟不同个体的特征分布、随机平移及背景噪声。
系统要求
- 软件环境:MATLAB R2016b 或更高版本。
- 硬件要求:通用办公级配置即可,主要内存消耗取决于图像库规模与迭代次数。
- 依赖库:无需第三方工具箱,核心算法均基于MATLAB基础函数实现。
实现逻辑与算法分析
1. 数据生成与预处理
系统首先通过模拟算法生成仿ORL结构的人脸数据集。该过程为每位受试者创建特定的“基础特征块”,并通过加入随机的平移缩放、背景噪声模拟真实环境。生成的原始特征矩阵经过归一化处理(映射至[0, 1]区间),随后按照预设比例划分为训练集与测试集。
2. 带稀疏约束的非负矩阵分解 (SNMF)
这是系统的核心,旨在将训练矩阵分解为基矩阵(W)和系数矩阵(H)。
- 更新规则:在传统的乘性更新法则基础上,引入了投影算子。算法在每次迭代中更新W和H,以最小化Frobenius范数下的重构误差。
- 稀疏投影(Hoyer算法):系统实现了基于Hoyer定义的L1/L2范数比值的投影算法。每完成一轮数值更新,程序会将W或H的列向量投影到指定的稀疏流形上,确保非负性的同时满足目标稀疏度。
- 基向量归一化:为了防止数值爆炸,算法在迭代过程中对基矩阵W的每一列进行能量归一化。
3. 特征投影与识别
- 特征提取:在识别阶段,基矩阵W被视为固定的特征空间。对于新的测试样本,通过预设的迭代优化算法(在保持W不变的情况下求解H),获取其在稀疏子空间下的编码系数。
- 分类决策:系统采用最近邻分类器(1-NN)。通过计算测试样本的稀疏系数与训练集系数库之间的欧几里得距离,找寻距离最小的样本索引,从而判定输入人脸的身份标签。
4. 结果可视化与评估指标
系统提供四个维度的综合输出:
- 收敛曲线:记录并展示随着迭代次数增加,重构误差(欧氏距离)的下降趋势。
- 基图像可视化:将高维基向量还原为二维图像块进行展示,观察稀疏约束下学习到的局部特征(如人脸的局部解剖块)。
- 混淆矩阵:生成的对齐矩阵通过颜色映射反映预测类别与真实类别的一致性,直观揭示识别性能。
- 重构对比:对比原始人脸样本与经过SNMF降维后再还原的样本,验证信息保留的完整性。
核心参数说明
- 降维目标空间维度 (r):设定为36,表示将1024维的像素空间压缩为36维。
- 系数矩阵稀疏度 (sparsity_h):设定为0.6,属于较高稀疏约束,旨在获得更简洁的特征表达。
- 迭代次数 (max_iter):默认为100次,平衡了计算效率与收敛精度。